[
  {
    "path": ".agents/skills/repo-source-code-document/SKILL.md",
    "content": "---\nname: repo-source-code-document\ndescription: Write JSDoc comments and inline documentation for Valibot library source code in /library/src/. Use when documenting schemas, actions, methods, or utilities. Covers interface documentation, function overloads, purity annotations, inline comment patterns, and terminology consistency.\n---\n\n# Valibot Source Code Documentation\n\nDocumentation patterns for library source code in `/library/src/`.\n\n## JSDoc Patterns\n\n### Interface Documentation\n\n```typescript\n/**\n * String issue interface.\n */\nexport interface StringIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'string';\n}\n```\n\n**Rules:**\n\n- First line: `[Name] [category] interface.` (e.g., \"String issue interface.\")\n- Property comments: `The [description].` (always start with \"The\", end with period)\n- All properties use `readonly`\n- No blank lines between property and its comment\n\n### Function Overloads\n\nEach overload gets its own complete JSDoc:\n\n```typescript\n/**\n * Creates a string schema.\n *\n * @returns A string schema.\n */\nexport function string(): StringSchema<undefined>;\n\n/**\n * Creates a string schema.\n *\n * @param message The error message.\n *\n * @returns A string schema.\n */\nexport function string<\n  const TMessage extends ErrorMessage<StringIssue> | undefined,\n>(message: TMessage): StringSchema<TMessage>;\n```\n\n**Rules:**\n\n- First line: `Creates a [name] [category].` (use \"a\" vs \"an\" correctly)\n- Blank line after description\n- `@param name The [description].` (start with \"The\", end with period)\n- Blank line after params\n- `@returns A [name] [category].` or `@returns The [description].`\n\n### Hints\n\nAdd hints after the main description, before `@param`:\n\n```typescript\n/**\n * Creates an object schema.\n *\n * Hint: This schema removes unknown entries. To include unknown entries, use\n * `looseObject`. To reject unknown entries, use `strictObject`.\n *\n * @param entries The entries schema.\n *\n * @returns An object schema.\n */\n```\n\n### Links\n\nLink to external resources when relevant using markdown format:\n\n```typescript\n/**\n * Creates an [email](https://en.wikipedia.org/wiki/Email_address) validation action.\n */\n```\n\n### Implementation Function\n\nThe implementation has **NO JSDoc** but uses `// @__NO_SIDE_EFFECTS__`:\n\n```typescript\n// @__NO_SIDE_EFFECTS__\nexport function string(\n  message?: ErrorMessage<StringIssue>\n): StringSchema<ErrorMessage<StringIssue> | undefined> {\n  return {\n    /* ... */\n  };\n}\n```\n\n**`// @__NO_SIDE_EFFECTS__` rules:**\n\n- Add for pure functions (no external state mutation, no I/O)\n- Most schema/action/method factories are pure\n- **Do NOT add** for functions that mutate arguments (like `_addIssue`)\n- Used by bundlers for tree-shaking\n\n### Utility Functions\n\n```typescript\n/**\n * Stringifies an unknown input to a literal or type string.\n *\n * @param input The unknown input.\n *\n * @returns A literal or type string.\n *\n * @internal\n */\n// @__NO_SIDE_EFFECTS__\nexport function _stringify(input: unknown): string {\n  // ...\n}\n```\n\n**Rules:**\n\n- Use `@internal` tag for internal utilities\n- Prefix internal functions with `_`\n- Only add `// @__NO_SIDE_EFFECTS__` if function is pure\n\n## Inline Comment Patterns\n\n### Section Headers\n\n```typescript\n'~run'(dataset, config) {\n  // Get input value from dataset\n  const input = dataset.value;\n\n  // If root type is valid, check nested types\n  if (Array.isArray(input)) {\n    // Set typed to true and value to empty array\n    dataset.typed = true;\n    dataset.value = [];\n\n    // Parse schema of each array item\n    for (let key = 0; key < input.length; key++) {\n      // ...\n    }\n  }\n}\n```\n\n**Rules:**\n\n- Describe WHAT the next code block does\n- Present tense verbs: \"Get\", \"Parse\", \"Check\", \"Set\", \"Add\", \"Create\"\n- **Omit articles** (\"the\", \"a\", \"an\"): \"Get input value\" not \"Get the input value\"\n- No period at end\n- Blank line before comment, no blank line after\n\n### Conditional Logic\n\n```typescript\n// If root type is valid, check nested types\nif (input && typeof input === 'object') {\n  // ...\n}\n\n// Otherwise, add issue\nelse {\n  _addIssue(this, 'type', dataset, config);\n}\n```\n\n**Rules:**\n\n- Use \"If [condition], [action]\"\n- Use \"Otherwise, [action]\" for else branches\n- Omit articles\n\n### Hint Comments (Exception)\n\n```typescript\n// Hint: The issue is deliberately not constructed with the spread operator\n// for performance reasons\nconst issue: BaseIssue<unknown> = {\n  /* ... */\n};\n```\n\n**Rules:**\n\n- Start with \"Hint:\"\n- Explain WHY, not just what\n- **CAN use articles** (unlike other inline comments)\n- Document performance decisions, non-obvious logic\n\n### TODO Comments\n\n```typescript\n// TODO: Should we add \"n\" suffix to bigints?\nif (type === 'bigint') {\n  /* ... */\n}\n```\n\n### @ts-expect-error\n\nUsed for internal dataset mutations TypeScript can't track:\n\n```typescript\n// @ts-expect-error\ndataset.typed = true;\n```\n\n## File Type Patterns\n\n### Schema Files (`string.ts`, `object.ts`, etc.)\n\n1. Issue interface with JSDoc\n2. Schema interface with JSDoc\n3. Function overloads with full JSDoc each\n4. Implementation with `// @__NO_SIDE_EFFECTS__`\n5. Return object with `'~run'` method containing inline comments\n\n### Action Files (`email.ts`, `minLength.ts`, etc.)\n\n1. Issue interface (for validation actions)\n2. Action interface with JSDoc\n3. Function overloads with JSDoc\n4. Implementation with `// @__NO_SIDE_EFFECTS__`\n\n### Method Files (`parse.ts`, `pipe.ts`, etc.)\n\nMore complex logic, require more inline comments.\n\n### Utility Files (`_addIssue.ts`, `_stringify.ts`)\n\n1. Single function with JSDoc including `@internal`\n2. `// @__NO_SIDE_EFFECTS__` only if pure\n\n## Terminology Consistency\n\nJSDoc descriptions must match the `kind` property if present:\n\n| `kind` Property    | JSDoc Wording                          |\n| ------------------ | -------------------------------------- |\n| `'schema'`         | \"Creates a ... schema.\"                |\n| `'validation'`     | \"Creates a ... validation action.\"     |\n| `'transformation'` | \"Creates a ... transformation action.\" |\n\n## Quick Reference\n\n### JSDoc First Lines\n\n| Type      | Pattern                        |\n| --------- | ------------------------------ |\n| Interface | `[Name] [category] interface.` |\n| Type      | `[Name] [category] type.`      |\n| Function  | `Creates a [name] [category].` |\n| Utility   | `[Verb]s [description].`       |\n\n### Inline Comment Starters\n\n| Pattern                        | Example                                        |\n| ------------------------------ | ---------------------------------------------- |\n| `// Get [what]`                | `// Get input value from dataset`              |\n| `// If [condition], [action]`  | `// If root type is valid, check nested types` |\n| `// Otherwise, [action]`       | `// Otherwise, add issue`                      |\n| `// Create [what]`             | `// Create object path item`                   |\n| `// Add [what] to [where]`     | `// Add issues to dataset`                     |\n| `// Parse [what]`              | `// Parse schema of each array item`           |\n| `// Set [property] to [value]` | `// Set typed to true`                         |\n| `// Hint: [explanation]`       | `// Hint: This is for performance`             |\n| `// TODO: [task]`              | `// TODO: Add bigint suffix`                   |\n\n## Terminology\n\nUse consistently:\n\n- **Schema** (not \"validator\")\n- **Action** (not \"validation\" for the object)\n- **Issue** (not \"error\" in type names)\n- **Dataset** (internal data structure)\n- **Config/Configuration** (not \"options\")\n\n## Checklist\n\n- [ ] Interfaces: `[Name] [category] interface.`\n- [ ] Properties: `The [description].`\n- [ ] Overloads: Complete JSDoc each\n- [ ] Implementation: NO JSDoc\n- [ ] Pure functions: `// @__NO_SIDE_EFFECTS__`\n- [ ] Impure functions (mutate args): NO `@__NO_SIDE_EFFECTS__`\n- [ ] Internal utilities: `@internal` tag\n- [ ] Inline comments: No articles (except Hint), no periods\n- [ ] JSDoc comments: End with periods\n"
  },
  {
    "path": ".agents/skills/repo-source-code-review/SKILL.md",
    "content": "---\nname: repo-source-code-review\ndescription: Review pull requests and source code changes in /library/src/. Use when reviewing PRs, validating implementation patterns, or checking code quality before merging. Covers code quality checks, type safety, documentation review, test coverage, and common issues to watch for.\n---\n\n# Reviewing Source Code Changes\n\nGuide for reviewing PRs and source code changes in `/library/src/`.\n\n## When to Use This Guide\n\n- Reviewing pull requests modifying library source\n- Validating implementation patterns before merging\n- Checking code quality, types, documentation, and tests\n\n## Review Process\n\n1. **Understand the change** — Read PR description, identify affected files\n2. **Check patterns** — Verify code follows existing conventions\n3. **Verify types** — Ensure type safety and proper inference\n4. **Review docs** — Confirm JSDoc is complete and accurate\n5. **Check tests** — Validate runtime and type test coverage\n\n## What to Review\n\n### Code Quality\n\n| Check             | Requirement                                                           |\n| ----------------- | --------------------------------------------------------------------- |\n| Naming            | Matches existing patterns (`StringSchema`, `minLength`, `_parse`)     |\n| Purity annotation | `// @__NO_SIDE_EFFECTS__` before pure factory functions               |\n| Import extensions | All imports use `.ts` extension                                       |\n| Interface vs type | Use `interface` for object shapes, `type` for unions/aliases          |\n| Folder structure  | Each API has: `name.ts`, `name.test.ts`, `name.test-d.ts`, `index.ts` |\n\n**Good — purity annotation:**\n\n```typescript\n// @__NO_SIDE_EFFECTS__\nexport function string(message?: ErrorMessage<StringIssue>): StringSchema {\n  return {\n    /* ... */\n  };\n}\n```\n\n**Bad — missing annotation:**\n\n```typescript\nexport function string(message?: ErrorMessage<StringIssue>): StringSchema {\n  return {\n    /* ... */\n  };\n}\n```\n\n### Type Safety\n\n| Check             | Requirement                                           |\n| ----------------- | ----------------------------------------------------- |\n| Generic inference | Types infer correctly without explicit annotations    |\n| Constraints       | Generic parameters have appropriate `extends` clauses |\n| Return types      | Explicit return types on exported functions           |\n| Type tests        | `.test-d.ts` file covers type inference scenarios     |\n\n**Good — constrained generic:**\n\n```typescript\nexport function minLength<\n  TInput extends LengthInput,\n  TRequirement extends number,\n>(\n  requirement: TRequirement,\n  message?: ErrorMessage<MinLengthIssue<TInput, TRequirement>>\n): MinLengthAction<TInput, TRequirement>;\n```\n\n### Documentation\n\n| Check          | Requirement                                       |\n| -------------- | ------------------------------------------------- |\n| JSDoc present  | All exported functions have JSDoc                 |\n| First line     | Action verb matching function purpose (see below) |\n| `@param` tags  | Every parameter documented                        |\n| `@returns` tag | Return value documented                           |\n| Overloads      | Every overload has its own complete JSDoc block   |\n\n**First line patterns by category:**\n\n| Category       | Pattern                                        |\n| -------------- | ---------------------------------------------- |\n| Schemas        | `Creates a ... schema.`                        |\n| Actions        | `Creates a ... action.`                        |\n| Parse methods  | `Parses ...`                                   |\n| Type guards    | `Checks if ...`                                |\n| Unwrap methods | `Unwraps ...`                                  |\n| Other methods  | `Creates a ...`, `Returns ...`, `Forwards ...` |\n\nSee `repo-source-code-document` skill for full documentation rules.\n\n### Tests\n\n| Check          | Requirement                                                |\n| -------------- | ---------------------------------------------------------- |\n| Runtime tests  | `.test.ts` covers success cases, failure cases, edge cases |\n| Type tests     | `.test-d.ts` validates type inference with `expectTypeOf`  |\n| Issue messages | Tests verify correct error messages and issue structure    |\n\n## Common Issues\n\n| Issue                     | What to Look For                                             |\n| ------------------------- | ------------------------------------------------------------ |\n| Missing purity annotation | Factory function without `// @__NO_SIDE_EFFECTS__`           |\n| Incomplete JSDoc          | Missing `@param` or `@returns`, wrong description format     |\n| No type tests             | New API without `.test-d.ts` file                            |\n| Wrong import extension    | Imports without `.ts` suffix                                 |\n| Inconsistent naming       | Schema not ending in `Schema`, action not ending in `Action` |\n| Side effects in pure code | Mutations, I/O, or global state in schema/action creation    |\n\n## Checklist\n\n- [ ] Implementation follows existing patterns in similar files\n- [ ] `// @__NO_SIDE_EFFECTS__` on pure factory functions\n- [ ] All imports use `.ts` extension\n- [ ] `interface` used for object shapes\n- [ ] JSDoc complete on all exports\n- [ ] Runtime tests in `.test.ts`\n- [ ] Type tests in `.test-d.ts`\n- [ ] Naming conventions followed\n\n## Related Skills\n\n- `repo-structure-navigate` — Navigate the codebase\n- `repo-source-code-document` — JSDoc requirements\n"
  },
  {
    "path": ".agents/skills/repo-structure-navigate/SKILL.md",
    "content": "---\nname: repo-structure-navigate\ndescription: Navigate the Valibot repository structure. Use when looking for files, understanding the codebase layout, finding schema/action/method implementations, locating tests, API docs, or guide pages. Covers monorepo layout, library architecture, file naming conventions, and quick lookups.\n---\n\n# Valibot Repository Structure\n\n## Monorepo Layout\n\n```\nvalibot/\n├── library/          # Core valibot package (zero dependencies)\n├── packages/\n│   ├── i18n/         # Translated error messages (25+ languages)\n│   └── to-json-schema/  # JSON Schema converter\n├── codemod/\n│   ├── migrate-to-v0.31.0/  # Version migration\n│   └── zod-to-valibot/      # Zod converter\n├── website/          # valibot.dev (Qwik + Vite)\n├── brand/            # Brand assets\n├── skills/           # Agent skills (this folder)\n└── prompts/          # Legacy AI agent guides\n```\n\n## Core Library (`/library/src/`)\n\n### Directory Structure\n\n| Directory   | Purpose                         | Examples                                      |\n| ----------- | ------------------------------- | --------------------------------------------- |\n| `schemas/`  | Data type validators            | `string/`, `object/`, `array/`, `union/`      |\n| `actions/`  | Validation & transformation     | `email/`, `minLength/`, `trim/`, `transform/` |\n| `methods/`  | High-level API                  | `parse/`, `safeParse/`, `pipe/`, `partial/`   |\n| `types/`    | TypeScript definitions          | `schema.ts`, `issue.ts`, `dataset.ts`         |\n| `utils/`    | Internal helpers (prefixed `_`) | `_addIssue/`, `_stringify/`, `ValiError/`     |\n| `storages/` | Global state                    | Config, message storage                       |\n\n### Schema Categories\n\n- **Primitives**: `string`, `number`, `boolean`, `bigint`, `date`, `symbol`, `blob`, `file`\n- **Objects**: `object`, `strictObject`, `looseObject`, `objectWithRest`\n- **Arrays**: `array`, `tuple`, `strictTuple`, `looseTuple`, `tupleWithRest`\n- **Advanced**: `union`, `variant`, `intersect`, `record`, `map`, `set`, `lazy`, `custom`\n- **Modifiers**: `optional`, `nullable`, `nullish`, `nonNullable`, `nonNullish`, `nonOptional`\n\n### Action Types\n\n**Validation** (return issues): `email`, `url`, `uuid`, `regex`, `minLength`, `maxValue`, `check`\n\n**Transformation** (modify data): `trim`, `toLowerCase`, `toUpperCase`, `mapItems`, `transform`\n\n**Metadata**: `brand`, `flavor`, `metadata`, `description`, `title`\n\n### File Naming Convention\n\nEach schema/action/method has its own directory:\n\n```\nschemas/string/\n├── string.ts        # Implementation\n├── string.test.ts   # Runtime tests\n├── string.test-d.ts # Type tests\n└── index.ts         # Re-export\n```\n\n### Core Patterns\n\n**Schemas** define data types:\n\n```typescript\nexport interface StringSchema<TMessage> extends BaseSchema<...> {\n  readonly kind: 'schema';\n  readonly type: 'string';\n  // ...\n}\n```\n\n**Actions** validate/transform in pipelines:\n\n```typescript\nexport interface EmailAction<TInput, TMessage> extends BaseValidation<...> {\n  readonly kind: 'validation';\n  readonly type: 'email';\n  // ...\n}\n```\n\n**Methods** provide API functions:\n\n```typescript\nexport function parse<TSchema>(\n  schema: TSchema,\n  input: unknown\n): InferOutput<TSchema>;\n```\n\n### Key Types\n\n- `BaseSchema`, `BaseValidation`, `BaseTransformation` - Base interfaces\n- `InferOutput<T>`, `InferInput<T>`, `InferIssue<T>` - Type inference\n- `Config`, `ErrorMessage<T>`, `BaseIssue<T>` - Configuration and errors\n- `'~standard'` property - [Standard Schema](https://github.com/standard-schema/standard-schema) compatibility\n\n## Website (`/website/src/routes/`)\n\n### API Documentation\n\n```\nroutes/api/\n├── (schemas)/string/     # Schema docs\n│   ├── index.mdx         # MDX content\n│   └── properties.ts     # Type definitions\n├── (actions)/email/      # Action docs\n├── (methods)/parse/      # Method docs\n├── (types)/StringSchema/ # Type docs\n└── menu.md               # Navigation\n```\n\n### Guides\n\n```\nroutes/guides/\n├── (get-started)/       # Intro, installation\n├── (main-concepts)/     # Schemas, pipelines, parsing\n├── (schemas)/           # Objects, arrays, unions\n├── (advanced)/          # Async, i18n, JSON Schema\n├── (migration)/         # Version upgrades\n└── menu.md              # Navigation\n```\n\n## Development\n\n### Playground\n\nUse `library/playground.ts` for quick experimentation.\n\n### Adding a Schema/Action\n\n1. Create directory: `library/src/schemas/yourSchema/`\n2. Create files: `yourSchema.ts`, `yourSchema.test.ts`, `yourSchema.test-d.ts`, `index.ts`\n3. Follow existing patterns (copy similar implementation)\n4. Export from category `index.ts`\n5. Run `pnpm -C library test`\n\n### Modifying Core Types\n\n⚠️ Changes to `library/src/types/` affect the entire library. Always run full test suite.\n\n## Quick Lookups\n\n| Looking for...        | Location                                       |\n| --------------------- | ---------------------------------------------- |\n| Schema implementation | `library/src/schemas/[name]/[name].ts`         |\n| Action implementation | `library/src/actions/[name]/[name].ts`         |\n| Method implementation | `library/src/methods/[name]/[name].ts`         |\n| Type definitions      | `library/src/types/`                           |\n| Internal utilities    | `library/src/utils/`                           |\n| Error messages (i18n) | `packages/i18n/[lang]/`                        |\n| API docs page         | `website/src/routes/api/(category)/[name]/`    |\n| Guide page            | `website/src/routes/guides/(category)/[name]/` |\n| Tests                 | Same directory as source, `.test.ts` suffix    |\n| Type tests            | Same directory as source, `.test-d.ts` suffix  |\n\n## Commands\n\n```bash\n# Library\npnpm -C library build      # Build\npnpm -C library test       # Run tests\npnpm -C library lint       # Lint\npnpm -C library format     # Format\n\n# Website\npnpm -C website dev        # Dev server\npnpm -C website build      # Production build\n\n# Root\npnpm install               # Install all\npnpm format                # Format all\n```\n\n## Key Principles\n\n1. **Modularity** - Small, focused functions; one per file\n2. **Zero dependencies** - Core library has no runtime deps\n3. **100% test coverage** - Required for library\n4. **Tree-shakable** - Use `// @__NO_SIDE_EFFECTS__` annotation\n5. **Type-safe** - Full TypeScript with strict mode\n6. **ESM only** - Imports include `.ts` extensions\n\n## Do's and Don'ts\n\n**Do:**\n\n- Follow existing code patterns\n- Write runtime and type tests\n- Add JSDoc documentation\n- Keep functions small and focused\n- Check bundle size impact\n\n**Don't:**\n\n- Add external dependencies\n- Modify core types without full test run\n- Skip tests\n- Create large multi-purpose functions\n- Modify generated files (`dist/`, `coverage/`)\n"
  },
  {
    "path": ".agents/skills/repo-website-api-create/SKILL.md",
    "content": "---\nname: repo-website-api-create\ndescription: Create new API reference pages for the Valibot website at website/src/routes/api/. Use when adding documentation for new schemas, actions, methods, or types. Covers reading source code, creating properties.ts and index.mdx files, updating menu.md, and cross-referencing related APIs.\n---\n\n# Adding API Documentation to Website\n\nGuide for creating new API reference pages at `website/src/routes/api/`.\n\n## Process Overview\n\n1. Read source code in `/library/src/`\n2. Create folder in `/website/src/routes/api/(category)/[name]/`\n3. Create `properties.ts` with type definitions\n4. Create `index.mdx` with documentation\n5. Update `menu.md`\n6. Create type documentation if needed (Issue, Schema/Action interfaces)\n\n## File Structure\n\n```\nwebsite/src/routes/api/\n├── (schemas)/string/\n│   ├── index.mdx        # Documentation content\n│   └── properties.ts    # Type definitions for Property component\n├── (actions)/email/\n├── (methods)/parse/\n├── (types)/StringSchema/\n└── menu.md              # Navigation (alphabetical order)\n```\n\nCategories: `(schemas)`, `(actions)`, `(methods)`, `(types)`, `(utils)`, `(async)`, `(storages)`\n\n## Reading Source Code\n\n### What to Extract\n\nFrom `/library/src/schemas/string/string.ts`:\n\n```typescript\n// 1. Issue interface → Document in (types)/StringIssue/\nexport interface StringIssue extends BaseIssue<unknown> { ... }\n\n// 2. Schema interface → Document in (types)/StringSchema/\nexport interface StringSchema<TMessage extends ErrorMessage<StringIssue> | undefined>\n  extends BaseSchema<string, string, StringIssue> { ... }\n\n// 3. Function overloads → Main documentation\nexport function string(): StringSchema<undefined>;\nexport function string<const TMessage>(message: TMessage): StringSchema<TMessage>;\n\n// 4. JSDoc → Description, hints, parameter docs\n/**\n * Creates a string schema.\n *\n * Hint: This is an example hint.\n *\n * @param message The error message.\n *\n * @returns A string schema.\n */\n```\n\n**JSDoc hints** become blockquotes in the Explanation section:\n\n```mdx\n> This is an example hint.\n```\n\n### Extract for properties.ts\n\n- Generic parameters and constraints (e.g., `TMessage extends ErrorMessage<...> | undefined`)\n- Function parameters and types\n- Return type\n\n## properties.ts\n\nImport and define properties matching source code:\n\n```typescript\nimport type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  // Generics (use modifier: 'extends')\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            { type: 'custom', name: 'StringIssue', href: '../StringIssue/' },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n\n  // Parameters (reference generic or direct type)\n  message: {\n    type: { type: 'custom', name: 'TMessage' },\n  },\n\n  // Return type\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'StringSchema',\n      href: '../StringSchema/',\n      generics: [{ type: 'custom', name: 'TMessage' }],\n    },\n  },\n};\n```\n\n### Optional Object Keys\n\nFor optional object keys from TypeScript source such as `key?: string`, do not append `?` to the property name in `properties.ts`.\n\nUse the plain key name and represent optionality in the value type with `undefined` as the last union option:\n\n```typescript\npayload: {\n  type: {\n    type: 'object',\n    entries: [\n      {\n        key: 'key',\n        value: {\n          type: 'union',\n          options: ['string', 'undefined'],\n        },\n      },\n    ],\n  },\n},\n```\n\n### DefinitionData Types\n\n| Type            | Syntax                                                                         |\n| --------------- | ------------------------------------------------------------------------------ |\n| Primitive       | `'string'`, `'number'`, `'boolean'`, `'unknown'`, etc.                         |\n| Literal string  | `{ type: 'string', value: 'email' }`                                           |\n| Literal number  | `{ type: 'number', value: 5 }`                                                 |\n| Custom/Named    | `{ type: 'custom', name: 'TypeName', href: '../TypeName/', generics: [...] }`  |\n| Custom+modifier | `{ type: 'custom', modifier: 'typeof', name: 'string', href: '../string/' }`   |\n| Union           | `{ type: 'union', options: [type1, type2] }`                                   |\n| Intersect       | `{ type: 'intersect', options: [type1, type2] }`                               |\n| Array           | `{ type: 'array', item: elementType }`                                         |\n| Tuple           | `{ type: 'tuple', items: [type1, type2] }`                                     |\n| Object          | `{ type: 'object', entries: [{ key: 'name', value: type }] }`                   |\n| Function        | `{ type: 'function', params: [{ name: 'x', type: t }], return: retType }`      |\n| Template        | `{ type: 'template', parts: [{ type: 'string', value: '>=' }, otherType] }`    |\n\n## index.mdx Template\n\n```mdx\n---\ntitle: functionName\ndescription: One-line description from JSDoc.\nsource: /schemas/string/string.ts\ncontributors:\n  - github-username\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# functionName\n\nCreates a string schema.\n\n\\`\\`\\`ts\nconst Schema = v.functionName<TMessage>(message);\n\\`\\`\\`\n\n## Generics\n\n- \\`TMessage\\` <Property {...properties.TMessage} />\n\n## Parameters\n\n- \\`message\\` <Property {...properties.message} />\n\n### Explanation\n\nWith \\`functionName\\` you can validate... If the input does not match, you can use \\`message\\` to customize the error message.\n\n## Returns\n\n- \\`Schema\\` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how \\`functionName\\` can be used.\n\n### Email schema\n\nSchema to validate an email.\n\n\\`\\`\\`ts\nconst EmailSchema = v.pipe(\nv.string(),\nv.nonEmpty('Please enter your email.'),\nv.email('The email is badly formatted.')\n);\n\\`\\`\\`\n\n## Related\n\nThe following APIs can be combined with \\`functionName\\`.\n\n### Schemas\n\n<ApiList items={['array', 'object', 'string']} />\n\n### Methods\n\n<ApiList items={['parse', 'pipe', 'safeParse']} />\n\n### Actions\n\n<ApiList items={['email', 'minLength']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n```\n\n**Related section order:** Schemas → Methods → Actions → Utils (omit empty sections)\n\n## Key Conventions\n\n### Naming\n\n- Schema variables: `PascalCase` + `Schema` suffix: `EmailSchema`, `UserSchema`\n- Action variables: `PascalCase` + `Action`: `MinLengthAction`\n- Parse output: `output` or descriptive name\n\n### Examples\n\n- Always include error messages for validation actions\n- Progress from simple to complex\n- Use realistic, practical scenarios\n- Start with `import * as v from 'valibot';` pattern\n\n### Error Messages\n\nUse friendly, actionable messages:\n\n- ✅ \"Your password is too short.\"\n- ✅ \"Please enter your email.\"\n- ❌ \"Invalid\" or \"Error\"\n\n### Links\n\n- Use `href: '../TypeName/'` for type references (with trailing slash)\n- Use `<Link href=\"/api/parse/\">\\`parse\\`</Link>`in MDX prose (import from`~/components`)\n- Link to related guides when relevant: `<Link href=\"/guides/objects/\">object guide</Link>`\n\n## Update Related Files\n\n### menu.md\n\nAdd alphabetically to `/website/src/routes/api/menu.md`:\n\n```markdown\n## Schemas\n\n- [any](/api/any/)\n- [newSchema](/api/newSchema/) ← Add here\n- [string](/api/string/)\n```\n\n### Related Sections of Other API Docs\n\nExisting API pages have a `## Related` section with `<ApiList>` components. When adding a new API, update related APIs to include the new one.\n\n**Rule:** An API is \"related\" if:\n\n- It makes sense to use it as an argument of the other API, or vice versa\n- It makes sense to use them together in the same `pipe` (e.g., `v.pipe(v.string(), v.email())` → `string` and `email` are related)\n\nExamples:\n\n- `string` schema lists `email` action because they work together in a pipe\n- `email` action lists `string` schema because it validates string input\n- `pipe` method lists all schemas because any schema can be piped\n- `minLength` action lists `string`, `array`, `tuple` because it validates their length\n\n**Process:**\n\n1. Review a few existing API docs in the same category to understand the pattern\n2. Check `menu.md` to identify potentially related APIs\n3. For each related API, edit its `index.mdx` and add the new API to the appropriate `<ApiList>`\n\n**Shortcut:** If your new API is very similar to an existing one (e.g., `guard` is similar to `check`), add it everywhere the similar API appears. This ensures consistent coverage across all related docs.\n\n### Concept Guides\n\nAdd the new API to the appropriate guide in `/website/src/routes/guides/`:\n\n| API Category | Guide to Update                       |\n| ------------ | ------------------------------------- |\n| Schema       | `(main-concepts)/schemas/index.mdx`   |\n| Action       | `(main-concepts)/pipelines/index.mdx` |\n| Method       | `(main-concepts)/methods/index.mdx`   |\n\nAlso update topic-specific guides if relevant (e.g., `(schemas)/objects/`, `(schemas)/arrays/`, `(advanced)/async/`).\n\n### Type Documentation\n\nCreate pages for new types in `(types)/`:\n\n- Issue interfaces (e.g., `StringIssue`)\n- Schema/Action interfaces (e.g., `StringSchema`)\n\nType pages differ from function docs:\n\n- **No `source` field** in frontmatter\n- **No Examples or Related sections**\n- Use `## Definition` instead of `## Returns`\n\nType page structure:\n\n```mdx\n---\ntitle: StringSchema\ndescription: String schema interface.\ncontributors:\n  - github-username\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# StringSchema\n\nString schema interface.\n\n## Generics\n\n- \\`TMessage\\` <Property {...properties.TMessage} />\n\n## Definition\n\n- \\`StringSchema\\` <Property {...properties.BaseSchema} />\n  - \\`type\\` <Property {...properties.type} />\n  - \\`reference\\` <Property {...properties.reference} />\n  - \\`expects\\` <Property {...properties.expects} />\n  - \\`message\\` <Property {...properties.message} />\n```\n\n## Checklist\n\n- [ ] Read source file completely\n- [ ] `properties.ts` matches source types exactly\n- [ ] `index.mdx` signature matches source\n- [ ] All generics documented\n- [ ] All parameters documented\n- [ ] Examples are realistic with error messages\n- [ ] `menu.md` updated (alphabetically)\n- [ ] Related type pages created if needed\n- [ ] Related API docs updated (add new API to their `## Related` sections)\n- [ ] Concept guide updated (schemas/pipelines/methods)\n- [ ] All `href` links valid with trailing slashes\n"
  },
  {
    "path": ".agents/skills/repo-website-api-update/SKILL.md",
    "content": "---\nname: repo-website-api-update\ndescription: Update existing API documentation pages after source code changes. Use when syncing docs with library changes like new parameters, type constraint changes, interface updates, or function renames. Covers common change patterns and verification steps.\n---\n\n# Updating API Documentation\n\nGuide for syncing API docs with source code changes.\n\n**Prerequisite:** Read the `repo-website-api-create` skill for `properties.ts` and `index.mdx` patterns.\n\n## When to Update\n\nUpdate documentation when source code changes:\n\n- Function signatures (parameters, generics, return types)\n- Interface properties\n- JSDoc descriptions or hints\n- Behavior changes affecting examples\n\n**Do NOT update for:** Internal implementation changes (`~run` method), test changes, non-JSDoc comments.\n\n## Process\n\n1. **Read full source file** - Don't just look at diff; understand complete current state\n2. **Identify changes** - Categorize as addition, removal, or modification\n3. **Update `properties.ts`** - Match types exactly to source; for optional object keys, keep the plain key name and use a union with `undefined` as the last option instead of appending `?`\n4. **Update `index.mdx`** - Signature, generics, parameters, examples\n5. **Update related files** - Type docs, `menu.md` if renamed\n\n## Common Change Types\n\n### New Parameter Added\n\n```typescript\n// Before: one overload\nexport function action<TInput>(requirement: TRequirement): Action<...>;\n\n// After: two overloads (message is optional)\nexport function action<TInput>(requirement: TRequirement): Action<..., undefined>;\nexport function action<TInput, TMessage>(requirement: TRequirement, message: TMessage): Action<..., TMessage>;\n```\n\nUpdate:\n\n1. Add `TMessage` generic to `properties.ts`\n2. Add `message` parameter to `properties.ts`\n3. Update signature in `index.mdx`\n4. Add generic and parameter documentation\n5. Update examples to show new parameter\n\n### Parameter Removed (Breaking)\n\n1. Remove from `properties.ts`\n2. Update signature in `index.mdx`\n3. Remove from Parameters section\n4. Update all examples\n5. Consider adding migration note in Explanation\n\n### Type Constraint Changed\n\n```typescript\n// Before\nTRequirement extends number\n\n// After\nTRequirement extends number | string\n```\n\nUpdate:\n\n1. Update type in `properties.ts`\n2. Update Explanation to mention both types\n3. Add examples for new type usage\n\n### Interface Property Added\n\n1. Update type documentation in `(types)/TypeName/`\n2. Add new property to `properties.ts`; if the source key is optional, do not append `?` to the key name and model it as a union with `undefined` last\n3. Document in Definition section\n\n### Function Renamed\n\n1. Rename folder\n2. Update all references in files\n3. Update `menu.md` (maintain alphabetical order)\n4. Update cross-references in related API docs\n5. Consider redirect if widely used\n\n### Deprecation\n\nAdd notice at top of `index.mdx` (import `Link` from `~/components`):\n\n```mdx\n> **⚠️ Deprecated**: Use <Link href=\"../newFunction/\">\\`newFunction\\`</Link> instead. Will be removed in v2.0.\n```\n\n### New Helper Type Introduced\n\nWhen source introduces a type alias:\n\n```typescript\n// Before: TInput extends string | unknown[]\n// After: TInput extends LengthInput\n```\n\n1. Update `properties.ts` to reference new type with `href`\n2. Create documentation for the new type in `(types)/`\n3. Update explanation if supported types changed\n\n### Multiple Overloads Added (Sync/Async)\n\nWhen sync and async variants are added:\n\n1. Update signature to show general pattern or both overloads\n2. Add explanation about sync vs async usage\n3. Add examples for both use cases\n4. Update Related section for async schemas if relevant\n\n## Related Files to Update\n\nWhen a function changes, check:\n\n- **Type docs** - If interfaces changed (`(types)/TypeName/`)\n- **Related API docs** - Other APIs that reference this function in their Related section\n- **Guide files** - If usage patterns changed significantly\n- **menu.md** - If function renamed or moved\n\n## Verification\n\nAfter updating, verify:\n\n- [ ] All types match source exactly\n- [ ] Function signature matches source\n- [ ] All examples work with new API\n- [ ] All `href` links are valid\n- [ ] Related type docs updated if interfaces changed\n- [ ] `menu.md` updated if renamed\n- [ ] Related API docs updated (their Related sections)\n\n## Best Practices\n\n- **Read full source file** - Don't just look at diff\n- **Update incrementally** - `properties.ts` → `index.mdx` → related files\n- **Don't over-document internals** - Only user-facing changes need docs\n- **Preserve example quality** - Keep realistic, demonstrate best practices\n- **Check related APIs** - They may reference the changed function\n\n## When to Ask for Help\n\n- Major breaking changes (complete signature overhaul)\n- Complex generic constraint changes\n- Unclear intent from source changes\n- Many related files affected\n- Need to document migration path\n\n## Quick Reference\n\n| Change            | Files to Update                                                      |\n| ----------------- | -------------------------------------------------------------------- |\n| New parameter     | `properties.ts`, `index.mdx` (signature, generics, params, examples) |\n| Removed parameter | `properties.ts`, `index.mdx`                                         |\n| Type change       | `properties.ts`, `index.mdx` (explanation, examples)                 |\n| Interface change  | `(types)/TypeName/properties.ts`, `(types)/TypeName/index.mdx`       |\n| Renamed function  | Folder name, all files, `menu.md`, cross-references                  |\n| Deprecation       | `index.mdx` (add warning)                                            |\n"
  },
  {
    "path": ".agents/skills/repo-website-guide-create/SKILL.md",
    "content": "---\nname: repo-website-guide-create\ndescription: Create conceptual documentation and tutorial pages for the Valibot website at website/src/routes/guides/. Use when adding guides about schemas, pipelines, async validation, migration, or other topics. Covers directory structure, MDX templates, frontmatter, and content guidelines.\n---\n\n# Adding Guides to Website\n\nGuide for creating conceptual documentation at `website/src/routes/guides/`.\n\n## Directory Structure\n\n```\nwebsite/src/routes/guides/\n├── menu.md                    # Navigation menu\n├── (get-started)/             # Intro, installation, quick start\n├── (main-concepts)/           # Schemas, pipelines, parsing\n├── (schemas)/                 # Objects, arrays, unions\n├── (advanced)/                # Async, i18n, JSON Schema\n├── (migration)/               # Version upgrades, Zod migration\n└── (category)/guide-slug/\n    └── index.mdx              # Guide content\n```\n\nNote: Category folders use parentheses (Qwik route grouping).\n\n## Process\n\n1. Review 2-3 existing guides in the target category to understand style\n2. Choose category from existing or create new\n3. Create folder: `(category)/guide-slug/`\n4. Create `index.mdx` with content\n5. Update `menu.md`\n\n## index.mdx Template\n\n```mdx\n---\ntitle: Guide Title\ndescription: >-\n  A concise description of what this guide covers.\ncontributors:\n  - github-username\n---\n\nimport { ApiList, Link } from '~/components';\n\n# Guide Title\n\nOpening paragraph explaining what the reader will learn.\n\n## Section Heading\n\nContent with clear, concise language.\n\n\\`\\`\\`ts\nimport \\* as v from 'valibot';\n\nconst Schema = v.object({\nname: v.string(),\nemail: v.pipe(v.string(), v.email()),\n});\n\\`\\`\\`\n\n## Another Section\n\nContinue with additional sections as needed.\n\nUse <Link href=\"/api/pipe/\">\\`pipe\\`</Link> for internal links.\n```\n\n## Frontmatter\n\nRequired fields:\n\n- **title**: Page title and navigation label\n- **description**: SEO description (use `>-` for multi-line)\n- **contributors**: Array of GitHub usernames\n\n## Content Guidelines\n\n### Code Examples\n\n- Use TypeScript (`ts` language)\n- Import as `import * as v from 'valibot';`\n- Include comments for complex code\n\n### Links\n\nInternal links use the `Link` component:\n\n```mdx\n<Link href=\"/guides/schemas/\">schemas guide</Link>\n<Link href=\"/api/pipe/\">\\`pipe\\`</Link>\n```\n\n### Components\n\n```mdx\n<ApiList label=\"Related schemas\" items={['object', 'array', 'string']} />\n```\n\n### Formatting\n\n- `inline code` for API names, variables, file names\n- **bold** for genuine emphasis only — not as inline section labels\n- Proper heading hierarchy (h1 title, h2 sections, h3 subsections)\n\n### Writing tone\n\n- Write conversational prose, not terse reference-doc style\n- Use first-person plural: \"we recommend\" not \"you should\"\n- Do not use bold as inline section labels (e.g. avoid `**Label:** content`). Use a proper subheading instead\n- Do not prefix blockquotes with bold labels (e.g. avoid `> **Note:** ...`). A plain `>` is correct\n- Bullet list items do not need a bold prefix on each item\n\n### Images\n\nPlace images in the same folder as `index.mdx`:\n\n```mdx\n![Alt text](./diagram-light.jpg)\n```\n\nConsider light/dark theme variants if applicable (e.g., `diagram-light.jpg`, `diagram-dark.jpg`).\n\n## Update menu.md\n\nAdd to `/website/src/routes/guides/menu.md`:\n\n```markdown\n## Category Name\n\n- [Existing Guide](/guides/existing/)\n- [New Guide Title](/guides/guide-slug/)\n```\n\nMaintain logical ordering within categories.\n\n## Checklist\n\n- [ ] Reviewed existing guides in the same category\n- [ ] Folder structure: `(category)/guide-slug/index.mdx`\n- [ ] Frontmatter: title, description, contributors\n- [ ] Internal links use `Link` component\n- [ ] Code examples use `import * as v from 'valibot';`\n- [ ] Added to `menu.md`\n- [ ] Style matches existing guides\n"
  },
  {
    "path": ".github/FUNDING.yml",
    "content": "github: [fabian-hiller, EltonLobo07, Bilboramix]\nopen_collective: valibot\n"
  },
  {
    "path": ".github/actions/environment/action.yml",
    "content": "name: Setup environment\ndescription: Setup environment with Node.js, Deno and pnpm\n\nruns:\n  using: composite\n  steps:\n    - name: Setup pnpm\n      uses: pnpm/action-setup@v4\n      with:\n        version: 9\n        run_install: false\n\n    - name: Setup Node.js\n      uses: actions/setup-node@v6\n      with:\n        node-version: 24\n        registry-url: 'https://registry.npmjs.org'\n        cache: pnpm\n\n    - name: Setup npm\n      shell: bash\n      run: npm install --global npm@11.11.1\n\n    - name: Setup Deno\n      uses: denoland/setup-deno@v2\n      with:\n        deno-version: v2.5.6\n\n    - name: Install dependencies\n      shell: bash\n      run: pnpm install\n\n    - name: Build library\n      shell: bash\n      run: pnpm build\n      working-directory: library\n\n    - name: Build to-json-schema\n      shell: bash\n      run: pnpm build\n      working-directory: packages/to-json-schema\n\n    - name: Build zod-to-valibot\n      shell: bash\n      run: pnpm build\n      working-directory: codemod/zod-to-valibot\n"
  },
  {
    "path": ".github/workflows/ci.yml",
    "content": "name: CI\n\non:\n  push:\n    branches: [main]\n  pull_request:\n  workflow_call:\n\njobs:\n  install:\n    name: Install packages\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v6\n      - name: Setup environment\n        uses: ./.github/actions/environment\n\n  library_preview:\n    name: Publish library via pkg.pr.new\n    needs: install\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v6\n      - name: Setup environment\n        uses: ./.github/actions/environment\n      - name: Publish library\n        run: pnpx pkg-pr-new publish --compact --comment=update --pnpm\n        working-directory: library\n\n  library_prettier:\n    name: Run Prettier in library\n    needs: install\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v6\n      - name: Setup environment\n        uses: ./.github/actions/environment\n      - name: Prettier check\n        run: pnpm format.check\n        working-directory: library\n\n  library_eslint:\n    name: Run ESLint in library\n    needs: install\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v6\n      - name: Setup environment\n        uses: ./.github/actions/environment\n      - name: ESLint check\n        run: pnpm lint\n        working-directory: library\n\n  library_vitest:\n    name: Run Vitest in library\n    needs: install\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v6\n      - name: Setup environment\n        uses: ./.github/actions/environment\n      - name: Vitest tests\n        run: pnpm test\n        working-directory: library\n\n  to_json_schema_prettier:\n    name: Run Prettier in packages/to-json-schema\n    needs: install\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v6\n      - name: Setup environment\n        uses: ./.github/actions/environment\n      - name: Prettier check\n        run: pnpm format.check\n        working-directory: packages/to-json-schema\n\n  to_json_schema_eslint:\n    name: Run ESLint in packages/to-json-schema\n    needs: install\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v6\n      - name: Setup environment\n        uses: ./.github/actions/environment\n      - name: ESLint check\n        run: pnpm lint\n        working-directory: packages/to-json-schema\n\n  to_json_schema_vitest:\n    name: Run Vitest in packages/to-json-schema\n    needs: install\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v6\n      - name: Setup environment\n        uses: ./.github/actions/environment\n      - name: Vitest tests\n        run: pnpm test\n        working-directory: packages/to-json-schema\n\n  website_prettier:\n    name: Run Prettier in website\n    needs: install\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v6\n      - name: Setup environment\n        uses: ./.github/actions/environment\n      - name: Prettier check\n        run: pnpm format.check\n        working-directory: website\n\n  website_eslint:\n    name: Run ESLint in website\n    needs: install\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v6\n      - name: Setup environment\n        uses: ./.github/actions/environment\n      - name: ESLint check\n        run: pnpm lint\n        working-directory: website\n\n  zod_to_valibot_vitest:\n    name: Run Vitest in codemod/zod-to-valibot\n    needs: install\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v6\n      - name: Setup environment\n        uses: ./.github/actions/environment\n      - name: Vitest tests\n        run: pnpm test\n        working-directory: codemod/zod-to-valibot\n"
  },
  {
    "path": ".github/workflows/publish.yml",
    "content": "name: Publish\n\non:\n  release:\n    types: [published]\n  workflow_dispatch:\n\njobs:\n  default_ci:\n    name: Run default CI of repository\n    uses: ./.github/workflows/ci.yml\n\n  library_npm:\n    name: Publish library to NPM\n    needs: default_ci\n    runs-on: ubuntu-latest\n    permissions:\n      contents: read\n      id-token: write\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v6\n      - name: Setup environment\n        uses: ./.github/actions/environment\n      - name: Build library\n        run: pnpm build\n        working-directory: library\n      - name: Publish library\n        run: npm publish --access public\n        working-directory: library\n        continue-on-error: true\n\n  library_jsr:\n    name: Publish library to JSR\n    needs: default_ci\n    runs-on: ubuntu-latest\n    permissions:\n      contents: read\n      id-token: write\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v6\n      - name: Publish library\n        run: npx jsr publish\n        working-directory: library\n\n  i18n_npm:\n    name: Publish i18n to NPM\n    needs: default_ci\n    runs-on: ubuntu-latest\n    permissions:\n      contents: read\n      id-token: write\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v6\n      - name: Setup environment\n        uses: ./.github/actions/environment\n      - name: Build i18n\n        run: pnpm build.npm\n        working-directory: packages/i18n\n      - name: Publish i18n\n        run: npm publish --access public\n        working-directory: packages/i18n\n        continue-on-error: true\n\n  i18n_jsr:\n    name: Publish i18n to JSR\n    needs: default_ci\n    runs-on: ubuntu-latest\n    permissions:\n      contents: read\n      id-token: write\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v6\n      - name: Setup environment\n        uses: ./.github/actions/environment\n      - name: Build i18n\n        run: pnpm build.jsr\n        working-directory: packages/i18n\n      - name: Publish i18n\n        run: npx jsr publish --allow-dirty\n        working-directory: packages/i18n\n\n  to_json_schema_npm:\n    name: Publish to-json-schema to NPM\n    needs: default_ci\n    runs-on: ubuntu-latest\n    permissions:\n      contents: read\n      id-token: write\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v6\n      - name: Setup environment\n        uses: ./.github/actions/environment\n      - name: Build to-json-schema\n        run: pnpm build\n        working-directory: packages/to-json-schema\n      - name: Publish to-json-schema\n        run: npm publish --access public\n        working-directory: packages/to-json-schema\n        continue-on-error: true\n\n  to_json_schema_jsr:\n    name: Publish to-json-schema to JSR\n    needs: default_ci\n    runs-on: ubuntu-latest\n    permissions:\n      contents: read\n      id-token: write\n    steps:\n      - name: Checkout repository\n        uses: actions/checkout@v6\n      - name: Setup environment\n        uses: ./.github/actions/environment\n      - name: Publish to-json-schema\n        run: npx jsr publish\n        working-directory: packages/to-json-schema\n"
  },
  {
    "path": ".gitignore",
    "content": "# Dependencies\nnode_modules\n\n# Production\ndist\nbuild\nserver\n\n# Tests\ncoverage\n\n# Backups\nbackups\n\n# Services\n.vscode\n.netlify\n.vercel\n\n# Others\nlogs\n*.log\n.cache\ntemp\ntmp\n\n# Local env files\n.env*.local\n\n# IDEs and editors\n.idea\n.project\n.classpath\n*.launch\n.settings\n\n# System files\n.DS_Store\nThumbs.db\n*.pem\n"
  },
  {
    "path": ".grit/.gitignore",
    "content": ".gritmodules*\n*.log\n"
  },
  {
    "path": ".grit/grit.yaml",
    "content": "version: 0.1.0\npatterns:\n  - name: github.com/getgrit/stdlib#*\n"
  },
  {
    "path": ".grit/patterns/migrate_to_v0_31_0.md",
    "content": "# Migrate to v0.31.0\n\nYou can use [Grit](https://docs.grit.io/cli/quickstart) to automatically update your code to the new API. See the [migration guide](https://valibot.dev/guides/migrate-to-v0.31.0/) for more details on the changes.\n\n```grit\nlanguage js\n\npattern rewritten_names() {\n  or {\n    // This could end up as a three-way rename, so we only apply it in first phase\n    `custom` => `check`,\n    `customAsync` => `checkAsync`,\n    `special` => `custom`,\n    `specialAsync` => `customAsync`,\n    // These are safe to apply in the second phase\n    `anyAsync` => `any`,\n    `BaseSchema` => `GenericSchema`,\n    `bigintAsync` => `bigint`,\n    `blobAsync` => `blob`,\n    `booleanAsync` => `boolean`,\n    `dateAsync` => `date`,\n    `enumAsync` => `enum_`,\n    `Input` => `InferInput`,\n    `instanceAsync` => `instance`,\n    `literalAsync` => `literal`,\n    `nanAsync` => `nan`,\n    `neverAsync` => `never`,\n    `nullAsync` => `null_`,\n    `numberAsync` => `number`,\n    `Output` => `InferOutput`,\n    `picklistAsync` => `picklist`,\n    `SchemaConfig` => `Config`,\n    `stringAsync` => `string`,\n    `symbolAsync` => `symbol`,\n    `undefinedAsync` => `undefined_`,\n    `unknownAsync` => `unknown`,\n    `toCustom` => `transform`,\n    `toTrimmed` => `trim`,\n    `toTrimmedEnd` => `trimEnd`,\n    `toTrimmedStart` => `trimStart`,\n    `voidAsync` => `void_`,\n  }\n}\n\npattern rewrite_names($v) {\n  or {\n    rewritten_names() as $name where {\n      $name <: imported_from(`\"valibot\"`)\n    },\n    `$v.$name` where {\n      $name <: rewritten_names(),\n    },\n  }\n}\n\npattern schema_names() {\n  or {\n    `any`, `array`, `bigint`, `blob`, `boolean`, `custom`, `date`, `enum_`, `instance`, `intersect`, `lazy`, `literal`, `looseObject`, `looseTuple`, `map`, `nan`, `never`, `nonNullable`, `nonNullish`, `nonOptional`, `null_`, `nullable`, `nullish`, `number`, `object`, `objectWithRest`, `optional`, `picklist`, `record`, `set`, `strictObject`, `strictTuple`, `string`, `symbol`, `tuple`, `tupleWithRest`, `undefined_`, `union`, `unknown`, `variant`, `void_`\n  }\n}\n\n// These schemas have a mandatory array argument that is not a pipeline\npattern schema_names_with_array_arg() {\n  or {\n    `union`, `intersect`, `tuple`, `looseTuple`, `strictTuple`, `picklist`, `variant`\n  }\n}\n\npattern extract_pipe_args($schema, $new_schema_args, $pipe_args) {\n  or {\n    [$maybe_pipe] where $other_args = [],\n    [$one_arg, $maybe_pipe] where $other_args = [$one_arg],\n    [$one_arg, $two_arg, $maybe_pipe] where $other_args = [$one_arg, $two_arg],\n    [$one_arg, $two_arg, $three_arg, $maybe_pipe] where $other_args = [$one_arg, $two_arg, $three_arg]\n  } where {\n    $maybe_pipe <: `[$pipe_args]` where {\n      or {\n        $schema <: not schema_names_with_array_arg(),\n        // Skip mandatory array arguments\n        and {\n          $schema <: schema_names_with_array_arg(),\n          $one_arg <: not undefined,\n          if ($schema <: `variant`) {\n            $two_arg <: not undefined\n          }\n        },\n      }\n    },\n    $new_schema_args = join($other_args, `, `)\n  }\n}\n\npattern rewrite_pipes($v, $pipe_args) {\n  or {\n    `$v.$schema($schema_args)` where {\n      $schema <: schema_names(),\n      $schema_args <: extract_pipe_args($schema, $new_schema_args, $pipe_args)\n    } => `$v.pipe($v.$schema($new_schema_args), $pipe_args)`,\n    `$schema($schema_args)` where {\n      $schema <: schema_names(),\n      $schema_args <: extract_pipe_args($schema, $new_schema_args, $pipe_args),\n      add_import(`pipe`, `'valibot'`)\n    } => `pipe($schema($new_schema_args), $pipe_args)`\n  }\n}\n\npattern rewrite_brand_and_transform($v, $schema, $pipe_args) {\n  `$v.$method($schema, $method_arg)` as $outer where {\n    $method <: or {`brand`, `transform`},\n    or {\n      and {\n        $schema <: rewrite_pipes($v, $pipe_args),\n        $pipe_args += `, $v.$method($method_arg)`,\n        $outer => $schema\n      },\n      and {\n        // Handle nested case\n        $schema <: bubble($outer, $v, $method, $method_arg) rewrite_brand_and_transform(v=$_, $schema, $pipe_args) where {\n          $pipe_args += `, $v.$method($method_arg)`,\n          $outer => `$v.pipe($schema, $pipe_args)`\n        }\n      },\n      and {\n        $pipe_args = `$v.$method($method_arg)`,\n        $outer => `$v.pipe($schema, $pipe_args)`\n      }\n    }\n  }\n}\n\npattern rewrite_coerce($v) {\n  `$v.coerce($schema, $fn)` => `$v.pipe($v.unknown(), $v.transform($fn))`\n}\n\npattern rewrite_flatten($v) {\n  `$flatten($error)`  => `$flatten($error.issues)` where {\n    $error <: identifier(),\n    $flatten <: or {\n      `flatten`,\n      `$v.flatten`\n    }\n  }\n}\n\npattern rewrite_nested_pipes($v, $args) {\n  `$v.pipe($args)` where {\n    $args <: maybe contains {\n      bubble rewrite_nested_pipes($v, args=$inner) => $inner\n    }\n      // Don't traverse inside schemas\n      until `$_($_)`\n  }\n}\n\npattern rewrite_object_and_tuple($v) {\n  or {\n    `$v.object($obj, $v.unknown(), '$message', $pipe)` => `$v.looseObject($obj, '$message', $pipe)`,\n    `$v.object($obj, $v.unknown(), $pipe)` => `$v.looseObject($obj, $pipe)`,\n    `$v.object($obj, $v.unknown())` => `$v.looseObject($obj)`,\n    `$v.tuple($tuple, $v.unknown(), '$message', $pipe)` => `$v.looseTuple($tuple, '$message', $pipe)`,\n    `$v.tuple($tuple, $v.unknown(), $pipe)` => `$v.looseTuple($tuple, $pipe)`,\n    `$v.tuple($tuple, $v.unknown())` => `$v.looseTuple($tuple)`,\n    `$v.object($obj, $v.never(), '$message', $pipe)` => `$v.strictObject($obj, '$message', $pipe)`,\n    `$v.object($obj, $v.never(), $pipe)` => `$v.strictObject($obj, $pipe)`,\n    `$v.object($obj, $v.never())` => `$v.strictObject($obj)`,\n    `$v.tuple($tuple, $v.never(), '$message', $pipe)` => `$v.strictTuple($tuple, '$message', $pipe)`,\n    `$v.tuple($tuple, $v.never(), $pipe)` => `$v.strictTuple($tuple, $pipe)`,\n    `$v.tuple($tuple, $v.never())` => `$v.strictTuple($tuple)`,\n    `$v.object($obj, $v.$rest(), '$message', $pipe)` => `$v.objectWithRest($obj, $v.$rest(), '$message', $pipe)`,\n    `$v.object($obj, $v.$rest(), $pipe)` => `$v.objectWithRest($obj, $v.$rest(), $pipe)`,\n    `$v.object($obj, $v.$rest())` => `$v.objectWithRest($obj, $v.$rest())`,\n    `$v.tuple($tuple, $v.$rest(), '$message', $pipe)` => `$v.tupleWithRest($tuple, $v.$rest(), '$message', $pipe)`,\n    `$v.tuple($tuple, $v.$rest(), $pipe)` => `$v.tupleWithRest($tuple, $v.$rest(), $pipe)`,\n    `$v.tuple($tuple, $v.$rest())` => `$v.tupleWithRest($tuple, $v.$rest())`,\n  }\n}\n\npattern rewrite_merge($v) {\n  or {\n    `$v.merge([$schemas], $rest, '$message', $pipe)`,\n    `$v.merge([$schemas], '$message', $pipe)`,\n    `$v.merge([$schemas], $rest, $pipe)`,\n    `$v.merge([$schemas], $pipe)`,\n    `$v.merge([$schemas])`,\n  } where {\n    $entries = [],\n    $schemas <: some bubble($entries) $schema where {\n      $entries += `...$schema.entries`,\n    },\n    $entries = join($entries, `, `),\n    $args = `{ $entries }`,\n    if ($rest <: not undefined) {\n      $args += `, $rest`\n    },\n    if ($message <: not undefined) {\n      $args += `, '$message'`\n    },\n    if ($pipe <: not undefined) {\n      $args += `, $pipe`,\n    },\n  } => `$v.object($args)`\n}\n\npattern is_valibot() {\n  `$v` where {\n    $v <: or {\n      // Direct imports\n      undefined,\n      // Default wildcard specification\n      `v`,\n      // Other wildcard imports\n      identifier() where $program <: contains `import * as $v from 'valibot'`\n    }\n  }\n}\n\npattern rewrite_functions() {\n  any {\n    rewrite_pipes($v),\n    rewrite_brand_and_transform($v),\n    rewrite_coerce($v),\n    rewrite_flatten($v),\n    rewrite_nested_pipes($v),\n    rewrite_object_and_tuple($v),\n    rewrite_merge($v),\n  } where {\n    $v <: is_valibot()\n  }\n}\n\nsequential {\n  bubble file($body) where $body <: contains or {\n    rewrite_functions(),\n    rewrite_names($v) where $v <: is_valibot()\n  },\n  bubble file($body) where $body <: maybe contains rewrite_functions(),\n  bubble file($body) where $body <: maybe contains rewrite_functions(),\n}\n```\n\n## Should transform simple pipe\n\nBefore:\n\n```javascript\nconst Schema1 = v.string([v.email('Email required')]);\nconst Schema2 = v.string([v.email(), v.endsWith('@example.com')]);\nconst Schema3 = v.string([v.email(), v.endsWith('@example.com'), v.maxLength(30)]);\n```\n\nAfter:\n\n```javascript\nconst Schema1 = v.pipe(v.string(), v.email('Email required'));\nconst Schema2 = v.pipe(v.string(), v.email(), v.endsWith('@example.com'));\nconst Schema3 = v.pipe(v.string(), v.email(), v.endsWith('@example.com'), v.maxLength(30));\n```\n\n## Should transform nested pipe\n\nBefore:\n\n```javascript\nconst Schema1 = v.map(v.number(), v.string([v.url(), v.endsWith('@example.com')]), [v.maxSize(10)]);\nconst Schema2 = v.object({ list: v.array(v.string([v.minLength(3)]), [v.minLength(3), v.includes('foo')]), length: v.number([v.integer()]) }, [v.custom((input) => input.list.length === input.length)]);\n```\n\nAfter:\n\n```javascript\nconst Schema1 = v.pipe(v.map(v.number(), v.pipe(v.string(), v.url(), v.endsWith('@example.com'))), v.maxSize(10));\nconst Schema2 = v.pipe(v.object({ list: v.pipe(v.array(v.pipe(v.string(), v.minLength(3))), v.minLength(3), v.includes('foo')), length: v.pipe(v.number(), v.integer()) }), v.check((input) => input.list.length === input.length));\n```\n\n## Should not transform non pipe\n\nBefore:\n\n```js\nconst Schema = v.object({\n  normal: v.string([v.email(() => 'Email required')]),\n  union: v.union([v.string([v.decimal()]), v.number()], [v.minValue(10)]),\n  intersection: v.intersect([v.object({ a: v.string() }), v.object({ b: v.number() })]),\n  variant: v.variant('type', [v.object({ type: v.literal('a') }), v.object({ type: v.literal('b') })]),\n  picklist: v.picklist(['a', 'b']),\n  tuple: v.tuple([v.string(), v.number()]),\n});\n```\n\nAfter:\n\n```js\nconst Schema = v.object({\n  normal: v.pipe(v.string(), v.email(() => 'Email required')),\n  union: v.pipe(v.union([v.pipe(v.string(), v.decimal()), v.number()]), v.minValue(10)),\n  intersection: v.intersect([v.object({ a: v.string() }), v.object({ b: v.number() })]),\n  variant: v.variant('type', [v.object({ type: v.literal('a') }), v.object({ type: v.literal('b') })]),\n  picklist: v.picklist(['a', 'b']),\n  tuple: v.tuple([v.string(), v.number()]),\n});\n```\n\n## Should transform coerce method\n\nBefore:\n\n```javascript\nconst Schema = v.coerce(v.date(), (input) => new Date(input));\n```\n\nAfter:\n\n```javascript\nconst Schema = v.pipe(v.unknown(), v.transform((input) => new Date(input)));\n```\n\n## Should transform flatten argument\n\nBefore:\n\n```js\nconst flatErrors1 = v.flatten(error);\n\n// This should be unchanged\nconst flatErrors2 = v.flatten([issue]);\nconst flatErrors3 = v.flatten(result.issues);\n```\n\nAfter:\n\n```js\nconst flatErrors1 = v.flatten(error.issues);\n\n// This should be unchanged\nconst flatErrors2 = v.flatten([issue]);\nconst flatErrors3 = v.flatten(result.issues);\n```\n\n## Should transform any Valibot wildcard\n\nBefore:\n\n```js\nimport * as foo from 'valibot';\nimport * as notFoo from 'zod';\n\nconst Schema1 = foo.string([foo.email()]);\nconst Schema2 = notFoo.string([notFoo.email()]);\n```\n\nAfter:\n\n```js\nimport * as foo from 'valibot';\nimport * as notFoo from 'zod';\n\nconst Schema1 = foo.pipe(foo.string(), foo.email());\nconst Schema2 = notFoo.string([notFoo.email()]);\n```\n\n## Should transform direct Valibot imports\n\nBefore:\n\n```js\nimport { email, string } from 'valibot';\n\nconst Schema = string([email()]);\n```\n\nAfter:\n\n```js\nimport { email, string, pipe } from 'valibot';\n\nconst Schema = pipe(string(), email());\n```\n\n## Should transform brand and transform method\n\nBefore:\n\n```js\nconst Schema1 = v.brand(v.string([v.url()]), 'foo');\nconst Schema2 = v.transform(v.string(), (input) => input.length);\nconst Schema3 = v.transform(v.brand(v.string(), 'Name'), (input) => input.length);\nconst Schema4 = v.brand(v.brand(v.string(), 'Name1'), 'Name2');\n```\n\nAfter:\n\n```js\nconst Schema1 = v.pipe(v.string(), v.url(), v.brand('foo'));\nconst Schema2 = v.pipe(v.string(), v.transform((input) => input.length));\nconst Schema3 = v.pipe(v.string(), v.brand('Name'), v.transform((input) => input.length));\nconst Schema4 = v.pipe(v.string(), v.brand('Name1'), v.brand('Name2'));\n```\n\n## Should transform unnecessary pipes\n\nBefore:\n\n```js\nconst Schema1 = v.pipe(v.pipe(v.pipe(v.string()), v.email()), v.maxLength(10));\nconst Schema2 = v.transform(v.coerce(v.date(), (input) => new Date(input)), (input) => input.toJSON());\nconst Schema3 = v.pipe(v.array(v.pipe(v.string(), v.decimal())), v.transform((input) => input.length));\n```\n\nAfter:\n\n```js\nconst Schema1 = v.pipe(v.string(), v.email(), v.maxLength(10));\nconst Schema2 = v.pipe(v.unknown(), v.transform((input) => new Date(input)), v.transform((input) => input.toJSON()));\nconst Schema3 = v.pipe(v.array(v.pipe(v.string(), v.decimal())), v.transform((input) => input.length));\n```\n\n## Should not rename unrelated methods\n\nBefore:\n\n```js\nimport { special } from 'valibot';\nimport * as vb from 'valibot';\nimport { Input } from '~/ui';\n\nconst foo = <Input />\nconst bar = special();\nconst baz = vb.toCustom();\n```\n\nAfter:\n\n```js\nimport { custom } from 'valibot';\nimport * as vb from 'valibot';\nimport { Input } from '~/ui';\n\nconst foo = <Input />\nconst bar = custom();\nconst baz = vb.transform();\n```\n\n## Should transform objects and tuples\n\nBefore:\n\n```js\nconst ObjectSchema = v.object({ key: v.string() }, v.null_());\nconst TupleSchema = v.tuple([v.string()], v.null_());\n\nconst LooseObjectSchema = v.object({ key: v.string() }, v.unknown());\nconst LooseTupleSchema = v.tuple([v.string()], v.unknown());\nconst StrictObjectSchema = v.object({ key: v.string() }, v.never());\nconst StrictTupleSchema = v.tuple([v.string()], v.never());\n```\n\nAfter:\n  \n```js\nconst ObjectSchema = v.objectWithRest({ key: v.string() }, v.null_());\nconst TupleSchema = v.tupleWithRest([v.string()], v.null_());\n\nconst LooseObjectSchema = v.looseObject({ key: v.string() });\nconst LooseTupleSchema = v.looseTuple([v.string()]);\nconst StrictObjectSchema = v.strictObject({ key: v.string() });\nconst StrictTupleSchema = v.strictTuple([v.string()]);\n```\n\n## Should transform object merging\n\nBefore:\n\n```js\nconst ObjectSchema1 = v.object({ foo: v.string() });\nconst ObjectSchema2 = v.object({ bar: v.number() });\n\nconst MergedObject = v.merge([ObjectSchema1, ObjectSchema2]);\n```\n\nAfter:\n  \n```js\nconst ObjectSchema1 = v.object({ foo: v.string() });\nconst ObjectSchema2 = v.object({ bar: v.number() });\n\nconst MergedObject = v.object({ ...ObjectSchema1.entries, ...ObjectSchema2.entries });\n```\n\n## Should transform object with additional arguments\n\nBefore:\n\n```js\nconst Schema = v.merge([ObjectSchema1, ObjectSchema1], v.string(), 'Error message', [v.custom(() => true)]);\n```\n\nAfter:\n\n```js\nconst Schema = v.pipe(v.objectWithRest({ ...ObjectSchema1.entries, ...ObjectSchema1.entries }, v.string(), 'Error message'), v.check(() => true));\n```"
  },
  {
    "path": ".prettierignore",
    "content": "**/*.log\n**/.DS_Store\n*.\n.vscode/settings.json\n.history\n.yarn\nbazel-*\nbazel-bin\nbazel-out\nbazel-qwik\nbazel-testlogs\ndist\ndist-dev\nlib\nlib-types\netc\nexternal\nnode_modules\ntemp\ntsc-out\ntsdoc-metadata.json\ntarget\noutput\nbuild\n.cache\n.vscode\n.rollup.cache\ntsconfig.tsbuildinfo\n*.spec.tsx\n*.spec.ts\n.netlify\npnpm-lock.yaml\npackage-lock.json\nyarn.lock\nserver\n.grit/patterns\ncodemod/zod-to-valibot/__testfixtures__\n"
  },
  {
    "path": "AGENTS.md",
    "content": "# AI Instructions\n\nValibot is a modular, type-safe schema validation library with zero runtime dependencies.\n\n## Monorepo Layout\n\n| Directory                  | Purpose                                         |\n| -------------------------- | ----------------------------------------------- |\n| `library/`                 | Core `valibot` package — most work happens here |\n| `packages/to-json-schema/` | JSON Schema converter                           |\n| `packages/i18n/`           | Translated error messages                       |\n| `website/`                 | valibot.dev (Qwik + Vite)                       |\n| `codemod/`                 | Migration and conversion tools                  |\n\n## Essential Commands\n\n```bash\npnpm install                    # Install dependencies\npnpm test                       # Run tests (all packages)\npnpm lint                       # ESLint + tsc + deno check (all packages)\npnpm format                     # Format code with Prettier (all packages)\npnpm build                      # Build for publishing (all packages)\n```\n\n## Code Conventions\n\n- **ESM with `.ts` extensions** in imports (enforced by ESLint)\n- **`interface` over `type`** for object shapes\n- **JSDoc required** on exported functions (first overload only for overload sets)\n- **`// @__NO_SIDE_EFFECTS__`** before pure factory functions for tree-shaking\n\n## Other Rules\n\n- **Source code is the single source of truth.** All documentation must match `/library/src/`.\n- **Lint and format after modifying code.** Run `pnpm lint` and `pnpm format` so CI passes.\n- **Use the GitHub CLI for GitHub-related tasks.** Prefer `gh` for pull requests, issues, checks, and other GitHub operations.\n\n## Library Architecture\n\nSchemas, actions, and methods are plain objects with a `'~run'` method:\n\n```\nlibrary/src/\n├── schemas/   → Data types (string, object, array...)\n├── actions/   → Validations & transforms (email, minLength, trim...)\n├── methods/   → API functions (parse, pipe, partial...)\n├── types/     → TypeScript definitions\n└── utils/     → Internal helpers (prefixed with _)\n```\n\nEach has its own folder: `name.ts`, `name.test.ts`, `name.test-d.ts`, `index.ts`.\n\n## Agent Skills\n\nThis repository includes agent skills in `/skills/` following the [Agent Skills](https://agentskills.io) open standard.\n\n**Naming:** Skills prefixed with `repo-` are local repository skills\n"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "content": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make participation in our\ncommunity a harassment-free experience for everyone, regardless of age, body\nsize, visible or invisible disability, ethnicity, sex characteristics, gender\nidentity and expression, level of experience, education, socio-economic status,\nnationality, personal appearance, race, caste, color, religion, or sexual\nidentity and orientation.\n\nWe pledge to act and interact in ways that contribute to an open, welcoming,\ndiverse, inclusive, and healthy community.\n\n## Our Standards\n\nExamples of behavior that contributes to a positive environment for our\ncommunity include:\n\n- Demonstrating empathy and kindness toward other people\n- Being respectful of differing opinions, viewpoints, and experiences\n- Giving and gracefully accepting constructive feedback\n- Accepting responsibility and apologizing to those affected by our mistakes,\n  and learning from the experience\n- Focusing on what is best not just for us as individuals, but for the overall\n  community\n\nExamples of unacceptable behavior include:\n\n- The use of sexualized language or imagery, and sexual attention or advances of\n  any kind\n- Trolling, insulting or derogatory comments, and personal or political attacks\n- Public or private harassment\n- Publishing others' private information, such as a physical or email address,\n  without their explicit permission\n- Other conduct which could reasonably be considered inappropriate in a\n  professional setting\n\n## Enforcement Responsibilities\n\nCommunity leaders are responsible for clarifying and enforcing our standards of\nacceptable behavior and will take appropriate and fair corrective action in\nresponse to any behavior that they deem inappropriate, threatening, offensive,\nor harmful.\n\nCommunity leaders have the right and responsibility to remove, edit, or reject\ncomments, commits, code, wiki edits, issues, and other contributions that are\nnot aligned to this Code of Conduct, and will communicate reasons for moderation\ndecisions when appropriate.\n\n## Scope\n\nThis Code of Conduct applies within all community spaces, and also applies when\nan individual is officially representing the community in public spaces.\nExamples of representing our community include using an official e-mail address,\nposting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event.\n\n## Enforcement\n\nInstances of abusive, harassing, or otherwise unacceptable behavior may be\nreported to the community leaders responsible for enforcement at\nhello@fabianhiller.com.\nAll complaints will be reviewed and investigated promptly and fairly.\n\nAll community leaders are obligated to respect the privacy and security of the\nreporter of any incident.\n\n## Enforcement Guidelines\n\nCommunity leaders will follow these Community Impact Guidelines in determining\nthe consequences for any action they deem in violation of this Code of Conduct:\n\n### 1. Correction\n\n**Community Impact**: Use of inappropriate language or other behavior deemed\nunprofessional or unwelcome in the community.\n\n**Consequence**: A private, written warning from community leaders, providing\nclarity around the nature of the violation and an explanation of why the\nbehavior was inappropriate. A public apology may be requested.\n\n### 2. Warning\n\n**Community Impact**: A violation through a single incident or series of\nactions.\n\n**Consequence**: A warning with consequences for continued behavior. No\ninteraction with the people involved, including unsolicited interaction with\nthose enforcing the Code of Conduct, for a specified period of time. This\nincludes avoiding interactions in community spaces as well as external channels\nlike social media. Violating these terms may lead to a temporary or permanent\nban.\n\n### 3. Temporary Ban\n\n**Community Impact**: A serious violation of community standards, including\nsustained inappropriate behavior.\n\n**Consequence**: A temporary ban from any sort of interaction or public\ncommunication with the community for a specified period of time. No public or\nprivate interaction with the people involved, including unsolicited interaction\nwith those enforcing the Code of Conduct, is allowed during this period.\nViolating these terms may lead to a permanent ban.\n\n### 4. Permanent Ban\n\n**Community Impact**: Demonstrating a pattern of violation of community\nstandards, including sustained inappropriate behavior, harassment of an\nindividual, or aggression toward or disparagement of classes of individuals.\n\n**Consequence**: A permanent ban from any sort of public interaction within the\ncommunity.\n\n## Attribution\n\nThis Code of Conduct is adapted from the [Contributor Covenant][homepage],\nversion 2.1, available at\n[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].\n\nCommunity Impact Guidelines were inspired by\n[Mozilla's code of conduct enforcement ladder][Mozilla CoC].\n\nFor answers to common questions about this code of conduct, see the FAQ at\n[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at\n[https://www.contributor-covenant.org/translations][translations].\n\n[homepage]: https://www.contributor-covenant.org\n[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html\n[Mozilla CoC]: https://github.com/mozilla/diversity\n[FAQ]: https://www.contributor-covenant.org/faq\n[translations]: https://www.contributor-covenant.org/translations\n"
  },
  {
    "path": "CONTRIBUTING.md",
    "content": "# Contributing\n\nWe love pull requests from everyone. By contributing to this repository, you\nagree to abide by the [Code of Conduct](CODE_OF_CONDUCT.md).\n\n## Get started\n\n- First [fork][fork] the repository and then clone it using:\n\n```bash\ngit clone git@github.com:your-username/valibot.git\n```\n\n- After that create a branch for your changes. For example:\n  - `feat-XXX` if you will add functionality.\n  - `fix-XXX` if you will fix a bug.\n  - `test-XXX` if you wrote a test/s.\n  - `doc-XXX` if you added to or edited documentation.\n  - `refactor-XXX` if you refactor some part of the code.\n\nYou may contribute by:\n\n- Implementing a new validation action.\n- Optimizing or improving the existing code.\n- Suggest a different solution for a problem.\n- Finding and fixing bugs and typos.\n- Adding examples to explain the usage.\n- Adding and improving test cases.\n- Improving our website and documentation.\n\n## Pull requests\n\nPush to your fork and [submit a pull request][pr].\n\n### Best practices\n\nAs we strive for excellence in our codebase, here are some guidelines to make your contributions shine:\n\n- Code in TypeScript: Embrace the power of TypeScript for writing your code. It helps in maintaining consistency and leveraging TypeScript's robust features.\n- Clarity and cleanliness: Write code that speaks for itself. Aim for simplicity and clarity, making it easy for others to read and understand at a glance.\n- Commenting and documentation: Illuminate your code with clear comments. Explain the purpose and functionality of your code. Where applicable, include links to relevant Wiki articles or external sources for further context.\n- Illustrative examples: Enhance understanding by providing minimal yet meaningful examples to demonstrate the expected output of your code.\n- Include test cases: Show the robustness of your code by accompanying it with well-thought-out test cases. This practice not only validates your code but also assists in maintaining the code quality in the long run.\n- Size matters for PRs: Keep your pull requests concise and focused. Smaller PRs are easier to review and merge, speeding up the development process. This approach helps in isolating changes and simplifying troubleshooting.\n- Crafting a good commit message: Your commit messages are a roadmap of your changes. Make them informative and useful for everyone.\n\n## Issues\n\nSubmit a [new issue][newissue] if there is a feature to be added, or if a bug was found in the existing code. Before submitting a new issue please review the [existing issues][issues] to avoid creating duplicates. Also, consider resolving current issues or contributing to the discussion on an issue.\n\n## Collaborators\n\nYou can ask for any help or clarifications from the collaborators.\n\n- [Fabian Hiller](https://github.com/fabian-hiller)\n- [Elton Lobo](https://github.com/EltonLobo07)\n- [Aris Kemper](https://github.com/ariskemper)\n\n[fork]: https://help.github.com/articles/fork-a-repo/\n[pr]: https://github.com/open-circle/valibot/compare\n[newissue]: https://github.com/open-circle/valibot/issues/new\n[issues]: https://github.com/open-circle/valibot/issues\n"
  },
  {
    "path": "LICENSE.md",
    "content": "MIT License\n\nCopyright (c) Fabian Hiller\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "SECURITY.md",
    "content": "# Reporting Security Issues\n\nTo report a vulnerability, please contact us via hello@fabianhiller.com.\n\nWe recommend that you use the latest versions of the library to ensure that your application remains as secure as possible.\n"
  },
  {
    "path": "codemod/README.md",
    "content": "# Codemod\n\n## Run options\n\nThe preferred way to run these codemods is via the [codemod registry](https://codemod.com/registry), but as a fallback you can also run them from the source file by running the following command.\n\n```bash\nnpx codemod@latest path-to-source-file.ts --engine=workflow\n```\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/.codemodrc.json",
    "content": "{\n  \"$schema\": \"https://codemod-utils.s3.us-west-1.amazonaws.com/configuration_schema.json\",\n  \"version\": \"0.2.2\",\n  \"private\": false,\n  \"name\": \"valibot/migrate-to-v0.31.0\",\n  \"engine\": \"workflow\",\n  \"meta\": {\n    \"tags\": [\"valibot\", \"v0.31.0\", \"pipeline\", \"pipe\"],\n    \"git\": \"https://github.com/open-circle/valibot/tree/main/codemod/migrate-to-v0.31.0\"\n  },\n  \"applicability\": {\n    \"from\": [[\"valibot\", \"<=\", \"0.30.0\"]]\n  }\n}\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/.gitignore",
    "content": "node_modules\ndist"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2024 arybitskiy\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/README.md",
    "content": "# Migrate to v0.31.0\n\nYou can use [Codemod](https://codemod.com/) to automatically update your code to the new API. See the [migration guide](https://valibot.dev/guides/migrate-to-v0.31.0/) for more details on the changes.\n\n## Examples\n\n### Before\n\n```ts\nimport * as v from 'valibot';\n\nv.object({\n  email: v.string([v.email(), v.endsWith('@gmail.com')]),\n  password: v.string([v.minLength(8)]),\n  other: v.union([v.string([v.decimal()]), v.number()]),\n});\n```\n\n### After\n\n```ts\nimport * as v from 'valibot';\n\nv.object({\n  email: v.pipe(v.string(), v.email(), v.endsWith('@gmail.com')),\n  password: v.pipe(v.string(), v.minLength(8)),\n  other: v.union([v.pipe(v.string(), v.decimal()), v.number()]),\n});\n```\n\n### Before\n\n```ts\nimport * as v from 'valibot';\nimport { object, tuple } from 'valibot';\n\nconst ObjectSchema = object({ key: v.string() }, v.null_());\nconst TupleSchema = tuple([v.string()], v.null_());\n```\n\n### After\n\n```ts\nimport * as v from 'valibot';\nimport { objectWithRest, tupleWithRest } from 'valibot';\n\nconst ObjectSchema = objectWithRest({ key: v.string() }, v.null_());\nconst TupleSchema = tupleWithRest([v.string()], v.null_());\n```\n\n### Before\n\n```ts\nimport * as v from 'valibot';\n\nconst ObjectSchema1 = v.object({ foo: v.string() });\nconst ObjectSchema2 = v.object({ bar: v.number() });\n\nconst MergedObject = v.merge([ObjectSchema1, ObjectSchema2]);\n```\n\n### After\n\n```ts\nimport * as v from 'valibot';\n\nconst ObjectSchema1 = v.object({ foo: v.string() });\nconst ObjectSchema2 = v.object({ bar: v.number() });\n\nconst MergedObject = v.object({\n  ...ObjectSchema1.entries,\n  ...ObjectSchema2.entries,\n});\n```\n\n### Before\n\n```ts\nimport * as v from 'valibot';\n\nconst BrandedSchema = v.brand(v.string(), 'foo');\nconst TransformedSchema = v.transform(v.string(), (input) => input.length);\n```\n\n### After\n\n```ts\nimport * as v from 'valibot';\n\nconst BrandedSchema = v.pipe(v.string(), v.brand('foo'));\nconst TransformedSchema = v.pipe(\n  v.string(),\n  v.transform((input) => input.length)\n);\n```\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture1.input.ts",
    "content": "import * as v from 'valibot';\nimport { email } from 'valibot';\n\nconst Schema1 = v.string([email()]);\n\nconst Schema2 = v.string('asd', [email()]);\n\nconst Schema3 = v.string('asd', '123', [email()]);\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture1.output.ts",
    "content": "import * as v from 'valibot';\nimport { email } from 'valibot';\n\nconst Schema1 = v.pipe(v.string(), email());\n\nconst Schema2 = v.pipe(v.string('asd'), email());\n\nconst Schema3 = v.pipe(v.string('asd', '123'), email());\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture10.input.ts",
    "content": "import * as v from 'valibot';\n\nconst Schema = v.transform(\n  v.brand(v.string(), 'Name'),\n  (input) => input.length\n);\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture10.output.ts",
    "content": "import * as v from 'valibot';\n\nconst Schema = v.pipe(\n  v.string(),\n  v.brand('Name'),\n  v.transform((input) => input.length)\n);\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture11.input.ts",
    "content": "import * as v from 'valibot';\n\nconst Schema = v.object(\n  {\n    name: v.string(),\n    age: v.number(),\n  },\n  [\n    v.forward(\n      v.custom((i) => i.age > 18, 'You must be over 18'),\n      ['age']\n    ),\n  ]\n);\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture11.output.ts",
    "content": "import * as v from 'valibot';\n\nconst Schema = v.pipe(\n  v.object({\n    name: v.string(),\n    age: v.number(),\n  }),\n  v.forward(\n    v.check((i) => i.age > 18, 'You must be over 18'),\n    ['age']\n  )\n);\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture12.input.ts",
    "content": "import * as v from 'valibot';\n\nconst Schema = v.brand(v.string([v.url()]), 'foo');\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture12.output.ts",
    "content": "import * as v from 'valibot';\n\nconst Schema = v.pipe(v.string(), v.url(), v.brand('foo'));\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture13.input.ts",
    "content": "import * as v from 'valibot';\n\nconst Schema1 = v.map(\n  v.number(),\n  v.string([v.url(), v.endsWith('@example.com')]),\n  [v.maxSize(10)]\n);\n\nconst Schema2 = v.object(\n  {\n    list: v.array(v.string([v.minLength(3)]), [\n      v.minLength(3),\n      v.includes('foo'),\n    ]),\n    length: v.number([v.integer()]),\n  },\n  [v.custom((input) => input.list.length === input.length)]\n);\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture13.output.ts",
    "content": "import * as v from 'valibot';\n\nconst Schema1 = v.pipe(\n  v.map(v.number(), v.pipe(v.string(), v.url(), v.endsWith('@example.com'))),\n  v.maxSize(10)\n);\n\nconst Schema2 = v.pipe(\n  v.object({\n    list: v.pipe(\n      v.array(v.pipe(v.string(), v.minLength(3))),\n      v.minLength(3),\n      v.includes('foo')\n    ),\n    length: v.pipe(v.number(), v.integer()),\n  }),\n  v.check((input) => input.list.length === input.length)\n);\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture14.input.ts",
    "content": "import * as v from 'valibot';\n\nconst Schema = v.object({\n  normal: v.string([v.email(() => 'Email required')]),\n  union: v.union([v.string([v.decimal()]), v.number()], [v.minValue(10)]),\n  intersection: v.intersect([\n    v.object({ a: v.string() }),\n    v.object({ b: v.number() }),\n  ]),\n  variant: v.variant('type', [\n    v.object({ type: v.literal('a') }),\n    v.object({ type: v.literal('b') }),\n  ]),\n  picklist: v.picklist(['a', 'b']),\n  tuple: v.tuple([v.string(), v.number()]),\n});\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture14.output.ts",
    "content": "import * as v from 'valibot';\n\nconst Schema = v.object({\n  normal: v.pipe(\n    v.string(),\n    v.email(() => 'Email required')\n  ),\n  union: v.pipe(\n    v.union([v.pipe(v.string(), v.decimal()), v.number()]),\n    v.minValue(10)\n  ),\n  intersection: v.intersect([\n    v.object({ a: v.string() }),\n    v.object({ b: v.number() }),\n  ]),\n  variant: v.variant('type', [\n    v.object({ type: v.literal('a') }),\n    v.object({ type: v.literal('b') }),\n  ]),\n  picklist: v.picklist(['a', 'b']),\n  tuple: v.tuple([v.string(), v.number()]),\n});\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture15.input.ts",
    "content": "import * as v from 'valibot';\n\nconst Schema = v.coerce(v.date(), (input) => new Date(input));\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture15.output.ts",
    "content": "import * as v from 'valibot';\n\nconst Schema = v.pipe(\n  v.unknown(),\n  v.transform((input) => new Date(input))\n);\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture16.input.ts",
    "content": "import * as v from 'valibot';\n\nconst flatErrors1 = v.flatten(error);\nconst flatErrors2 = v.flatten([issue]);\nconst flatErrors3 = v.flatten(result.issues);\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture16.output.ts",
    "content": "import * as v from 'valibot';\n\nconst flatErrors1 = v.flatten(error.issues);\nconst flatErrors2 = v.flatten([issue]);\nconst flatErrors3 = v.flatten(result.issues);\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture17.input.ts",
    "content": "import * as v from 'valibot';\n\nconst Schema1 = v.union([v.string(), v.number()], [v.minValue(123)]);\nconst Schema2 = v.union([v.string(), v.number()], 'error', [v.minValue(123)]);\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture17.output.ts",
    "content": "import * as v from 'valibot';\n\nconst Schema1 = v.pipe(v.union([v.string(), v.number()]), v.minValue(123));\nconst Schema2 = v.pipe(\n  v.union([v.string(), v.number()], 'error'),\n  v.minValue(123)\n);\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture2.input.ts",
    "content": "import * as v from 'valibot';\nimport { type BaseSchema, toCustom } from 'valibot';\n\nv.custom();\nBaseSchema();\nv.Input();\nv.Output();\nv.special();\ntoCustom();\ntoTrimmed();\nv.toTrimmedEnd();\nv.toTrimmedStart();\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture2.output.ts",
    "content": "import * as v from 'valibot';\nimport { type GenericSchema, transform } from 'valibot';\n\nv.check();\nGenericSchema();\nv.InferInput();\nv.InferOutput();\nv.custom();\ntransform();\ntoTrimmed();\nv.trimEnd();\nv.trimStart();\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture3.input.ts",
    "content": "import * as v from 'valibot';\n\nv.object({\n  email: v.string([v.email(), v.endsWith('@gmail.com')]),\n  password: v.string([v.minLength(8)]),\n  other: v.union([v.string([v.decimal()]), v.number()]),\n});\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture3.output.ts",
    "content": "import * as v from 'valibot';\n\nv.object({\n  email: v.pipe(v.string(), v.email(), v.endsWith('@gmail.com')),\n  password: v.pipe(v.string(), v.minLength(8)),\n  other: v.union([v.pipe(v.string(), v.decimal()), v.number()]),\n});\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture4.input.ts",
    "content": "import * as v from 'valibot';\nimport { object, tuple } from 'valibot';\n\nconst ObjectSchema = object({ key: v.string() }, v.null_());\nconst TupleSchema = tuple([v.string()], v.null_());\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture4.output.ts",
    "content": "import * as v from 'valibot';\nimport { objectWithRest, tupleWithRest } from 'valibot';\n\nconst ObjectSchema = objectWithRest({ key: v.string() }, v.null_());\nconst TupleSchema = tupleWithRest([v.string()], v.null_());\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture5.input.ts",
    "content": "import { never, object, string, tuple, unknown } from 'valibot';\n\nconst LooseObjectSchema = object({ key: string() }, unknown());\nconst LooseTupleSchema = tuple([string()], unknown());\nconst StrictObjectSchema = object({ key: string() }, never());\nconst StrictTupleSchema = tuple([string()], never());\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture5.output.ts",
    "content": "import {\n  looseObject,\n  looseTuple,\n  never,\n  object,\n  strictObject,\n  strictTuple,\n  string,\n  tuple,\n  unknown,\n} from 'valibot';\n\nconst LooseObjectSchema = looseObject({ key: string() });\nconst LooseTupleSchema = looseTuple([string()]);\nconst StrictObjectSchema = strictObject({ key: string() });\nconst StrictTupleSchema = strictTuple([string()]);\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture6.input.ts",
    "content": "import * as v from 'valibot';\n\nconst ObjectSchema1 = v.object({ foo: v.string() });\nconst ObjectSchema2 = v.object({ bar: v.number() });\n\nconst MergedObject = v.merge([ObjectSchema1, ObjectSchema2]);\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture6.output.ts",
    "content": "import * as v from 'valibot';\n\nconst ObjectSchema1 = v.object({ foo: v.string() });\nconst ObjectSchema2 = v.object({ bar: v.number() });\n\nconst MergedObject = v.object({\n  ...ObjectSchema1.entries,\n  ...ObjectSchema2.entries,\n});\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture7.input.ts",
    "content": "import * as v from 'valibot';\n\nconst BrandedSchema = v.brand(v.string(), 'foo');\nconst TransformedSchema = v.transform(v.string(), (input) => input.length);\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture7.output.ts",
    "content": "import * as v from 'valibot';\n\nconst BrandedSchema = v.pipe(v.string(), v.brand('foo'));\nconst TransformedSchema = v.pipe(\n  v.string(),\n  v.transform((input) => input.length)\n);\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture8.input.ts",
    "content": "import * as v from 'valibot';\n\nconst Schema = v.string([v.toTrimmed(), v.url()]);\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture8.output.ts",
    "content": "import * as v from 'valibot';\n\nconst Schema = v.pipe(v.string(), v.trim(), v.url());\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture9.input.ts",
    "content": "import { string, url } from 'valibot';\n\nconst Schema = string([url()]);\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/__testfixtures__/fixture9.output.ts",
    "content": "import { pipe, string, url } from 'valibot';\n\nconst Schema = pipe(string(), url());\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/package.json",
    "content": "{\n  \"name\": \"migrate-to-v0.31.0\",\n  \"license\": \"MIT\",\n  \"author\": \"Codemod, Inc.\",\n  \"type\": \"module\",\n  \"files\": [\n    \"README.md\",\n    \".codemodrc.json\",\n    \"./dist/index.cjs\"\n  ],\n  \"devDependencies\": {\n    \"@codemod.com/workflow\": \"^0.0.31\",\n    \"@types/node\": \"^24.10.1\",\n    \"typescript\": \"^5.9.3\"\n  }\n}\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/src/index.ts",
    "content": "import type { Api } from '@codemod.com/workflow';\n\n// List of all schema names\nconst SCHEMAS = [\n  'any',\n  'array',\n  'bigint',\n  'blob',\n  'boolean',\n  'custom',\n  'date',\n  'enum_',\n  'instance',\n  'intersect',\n  'lazy',\n  'literal',\n  'looseObject',\n  'looseTuple',\n  'map',\n  'nan',\n  'never',\n  'nonNullable',\n  'nonNullish',\n  'nonOptional',\n  'null_',\n  'nullable',\n  'nullish',\n  'number',\n  'object',\n  'objectWithRest',\n  'optional',\n  'picklist',\n  'record',\n  'set',\n  'strictObject',\n  'strictTuple',\n  'string',\n  'symbol',\n  'tuple',\n  'tupleWithRest',\n  'undefined_',\n  'union',\n  'unknown',\n  'variant',\n  'void_',\n];\n\n// List of schema names with an mandatory array argument\nconst SCHEMAS_WITH_ARRAY_ARG = [\n  'union',\n  'intersect',\n  'tuple',\n  'looseTuple',\n  'strictTuple',\n  'picklist',\n  'variant',\n];\n\n// List of names that have changed\nconst RENAMES: [string, string][] = [\n  ['anyAsync', 'any'],\n  ['BaseSchema', 'GenericSchema'],\n  ['bigintAsync', 'bigint'],\n  ['blobAsync', 'blob'],\n  ['booleanAsync', 'boolean'],\n  ['custom', 'check'],\n  ['customAsync', 'checkAsync'],\n  ['dateAsync', 'date'],\n  ['enumAsync', 'enum_'],\n  ['Input', 'InferInput'],\n  ['instanceAsync', 'instance'],\n  ['literalAsync', 'literal'],\n  ['nanAsync', 'nan'],\n  ['neverAsync', 'never'],\n  ['nullAsync', 'null_'],\n  ['numberAsync', 'number'],\n  ['Output', 'InferOutput'],\n  ['picklistAsync', 'picklist'],\n  ['special', 'custom'],\n  ['specialAsync', 'customAsync'],\n  ['SchemaConfig', 'Config'],\n  ['stringAsync', 'string'],\n  ['symbolAsync', 'symbol'],\n  ['undefinedAsync', 'undefined_'],\n  ['unknownAsync', 'unknown'],\n  ['toCustom', 'transform'],\n  ['toTrimmed', 'trim'],\n  ['toTrimmedEnd', 'trimEnd'],\n  ['toTrimmedStart', 'trimStart'],\n  ['voidAsync', 'void_'],\n];\n\n/**\n * Codemod workflow that migrates Valibot code to v0.31.0.\n */\nexport async function workflow({ jsFiles }: Api) {\n  await jsFiles(async ({ astGrep, addImport, removeImport, getImports }) => {\n    // Query wildcard import\n    const wildcardImport = (\n      await getImports('import * as $IMPORT from \"valibot\"').map(\n        ({ getMatch }) => getMatch('IMPORT')?.text()\n      )\n    ).shift();\n\n    // Query direct imports\n    const directImports = (\n      await getImports('import { $$$IMPORTS } from \"valibot\"').map(\n        ({ getMultipleMatches }) =>\n          getMultipleMatches('IMPORTS')\n            .filter((node) => node.kind() === 'import_specifier')\n            .map(\n              (node) =>\n                node.find({ rule: { kind: 'identifier' } })?.text() ??\n                node.text()\n            )\n      )\n    ).reduce((allImports, imports) => {\n      allImports.push(...imports);\n      return allImports;\n    }, []);\n\n    /**\n     * Returns a function that checks if it is a valid wildcard or direct\n     * import.\n     */\n    function createImportCheck() {\n      return (name: string | undefined): boolean => {\n        if (\n          name &&\n          ((wildcardImport && name.startsWith(`${wildcardImport}.`)) ||\n            directImports.includes(name))\n        ) {\n          return true;\n        }\n        return false;\n      };\n    }\n\n    /**\n     * Returns a function that checks if it is a valid wildcard or direct\n     * import of a specific name.\n     */\n    function createNameCheck(names: string[]) {\n      const isImported = createImportCheck();\n      return (name: string | undefined): boolean => {\n        if (\n          name &&\n          isImported(name) &&\n          ((wildcardImport &&\n            names.includes(\n              name.replace(new RegExp(`^${wildcardImport}.`), '')\n            )) ||\n            names.includes(name))\n        ) {\n          return true;\n        }\n        return false;\n      };\n    }\n\n    /**\n     * Deeply searches for specific patterns.\n     */\n    async function deepSearch(\n      action: (continue_: () => void) => Promise<unknown>\n    ) {\n      let notDone = true;\n      while (notDone) {\n        notDone = false;\n        await action(() => (notDone = true));\n      }\n    }\n\n    // Create util functions\n    const isImported = createImportCheck();\n    const isSchema = createNameCheck(SCHEMAS);\n    const isSchemaWithArrayArg = createNameCheck(SCHEMAS_WITH_ARRAY_ARG);\n    const isObject = createNameCheck(['object']);\n    const isTuple = createNameCheck(['tuple']);\n    const isObjectOrTuple = createNameCheck(['object', 'tuple']);\n    const isUnknown = createNameCheck(['unknown']);\n    const isNever = createNameCheck(['never']);\n    const isPipe = createNameCheck(['pipe']);\n    const isMerge = createNameCheck(['merge']);\n    const isBrandOrTransform = createNameCheck(['brand', 'transform']);\n    const isCoerce = createNameCheck(['coerce']);\n    const isFlatten = createNameCheck(['flatten']);\n\n    // Create wildcard prefix\n    const wildcardPrefix = wildcardImport ? `${wildcardImport}.` : '';\n\n    // Rewrite names\n    for (const [from, to] of [\n      ...(wildcardImport\n        ? RENAMES.map(([prev, next]) => [\n            `${wildcardImport}.${prev}`,\n            `${wildcardImport}.${next}`,\n          ])\n        : []),\n      ...RENAMES,\n    ]) {\n      // Rewrite only if imported by Valibot\n      if (isImported(from)) {\n        await astGrep(from).replace(() => to);\n        await astGrep({\n          rule: { regex: from, kind: 'type_identifier' },\n        }).replace(() => to);\n      }\n    }\n\n    // Rewrite object merging\n    await astGrep`$METHOD($$$ARGS)`.replace(\n      ({ getMatch, getMultipleMatches }) => {\n        // Get and process node\n        const methodName = getMatch('METHOD')?.text();\n\n        // Continue if it is merge method\n        if (isMerge(methodName)) {\n          // Get and process nodes\n          const argsNodes = getMultipleMatches('ARGS');\n          const entriesText = argsNodes[0]\n            ?.children()\n            .slice(1, -1)\n            .filter((node) => node.kind() !== ',')\n            .map((node) => `...${node.text()}.entries`)\n            .join(', ');\n          const restText = argsNodes\n            .slice(1)\n            .filter((node) => node.kind() !== ',')\n            .map((node) => node.text())\n            .join(', ');\n\n          // Update imports if necessary\n          if (!wildcardImport) {\n            addImport(`import { object } from \"valibot\"`);\n            removeImport(`import { merge } from \"valibot\"`);\n            directImports.push(`object`);\n          }\n\n          // Return rewritten code\n          return `${wildcardPrefix}object({${entriesText}}${restText ? `, ${restText}` : ''})`;\n        }\n      }\n    );\n\n    // Rewrite objects and tuples with rest\n    await astGrep`$SCHEMA($SHAPE, $$$REST)`.replace(\n      ({ getMatch, getMultipleMatches }) => {\n        // Get and process nodes\n        const schemaName = getMatch('SCHEMA')?.text();\n        const shapeText = getMatch('SHAPE')?.text();\n        const restNodes = getMultipleMatches('REST');\n        const restSchemaName = restNodes[0]?.child(0)?.text();\n\n        // Continue if it is object or tuple with rest\n        if (\n          isObjectOrTuple(schemaName) &&\n          isSchema(restSchemaName) &&\n          !isUnknown(restSchemaName) &&\n          !isNever(restSchemaName)\n        ) {\n          // Process nodes\n          const restText = restNodes\n            .filter((node) => node.kind() !== ',')\n            .map((node) => node.text())\n            .join(', ');\n\n          // Update imports if necessary\n          // Hint: We do not remove the object or tuple import because we do\n          // not know if it will be used elsewhere.\n          if (schemaName && !schemaName.startsWith(`${wildcardImport}.`)) {\n            addImport(`import { ${schemaName}WithRest } from \"valibot\"`);\n            directImports.push(`${schemaName}WithRest`);\n          }\n\n          // Return rewritten code\n          return `${schemaName}WithRest(${shapeText}, ${restText})`;\n        }\n      }\n    );\n\n    // Rewrite loose and strict objects and tuples\n    await astGrep`$SCHEMA($SHAPE, $$$REST)`.replace(\n      ({ getMatch, getMultipleMatches }) => {\n        // Get and process nodes\n        const schemaName = getMatch('SCHEMA')?.text();\n        const shapeText = getMatch('SHAPE')?.text();\n        const restNodes = getMultipleMatches('REST');\n        const restSchemaName = restNodes[0]?.child(0)?.text();\n\n        // Create necessary variables\n        let schemaPrefix: string | undefined;\n        let schemaSuffix: string | undefined;\n\n        // Set schema suffix and imports\n        if (isObject(schemaName)) {\n          schemaSuffix = 'Object';\n        } else if (isTuple(schemaName)) {\n          schemaSuffix = 'Tuple';\n        }\n\n        // Set schema prefix and imports\n        if (isUnknown(restSchemaName)) {\n          schemaPrefix = 'loose';\n        } else if (isNever(restSchemaName)) {\n          schemaPrefix = 'strict';\n        }\n\n        // Continue if prefix and suffix are set\n        if (schemaPrefix && schemaSuffix) {\n          // Process nodes\n          const restText = restNodes\n            .slice(1)\n            .filter((node) => node.kind() !== ',')\n            .map((node) => node.text())\n            .join(', ');\n\n          // Update imports if necessary\n          // Hint: We do not remove any imports because we do not know if it\n          // will be used elsewhere.\n          if (!wildcardImport) {\n            addImport(\n              `import { ${schemaPrefix}${schemaSuffix} } from \"valibot\"`\n            );\n            directImports.push(`${schemaPrefix}${schemaSuffix}`);\n          }\n\n          // Return rewritten code\n          return `${wildcardPrefix}${schemaPrefix}${schemaSuffix}(${shapeText}${restText ? `, ${restText}` : ''})`;\n        }\n      }\n    );\n\n    // Rewrite coerce\n    await astGrep`$METHOD($REMOVE, $LASTARG)`.replace(({ getMatch }) => {\n      // Get and process nodes\n      const methodName = getMatch('METHOD')?.text();\n      const lastArgText = getMatch('LASTARG')?.text();\n\n      // Continue if it is coerce method\n      if (isCoerce(methodName)) {\n        // Update imports if necessary\n        if (!wildcardImport) {\n          addImport(`import { pipe, unknown, transform } from \"valibot\"`);\n          removeImport(`import { coerce } from \"valibot\"`);\n        }\n\n        // Return rewritten code\n        return `${wildcardPrefix}pipe(${wildcardPrefix}unknown(), ${wildcardPrefix}transform(${lastArgText}))`;\n      }\n    });\n\n    // Rewrite flatten\n    await astGrep`$METHOD($ARG)`.replace(({ getMatch }) => {\n      // Get and process node\n      const methodName = getMatch('METHOD')?.text();\n      const argChildLength = getMatch('ARG')?.children().length;\n\n      // Continue if it is flatten method with error argument\n      if (isFlatten(methodName) && !argChildLength) {\n        // Return rewritten code\n        return `$METHOD($ARG.issues)`;\n      }\n    });\n\n    // Rewrite brand and transform\n    await deepSearch((continue_) =>\n      astGrep`$METHOD($SCHEMA, $LASTARG)`.replace(({ getMatch }) => {\n        // Get and process nodes\n        const methodName = getMatch('METHOD')?.text();\n        const schemaText = getMatch('SCHEMA')?.text();\n        const lastArgText = getMatch('LASTARG')?.text();\n\n        // Continue if it is brand or transform method\n        if (isBrandOrTransform(methodName)) {\n          // Continue searching\n          continue_();\n\n          // Update imports if necessary\n          if (!wildcardImport) {\n            addImport(`import { pipe } from \"valibot\"`);\n            directImports.push(`pipe`);\n          }\n\n          // Return rewritten code\n          return `${wildcardPrefix}pipe(${schemaText}, ${methodName}(${lastArgText}))`;\n        }\n      })\n    );\n\n    // Rewrite pipelines for schemas with mandatory array argument\n    await deepSearch((continue_) =>\n      astGrep`$SCHEMA([$$$ITEMS], $$$REST, [$$$ACTIONS])`.replace(\n        ({ getMatch, getMultipleMatches }) => {\n          // Get and process nodes\n          const schemaName = getMatch('SCHEMA')?.text();\n\n          // Continue if it is schema with array argument\n          if (isSchemaWithArrayArg(schemaName)) {\n            // Get and process nodes\n            const itemsText = getMultipleMatches('ITEMS')\n              .filter((node) => node.kind() !== ',')\n              .map((node) => node.text())\n              .join(', ');\n            const restText = getMultipleMatches('REST')\n              .filter((node) => node.kind() !== ',')\n              .map((node) => node.text())\n              .join(', ');\n            const actionNodes = getMultipleMatches('ACTIONS');\n\n            // If pipe is not empty, rewrite it to new pipe method\n            if (actionNodes.length) {\n              // Continue searching\n              continue_();\n\n              const actionsText = actionNodes\n                .filter((node) => node.kind() !== ',')\n                .map((node) => node.text())\n                .join(', ');\n\n              // Update imports if necessary\n              if (!wildcardImport) {\n                addImport(`import { pipe } from \"valibot\"`);\n                directImports.push(`pipe`);\n              }\n\n              // Return rewritten code\n              return `${wildcardPrefix}pipe(${schemaName}([${itemsText}]${restText ? `, ${restText}` : ''}), ${actionsText})`;\n            }\n\n            // Otherwise, remove pipe argument from schema\n            return `${schemaName}([${itemsText}]${restText ? `, ${restText}` : ''})`;\n          }\n        }\n      )\n    );\n\n    // Rewrite pipelines for schemas without mandatory array argument\n    await deepSearch((continue_) =>\n      astGrep`$SCHEMA($$$REST, [$$$ACTIONS])`.replace(\n        ({ getMatch, getMultipleMatches }) => {\n          // Get and process nodes\n          const schemaName = getMatch('SCHEMA')?.text();\n\n          // Continue if it is schema without array argument\n          if (isSchema(schemaName) && !isSchemaWithArrayArg(schemaName)) {\n            // Get and process nodes\n            const restText = getMultipleMatches('REST')\n              .filter((node) => node.kind() !== ',')\n              .map((node) => node.text())\n              .join(', ');\n            const actionNodes = getMultipleMatches('ACTIONS');\n\n            // If pipe is not empty, rewrite it to new pipe method\n            if (actionNodes.length) {\n              // Continue searching\n              continue_();\n\n              // Get and process nodes\n              const actionsText = actionNodes\n                .map((node) => node.text())\n                .join(' ');\n\n              // Update imports if necessary\n              if (!wildcardImport) {\n                addImport(`import { pipe } from \"valibot\"`);\n                directImports.push(`pipe`);\n              }\n\n              // Return rewritten code\n              return `${wildcardPrefix}pipe(${schemaName}(${restText}), ${actionsText})`;\n            }\n\n            // Otherwise, remove pipe argument from schema\n            return `${schemaName}(${restText})`;\n          }\n        }\n      )\n    );\n\n    // Rewrite nested pipes\n    await deepSearch((continue_) =>\n      astGrep`$METHOD1($METHOD2($$$ARGS), $$$REST)`.replace(\n        ({ getMatch, getMultipleMatches }) => {\n          // Get and process nodes\n          const method1Name = getMatch('METHOD1')?.text();\n          const method2Name = getMatch('METHOD2')?.text();\n\n          // Continue if both methods are pipes\n          if (isPipe(method1Name) && isPipe(method2Name)) {\n            // Continue searching\n            continue_();\n\n            // Get and process nodes\n            const itemsText = [\n              ...getMultipleMatches('ARGS').filter(\n                (node) => node.kind() !== ','\n              ),\n              ...getMultipleMatches('REST').filter(\n                (node) => node.kind() !== ','\n              ),\n            ]\n              .map((node) => node.text())\n              .join(', ');\n\n            // Update imports if necessary\n            if (!wildcardImport) {\n              addImport(`import { pipe } from \"valibot\"`);\n              directImports.push(`pipe`);\n            }\n\n            // Return rewritten code\n            return `${wildcardPrefix}pipe(${itemsText})`;\n          }\n        }\n      )\n    );\n  });\n}\n"
  },
  {
    "path": "codemod/migrate-to-v0.31.0/tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"outDir\": \"./dist\",\n    \"esModuleInterop\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"isolatedModules\": true,\n    \"module\": \"NodeNext\",\n    \"skipLibCheck\": true,\n    \"strict\": true,\n    \"target\": \"ES6\",\n    \"allowJs\": true\n  },\n  \"include\": [\n    \"./src/**/*.ts\",\n    \"./src/**/*.js\",\n    \"./test/**/*.ts\",\n    \"./test/**/*.js\"\n  ],\n  \"exclude\": [\"node_modules\", \"./dist/**/*\"],\n  \"ts-node\": {\n    \"transpileOnly\": true\n  }\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/.gitignore",
    "content": "__testfixtures__/*/_actual.ts"
  },
  {
    "path": "codemod/zod-to-valibot/CHANGELOG.md",
    "content": "# Changelog\n\nAll notable changes to the library will be documented in this file.\n\n## v0.1.2 (December 07, 2025)\n\n- Fix CLI usage to use scoped package name `@valibot/zod-to-valibot`\n\n## v0.1.1 (December 06, 2025)\n\n- Fix CLI `jscodeshift` resolution when installed via `npx`\n\n## v0.1.0 (December 06, 2025)\n\n- Initial release\n"
  },
  {
    "path": "codemod/zod-to-valibot/LICENSE.md",
    "content": "MIT License\n\nCopyright (c) Fabian Hiller and Elton Lobo\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "codemod/zod-to-valibot/README.md",
    "content": "# Zod to Valibot Codemod\n\nOfficial codemod for automatically converting Zod schemas to Valibot schemas.\n\n## Usage\n\n```bash\nnpx @valibot/zod-to-valibot src/**/*\n```\n\n## Options\n\n```bash\n# Dry run (preview changes)\nnpx @valibot/zod-to-valibot --dry src/**/*\n\n# Verbose output\nnpx @valibot/zod-to-valibot --verbose=2 src/**/*\n\n# Use a different parser (default is --parser=ts)\nnpx @valibot/zod-to-valibot --parser=babel src/**/*\n\n# Use different extensions (default is --extensions=ts,tsx,js,jsx)\nnpx @valibot/zod-to-valibot --extensions=ts src/**/*\n```\n\nFor all available options, see [jscodeshift documentation](https://github.com/facebook/jscodeshift#options).\n\n## What Gets Converted\n\nThe codemod converts Zod schemas to Valibot, including:\n\n- Basic schemas (`string`, `number`, `boolean`, `date`, `bigint`)\n- Validation rules (`email`, `min`, `max`, etc.)\n- Coercion (`z.coerce.*` → `v.pipe(v.unknown(), v.toX())`)\n- Objects, arrays, unions, optionals, and more\n\n## Support\n\nFor issues or questions, open an issue on the [Valibot repository](https://github.com/open-circle/valibot).\n"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/any-schema/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.any();\nconst Schema2 = z.any({message: \"some message\"});\nconst Schema3 = z.any({description: \"some description\"});"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/any-schema/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.any();\nconst Schema2 = v.any();\nconst Schema3 = v.pipe(v.any(), v.description(\"some description\"));"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/array-element/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.array(z.string());\nconst Schema2 = Schema1.element;\nconst Schema3 = z.array(z.number()).element;\nconst Schema4 = Schema1.element.trim().email();\nconst Schema5 = z.array(z.string()).element.trim().email();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/array-element/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.array(v.string());\nconst Schema2 = Schema1.item;\nconst Schema3 = v.array(v.number()).item;\nconst Schema4 = v.pipe(Schema1.item, v.trim(), v.email());\nconst Schema5 = v.pipe(v.array(v.string()).item, v.trim(), v.email());"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/array-nonempty/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.array(z.string());\nconst Schema2 = Schema1.nonempty();\nconst Schema3 = z.array(z.number()).nonempty();\nconst Schema4 = z.array(z.boolean()).nonempty(\"cannot be empty\");\nconst Schema5 = z.array(z.null()).nonempty({});\nconst Schema6 = z.array(z.unknown()).nonempty({message: \"Cannot be empty.\"});"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/array-nonempty/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.array(v.string());\nconst Schema2 = v.pipe(Schema1, v.nonEmpty());\nconst Schema3 = v.pipe(v.array(v.number()), v.nonEmpty());\nconst Schema4 = v.pipe(v.array(v.boolean()), v.nonEmpty(\"cannot be empty\"));\nconst Schema5 = v.pipe(v.array(v.null()), v.nonEmpty());\nconst Schema6 = v.pipe(v.array(v.unknown()), v.nonEmpty(\"Cannot be empty.\"));"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/array-schema/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.array(z.string());\nconst Schema2 = z.array(z.string().email());\nconst Schema3 = z.array(z.string(), {message: \"some message\"});\nconst Schema4 = z.array(z.string(), {description: \"some description\"});\nconst Schema5 = z.string().array();\nconst Schema6 = z.string();\nconst Schema7 = Schema6.array();\nconst Schema8 = z.string().email().array();\nconst Schema9 = z.string().email().optional().array();\nconst Schema10 = z.string().email().array().optional();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/array-schema/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.array(v.string());\nconst Schema2 = v.array(v.pipe(v.string(), v.email()));\nconst Schema3 = v.array(v.string(), \"some message\");\nconst Schema4 = v.pipe(v.array(v.string()), v.description(\"some description\"));\nconst Schema5 = v.array(v.string());\nconst Schema6 = v.string();\nconst Schema7 = v.array(Schema6);\nconst Schema8 = v.array(v.pipe(v.string(), v.email()));\nconst Schema9 = v.array(v.optional(v.pipe(v.string(), v.email())));\nconst Schema10 = v.optional(v.array(v.pipe(v.string(), v.email())));"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/array-validation-methods/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.array(z.string()).min(2);\nconst Schema2 = z.array(z.string()).max(3);\nconst Schema3 = z.array(z.string()).length(4);"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/array-validation-methods/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.pipe(v.array(v.string()), v.minLength(2));\nconst Schema2 = v.pipe(v.array(v.string()), v.maxLength(3));\nconst Schema3 = v.pipe(v.array(v.string()), v.length(4));"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/bigint-validation-methods/input.ts",
    "content": "import { z } from \"zod\";\n\nconst GteSchema = z.bigint().gte(1n);\nconst MinSchema = z.bigint().min(2n);\nconst GtSchema = z.bigint().gt(3n);\nconst LteSchema = z.bigint().lte(4n);\nconst MaxSchema = z.bigint().max(5n);\nconst LtSchema = z.bigint().lt(6n);\nconst MultipleOfSchema = z.bigint().multipleOf(7n);\nconst PositiveSchema = z.bigint().positive();\nconst NegativeSchema = z.bigint().negative();\nconst NonPositiveSchema = z.bigint().nonpositive();\nconst NonNegativeSchema = z.bigint().nonnegative();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/bigint-validation-methods/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst GteSchema = v.pipe(v.bigint(), v.minValue(1n));\nconst MinSchema = v.pipe(v.bigint(), v.minValue(2n));\nconst GtSchema = v.pipe(v.bigint(), v.gtValue(3n));\nconst LteSchema = v.pipe(v.bigint(), v.maxValue(4n));\nconst MaxSchema = v.pipe(v.bigint(), v.maxValue(5n));\nconst LtSchema = v.pipe(v.bigint(), v.ltValue(6n));\nconst MultipleOfSchema = v.pipe(v.bigint(), v.multipleOf(7n));\nconst PositiveSchema = v.pipe(v.bigint(), v.gtValue(0n));\nconst NegativeSchema = v.pipe(v.bigint(), v.ltValue(0n));\nconst NonPositiveSchema = v.pipe(v.bigint(), v.maxValue(0n));\nconst NonNegativeSchema = v.pipe(v.bigint(), v.minValue(0n));"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/coerce-bigint-schema/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.coerce.bigint();\nconst Schema2 = z.bigint({ coerce: true });\nconst Schema3 = z.coerce.bigint().gt(1n);\nconst Schema4 = z.bigint({ coerce: true }).lt(2n);"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/coerce-bigint-schema/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.pipe(v.unknown(), v.toBigint());\nconst Schema2 = v.pipe(v.unknown(), v.toBigint());\nconst Schema3 = v.pipe(v.unknown(), v.toBigint(), v.gtValue(1n));\nconst Schema4 = v.pipe(v.unknown(), v.toBigint(), v.ltValue(2n));"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/coerce-boolean-schema/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.coerce.boolean();\nconst Schema2 = z.boolean({ coerce: true });"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/coerce-boolean-schema/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.pipe(v.unknown(), v.toBoolean());\nconst Schema2 = v.pipe(v.unknown(), v.toBoolean());"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/coerce-date-schema/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.coerce.date();\nconst Schema2 = z.date({ coerce: true });\nconst Schema3 = z.coerce.date().min(new Date(\"1/10/23\"));\nconst Schema4 = z.date({ coerce: true }).max(new Date(\"2023-01-10\"));"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/coerce-date-schema/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.pipe(v.unknown(), v.toDate());\nconst Schema2 = v.pipe(v.unknown(), v.toDate());\nconst Schema3 = v.pipe(v.unknown(), v.toDate(), v.minValue(new Date(\"1/10/23\")));\nconst Schema4 = v.pipe(v.unknown(), v.toDate(), v.maxValue(new Date(\"2023-01-10\")));"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/coerce-number-schema/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.coerce.number();\nconst Schema2 = z.number({ coerce: true });\nconst Schema3 = z.coerce.number().finite();\nconst Schema4 = z.number({ coerce: true }).multipleOf(12);"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/coerce-number-schema/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.pipe(v.unknown(), v.toNumber());\nconst Schema2 = v.pipe(v.unknown(), v.toNumber());\nconst Schema3 = v.pipe(v.unknown(), v.toNumber(), v.finite());\nconst Schema4 = v.pipe(v.unknown(), v.toNumber(), v.multipleOf(12));"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/coerce-string-schema/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.coerce.string();\nconst Schema2 = z.string({ coerce: true });\nconst Schema3 = z.coerce.string().email();\nconst Schema4 = z.string({ coerce: true }).url();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/coerce-string-schema/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.pipe(v.unknown(), v.toString());\nconst Schema2 = v.pipe(v.unknown(), v.toString());\nconst Schema3 = v.pipe(v.unknown(), v.toString(), v.email());\nconst Schema4 = v.pipe(v.unknown(), v.toString(), v.url());"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/custom-schema/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.custom<{value: string}>();\nconst Schema2 = z.custom<{value: string}>(input => input);\nconst Schema3 = z.custom<{value: string}>(input => input, \"some message\");\nconst Schema4 = z.custom<{value: string}>(input => input, {message: \"some message\"});\nconst Schema5 = z.custom<{value: string}>(input => input, {fatal: true});\nconst Schema6 = z.custom<{value: string}>(input => input, {fatal: true, message: \"some message\"});\nconst Schema7 = z.custom<{value: string}>(input => input, {params: {key: \"value\"}});\nconst Schema8 = z.custom<{value: string}>(input => input, {path: [\"key\"]});\nconst Schema9 = z.custom<{value: string}>(input => input, input => ({fatal: Boolean(input)}));"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/custom-schema/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.custom<{value: string}>(() => true);\nconst Schema2 = v.custom<{value: string}>(input => input);\nconst Schema3 = v.custom<{value: string}>(input => input, \"some message\");\nconst Schema4 = v.custom<{value: string}>(input => input, \"some message\");\nconst Schema5 = v.custom<{value: string}>(input => input, {fatal: true});\nconst Schema6 = v.custom<{value: string}>(input => input, {fatal: true, message: \"some message\"});\nconst Schema7 = v.custom<{value: string}>(input => input, {params: {key: \"value\"}});\nconst Schema8 = v.custom<{value: string}>(input => input, {path: [\"key\"]});\nconst Schema9 = v.custom<{value: string}>(input => input, input => ({fatal: Boolean(input)}));"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/date-validation-methods/input.ts",
    "content": "import { z } from \"zod\";\n\nconst MinSchema = z.date().min(new Date(\"2025-04-04\"));\nconst MaxSchema = z.date().max(new Date(\"1999-02-03\"));"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/date-validation-methods/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst MinSchema = v.pipe(v.date(), v.minValue(new Date(\"2025-04-04\")));\nconst MaxSchema = v.pipe(v.date(), v.maxValue(new Date(\"1999-02-03\")));"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/default/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.boolean().default(false);\nconst Schema2 = z.number().default(() => Math.floor(Math.random() * 11));\nconst Schema3 = z.string().trim().email().default(\"valibot@example.com\");\nconst Schema4 = z.number().min(0).max(5).default(() => Math.floor(Math.random() * 6));\nconst Schema5 = z.object({key: z.string().default(\"Valibot\")});"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/default/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.optional(v.boolean(), false);\nconst Schema2 = v.optional(v.number(), () => Math.floor(Math.random() * 11));\nconst Schema3 = v.optional(v.pipe(v.string(), v.trim(), v.email()), \"valibot@example.com\");\nconst Schema4 = v.optional(\n  v.pipe(v.number(), v.minValue(0), v.maxValue(5)),\n  () => Math.floor(Math.random() * 6)\n);\nconst Schema5 = v.object({key: v.optional(v.string(), \"Valibot\")});"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/default-import/input.ts",
    "content": "import someName from \"zod\";\n\nconst StringSchema = someName.string();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/default-import/output.ts",
    "content": "import * as someName from \"valibot\";\n\nconst StringSchema = someName.string();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/default-import-with-alias/input.ts",
    "content": "import { default as someName } from \"zod\";\n\nconst StringSchema = someName.string();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/default-import-with-alias/output.ts",
    "content": "import * as someName from \"valibot\";\n\nconst StringSchema = someName.string();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/default-import-with-specific-alias/input.ts",
    "content": "import { default as z } from \"zod\";\n\nconst StringSchema = z.string();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/default-import-with-specific-alias/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst StringSchema = v.string();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/describe/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema = z.string().describe(\"some description\");\nconst description = Schema.description;"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/describe/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema = v.pipe(v.string(), v.description(\"some description\"));\nconst description = v.getDescription(Schema);"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/discriminated-union-schema/input.ts",
    "content": "import { z } from \"zod\";\n\nconst ResultSchema1 = z.discriminatedUnion(\"status\", [\n  z.object({ status: z.literal(\"success\"), data: z.number() }),\n  z.object({ status: z.literal(\"failed\"), error: z.string() }),\n]);\n\nconst ResultSchema2 = z.discriminatedUnion(\"status\", [\n  z.object({ status: z.literal(\"success\"), data: z.number() }),\n  z.object({ status: z.literal(\"failed\"), error: z.string() }),\n], {message: \"some message\"});\n\nconst StateSchema = z.discriminatedUnion(\"status\", [...ResultSchema1.options, z.object({status: z.literal(\"loading\")})]);"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/discriminated-union-schema/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst ResultSchema1 = v.variant(\"status\", [\n  v.object({ status: v.literal(\"success\"), data: v.number() }),\n  v.object({ status: v.literal(\"failed\"), error: v.string() }),\n]);\n\nconst ResultSchema2 = v.variant(\"status\", [\n  v.object({ status: v.literal(\"success\"), data: v.number() }),\n  v.object({ status: v.literal(\"failed\"), error: v.string() }),\n], \"some message\");\n\nconst StateSchema = v.variant(\n  \"status\",\n  [...ResultSchema1.options, v.object({status: v.literal(\"loading\")})]\n);"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/instanceof-schema/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema = z.instanceof(Error);"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/instanceof-schema/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema = v.instance(Error);"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/intersection-schema/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Person = z.object({\n  name: z.string(),\n});\n\nconst Employee = z.object({\n  role: z.string(),\n});\n\nconst Schema1 = z.intersection(Person, Employee);\nconst Schema2 = z.intersection(Person, Employee, {message: \"some message\"});"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/intersection-schema/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Person = v.object({\n  name: v.string(),\n});\n\nconst Employee = v.object({\n  role: v.string(),\n});\n\nconst Schema1 = v.intersect([Person, Employee]);\nconst Schema2 = v.intersect([Person, Employee], \"some message\");"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/literal-schema/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.literal(\"valibot\");\nconst Schema2 = z.literal(\"valibot\", {message: 'should be \"valibot\"'});\nconst Schema3 = z.literal(123);\nconst Schema4 = z.literal(Symbol(\"someSymbol\"));\nconst Schema5 = z.literal(321n);\nconst Schema6 = z.literal(true);\nconst Schema7 = z.literal(null);\nconst Schema8 = z.literal(null, {message: \"should be null\"});\nconst Schema9 = z.literal(undefined);\nconst Schema10 = z.literal(undefined, {message: \"should be undefined\"});"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/literal-schema/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.literal(\"valibot\");\nconst Schema2 = v.literal(\"valibot\", 'should be \"valibot\"');\nconst Schema3 = v.literal(123);\nconst Schema4 = v.literal(Symbol(\"someSymbol\"));\nconst Schema5 = v.literal(321n);\nconst Schema6 = v.literal(true);\nconst Schema7 = v.null();\nconst Schema8 = v.null(\"should be null\");\nconst Schema9 = v.undefined();\nconst Schema10 = v.undefined(\"should be undefined\");"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/map-schema/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.map(z.number(), z.boolean());\nconst Schema2 = z.map(z.number(), z.boolean(), {message: \"some message\"});"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/map-schema/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.map(v.number(), v.boolean());\nconst Schema2 = v.map(v.number(), v.boolean(), \"some message\");"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/multiple-imports-from-zod/input.ts",
    "content": "import { z, ZodAnyType } from \"zod\";\n\nconst Schema1 = z.string();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/multiple-imports-from-zod/output.ts",
    "content": "/* @valibot-migrate: unable to transform imports from Zod to Valibot: Expected exactly one import specifier from \"zod\" or \"zod/v4\". */\nimport { z, ZodAnyType } from \"zod\";\n\nconst Schema1 = z.string();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/named-import/input.ts",
    "content": "import { z } from \"zod\";\n\nconst StringSchema = z.string();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/named-import/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst StringSchema = v.string();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/named-import-with-alias/input.ts",
    "content": "import { z as someName } from \"zod\";\n\nconst StringSchema = someName.string();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/named-import-with-alias/output.ts",
    "content": "import * as someName from \"valibot\";\n\nconst StringSchema = someName.string();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/named-import-with-specific-alias/input.ts",
    "content": "import { z as z } from \"zod\";\n\nconst StringSchema = z.string();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/named-import-with-specific-alias/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst StringSchema = v.string();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/namespace-import/input.ts",
    "content": "import * as someName from \"zod\";\n\nconst StringSchema = someName.string();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/namespace-import/output.ts",
    "content": "import * as someName from \"valibot\";\n\nconst StringSchema = someName.string();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/nan-schema/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.nan();\nconst Schema2 = z.nan({message: \"some message\"});\nconst Schema3 = z.nan({description: \"some description\"});"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/nan-schema/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.nan();\nconst Schema2 = v.nan(\"some message\");\nconst Schema3 = v.pipe(v.nan(), v.description(\"some description\"));"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/native-enum/input.ts",
    "content": "import { z } from \"zod\";\n\n// TypeScript enum\nenum Fruit {\n\tOrange,\n\tApple = \"apple\",\n\tBanana = \"banana\",\n}\nconst FruitEnum = z.nativeEnum(Fruit);\n\n// object literal enum\nconst FruitObj = {\n\tOrange: 0,\n\tApple: \"apple\",\n\tBanana: \"banana\",\n} as const;\nconst FruitObjEnum = z.nativeEnum(FruitObj);\n\n// access underlying object using `enum` property\nenum Answer {\n\tYes = \"Yes\",\n\tNo = \"No\",\n}\nconst NativeAnswerEnum = z.nativeEnum(Answer);\nconst AnswerEnum = NativeAnswerEnum.enum;"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/native-enum/output.ts",
    "content": "import * as v from \"valibot\";\n\n// TypeScript enum\nenum Fruit {\n\tOrange,\n\tApple = \"apple\",\n\tBanana = \"banana\",\n}\nconst FruitEnum = v.enum(Fruit);\n\n// object literal enum\nconst FruitObj = {\n\tOrange: 0,\n\tApple: \"apple\",\n\tBanana: \"banana\",\n} as const;\nconst FruitObjEnum = v.enum(FruitObj);\n\n// access underlying object using `enum` property\nenum Answer {\n\tYes = \"Yes\",\n\tNo = \"No\",\n}\nconst NativeAnswerEnum = v.enum(Answer);\nconst AnswerEnum = NativeAnswerEnum.enum;"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/never-schema/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.never();\nconst Schema2 = z.never({message: \"some message\"});\nconst Schema3 = z.never({description: \"some description\"});"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/never-schema/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.never();\nconst Schema2 = v.never(\"some message\");\nconst Schema3 = v.pipe(v.never(), v.description(\"some description\"));"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/null-schema/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.null();\nconst Schema2 = z.null({message: \"some message\"});\nconst Schema3 = z.null({description: \"some description\"});"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/null-schema/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.null();\nconst Schema2 = v.null(\"some message\");\nconst Schema3 = v.pipe(v.null(), v.description(\"some description\"));"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/nullable-schema/input.ts",
    "content": "import { z } from \"zod\";\n\n// nullable outside object\nconst Schema1 = z.string().nullable();\nconst Schema2 = z.nullable(z.string());\nconst Schema3 = z.string();\nconst Schema4 = Schema3.nullable();\n\n// nullable inside object\nconst Schema5 = z.object({key: z.string().nullable()});\nconst Schema6 = z.object({key: z.nullable(z.string())});\nconst Schema7 = z.object({key: z.string().email().nullable()});\nconst Schema8 = z.object({key: z.nullable(z.string().email())});\nconst Schema9 = z.object({key: z.number()});\n\n// get the wrapped schema\nconst Schema10 = z.number().nullable();\nconst Schema11 = Schema10.unwrap();\n"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/nullable-schema/output.ts",
    "content": "import * as v from \"valibot\";\n\n// nullable outside object\nconst Schema1 = v.nullable(v.string());\nconst Schema2 = v.nullable(v.string());\nconst Schema3 = v.string();\nconst Schema4 = v.nullable(Schema3);\n\n// nullable inside object\nconst Schema5 = v.object({key: v.nullable(v.string())});\nconst Schema6 = v.object({key: v.nullable(v.string())});\nconst Schema7 = v.object({key: v.nullable(v.pipe(v.string(), v.email()))});\nconst Schema8 = v.object({key: v.nullable(v.pipe(v.string(), v.email()))});\nconst Schema9 = v.object({key: v.number()});\n\n// get the wrapped schema\nconst Schema10 = v.nullable(v.number());\nconst Schema11 = v.unwrap(Schema10);\n"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/nullish-schema/input.ts",
    "content": "import { z } from \"zod\";\n\n// nullish outside object\nconst Schema1 = z.string().nullish();\nconst Schema2 = z.string();\nconst Schema3 = Schema2.nullish();\n\n// nullish inside object\nconst Schema4 = z.object({key: z.string().nullish()});\nconst Schema5 = z.object({key: z.string().email().nullish()});\nconst Schema6 = z.object({key: z.number()});\n\n// get the wrapped schema\nconst Schema7 = z.number().nullish();\nconst Schema8 = Schema7.unwrap();\nconst Schema9 = Schema7.unwrap().unwrap();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/nullish-schema/output.ts",
    "content": "import * as v from \"valibot\";\n\n// nullish outside object\nconst Schema1 = v.optional(v.nullable(v.string()));\nconst Schema2 = v.string();\nconst Schema3 = v.optional(v.nullable(Schema2));\n\n// nullish inside object\nconst Schema4 = v.object({key: v.optional(v.nullable(v.string()))});\nconst Schema5 = v.object({key: v.optional(v.nullable(v.pipe(v.string(), v.email())))});\nconst Schema6 = v.object({key: v.number()});\n\n// get the wrapped schema\nconst Schema7 = v.optional(v.nullable(v.number()));\nconst Schema8 = v.unwrap(Schema7);\nconst Schema9 = v.unwrap(v.unwrap(Schema7));"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/number-validation-methods/input.ts",
    "content": "import { z } from \"zod\";\n\nconst GteSchema = z.number().gte(1);\nconst MinSchema = z.number().min(2);\nconst GtSchema = z.number().gt(3);\nconst LteSchema = z.number().lte(4);\nconst MaxSchema = z.number().max(5);\nconst LtSchema = z.number().lt(6);\nconst IntSchema = z.number().int();\nconst PositiveSchema = z.number().positive();\nconst NegativeSchema = z.number().negative();\nconst NonPositiveSchema = z.number().nonpositive();\nconst NonNegativeSchema = z.number().nonnegative();\nconst MultipleOfSchema = z.number().multipleOf(3);\nconst StepSchema = z.number().step(3);\nconst FiniteSchema = z.number().finite();\nconst SafeSchema = z.number().safe();\n"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/number-validation-methods/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst GteSchema = v.pipe(v.number(), v.minValue(1));\nconst MinSchema = v.pipe(v.number(), v.minValue(2));\nconst GtSchema = v.pipe(v.number(), v.gtValue(3));\nconst LteSchema = v.pipe(v.number(), v.maxValue(4));\nconst MaxSchema = v.pipe(v.number(), v.maxValue(5));\nconst LtSchema = v.pipe(v.number(), v.ltValue(6));\nconst IntSchema = v.pipe(v.number(), v.integer());\nconst PositiveSchema = v.pipe(v.number(), v.gtValue(0));\nconst NegativeSchema = v.pipe(v.number(), v.ltValue(0));\nconst NonPositiveSchema = v.pipe(v.number(), v.maxValue(0));\nconst NonNegativeSchema = v.pipe(v.number(), v.minValue(0));\nconst MultipleOfSchema = v.pipe(v.number(), v.multipleOf(3));\nconst StepSchema = v.pipe(v.number(), v.multipleOf(3));\nconst FiniteSchema = v.pipe(v.number(), v.finite());\nconst SafeSchema = v.pipe(v.number(), v.safeInteger());"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/object-catchall/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.object({key: z.string()}).catchall(z.null());\nconst Schema2 = z.object({key: z.string()}, {message: \"some message\"}).catchall(z.null());\nconst Schema3 = z.object({key: z.string()}, {description: \"some description\"}).catchall(z.null());\nconst Schema4 = z.object({key: z.string()});\nconst Schema5 = Schema4.catchall(z.null());"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/object-catchall/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.objectWithRest({key: v.string()}, v.null());\nconst Schema2 = v.objectWithRest({key: v.string()}, v.null(), \"some message\");\nconst Schema3 = v.pipe(\n  v.object({key: v.string()}),\n  v.description(\"some description\"),\n  v.catchall(v.null())\n);\nconst Schema4 = v.object({key: v.string()});\nconst Schema5 = v.pipe(Schema4, v.catchall(v.null()));"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/object-deepPartial/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.object({k1: z.string(), k2: z.number(), k3: z.boolean()});\nconst Schema2 = Schema1.deepPartial();\nconst Schema3 = z.object({k1: z.string(), k2: z.number(), k3: z.boolean()}).deepPartial();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/object-deepPartial/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.object({k1: v.string(), k2: v.number(), k3: v.boolean()});\nconst Schema2 = v.deepPartial(Schema1);\nconst Schema3 = v.deepPartial(v.object({k1: v.string(), k2: v.number(), k3: v.boolean()}));"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/object-extend/input.ts",
    "content": "import { z } from \"zod\";\n\n// plain\nconst Schema1 = z.object({foo: z.string()}).extend({bar: z.number()});\nconst Schema2 = z.object({foo: z.number()});\nconst Schema3 = Schema2.extend({bar: z.string()});\n\n// passthrough\nconst Schema4 = z.object({foo: z.string()}).passthrough().extend({bar: z.number()});\nconst Schema5 = z.object({foo: z.number()}).passthrough();\nconst Schema6 = Schema5.extend({bar: z.string()});\nconst Schema7 = z.object({foo: z.string()}).extend({bar: z.number()}).passthrough();\nconst Schema8 = Schema2.extend({bar: z.string()}).passthrough();\n\n// strict\nconst Schema9 = z.object({foo: z.string()}).strict().extend({bar: z.number()});\nconst Schema10 = z.object({foo: z.number()}).strict();\nconst Schema11 = Schema10.extend({bar: z.string()});\nconst Schema12 = z.object({foo: z.string()}).extend({bar: z.number()}).strict();\nconst Schema13 = Schema2.extend({bar: z.string()}).strict();\n\n// strip\nconst Schema14 = z.object({foo: z.string()}).strict().strip().extend({bar: z.number()});\nconst Schema15 = z.object({foo: z.number()}).strict().strip();\nconst Schema16 = Schema15.extend({bar: z.string()});\nconst Schema17 = z.object({foo: z.string()}).extend({bar: z.number()}).strict().strip();\nconst Schema18 = Schema2.extend({bar: z.string()}).strict().strip();\n\n// catchall\nconst Schema19 = z.object({foo: z.string()}).catchall(z.null()).extend({bar: z.number()});\nconst Schema20 = z.object({foo: z.number()}).catchall(z.null());\nconst Schema21 = Schema20.extend({bar: z.string()});\nconst Schema22 = z.object({foo: z.string()}).extend({bar: z.number()}).catchall(z.null());\nconst Schema23 = Schema2.extend({bar: z.string()}).catchall(z.null());\n\n// i don't know which crazy person would do this, but it is valid\n// and we support it so we might as well test it\nconst Schema24 = Schema23.extend(...[Schema22.shape]);\n\n// ------------ Expected transform ------------\n// // plain\n// const Schema1 = v.object({\n//   foo: v.string(),\n//   bar: v.number()\n// });\n// const Schema2 = v.object({foo: v.number()});\n// const Schema3 = v.object({\n//   ...Schema2.entries,\n//   bar: v.string()\n// });\n\n// // passthrough\n// const Schema4 = v.object({\n//   ...v.looseObject({foo: v.string()}).entries,\n//   bar: v.number()\n// });\n// const Schema5 = v.looseObject({foo: v.number()});\n// const Schema6 = v.object({\n//   ...Schema5.entries,\n//   bar: v.string()\n// });\n// const Schema7 = v.looseObject({\n//   ...v.looseObject({foo: v.string()}).entries,\n//   bar: v.number()\n// });\n// const Schema8 = v.looseObject({\n//   ...Schema2.entries,\n//   bar: v.string()\n// });\n\n// // strict\n// const Schema9 = v.object({\n//   ...v.strictObject({foo: v.string()}).entries,\n//   bar: v.number()\n// });\n// const Schema10 = v.strictObject({foo: v.number()});\n// const Schema11 = v.object({\n//   ...Schema10.entries,\n//   bar: v.string()\n// });\n// const Schema12 = v.strictObject({\n//   ...v.strictObject({foo: v.string()}).entries,\n//   bar: v.number()\n// });\n// const Schema13 = v.strictObject({\n//   ...Schema2.entries,\n//   bar: v.string()\n// });\n\n// // strip\n// const Schema14 = v.object({\n//   foo: v.string(),\n//   bar: v.number()\n// });\n// const Schema15 = v.object({foo: v.number()});\n// const Schema16 = v.object({\n//   ...Schema15.entries,\n//   bar: v.string()\n// });\n// const Schema17 = v.object({\n//   foo: v.string(),\n//   bar: v.number()\n// });\n// const Schema18 = v.object({\n//   ...Schema2.entries,\n//   bar: v.string()\n// });\n\n// // catchall\n// const Schema19 = v.object({\n//   ...v.objectWithRest({foo: v.string()}, v.null()).entries,\n//   bar: v.number()\n// });\n// const Schema20 = v.objectWithRest({foo: v.number()}, v.null());\n// const Schema21 = v.object({\n//   ...Schema20.entries,\n//   bar: v.string()\n// });\n// const Schema22 = v.objectWithRest({\n//   foo: v.string(),\n//   bar: v.number()\n// }, v.null());\n// const Schema23 = v.objectWithRest({\n//   ...Schema2.entries,\n//   bar: v.string()\n// }, v.null());"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/object-extend/output.ts",
    "content": "import * as v from \"valibot\";\n\n// plain\nconst Schema1 = v.object({\n  foo: v.string(),\n  bar: v.number()\n});\nconst Schema2 = v.object({foo: v.number()});\nconst Schema3 = v.object({\n  .../*@valibot-migrate we can't detect if Schema2 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema2.entries,\n\n  bar: v.string()\n});\n\n// passthrough\nconst Schema4 = v.object({\n  ...v.looseObject({foo: v.string()}).entries,\n  bar: v.number()\n});\nconst Schema5 = v.looseObject({foo: v.number()});\nconst Schema6 = v.object({\n  .../*@valibot-migrate we can't detect if Schema5 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema5.entries,\n\n  bar: v.string()\n});\nconst Schema7 = v.looseObject({\n  ...v.looseObject({foo: v.string()}).entries,\n  bar: v.number()\n});\nconst Schema8 = v.looseObject({\n  .../*@valibot-migrate we can't detect if Schema2 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema2.entries,\n\n  bar: v.string()\n});\n\n// strict\nconst Schema9 = v.object({\n  ...v.strictObject({foo: v.string()}).entries,\n  bar: v.number()\n});\nconst Schema10 = v.strictObject({foo: v.number()});\nconst Schema11 = v.object({\n  .../*@valibot-migrate we can't detect if Schema10 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema10.entries,\n\n  bar: v.string()\n});\nconst Schema12 = v.strictObject({\n  ...v.strictObject({foo: v.string()}).entries,\n  bar: v.number()\n});\nconst Schema13 = v.strictObject({\n  .../*@valibot-migrate we can't detect if Schema2 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema2.entries,\n\n  bar: v.string()\n});\n\n// strip\nconst Schema14 = v.object({\n  foo: v.string(),\n  bar: v.number()\n});\nconst Schema15 = v.object({foo: v.number()});\nconst Schema16 = v.object({\n  .../*@valibot-migrate we can't detect if Schema15 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema15.entries,\n\n  bar: v.string()\n});\nconst Schema17 = v.object({\n  foo: v.string(),\n  bar: v.number()\n});\nconst Schema18 = v.object({\n  .../*@valibot-migrate we can't detect if Schema2 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema2.entries,\n\n  bar: v.string()\n});\n\n// catchall\nconst Schema19 = v.object({\n  ...v.objectWithRest({foo: v.string()}, v.null()).entries,\n  bar: v.number()\n});\nconst Schema20 = v.objectWithRest({foo: v.number()}, v.null());\nconst Schema21 = v.object({\n  .../*@valibot-migrate we can't detect if Schema20 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema20.entries,\n\n  bar: v.string()\n});\nconst Schema22 = v.objectWithRest({\n  foo: v.string(),\n  bar: v.number()\n}, v.null());\nconst Schema23 = v.objectWithRest({\n  .../*@valibot-migrate we can't detect if Schema2 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema2.entries,\n\n  bar: v.string()\n}, v.null());\n\n// i don't know which crazy person would do this, but it is valid\n// and we support it so we might as well test it\nconst Schema24 = v.object({\n  .../*@valibot-migrate we can't detect if Schema23 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema23.entries,\n\n  ...[Schema22.entries]\n});\n\n// ------------ Expected transform ------------\n// // plain\n// const Schema1 = v.object({\n//   foo: v.string(),\n//   bar: v.number()\n// });\n// const Schema2 = v.object({foo: v.number()});\n// const Schema3 = v.object({\n//   ...Schema2.entries,\n//   bar: v.string()\n// });\n\n// // passthrough\n// const Schema4 = v.object({\n//   ...v.looseObject({foo: v.string()}).entries,\n//   bar: v.number()\n// });\n// const Schema5 = v.looseObject({foo: v.number()});\n// const Schema6 = v.object({\n//   ...Schema5.entries,\n//   bar: v.string()\n// });\n// const Schema7 = v.looseObject({\n//   ...v.looseObject({foo: v.string()}).entries,\n//   bar: v.number()\n// });\n// const Schema8 = v.looseObject({\n//   ...Schema2.entries,\n//   bar: v.string()\n// });\n\n// // strict\n// const Schema9 = v.object({\n//   ...v.strictObject({foo: v.string()}).entries,\n//   bar: v.number()\n// });\n// const Schema10 = v.strictObject({foo: v.number()});\n// const Schema11 = v.object({\n//   ...Schema10.entries,\n//   bar: v.string()\n// });\n// const Schema12 = v.strictObject({\n//   ...v.strictObject({foo: v.string()}).entries,\n//   bar: v.number()\n// });\n// const Schema13 = v.strictObject({\n//   ...Schema2.entries,\n//   bar: v.string()\n// });\n\n// // strip\n// const Schema14 = v.object({\n//   foo: v.string(),\n//   bar: v.number()\n// });\n// const Schema15 = v.object({foo: v.number()});\n// const Schema16 = v.object({\n//   ...Schema15.entries,\n//   bar: v.string()\n// });\n// const Schema17 = v.object({\n//   foo: v.string(),\n//   bar: v.number()\n// });\n// const Schema18 = v.object({\n//   ...Schema2.entries,\n//   bar: v.string()\n// });\n\n// // catchall\n// const Schema19 = v.object({\n//   ...v.objectWithRest({foo: v.string()}, v.null()).entries,\n//   bar: v.number()\n// });\n// const Schema20 = v.objectWithRest({foo: v.number()}, v.null());\n// const Schema21 = v.object({\n//   ...Schema20.entries,\n//   bar: v.string()\n// });\n// const Schema22 = v.objectWithRest({\n//   foo: v.string(),\n//   bar: v.number()\n// }, v.null());\n// const Schema23 = v.objectWithRest({\n//   ...Schema2.entries,\n//   bar: v.string()\n// }, v.null());"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/object-keyof/input.ts",
    "content": "import { z } from \"zod\";\n\nconst ObjectSchema = z.object({apple: z.string(), banana: z.number(), orange: z.boolean()});\nconst FruitEnum1 = ObjectSchema.keyof();\nconst FruitEnum2 = z.object({apple: z.string(), banana: z.number(), orange: z.boolean()}).keyof();\n"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/object-keyof/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst ObjectSchema = v.object({apple: v.string(), banana: v.number(), orange: v.boolean()});\nconst FruitEnum1 = v.keyof(ObjectSchema);\nconst FruitEnum2 = v.keyof(v.object({apple: v.string(), banana: v.number(), orange: v.boolean()}));\n"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/object-merge/input.ts",
    "content": "import { z } from \"zod\";\n\n// plain\nconst Schema1 = z.object({foo: z.string()}).merge(z.object({bar: z.number()}));\nconst Schema2 = z.object({foo: z.number()});\nconst Schema3 = Schema2.merge(z.object({bar: z.string()}));\nconst Schema4 = z.object({bar: z.number()});\nconst Schema5 = z.object({foo: z.string()}).merge(Schema4);\nconst Schema6 = Schema2.merge(Schema4);\n\n// passthrough\nconst Schema7 = z.object({foo: z.string()}).merge(z.object({bar: z.number()}).passthrough());\nconst Schema8 = Schema2.merge(z.object({bar: z.string()}).passthrough());\nconst Schema9 = z.object({bar: z.number()}).passthrough();\nconst Schema10 = z.object({foo: z.string()}).merge(Schema9);\nconst Schema11 = Schema2.merge(Schema9);\n\n// strict\nconst Schema12 = z.object({foo: z.string()}).merge(z.object({bar: z.number()}).strict());\nconst Schema13 = Schema2.merge(z.object({bar: z.string()}).strict());\nconst Schema14 = z.object({bar: z.number()}).strict();\nconst Schema15 = z.object({foo: z.string()}).merge(Schema14);\nconst Schema16 = Schema2.merge(Schema14);\n\n// strip\nconst Schema17 = z.object({foo: z.string()}).merge(z.object({bar: z.number()}).strict().strip());\nconst Schema18 = Schema2.merge(z.object({bar: z.string()}).strict().strip());\nconst Schema19 = z.object({bar: z.number()}).strict().strip();\nconst Schema20 = z.object({foo: z.string()}).merge(Schema19);\nconst Schema21 = Schema2.merge(Schema19);\n\n// catchall\nconst Schema22 = z.object({foo: z.string()}).merge(z.object({bar: z.number()}).catchall(z.null()));\nconst Schema23 = Schema2.merge(z.object({bar: z.string()}).catchall(z.null()));\nconst Schema24 = z.object({bar: z.number()}).catchall(z.null());\nconst Schema25 = z.object({foo: z.string()}).merge(Schema24);\nconst Schema26 = Schema2.merge(Schema24);\n\n// i don't know which crazy person would do this, but it is valid\n// and we support it so we might as well test it\nconst Schema27 = Schema26.merge(...[Schema25]);\n\n// ------------ Expected transform ------------\n// // plain\n// const Schema1 = v.object({\n//   foo: v.string(),\n//   bar: v.number()\n// });\n// const Schema2 = v.object({foo: v.number()});\n// const Schema3 = v.object({\n//   ...Schema2.entries,\n//   bar: v.string()\n// });\n// const Schema4 = v.object({bar: v.number()});\n// const Schema5 = v.object({\n//   foo: v.string(),\n//   ...Schema4.entries\n// });\n// const Schema6 = v.object({\n//   ...Schema2.entries,\n//   ...Schema4.entries\n// });\n\n// // passthrough\n// const Schema7 = v.object({\n//   foo: v.string(),\n//   ...v.looseObject({bar: v.number()}).entries\n// });\n// const Schema8 = v.object({\n//   ...Schema2.entries,\n//   ...v.looseObject({bar: v.string()}).entries\n// });\n// const Schema9 = v.looseObject({bar: v.number()});\n// const Schema10 = v.object({\n//   foo: v.string(),\n//   ...Schema9.entries\n// });\n// const Schema11 = v.object({\n//   ...Schema2.entries,\n//   ...Schema9.entries\n// });\n\n// // strict\n// const Schema12 = v.object({\n//   foo: v.string(),\n//   ...v.strictObject({bar: v.number()}).entries\n// });\n// const Schema13 = v.object({\n//   ...Schema2.entries,\n//   ...v.strictObject({bar: v.string()}).entries\n// });\n// const Schema14 = v.strictObject({bar: v.number()});\n// const Schema15 = v.object({\n//   foo: v.string(),\n//   ...Schema14.entries\n// });\n// const Schema16 = v.object({\n//   ...Schema2.entries,\n//   ...Schema14.entries\n// });\n\n// // strip\n// const Schema17 = v.object({\n//   foo: v.string(),\n//   bar: v.number()\n// });\n// const Schema18 = v.object({\n//   ...Schema2.entries,\n//   bar: v.string()\n// });\n// const Schema19 = v.object({bar: v.number()});\n// const Schema20 = v.object({\n//   foo: v.string(),\n//   ...Schema19.entries\n// });\n// const Schema21 = v.object({\n//   ...Schema2.entries,\n//   ...Schema19.entries\n// });\n\n// // catchall\n// const Schema22 = v.object({\n//   foo: v.string(),\n//   ...v.objectWithRest({bar: v.number()}, v.null()).entries\n// });\n// const Schema23 = v.object({\n//   ...Schema2.entries,\n//   ...v.objectWithRest({bar: v.string()}, v.null()).entries\n// });\n// const Schema24 = v.objectWithRest({bar: v.number()}, v.null());\n// const Schema25 = v.object({\n//   foo: v.string(),\n//   ...Schema24.entries\n// });\n// const Schema26 = v.object({\n//   ...Schema2.entries,\n//   ...Schema24.entries\n// });"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/object-merge/output.ts",
    "content": "import * as v from \"valibot\";\n\n// plain\nconst Schema1 = v.object({\n  foo: v.string(),\n  bar: v.number()\n});\nconst Schema2 = v.object({foo: v.number()});\nconst Schema3 = v.object({\n  .../*@valibot-migrate we can't detect if Schema2 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema2.entries,\n\n  bar: v.string()\n});\nconst Schema4 = v.object({bar: v.number()});\nconst Schema5 = v.object({\n  foo: v.string(),\n\n  .../*@valibot-migrate we can't detect if Schema4 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema4.entries\n});\nconst Schema6 = v.object({\n  .../*@valibot-migrate we can't detect if Schema2 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema2.entries,\n\n  .../*@valibot-migrate we can't detect if Schema4 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema4.entries\n});\n\n// passthrough\nconst Schema7 = v.object({\n  foo: v.string(),\n  ...v.looseObject({bar: v.number()}).entries\n});\nconst Schema8 = v.object({\n  .../*@valibot-migrate we can't detect if Schema2 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema2.entries,\n\n  ...v.looseObject({bar: v.string()}).entries\n});\nconst Schema9 = v.looseObject({bar: v.number()});\nconst Schema10 = v.object({\n  foo: v.string(),\n\n  .../*@valibot-migrate we can't detect if Schema9 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema9.entries\n});\nconst Schema11 = v.object({\n  .../*@valibot-migrate we can't detect if Schema2 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema2.entries,\n\n  .../*@valibot-migrate we can't detect if Schema9 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema9.entries\n});\n\n// strict\nconst Schema12 = v.object({\n  foo: v.string(),\n  ...v.strictObject({bar: v.number()}).entries\n});\nconst Schema13 = v.object({\n  .../*@valibot-migrate we can't detect if Schema2 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema2.entries,\n\n  ...v.strictObject({bar: v.string()}).entries\n});\nconst Schema14 = v.strictObject({bar: v.number()});\nconst Schema15 = v.object({\n  foo: v.string(),\n\n  .../*@valibot-migrate we can't detect if Schema14 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema14.entries\n});\nconst Schema16 = v.object({\n  .../*@valibot-migrate we can't detect if Schema2 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema2.entries,\n\n  .../*@valibot-migrate we can't detect if Schema14 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema14.entries\n});\n\n// strip\nconst Schema17 = v.object({\n  foo: v.string(),\n  bar: v.number()\n});\nconst Schema18 = v.object({\n  .../*@valibot-migrate we can't detect if Schema2 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema2.entries,\n\n  bar: v.string()\n});\nconst Schema19 = v.object({bar: v.number()});\nconst Schema20 = v.object({\n  foo: v.string(),\n\n  .../*@valibot-migrate we can't detect if Schema19 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema19.entries\n});\nconst Schema21 = v.object({\n  .../*@valibot-migrate we can't detect if Schema2 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema2.entries,\n\n  .../*@valibot-migrate we can't detect if Schema19 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema19.entries\n});\n\n// catchall\nconst Schema22 = v.object({\n  foo: v.string(),\n  ...v.objectWithRest({bar: v.number()}, v.null()).entries\n});\nconst Schema23 = v.object({\n  .../*@valibot-migrate we can't detect if Schema2 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema2.entries,\n\n  ...v.objectWithRest({bar: v.string()}, v.null()).entries\n});\nconst Schema24 = v.objectWithRest({bar: v.number()}, v.null());\nconst Schema25 = v.object({\n  foo: v.string(),\n\n  .../*@valibot-migrate we can't detect if Schema24 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema24.entries\n});\nconst Schema26 = v.object({\n  .../*@valibot-migrate we can't detect if Schema2 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema2.entries,\n\n  .../*@valibot-migrate we can't detect if Schema24 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema24.entries\n});\n\n// i don't know which crazy person would do this, but it is valid\n// and we support it so we might as well test it\nconst Schema27 = v.object({\n  .../*@valibot-migrate we can't detect if Schema26 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema26.entries,\n\n  ...[Schema25].entries\n});\n\n// ------------ Expected transform ------------\n// // plain\n// const Schema1 = v.object({\n//   foo: v.string(),\n//   bar: v.number()\n// });\n// const Schema2 = v.object({foo: v.number()});\n// const Schema3 = v.object({\n//   ...Schema2.entries,\n//   bar: v.string()\n// });\n// const Schema4 = v.object({bar: v.number()});\n// const Schema5 = v.object({\n//   foo: v.string(),\n//   ...Schema4.entries\n// });\n// const Schema6 = v.object({\n//   ...Schema2.entries,\n//   ...Schema4.entries\n// });\n\n// // passthrough\n// const Schema7 = v.object({\n//   foo: v.string(),\n//   ...v.looseObject({bar: v.number()}).entries\n// });\n// const Schema8 = v.object({\n//   ...Schema2.entries,\n//   ...v.looseObject({bar: v.string()}).entries\n// });\n// const Schema9 = v.looseObject({bar: v.number()});\n// const Schema10 = v.object({\n//   foo: v.string(),\n//   ...Schema9.entries\n// });\n// const Schema11 = v.object({\n//   ...Schema2.entries,\n//   ...Schema9.entries\n// });\n\n// // strict\n// const Schema12 = v.object({\n//   foo: v.string(),\n//   ...v.strictObject({bar: v.number()}).entries\n// });\n// const Schema13 = v.object({\n//   ...Schema2.entries,\n//   ...v.strictObject({bar: v.string()}).entries\n// });\n// const Schema14 = v.strictObject({bar: v.number()});\n// const Schema15 = v.object({\n//   foo: v.string(),\n//   ...Schema14.entries\n// });\n// const Schema16 = v.object({\n//   ...Schema2.entries,\n//   ...Schema14.entries\n// });\n\n// // strip\n// const Schema17 = v.object({\n//   foo: v.string(),\n//   bar: v.number()\n// });\n// const Schema18 = v.object({\n//   ...Schema2.entries,\n//   bar: v.string()\n// });\n// const Schema19 = v.object({bar: v.number()});\n// const Schema20 = v.object({\n//   foo: v.string(),\n//   ...Schema19.entries\n// });\n// const Schema21 = v.object({\n//   ...Schema2.entries,\n//   ...Schema19.entries\n// });\n\n// // catchall\n// const Schema22 = v.object({\n//   foo: v.string(),\n//   ...v.objectWithRest({bar: v.number()}, v.null()).entries\n// });\n// const Schema23 = v.object({\n//   ...Schema2.entries,\n//   ...v.objectWithRest({bar: v.string()}, v.null()).entries\n// });\n// const Schema24 = v.objectWithRest({bar: v.number()}, v.null());\n// const Schema25 = v.object({\n//   foo: v.string(),\n//   ...Schema24.entries\n// });\n// const Schema26 = v.object({\n//   ...Schema2.entries,\n//   ...Schema24.entries\n// });"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/object-omit/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.object({k1: z.string(), k2: z.number(), k3: z.boolean()});\nconst Schema2 = Schema1.omit({k1: true, k3: true});\n\nconst Schema3 = z.object({k1: z.string(), k2: z.number(), k3: z.boolean()}).omit({k2: true});\n\nconst Schema4 = z.object({key: z.string()}).omit({});\n\nconst Schema5 = Schema1.omit({});"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/object-omit/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.object({k1: v.string(), k2: v.number(), k3: v.boolean()});\nconst Schema2 = v.omit(Schema1, [\"k1\", \"k3\"]);\n\nconst Schema3 = v.omit(v.object({k1: v.string(), k2: v.number(), k3: v.boolean()}), [\"k2\"]);\n\nconst Schema4 = v.object({key: v.string()});\n\nconst Schema5 = Schema1;"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/object-partial/input.ts",
    "content": "import { z } from \"zod\";\n\n// make all keys optional\nconst Schema1 = z.object({k1: z.string(), k2: z.number(), k3: z.boolean()});\nconst Schema2 = Schema1.partial();\nconst Schema3 = z.object({k1: z.string(), k2: z.number(), k3: z.boolean()}).partial();\n\n// make none of the keys optional\nconst Schema4 = Schema1.partial({});\nconst Schema5 = z.object({key: z.string()}).partial({});\n\n// make some keys optional\nconst Schema6 = z.object({k1: z.string(), k2: z.number(), k3: z.boolean()});\nconst Schema7 = Schema6.partial({k1: true, k3: true});\nconst Schema8 = z.object({k1: z.string(), k2: z.number(), k3: z.boolean()}).partial({k2: true});"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/object-partial/output.ts",
    "content": "import * as v from \"valibot\";\n\n// make all keys optional\nconst Schema1 = v.object({k1: v.string(), k2: v.number(), k3: v.boolean()});\nconst Schema2 = v.partial(Schema1);\nconst Schema3 = v.partial(v.object({k1: v.string(), k2: v.number(), k3: v.boolean()}));\n\n// make none of the keys optional\nconst Schema4 = Schema1;\nconst Schema5 = v.object({key: v.string()});\n\n// make some keys optional\nconst Schema6 = v.object({k1: v.string(), k2: v.number(), k3: v.boolean()});\nconst Schema7 = v.partial(Schema6, [\"k1\", \"k3\"]);\nconst Schema8 = v.partial(v.object({k1: v.string(), k2: v.number(), k3: v.boolean()}), [\"k2\"]);"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/object-passthrough/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.object({key: z.string()}).passthrough();\nconst Schema2 = z.object({key: z.string()}, {message: \"some message\"}).passthrough();\nconst Schema3 = z.object({key: z.string()}, {description: \"some description\"}).passthrough();\nconst Schema4 = z.object({key: z.string()});\nconst Schema5 = Schema4.passthrough();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/object-passthrough/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.looseObject({key: v.string()});\nconst Schema2 = v.looseObject({key: v.string()}, \"some message\");\nconst Schema3 = v.pipe(v.looseObject({key: v.string()}), v.description(\"some description\"));\nconst Schema4 = v.object({key: v.string()});\nconst Schema5 = v.looseObject(\n  /*@valibot-migrate we can't detect if Schema4 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema4.entries\n);"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/object-pick/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.object({k1: z.string(), k2: z.number(), k3: z.boolean()});\nconst Schema2 = Schema1.pick({k1: true, k3: true});\n\nconst Schema3 = z.object({k1: z.string(), k2: z.number(), k3: z.boolean()}).pick({k2: true});\n\n// todo: const Schema4 = z.object({key: z.string()}).pick({});"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/object-pick/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.object({k1: v.string(), k2: v.number(), k3: v.boolean()});\nconst Schema2 = v.pick(Schema1, [\"k1\", \"k3\"]);\n\nconst Schema3 = v.pick(v.object({k1: v.string(), k2: v.number(), k3: v.boolean()}), [\"k2\"]);\n\n// todo: const Schema4 = z.object({key: z.string()}).pick({});"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/object-required/input.ts",
    "content": "import { z } from \"zod\";\n\n// make all keys required\nconst Schema1 = z.object({k1: z.string(), k2: z.number(), k3: z.boolean()}).partial();\nconst Schema2 = Schema1.required();\nconst Schema3 = z.object({k1: z.string(), k2: z.number(), k3: z.boolean()}).partial().required();\n\n// make none of the keys required\nconst Schema4 = Schema1.partial().required({});\nconst Schema5 = z.object({key: z.string()}).partial().required({});\n\n// make some keys required\nconst Schema6 = z.object({k1: z.string(), k2: z.number(), k3: z.boolean()}).partial();\nconst Schema7 = Schema6.required({k1: true, k3: true});\nconst Schema8 = z.object({k1: z.string(), k2: z.number(), k3: z.boolean()}).partial().required({k2: true});"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/object-required/output.ts",
    "content": "import * as v from \"valibot\";\n\n// make all keys required\nconst Schema1 = v.partial(v.object({k1: v.string(), k2: v.number(), k3: v.boolean()}));\nconst Schema2 = v.required(Schema1);\nconst Schema3 = v.required(v.partial(v.object({k1: v.string(), k2: v.number(), k3: v.boolean()})));\n\n// make none of the keys required\nconst Schema4 = v.partial(Schema1);\nconst Schema5 = v.partial(v.object({key: v.string()}));\n\n// make some keys required\nconst Schema6 = v.partial(v.object({k1: v.string(), k2: v.number(), k3: v.boolean()}));\nconst Schema7 = v.required(Schema6, [\"k1\", \"k3\"]);\nconst Schema8 = v.required(\n  v.partial(v.object({k1: v.string(), k2: v.number(), k3: v.boolean()})),\n  [\"k2\"]\n);"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/object-shape/input.ts",
    "content": "import { z } from \"zod\";\n\nconst ObjectSchema = z.object({key: z.string()});\n\nconst StringSchema = ObjectSchema.shape.key;\n"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/object-shape/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst ObjectSchema = v.object({key: v.string()});\n\nconst StringSchema = ObjectSchema.entries.key;\n"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/object-strict/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.object({key: z.string()}).strict();\nconst Schema2 = z.object({key: z.string()}, {message: \"some message\"}).strict();\nconst Schema3 = z.object({key: z.string()}, {description: \"some description\"}).strict();\nconst Schema4 = z.object({key: z.string()});\nconst Schema5 = Schema4.strict();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/object-strict/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.strictObject({key: v.string()});\nconst Schema2 = v.strictObject({key: v.string()}, \"some message\");\nconst Schema3 = v.pipe(v.strictObject({key: v.string()}), v.description(\"some description\"));\nconst Schema4 = v.object({key: v.string()});\nconst Schema5 = v.strictObject(\n  /*@valibot-migrate we can't detect if Schema4 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema4.entries\n);"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/object-strip/input.ts",
    "content": "import { z } from \"zod\";\n\n// passthrough\nconst Schema1 = z.object({key: z.string()}).passthrough().strip();\nconst Schema2 = z.object({key: z.string()}, {message: \"some message\"}).passthrough().strip();\nconst Schema3 = z.object({key: z.string()}, {description: \"some description\"}).passthrough().strip();\nconst Schema4 = z.object({key: z.string()}).passthrough();\nconst Schema5 = Schema4.strip();\nconst Schema6 = z.object({key: z.string()});\nconst Schema7 = Schema6.passthrough().strip();\n\n// strict\nconst Schema8 = z.object({key: z.string()}).strict().strip();\nconst Schema9 = z.object({key: z.string()}, {message: \"some message\"}).strict().strip();\nconst Schema10 = z.object({key: z.string()}, {description: \"some description\"}).strict().strip();\nconst Schema11 = z.object({key: z.string()}).strict();\nconst Schema12 = Schema11.strip();\nconst Schema13 = z.object({key: z.string()});\nconst Schema14 = Schema13.strict().strip();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/object-strip/output.ts",
    "content": "import * as v from \"valibot\";\n\n// passthrough\nconst Schema1 = v.object({key: v.string()});\nconst Schema2 = v.object({key: v.string()}, \"some message\");\nconst Schema3 = v.object(\n  v.pipe(v.object({key: v.string()}), v.description(\"some description\")).entries\n);\nconst Schema4 = v.looseObject({key: v.string()});\nconst Schema5 = v.pipe(Schema4, v.strip());\nconst Schema6 = v.object({key: v.string()});\nconst Schema7 = v.object(\n  /*@valibot-migrate we can't detect if Schema6 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema6.entries\n);\n\n// strict\nconst Schema8 = v.object({key: v.string()});\nconst Schema9 = v.object({key: v.string()}, \"some message\");\nconst Schema10 = v.object(\n  v.pipe(v.object({key: v.string()}), v.description(\"some description\")).entries\n);\nconst Schema11 = v.strictObject({key: v.string()});\nconst Schema12 = v.pipe(Schema11, v.strip());\nconst Schema13 = v.object({key: v.string()});\nconst Schema14 = v.object(\n  /*@valibot-migrate we can't detect if Schema13 has a `pipe` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline*/\n  Schema13.entries\n);"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/optional-schema/input.ts",
    "content": "import { z } from \"zod\";\n\n// optional outside object\nconst Schema1 = z.string().optional();\nconst Schema2 = z.optional(z.string());\nconst Schema3 = z.string();\nconst Schema4 = Schema3.optional();\n\n// optional inside object\nconst Schema5 = z.object({key: z.string().optional()});\nconst Schema6 = z.object({key: z.optional(z.string())});\nconst Schema7 = z.object({key: z.string().email().optional()});\nconst Schema8 = z.object({key: z.optional(z.string().email())});\nconst Schema9 = z.object({key: z.number()});\n\n// get the wrapped schema\nconst Schema10 = z.number().optional();\nconst Schema11 = Schema10.unwrap();\n"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/optional-schema/output.ts",
    "content": "import * as v from \"valibot\";\n\n// optional outside object\nconst Schema1 = v.optional(v.string());\nconst Schema2 = v.optional(v.string());\nconst Schema3 = v.string();\nconst Schema4 = v.optional(Schema3);\n\n// optional inside object\nconst Schema5 = v.object({key: v.optional(v.string())});\nconst Schema6 = v.object({key: v.optional(v.string())});\nconst Schema7 = v.object({key: v.optional(v.pipe(v.string(), v.email()))});\nconst Schema8 = v.object({key: v.optional(v.pipe(v.string(), v.email()))});\nconst Schema9 = v.object({key: v.number()});\n\n// get the wrapped schema\nconst Schema10 = v.optional(v.number());\nconst Schema11 = v.unwrap(Schema10);\n"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/or/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.string().or(z.number());\nconst Schema2 = z.string().or(z.number()).or(z.boolean());"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/or/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.union([v.string(), v.number()]);\nconst Schema2 = v.union([v.union([v.string(), v.number()]), v.boolean()]);"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/parsing/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema = z.string();\n\nconst output1 = Schema.parse(\"to parse\");\n\nconst output2 = Schema.parseAsync(\"to parseAsync\");\n\nconst result1 = Schema.safeParse(\"to safeParse\");\nif (result1.success) {\n\tconst output = result1.data;\n} else {\n\tconst errors = result1.error;\n}\n\nconst result2 = await Schema.safeParseAsync(\"to safeParseAsync\");\nif (result2.success) {\n\tconst output = result2.data;\n} else {\n\tconst errors = result2.error;\n}\n\nconst result3 = await Schema.spa(\"to spa\");\nif (result3.success) {\n\tconst output = result3.data;\n} else {\n\tconst errors = result3.error;\n}"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/parsing/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema = v.string();\n\nconst output1 = v.parse(Schema, \"to parse\");\n\nconst output2 = v.parseAsync(Schema, \"to parseAsync\");\n\nconst result1 = v.safeParse(Schema, \"to safeParse\");\nif (result1.success) {\n\tconst output = result1.output;\n} else {\n\tconst errors = result1.issues;\n}\n\nconst result2 = await v.safeParseAsync(Schema, \"to safeParseAsync\");\nif (result2.success) {\n\tconst output = result2.output;\n} else {\n\tconst errors = result2.issues;\n}\n\nconst result3 = await v.safeParseAsync(Schema, \"to spa\");\nif (result3.success) {\n\tconst output = result3.output;\n} else {\n\tconst errors = result3.issues;\n}"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/readonly/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.array(z.string()).readonly();\nconst Schema2 = z.map(z.string(), z.date()).readonly();\nconst Schema3 = z.set(z.string()).min(3).readonly();\nconst Schema4 = z.object({key: z.string()}).readonly();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/readonly/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.pipe(v.array(v.string()), v.readonly());\nconst Schema2 = v.pipe(v.map(v.string(), v.date()), v.readonly());\nconst Schema3 = v.pipe(v.set(v.string()), v.minSize(3), v.readonly());\nconst Schema4 = v.pipe(v.object({key: v.string()}), v.readonly());"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/record-schema/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.record(z.number());\nconst Schema2 = z.record(z.number(), {message: \"some message\"});\nconst Schema3 = z.record(z.string(), z.boolean());\nconst Schema4 = z.record(z.string(), z.boolean(), {message: \"some message\"});"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/record-schema/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.record(v.string(), v.number());\nconst Schema2 = v.record(v.string(), v.number(), \"some message\");\nconst Schema3 = v.record(v.string(), v.boolean());\nconst Schema4 = v.record(v.string(), v.boolean(), \"some message\");"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/refine/input.ts",
    "content": "import { z } from \"zod\";\n\n// Basic refine\nconst Schema1 = z.number().refine((val) => val < 100, \"Must be less then 100\");\n\n// Refine with string schema\nconst Schema2 = z.string().refine((val) => val.length > 0, \"Required\");\n\n// Refine after validator\nconst Schema3 = z.number().min(0).refine((val) => val % 2 === 0, \"Must be even\");\n\n// Multiple refines\nconst Schema4 = z.string().refine((val) => val.length > 3).refine((val) => val.includes(\"@\"));\n\n// Refine with complex condition\nconst Schema5 = z.object({ name: z.string() }).refine((data) => data.name !== \"admin\", {\n  message: \"Cannot use admin\"\n});\n\n// Refine on linked schema\nconst BaseSchema = z.string();\nconst RefinedSchema = BaseSchema.refine((val) => val.trim().length > 0);"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/refine/output.ts",
    "content": "import * as v from \"valibot\";\n\n// Basic refine\nconst Schema1 = v.pipe(v.number(), v.check((val) => val < 100, \"Must be less then 100\"));\n\n// Refine with string schema\nconst Schema2 = v.pipe(v.string(), v.check((val) => val.length > 0, \"Required\"));\n\n// Refine after validator\nconst Schema3 = v.pipe(v.number(), v.minValue(0), v.check((val) => val % 2 === 0, \"Must be even\"));\n\n// Multiple refines\nconst Schema4 = v.pipe(\n  v.string(),\n  v.check((val) => val.length > 3),\n  v.check((val) => val.includes(\"@\"))\n);\n\n// Refine with complex condition\nconst Schema5 = v.pipe(\n  v.object({ name: v.string() }),\n  v.check((data) => data.name !== \"admin\", \"Cannot use admin\")\n);\n\n// Refine on linked schema\nconst BaseSchema = v.string();\nconst RefinedSchema = v.pipe(BaseSchema, v.check((val) => val.trim().length > 0));"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/schema-chain/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.string().trim().email();\nconst output1 = z.string().parse(\"valibot@example.com\");\nconst output2 = z.string().trim().email().parse(\"valibot@example.com\");\nconst Schema3 = z.string().optional();\nconst Schema4 = z.string().optional().nullable();\nconst Schema5 = z.string().email().optional();\nconst Schema6 = z.string().email().optional().nullable();\nconst Schema7 = z.string();\nconst Schema8 = Schema7.trim().email();\nconst output = Schema8.parse(\"valibot@example.com\");"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/schema-chain/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.pipe(v.string(), v.trim(), v.email());\nconst output1 = v.parse(v.string(), \"valibot@example.com\");\nconst output2 = v.parse(v.pipe(v.string(), v.trim(), v.email()), \"valibot@example.com\");\nconst Schema3 = v.optional(v.string());\nconst Schema4 = v.nullable(v.optional(v.string()));\nconst Schema5 = v.optional(v.pipe(v.string(), v.email()));\nconst Schema6 = v.nullable(v.optional(v.pipe(v.string(), v.email())));\nconst Schema7 = v.string();\nconst Schema8 = v.pipe(Schema7, v.trim(), v.email());\nconst output = v.parse(Schema8, \"valibot@example.com\");"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/schema-options/input.ts",
    "content": "import { z } from \"zod\";\n\n// ------------ single ------------\n// invalid_type_error\nconst Schema1 = z.string({invalid_type_error: \"must be a string\"});\nconst Schema2 = z.literal(\"valibot\", {invalid_type_error: 'must be \"valibot\"'});\n// message\nconst Schema3 = z.string({message: \"must be a string\"});\nconst Schema4 = z.literal(\"foo\", {message: 'must be \"foo\"'});\n// required_error\nconst Schema5 = z.string({required_error: \"is required\"});\nconst Schema6 = z.literal(\"bar\", {required_error: '\"bar\" is required'});\n// description\nconst Schema7 = z.string({description: \"some description\"});\nconst schema7Description = Schema7.description;\nconst Schema8 = z.literal(\"hello\", {description: 'some description (literal \"hello\")'});\nconst schema8Description = Schema8.description;\n// coerce\nconst Schema9 = z.string({coerce: true});\nconst Schema10 = z.string({coerce: false});\n// errorMap - supported by Valibot but incompatible\nconst Schema11 = z.string({errorMap: () => ({message: \"some message\"})});\nconst Schema12 = z.literal(\"world\", {errorMap: () => ({message: 'some message (literal \"world\")'})});\n\n// ------------ multiple ------------\n// invalid_type_error + required_error\nconst Schema13 = z.string({invalid_type_error: \"must be a string\", required_error: \"is required\"});\nconst Schema14 = z.literal(\"bot\", {invalid_type_error: 'must be \"bot\"', required_error: '\"bot\" is required'});\n// invalid_type_error + message\nconst Schema15 = z.string({invalid_type_error: \"must be a string\", message: \"must be a string (msg)\"});\nconst Schema16 = z.literal(\"bot\", {invalid_type_error: 'must be \"bot\"', message: 'must be \"bot\" (msg)'});\n// required_error + message\nconst Schema17 = z.string({required_error: \"is required\", message: \"must be a string (msg)\"});\nconst Schema18 = z.literal(\"bot\", {required_error: '\"bot\" is required', message: 'must be \"bot\" (msg)'});\n// invalid_type_error + required_error + message\nconst Schema19 = z.string({invalid_type_error: \"must be a string\", required_error: \"is required\", message: \"must be a string (msg)\"});\nconst Schema20 = z.literal(\"bot\", {invalid_type_error: 'must be \"bot\"', required_error: '\"bot\" is required', message: 'must be \"bot\" (msg)'});\n// coerce + invalid_type_error\nconst Schema21 = z.string({coerce: true, invalid_type_error: \"must be a string\"});\nconst Schema22 = z.string({coerce: false, invalid_type_error: \"must be a string\"});\n// coerce + description\nconst Schema23 = z.string({coerce: true, description: \"some description\"});\nconst schema23Description = Schema23.description;\nconst Schema24 = z.string({coerce: false, description: \"some description\"});\nconst schema24Description = Schema24.description;\n// coerce + invalid_type_error + description\nconst Schema25 = z.string({coerce: true, invalid_type_error: \"must be a string\", description: \"some description\"});\nconst schema25Description = Schema25.description;\nconst Schema26 = z.string({coerce: false, invalid_type_error: \"must be a string\", description: \"some description\"});\nconst schema26Description = Schema26.description;"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/schema-options/output.ts",
    "content": "import * as v from \"valibot\";\n\n// ------------ single ------------\n// invalid_type_error\nconst Schema1 = v.string(\"must be a string\");\nconst Schema2 = v.literal(\"valibot\", 'must be \"valibot\"');\n// message\nconst Schema3 = v.string(\"must be a string\");\nconst Schema4 = v.literal(\"foo\", 'must be \"foo\"');\n// required_error\nconst Schema5 = v.string(issue => issue.input === undefined ? \"is required\" : issue.message);\nconst Schema6 = v.literal(\n  \"bar\",\n  issue => issue.input === undefined ? '\"bar\" is required' : issue.message\n);\n// description\nconst Schema7 = v.pipe(v.string(), v.description(\"some description\"));\nconst schema7Description = v.getDescription(Schema7);\nconst Schema8 = v.pipe(v.literal(\"hello\"), v.description('some description (literal \"hello\")'));\nconst schema8Description = v.getDescription(Schema8);\n// coerce\nconst Schema9 = v.pipe(v.unknown(), v.toString());\nconst Schema10 = v.string();\n// errorMap - supported by Valibot but incompatible\nconst Schema11 = v.string();\nconst Schema12 = v.literal(\"world\");\n\n// ------------ multiple ------------\n// invalid_type_error + required_error\nconst Schema13 = v.string(issue => issue.input === undefined ? \"is required\" : \"must be a string\");\nconst Schema14 = v.literal(\n  \"bot\",\n  issue => issue.input === undefined ? '\"bot\" is required' : 'must be \"bot\"'\n);\n// invalid_type_error + message\nconst Schema15 = v.string(\"must be a string (msg)\");\nconst Schema16 = v.literal(\"bot\", 'must be \"bot\" (msg)');\n// required_error + message\nconst Schema17 = v.string(\"must be a string (msg)\");\nconst Schema18 = v.literal(\"bot\", 'must be \"bot\" (msg)');\n// invalid_type_error + required_error + message\nconst Schema19 = v.string(\"must be a string (msg)\");\nconst Schema20 = v.literal(\"bot\", 'must be \"bot\" (msg)');\n// coerce + invalid_type_error\nconst Schema21 = v.pipe(v.unknown(), v.toString(\"must be a string\"));\nconst Schema22 = v.string(\"must be a string\");\n// coerce + description\nconst Schema23 = v.pipe(v.unknown(), v.toString(), v.description(\"some description\"));\nconst schema23Description = v.getDescription(Schema23);\nconst Schema24 = v.pipe(v.string(), v.description(\"some description\"));\nconst schema24Description = v.getDescription(Schema24);\n// coerce + invalid_type_error + description\nconst Schema25 = v.pipe(\n  v.unknown(),\n  v.toString(\"must be a string\"),\n  v.description(\"some description\")\n);\nconst schema25Description = v.getDescription(Schema25);\nconst Schema26 = v.pipe(v.string(\"must be a string\"), v.description(\"some description\"));\nconst schema26Description = v.getDescription(Schema26);"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/set-schema/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.set(z.number());\nconst Schema2 = z.set(z.number(), {message: \"some message\"});"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/set-schema/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.set(v.number());\nconst Schema2 = v.set(v.number(), \"some message\");"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/set-validation-methods/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.set(z.string()).nonempty();\nconst Schema2 = z.set(z.string()).nonempty(\"some message\");\nconst Schema3 = z.set(z.string()).nonempty({message: \"some message\"});\nconst Schema4 = z.set(z.string()).min(5);\nconst Schema5 = z.set(z.string()).min(5, \"some message\");\nconst Schema6 = z.set(z.string()).min(5, {message: \"some message\"});\nconst Schema7 = z.set(z.string()).max(6);\nconst Schema8 = z.set(z.string()).max(6, \"some message\");\nconst Schema9 = z.set(z.string()).max(6, {message: \"some message\"});\nconst Schema10 = z.set(z.string()).size(7);\nconst Schema11 = z.set(z.string()).size(7, \"some message\");\nconst Schema12 = z.set(z.string()).size(7, {message: \"some message\"});"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/set-validation-methods/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.pipe(v.set(v.string()), v.minSize(1));\nconst Schema2 = v.pipe(v.set(v.string()), v.minSize(1, \"some message\"));\nconst Schema3 = v.pipe(v.set(v.string()), v.minSize(1, \"some message\"));\nconst Schema4 = v.pipe(v.set(v.string()), v.minSize(5));\nconst Schema5 = v.pipe(v.set(v.string()), v.minSize(5, \"some message\"));\nconst Schema6 = v.pipe(v.set(v.string()), v.minSize(5, \"some message\"));\nconst Schema7 = v.pipe(v.set(v.string()), v.maxSize(6));\nconst Schema8 = v.pipe(v.set(v.string()), v.maxSize(6, \"some message\"));\nconst Schema9 = v.pipe(v.set(v.string()), v.maxSize(6, \"some message\"));\nconst Schema10 = v.pipe(v.set(v.string()), v.size(7));\nconst Schema11 = v.pipe(v.set(v.string()), v.size(7, \"some message\"));\nconst Schema12 = v.pipe(v.set(v.string()), v.size(7, \"some message\"));"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/specific-default-import/input.ts",
    "content": "import z from \"zod\";\n\nconst StringSchema = z.string();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/specific-default-import/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst StringSchema = v.string();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/specific-namespace-import/input.ts",
    "content": "import * as z from \"zod\";\n\nconst StringSchema = z.string();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/specific-namespace-import/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst StringSchema = v.string();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/string-validation-methods/input.ts",
    "content": "import { z } from \"zod\";\n\nconst EmailSchema = z.string().email();\nconst UrlSchema = z.string().url();\nconst EmojiSchema = z.string().emoji();\nconst UUIDSchema = z.string().uuid();\nconst NanoIDSchema = z.string().nanoid();\nconst CUID2Schema = z.string().cuid2();\nconst ULIDSchema = z.string().ulid();\nconst Base64Schema = z.string().base64();\nconst IpSchema = z.string().ip();\nconst IpV4Schema = z.string().ip({ version: \"v4\" });\nconst IpV6Schema = z.string().ip({ version: \"v6\" });\nconst DateSchema = z.string().date();\nconst RegexSchema = z.string().regex(/valibot/iu);\nconst StartsWithSchema = z.string().startsWith(\"foo\");\nconst EndsWithSchema = z.string().endsWith(\"bar\");\nconst MinLengthSchema = z.string().min(5);\nconst MaxLengthSchema = z.string().max(10);\nconst LengthSchema = z.string().length(12);\nconst NonEmptySchema = z.string().nonempty();\nconst TrimSchema = z.string().trim();\nconst ToLowerSchema = z.string().toLowerCase();\nconst ToUpperSchema = z.string().toUpperCase();\nconst IncludesSchema = z.string().includes(\"foo\");\n// `position` is not supported by Valibot\nconst IncludesWithPositionSchema = z.string().includes(\"bar\", { position: 1 });\nconst TimeSchema = z.string().time();\n// `precision` is not supported by Valibot\nconst TimeWithPrecisionSchema = z.string().time({ precision: 3 });\nconst DateTimeSchema = z.string().datetime();\n// none of the customizations are supported by Valibot\nconst DateTimeWithCustomizatonsSchema = z.string().datetime({ offset: true, local: false, precision: 2 });\n// validators that are not supported by Valibot\nconst CUIDSchema = z.string().cuid();\nconst Base64UrlSchema = z.string().base64url();\nconst JWTSchema = z.string().jwt();\nconst CIDRSchema = z.string().cidr();\nconst DurationSchema = z.string().duration();"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/string-validation-methods/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst EmailSchema = v.pipe(v.string(), v.email());\nconst UrlSchema = v.pipe(v.string(), v.url());\nconst EmojiSchema = v.pipe(v.string(), v.emoji());\nconst UUIDSchema = v.pipe(v.string(), v.uuid());\nconst NanoIDSchema = v.pipe(v.string(), v.nanoid());\nconst CUID2Schema = v.pipe(v.string(), v.cuid2());\nconst ULIDSchema = v.pipe(v.string(), v.ulid());\nconst Base64Schema = v.pipe(v.string(), v.base64());\nconst IpSchema = v.pipe(v.string(), v.ip());\nconst IpV4Schema = v.pipe(v.string(), v.ipv4());\nconst IpV6Schema = v.pipe(v.string(), v.ipv6());\nconst DateSchema = v.pipe(v.string(), v.isoDate());\nconst RegexSchema = v.pipe(v.string(), v.regex(/valibot/iu));\nconst StartsWithSchema = v.pipe(v.string(), v.startsWith(\"foo\"));\nconst EndsWithSchema = v.pipe(v.string(), v.endsWith(\"bar\"));\nconst MinLengthSchema = v.pipe(v.string(), v.minLength(5));\nconst MaxLengthSchema = v.pipe(v.string(), v.maxLength(10));\nconst LengthSchema = v.pipe(v.string(), v.length(12));\nconst NonEmptySchema = v.pipe(v.string(), v.nonEmpty());\nconst TrimSchema = v.pipe(v.string(), v.trim());\nconst ToLowerSchema = v.pipe(v.string(), v.toLowerCase());\nconst ToUpperSchema = v.pipe(v.string(), v.toUpperCase());\nconst IncludesSchema = v.pipe(v.string(), v.includes(\"foo\"));\n// `position` is not supported by Valibot\nconst IncludesWithPositionSchema = v.pipe(v.string(), v.includes(\"bar\"));\nconst TimeSchema = v.pipe(v.string(), v.isoTimeSecond());\n// `precision` is not supported by Valibot\nconst TimeWithPrecisionSchema = v.pipe(v.string(), v.isoTimeSecond());\nconst DateTimeSchema = v.pipe(v.string(), v.isoTimestamp());\n// none of the customizations are supported by Valibot\nconst DateTimeWithCustomizatonsSchema = v.pipe(v.string(), v.isoTimestamp());\n// validators that are not supported by Valibot\nconst CUIDSchema = v.pipe(v.string(), v.cuid());\nconst Base64UrlSchema = v.pipe(v.string(), v.base64url());\nconst JWTSchema = v.pipe(v.string(), v.jwt());\nconst CIDRSchema = v.pipe(v.string(), v.cidr());\nconst DurationSchema = v.pipe(v.string(), v.duration());"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/symbol-schema/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.symbol();\nconst Schema2 = z.symbol({message: \"some message\"});\nconst Schema3 = z.symbol({description: \"some description\"});"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/symbol-schema/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.symbol();\nconst Schema2 = v.symbol(\"some message\");\nconst Schema3 = v.pipe(v.symbol(), v.description(\"some description\"));"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/transform/input.ts",
    "content": "import { z } from \"zod\";\n\n// Basic transform\nconst Schema1 = z.number().transform((val) => val * 2);\n\n// Transform with string schema\nconst Schema2 = z.string().transform((val) => val.toUpperCase());\n\n// Chained transform with validator\nconst Schema3 = z.number().min(0).transform((val) => val + 1);\n\n// Transform after validator chain\nconst Schema4 = z.string().email().transform((val) => `Email: ${val}`);\n\n// Multiple transforms\nconst Schema5 = z.number().transform((val) => val * 2).transform((val) => val + 10);\n\n// Transform with complex function\nconst Schema6 = z.object({ name: z.string() }).transform((data) => ({\n  ...data,\n  displayName: data.name.toUpperCase()\n}));\n\n// Transform on linked schema\nconst BaseSchema = z.string();\nconst TransformedSchema = BaseSchema.transform((val) => val.trim());"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/transform/output.ts",
    "content": "import * as v from \"valibot\";\n\n// Basic transform\nconst Schema1 = v.pipe(v.number(), v.transform((val) => val * 2));\n\n// Transform with string schema\nconst Schema2 = v.pipe(v.string(), v.transform((val) => val.toUpperCase()));\n\n// Chained transform with validator\nconst Schema3 = v.pipe(v.number(), v.minValue(0), v.transform((val) => val + 1));\n\n// Transform after validator chain\nconst Schema4 = v.pipe(v.string(), v.email(), v.transform((val) => `Email: ${val}`));\n\n// Multiple transforms\nconst Schema5 = v.pipe(v.number(), v.transform((val) => val * 2), v.transform((val) => val + 10));\n\n// Transform with complex function\nconst Schema6 = v.pipe(v.object({ name: v.string() }), v.transform((data) => ({\n  ...data,\n  displayName: data.name.toUpperCase()\n})));\n\n// Transform on linked schema\nconst BaseSchema = v.string();\nconst TransformedSchema = v.pipe(BaseSchema, v.transform((val) => val.trim()));"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/tuple-schema/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.tuple([z.string()]);\nconst Schema2 = z.tuple([z.string()], {message: \"some message\"});\nconst Schema3 = z.tuple([z.string()]).rest(z.null());\nconst Schema4 = z.tuple([z.string()], {message: \"some message\"}).rest(z.null());\nconst Schema5 = z.tuple([z.string()], {description: \"some description\"}).rest(z.null());\nconst Schema6 = z.tuple([z.string()]);\nconst Schema7 = Schema6.rest(z.null());"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/tuple-schema/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.tuple([v.string()]);\nconst Schema2 = v.tuple([v.string()], \"some message\");\nconst Schema3 = v.tupleWithRest([v.string()], v.null());\nconst Schema4 = v.tupleWithRest([v.string()], v.null(), \"some message\");\nconst Schema5 = v.pipe(v.tuple([v.string()]), v.description(\"some description\"), v.rest(v.null()));\nconst Schema6 = v.tuple([v.string()]);\nconst Schema7 = v.pipe(Schema6, v.rest(v.null()));"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/type-inference/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema = z.string();\n\ntype Input = z.input<typeof Schema>;\ntype Output1 = z.output<typeof Schema>;\ntype Output2 = z.infer<typeof Schema>;"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/type-inference/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema = v.string();\n\ntype Input = v.InferInput<typeof Schema>;\ntype Output1 = v.InferOutput<typeof Schema>;\ntype Output2 = v.InferOutput<typeof Schema>;"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/undefined-schema/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.undefined();\nconst Schema2 = z.undefined({message: \"some message\"});\nconst Schema3 = z.undefined({description: \"some description\"});"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/undefined-schema/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.undefined();\nconst Schema2 = v.undefined(\"some message\");\nconst Schema3 = v.pipe(v.undefined(), v.description(\"some description\"));"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/union-schema/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.union([z.string(), z.number(), z.boolean()]);\nconst Schema2 = z.union([z.string(), z.number(), z.boolean()], {message: \"some message\"});"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/union-schema/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.union([v.string(), v.number(), v.boolean()]);\nconst Schema2 = v.union([v.string(), v.number(), v.boolean()], \"some message\");"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/unknown-schema/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.unknown();\nconst Schema2 = z.unknown({message: \"some message\"});\nconst Schema3 = z.unknown({description: \"some description\"});"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/unknown-schema/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.unknown();\nconst Schema2 = v.unknown();\nconst Schema3 = v.pipe(v.unknown(), v.description(\"some description\"));"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/validation-error-msg/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.string().email(\"invalid email address\");\nconst Schema2 = z.string().url({message: \"invalid url\"});\nconst Schema3 = z.string().length(5, \"must be exactly 5 characters long\");\nconst Schema4 = z.string().startsWith(\"https://\", {message: \"must provide secure url\"});"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/validation-error-msg/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.pipe(v.string(), v.email(\"invalid email address\"));\nconst Schema2 = v.pipe(v.string(), v.url(\"invalid url\"));\nconst Schema3 = v.pipe(v.string(), v.length(5, \"must be exactly 5 characters long\"));\nconst Schema4 = v.pipe(v.string(), v.startsWith(\"https://\", \"must provide secure url\"));"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/void-schema/input.ts",
    "content": "import { z } from \"zod\";\n\nconst Schema1 = z.void();\nconst Schema2 = z.void({message: \"some message\"});\nconst Schema3 = z.void({description: \"some description\"});"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/void-schema/output.ts",
    "content": "import * as v from \"valibot\";\n\nconst Schema1 = v.void();\nconst Schema2 = v.void(\"some message\");\nconst Schema3 = v.pipe(v.void(), v.description(\"some description\"));"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/zod-enum/input.ts",
    "content": "import { z } from \"zod\";\n\n// enum creation\n// way #1\nconst FruitEnum = z.enum([\"Apple\", \"Orange\", \"Banana\"]);\n// way #2\nconst VALUES = [\"Valibot\", \"ModularForms\"] as const;\nconst LibraryEnum = z.enum(VALUES);\n\n// the enum property, not supported by Valibot\nconst AnswerEnum = z.enum([\"Yes\", \"No\"]);\nconst AnswerObj = AnswerEnum.enum; \n\n// retrieve the list of options\nconst BoolEnum = z.enum([\"true\", \"false\"]);\nconst boolOptions = BoolEnum.options;\n\n// extract or exclude values \nconst FishEnum = z.enum([\"Salmon\", \"Tuna\", \"Trout\"]);\nconst SalmonAndTrout = FishEnum.extract([\"Salmon\", \"Trout\"]);\n// `exclude` is not supported by Valibot\nconst SalmonOnly = FishEnum.exclude([\"Tuna\", \"Trout\"]);"
  },
  {
    "path": "codemod/zod-to-valibot/__testfixtures__/zod-enum/output.ts",
    "content": "import * as v from \"valibot\";\n\n// enum creation\n// way #1\nconst FruitEnum = v.picklist([\"Apple\", \"Orange\", \"Banana\"]);\n// way #2\nconst VALUES = [\"Valibot\", \"ModularForms\"] as const;\nconst LibraryEnum = v.picklist(VALUES);\n\n// the enum property, not supported by Valibot\nconst AnswerEnum = v.picklist([\"Yes\", \"No\"]);\nconst AnswerObj = AnswerEnum.enum; \n\n// retrieve the list of options\nconst BoolEnum = v.picklist([\"true\", \"false\"]);\nconst boolOptions = BoolEnum.options;\n\n// extract or exclude values \nconst FishEnum = v.picklist([\"Salmon\", \"Tuna\", \"Trout\"]);\nconst SalmonAndTrout = v.picklist([\"Salmon\", \"Trout\"]);\n// `exclude` is not supported by Valibot\nconst SalmonOnly = v.exclude(FishEnum, [\"Tuna\", \"Trout\"]);"
  },
  {
    "path": "codemod/zod-to-valibot/cli.mjs",
    "content": "#!/usr/bin/env node\n\nimport { execSync } from 'child_process';\nimport { createRequire } from 'module';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\nconst transformPath = path.join(__dirname, 'dist', 'index.mjs');\nconst require = createRequire(import.meta.url);\nconst jscodeshiftBin = require.resolve('jscodeshift/bin/jscodeshift.js');\n\nconst args = process.argv.slice(2);\nconst hasParserArg = args.some(\n  (arg) => arg === '--parser' || arg.startsWith('--parser=')\n);\nconst hasExtensionsArg = args.some((arg) => arg.startsWith('--extensions'));\n\nconst finalArgs = [...args];\nif (!hasParserArg) {\n  finalArgs.unshift('--parser=ts');\n}\nif (!hasExtensionsArg) {\n  finalArgs.unshift('--extensions=ts,tsx,js,jsx');\n}\n\nif (args.length === 0) {\n  console.log(`\nUsage: @valibot/zod-to-valibot [options] <files>\n\nConvert Zod schemas to Valibot schemas\n\nExamples:\n  @valibot/zod-to-valibot src/**/*.ts\n  @valibot/zod-to-valibot --dry src/schemas.ts\n  @valibot/zod-to-valibot --no-babel src/**/*.{ts,tsx}\n\nCommon jscodeshift options:\n  --dry         Run without making changes\n  --print       Print output\n  --verbose=2   Increase verbosity\n  --parser=ts   Specify parser (default: ts)\n\nFor all options, see: jscodeshift --help\n`);\n  process.exit(0);\n}\n\ntry {\n  const command = `\"${process.execPath}\" \"${jscodeshiftBin}\" -t \"${transformPath}\" ${finalArgs.join(' ')}`;\n  execSync(command, { stdio: 'inherit' });\n} catch (error) {\n  process.exit(1);\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/package.json",
    "content": "{\n  \"name\": \"@valibot/zod-to-valibot\",\n  \"description\": \"Official codemod for converting Zod schemas to Valibot\",\n  \"version\": \"0.1.2\",\n  \"license\": \"MIT\",\n  \"author\": \"Elton Lobo\",\n  \"homepage\": \"https://valibot.dev\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/open-circle/valibot\"\n  },\n  \"keywords\": [\n    \"codemod\",\n    \"zod\",\n    \"valibot\",\n    \"schema\"\n  ],\n  \"type\": \"module\",\n  \"main\": \"./dist/index.mjs\",\n  \"types\": \"./dist/index.d.mts\",\n  \"bin\": {\n    \"zod-to-valibot\": \"./cli.mjs\"\n  },\n  \"files\": [\n    \"dist\",\n    \"cli.mjs\"\n  ],\n  \"publishConfig\": {\n    \"access\": \"public\"\n  },\n  \"scripts\": {\n    \"build\": \"tsdown\",\n    \"codemod\": \"jscodeshift\",\n    \"test\": \"vitest\"\n  },\n  \"dependencies\": {\n    \"jscodeshift\": \"^17.3.0\"\n  },\n  \"devDependencies\": {\n    \"@types/jscodeshift\": \"17.3.0\",\n    \"@types/node\": \"^24.10.1\",\n    \"tsdown\": \"^0.16.6\",\n    \"typescript\": \"^5.9.3\",\n    \"valibot\": \"workspace:*\",\n    \"vite-plugin-node-polyfills\": \"^0.24.0\",\n    \"vitest\": \"^4.0.13\",\n    \"zod\": \"^3.25.76\"\n  }\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/test-setup.test.ts",
    "content": "import transform from './transform';\nimport { defineTests } from './utils';\n\n// maintain the sorted order\ndefineTests(transform, [\n  'any-schema',\n  'array-element',\n  'array-nonempty',\n  'array-schema',\n  'array-validation-methods',\n  'bigint-validation-methods',\n  'coerce-bigint-schema',\n  'coerce-boolean-schema',\n  'coerce-date-schema',\n  'coerce-number-schema',\n  'coerce-string-schema',\n  'custom-schema',\n  'date-validation-methods',\n  'default',\n  'default-import',\n  'default-import-with-alias',\n  'default-import-with-specific-alias',\n  'describe',\n  'discriminated-union-schema',\n  'instanceof-schema',\n  'intersection-schema',\n  'literal-schema',\n  'map-schema',\n  'multiple-imports-from-zod',\n  'named-import',\n  'named-import-with-alias',\n  'named-import-with-specific-alias',\n  'namespace-import',\n  'nan-schema',\n  'native-enum',\n  'never-schema',\n  'null-schema',\n  'nullable-schema',\n  'nullish-schema',\n  'number-validation-methods',\n  'object-catchall',\n  'object-deepPartial',\n  'object-extend',\n  'object-keyof',\n  'object-merge',\n  'object-omit',\n  'object-partial',\n  'object-passthrough',\n  'object-pick',\n  'object-required',\n  'object-shape',\n  'object-strict',\n  'object-strip',\n  'optional-schema',\n  'or',\n  'parsing',\n  'readonly',\n  'record-schema',\n  'refine',\n  'schema-chain',\n  'schema-options',\n  'set-schema',\n  'set-validation-methods',\n  'specific-default-import',\n  'specific-namespace-import',\n  'string-validation-methods',\n  'symbol-schema',\n  'transform',\n  'tuple-schema',\n  'type-inference',\n  'undefined-schema',\n  'union-schema',\n  'unknown-schema',\n  'validation-error-msg',\n  'void-schema',\n  'zod-enum',\n]);\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/imports/imports.ts",
    "content": "import j, { type Collection } from 'jscodeshift';\n\ntype TransformImportsReturn =\n  | {\n      conclusion: 'skip' | 'unsuccessful';\n      cause: string;\n      valibotIdentifier?: undefined;\n    }\n  | { conclusion: 'successful'; valibotIdentifier: string };\n\nexport function transformImports(\n  root: Collection<unknown>\n): TransformImportsReturn {\n  // Find all Zod import statements\n  const zodImports = root.find(\n    j.ImportDeclaration,\n    (name) => name.source.value === 'zod' || name.source.value === 'zod/v4'\n  );\n  // Check the number of statements is exactly one\n  const importNodes = zodImports.nodes();\n  if (importNodes.length !== 1) {\n    return {\n      conclusion: importNodes.length === 0 ? 'skip' : 'unsuccessful',\n      cause: 'Expected exactly one import statement from \"zod\" or \"zod/v4\".',\n    };\n  }\n  // Check the number of specifiers is exactly one\n  const importSpecifiers = importNodes[0].specifiers;\n  if (importSpecifiers?.length !== 1) {\n    return {\n      conclusion: 'unsuccessful',\n      cause: 'Expected exactly one import specifier from \"zod\" or \"zod/v4\".',\n    };\n  }\n  // Obtain the identifier\n  const importSpecifier = importSpecifiers[0];\n  const zodIdentifier = importSpecifier.local?.name;\n  if (typeof zodIdentifier !== 'string') {\n    return {\n      conclusion: 'unsuccessful',\n      cause: 'Expected the import specifier to have a local name.',\n    };\n  }\n  const isZodIdentifierZ = zodIdentifier === 'z';\n  const valibotIdentifier = isZodIdentifierZ ? 'v' : zodIdentifier;\n  // Transform the import statements\n  zodImports.replaceWith(\n    j.importDeclaration(\n      [j.importNamespaceSpecifier(j.identifier(valibotIdentifier))],\n      j.literal('valibot')\n    )\n  );\n  // Transform member expression root if required\n  if (isZodIdentifierZ) {\n    root\n      .find(j.MemberExpression, { object: { name: zodIdentifier } })\n      .replaceWith((p) =>\n        j.memberExpression(j.identifier(valibotIdentifier), p.node.property)\n      );\n    root\n      .find(j.TSTypeReference, {\n        typeName: {\n          type: 'TSQualifiedName',\n          left: { type: 'Identifier', name: zodIdentifier },\n        },\n      })\n      .filter(\n        (p) =>\n          p.value.typeName.type === 'TSQualifiedName' &&\n          p.value.typeName.right.type === 'Identifier'\n      )\n      .replaceWith((p) =>\n        j.tsTypeReference(\n          j.tsQualifiedName(\n            j.identifier(valibotIdentifier),\n            // todo: find a better way to get the identifier\n            p.value.typeName.type === 'TSQualifiedName' &&\n              p.value.typeName.right.type === 'Identifier'\n              ? p.value.typeName.right\n              : j.identifier('bug')\n          ),\n          p.value.typeParameters\n        )\n      );\n  }\n  return {\n    conclusion: 'successful',\n    valibotIdentifier,\n  };\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/imports/index.ts",
    "content": "export * from './imports';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/index.ts",
    "content": "import type { Transform } from 'jscodeshift';\nimport { transformImports } from './imports';\nimport { transformSchemasAndLinks } from './schemas-and-links';\n\nconst transform: Transform = (fileInfo, api) => {\n  const j = api.jscodeshift;\n  const root = j(fileInfo.source);\n\n  // ------------ Imports ------------\n  const transformImportsResult = transformImports(root);\n  if (transformImportsResult.conclusion !== 'successful') {\n    if (transformImportsResult.conclusion === 'unsuccessful') {\n      const node = root.get().node;\n      // Add comment indicating unsuccessful transformation\n      node.comments ??= [];\n      node.comments.unshift(\n        j.commentBlock(\n          ` @valibot-migrate: unable to transform imports from Zod to Valibot: ${transformImportsResult.cause} `,\n          true,\n          false\n        )\n      );\n      return root.toSource();\n    }\n    return undefined;\n  }\n  const valibotIdentifier = transformImportsResult.valibotIdentifier;\n\n  // ------------ Schemas and links ------------\n  transformSchemasAndLinks(root, valibotIdentifier);\n\n  return root.toSource();\n};\n\nexport default transform;\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/constants.ts",
    "content": "import { ZodSchemaType } from './types';\n\nexport const ZOD_SCHEMAS = [\n  'any',\n  'array',\n  'bigint',\n  'boolean',\n  'custom',\n  'date',\n  'discriminatedUnion',\n  'enum',\n  'instanceof',\n  'intersection',\n  'literal',\n  'nan',\n  'nativeEnum',\n  'null',\n  'nullable',\n  'record',\n  'map',\n  'never',\n  'number',\n  'object',\n  'optional',\n  'set',\n  'string',\n  'symbol',\n  'tuple',\n  'undefined',\n  'union',\n  'unknown',\n  'void',\n] as const;\n\nexport const ZOD_SCHEMA_TO_TYPE: Record<\n  (typeof ZOD_SCHEMAS)[number],\n  ZodSchemaType\n> = {\n  any: 'none',\n  array: 'length',\n  bigint: 'value',\n  boolean: 'value',\n  custom: 'none',\n  date: 'value',\n  discriminatedUnion: 'none',\n  enum: 'none',\n  instanceof: 'none',\n  intersection: 'none',\n  literal: 'none',\n  map: 'size',\n  nan: 'none',\n  nativeEnum: 'none',\n  never: 'none',\n  null: 'none',\n  nullable: 'none',\n  record: 'none',\n  number: 'value',\n  object: 'none',\n  optional: 'none',\n  set: 'size',\n  string: 'length',\n  symbol: 'none',\n  tuple: 'none',\n  undefined: 'none',\n  union: 'none',\n  unknown: 'none',\n  void: 'none',\n};\n\nexport const ZOD_VALUE_TYPE_SCHEMAS: readonly (typeof ZOD_SCHEMAS)[number][] = [\n  'bigint',\n  'date',\n  'number',\n];\n\nexport const ZOD_VALIDATORS = [\n  'base64',\n  'base64url',\n  'cidr',\n  'cuid',\n  'cuid2',\n  'date',\n  'datetime',\n  'describe',\n  'duration',\n  'email',\n  'emoji',\n  'endsWith',\n  'finite',\n  'includes',\n  'int',\n  'ip',\n  'length',\n  'jwt',\n  'max',\n  'min',\n  'step',\n  'multipleOf',\n  'nanoid',\n  'negative',\n  'nonempty',\n  'nonnegative',\n  'nonpositive',\n  'positive',\n  'readonly',\n  'regex',\n  'safe',\n  'size',\n  'startsWith',\n  'toLowerCase',\n  'toUpperCase',\n  'trim',\n  'url',\n  'gt',\n  'gte',\n  'lt',\n  'lte',\n  'time',\n  'ulid',\n  'uuid',\n] as const;\n\nexport const ZOD_SCHEMA_PROPERTIES = [\n  'element',\n  'description',\n  'shape',\n] as const;\n\nexport const ZOD_RESULT_PROPERTIES = ['data', 'error'] as const;\n\nexport const ZOD_PROPERTIES = [\n  ...ZOD_SCHEMA_PROPERTIES,\n  ...ZOD_RESULT_PROPERTIES,\n] as const;\n\nexport const ZOD_METHODS = [\n  'array',\n  'catchall',\n  'default',\n  'deepPartial',\n  'exclude',\n  'extend',\n  'extract',\n  'keyof',\n  'omit',\n  'optional',\n  'or',\n  'merge',\n  'nullable',\n  'nullish',\n  'parse',\n  'parseAsync',\n  'partial',\n  'passthrough',\n  'pick',\n  'refine',\n  'required',\n  'rest',\n  'safeParse',\n  'safeParseAsync',\n  'strict',\n  'strip',\n  'spa',\n  'transform',\n  'unwrap',\n] as const;\n\nexport const ZOD_TYPES = ['infer', 'input', 'output'] as const;\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/helpers.ts",
    "content": "import j from 'jscodeshift';\n\nexport function splitLastArg(\n  maxArgs: number,\n  args: j.CallExpression['arguments']\n): {\n  firstArgs: j.CallExpression['arguments'];\n  lastArg: j.CallExpression['arguments'][number] | null;\n} {\n  let firstArgs = args;\n  let lastArg: j.CallExpression['arguments'][number] | null = null;\n  if (args.length === maxArgs && maxArgs > 0) {\n    firstArgs = args.slice(0, args.length - 1);\n    lastArg = args[args.length - 1];\n  }\n  return { firstArgs, lastArg };\n}\n\nconst isPipeSchemaExp = (callExp: j.CallExpression) =>\n  callExp.callee.type === 'MemberExpression' &&\n  callExp.callee.property.type === 'Identifier' &&\n  callExp.callee.property.name === 'pipe';\n\nexport function addToPipe(\n  valibotIdentifier: string,\n  addTo: j.CallExpression | j.MemberExpression | j.Identifier,\n  add: j.CallExpression\n): j.CallExpression {\n  return j.callExpression(\n    j.memberExpression(j.identifier(valibotIdentifier), j.identifier('pipe')),\n    [\n      ...(addTo.type === 'CallExpression' && isPipeSchemaExp(addTo)\n        ? addTo.arguments\n        : [addTo]),\n      add,\n    ]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/index.ts",
    "content": "export * from './schemas-and-links';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/array/array.ts",
    "content": "import j from 'jscodeshift';\n\nexport function transformArray(\n  valibotIdentifier: string,\n  schemaExp: j.CallExpression | j.MemberExpression | j.Identifier,\n  args: j.CallExpression['arguments']\n) {\n  return j.callExpression(\n    j.memberExpression(j.identifier(valibotIdentifier), j.identifier('array')),\n    [schemaExp, ...args]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/array/index.ts",
    "content": "export * from './array';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/catchall/catchall.ts",
    "content": "import j from 'jscodeshift';\nimport { addToPipe } from '../../helpers';\n\nexport function transformCatchall(\n  valibotIdentifier: string,\n  schemaExp: j.CallExpression | j.MemberExpression | j.Identifier,\n  args: j.CallExpression['arguments']\n) {\n  if (\n    schemaExp.type === 'CallExpression' &&\n    schemaExp.callee.type === 'MemberExpression' &&\n    schemaExp.callee.object.type === 'Identifier' &&\n    schemaExp.callee.object.name === valibotIdentifier &&\n    schemaExp.callee.property.type === 'Identifier' &&\n    schemaExp.callee.property.name === 'object'\n  ) {\n    return j.callExpression(\n      j.memberExpression(\n        j.identifier(valibotIdentifier),\n        j.identifier('objectWithRest')\n      ),\n      [schemaExp.arguments[0], ...args, ...schemaExp.arguments.slice(1)]\n    );\n  }\n  return addToPipe(\n    valibotIdentifier,\n    schemaExp,\n    j.callExpression(\n      j.memberExpression(\n        j.identifier(valibotIdentifier),\n        j.identifier('catchall')\n      ),\n      [...args]\n    )\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/catchall/index.ts",
    "content": "export * from './catchall';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/deepPartial/deepPartial.ts",
    "content": "import j from 'jscodeshift';\n\nexport function transformDeepPartial(\n  valibotIdentifier: string,\n  schemaExp: j.CallExpression | j.MemberExpression | j.Identifier,\n  inputArgs: j.CallExpression['arguments']\n) {\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('deepPartial')\n    ),\n    [schemaExp, ...inputArgs]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/deepPartial/index.ts",
    "content": "export * from './deepPartial';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/default/default.ts",
    "content": "import j from 'jscodeshift';\n\nexport function transformDefault(\n  valibotIdentifier: string,\n  schemaExp: j.CallExpression | j.MemberExpression | j.Identifier,\n  args: j.CallExpression['arguments']\n) {\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('optional')\n    ),\n    [schemaExp, ...args]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/default/index.ts",
    "content": "export * from './default';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/exclude/exclude.ts",
    "content": "import j from 'jscodeshift';\n\nexport function transformExclude(\n  valibotIdentifier: string,\n  schemaExp: j.CallExpression | j.MemberExpression | j.Identifier,\n  args: j.CallExpression['arguments']\n) {\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('exclude')\n    ),\n    [schemaExp, ...args]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/exclude/index.ts",
    "content": "export * from './exclude';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/extend/extend.ts",
    "content": "import j from 'jscodeshift';\n\nfunction isInlineObjectCall(exp: j.CallExpression): boolean {\n  return (\n    exp.callee.type === 'MemberExpression' &&\n    exp.callee.property.type === 'Identifier' &&\n    exp.callee.property.name === 'object'\n  );\n}\n\nfunction extractObjectProperties(\n  exp: j.CallExpression\n): j.ObjectExpression['properties'] {\n  const firstArg = exp.arguments[0];\n  if (firstArg && firstArg.type === 'ObjectExpression') {\n    return firstArg.properties;\n  }\n  return [];\n}\n\nexport function transformExtend(\n  valibotIdentifier: string,\n  schemaExp: j.CallExpression | j.MemberExpression | j.Identifier,\n  args: j.CallExpression['arguments']\n) {\n  const extensionObject = args[0];\n  const objectProperties: j.ObjectExpression['properties'] = [];\n\n  // Handle base schema\n  if (schemaExp.type === 'CallExpression' && isInlineObjectCall(schemaExp)) {\n    // Inline the properties from the base schema\n    const baseSchemaProperties = extractObjectProperties(schemaExp);\n    objectProperties.push(...baseSchemaProperties);\n  } else {\n    // Use spread with .entries for schema reference\n    const schemaEntries = j.memberExpression(\n      schemaExp,\n      j.identifier('entries')\n    );\n\n    if (schemaExp.type === 'Identifier') {\n      schemaEntries.comments = [\n        j.block(\n          `@valibot-migrate we can't detect if ${schemaExp.name} has a \\`pipe\\` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline`,\n          true,\n          false\n        ),\n      ];\n    }\n\n    objectProperties.push(j.spreadElement(schemaEntries));\n  }\n\n  // Handle extension object\n  if (extensionObject.type === 'ObjectExpression') {\n    // Inline the extension properties\n    objectProperties.push(...extensionObject.properties);\n  } else if (extensionObject.type !== 'SpreadElement') {\n    // Spread the extension object\n    objectProperties.push(j.spreadElement(extensionObject));\n  } else {\n    objectProperties.push(j.spreadElement(extensionObject.argument));\n  }\n\n  const extendedObject = j.objectExpression(objectProperties);\n\n  return j.callExpression(\n    j.memberExpression(j.identifier(valibotIdentifier), j.identifier('object')),\n    [extendedObject]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/extend/index.ts",
    "content": "export * from './extend';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/extract/extract.ts",
    "content": "import j from 'jscodeshift';\n\nexport function transformExtract(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('picklist')\n    ),\n    [...args]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/extract/index.ts",
    "content": "export * from './extract';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/index.ts",
    "content": "export * from './array';\nexport * from './catchall';\nexport * from './default';\nexport * from './deepPartial';\nexport * from './exclude';\nexport * from './extend';\nexport * from './extract';\nexport * from './keyof';\nexport * from './merge';\nexport * from './nullable';\nexport * from './nullish';\nexport * from './omit';\nexport * from './optional';\nexport * from './or';\nexport * from './parse';\nexport * from './parseAsync';\nexport * from './partial';\nexport * from './passthrough';\nexport * from './pick';\nexport * from './refine';\nexport * from './required';\nexport * from './rest';\nexport * from './safeParse';\nexport * from './safeParseAsync';\nexport * from './strict';\nexport * from './strip';\nexport * from './transform';\nexport * from './unwrap';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/keyof/index.ts",
    "content": "export * from './keyof';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/keyof/keyof.ts",
    "content": "import j from 'jscodeshift';\n\nexport function transformKeyof(\n  valibotIdentifier: string,\n  schemaExp: j.CallExpression | j.MemberExpression | j.Identifier,\n  args: j.CallExpression['arguments']\n) {\n  return j.callExpression(\n    j.memberExpression(j.identifier(valibotIdentifier), j.identifier('keyof')),\n    [schemaExp, ...args]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/merge/index.ts",
    "content": "export * from './merge';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/merge/merge.ts",
    "content": "import j from 'jscodeshift';\n\nfunction isInlineObjectCall(exp: j.CallExpression): boolean {\n  return (\n    exp.callee.type === 'MemberExpression' &&\n    exp.callee.property.type === 'Identifier' &&\n    exp.callee.property.name === 'object'\n  );\n}\n\nfunction extractObjectProperties(\n  exp: j.CallExpression\n): j.ObjectExpression['properties'] {\n  const firstArg = exp.arguments[0];\n  if (firstArg && firstArg.type === 'ObjectExpression') {\n    return firstArg.properties;\n  }\n  return [];\n}\n\nexport function transformMerge(\n  valibotIdentifier: string,\n  schemaExp: j.CallExpression | j.MemberExpression | j.Identifier,\n  args: j.CallExpression['arguments']\n) {\n  const secondSchema = args[0];\n  const objectProperties: j.ObjectExpression['properties'] = [];\n\n  // Handle first schema\n  if (schemaExp.type === 'CallExpression' && isInlineObjectCall(schemaExp)) {\n    // Inline the properties from the first schema\n    const firstSchemaProperties = extractObjectProperties(schemaExp);\n    objectProperties.push(...firstSchemaProperties);\n  } else {\n    // Use spread with .entries for schema reference\n    const firstSchemaEntries = j.memberExpression(\n      schemaExp,\n      j.identifier('entries')\n    );\n\n    if (schemaExp.type === 'Identifier') {\n      firstSchemaEntries.comments = [\n        j.block(\n          `@valibot-migrate we can't detect if ${schemaExp.name} has a \\`pipe\\` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline`,\n          true,\n          false\n        ),\n      ];\n    }\n\n    objectProperties.push(j.spreadElement(firstSchemaEntries));\n  }\n\n  // Handle second schema\n  if (\n    secondSchema.type === 'CallExpression' &&\n    isInlineObjectCall(secondSchema)\n  ) {\n    // Inline the properties from the second schema\n    const secondSchemaProperties = extractObjectProperties(\n      secondSchema as j.CallExpression\n    );\n    objectProperties.push(...secondSchemaProperties);\n    // this can technically never happen cause zod will yell at you if you spread the second element\n  } else if (secondSchema.type !== 'SpreadElement') {\n    // Use spread with .entries for schema reference\n    const secondSchemaEntries = j.memberExpression(\n      secondSchema,\n      j.identifier('entries')\n    );\n\n    if (secondSchema.type === 'Identifier') {\n      secondSchemaEntries.comments = [\n        j.block(\n          `@valibot-migrate we can't detect if ${secondSchema.name} has a \\`pipe\\` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline`,\n          true,\n          false\n        ),\n      ];\n    }\n\n    objectProperties.push(j.spreadElement(secondSchemaEntries));\n  } else {\n    const secondSchemaEntries = j.memberExpression(\n      secondSchema.argument,\n      j.identifier('entries')\n    );\n    objectProperties.push(j.spreadElement(secondSchemaEntries));\n  }\n\n  const mergedObject = j.objectExpression(objectProperties);\n\n  return j.callExpression(\n    j.memberExpression(j.identifier(valibotIdentifier), j.identifier('object')),\n    [mergedObject]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/nullable/index.ts",
    "content": "export * from './nullable';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/nullable/nullable.ts",
    "content": "import j from 'jscodeshift';\n\nexport function transformNullable(\n  valibotIdentifier: string,\n  schemaExp: j.CallExpression | j.MemberExpression | j.Identifier,\n  args: j.CallExpression['arguments']\n) {\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('nullable')\n    ),\n    [schemaExp, ...args]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/nullish/index.ts",
    "content": "export * from './nullish';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/nullish/nullish.ts",
    "content": "import j from 'jscodeshift';\n\nexport function transformNullish(\n  valibotIdentifier: string,\n  schemaExp: j.CallExpression | j.MemberExpression | j.Identifier,\n  args: j.CallExpression['arguments']\n) {\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('optional')\n    ),\n    [\n      j.callExpression(\n        j.memberExpression(\n          j.identifier(valibotIdentifier),\n          j.identifier('nullable')\n        ),\n        [schemaExp, ...args]\n      ),\n    ]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/omit/index.ts",
    "content": "export * from './omit';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/omit/omit.ts",
    "content": "import j from 'jscodeshift';\n\nfunction toValiOmitArg(omitArg: j.CallExpression['arguments'][number]) {\n  if (omitArg.type !== 'ObjectExpression') {\n    return null;\n  }\n  const selectedKeys = omitArg.properties\n    .map((p) =>\n      p.type === 'ObjectProperty' && p.key.type === 'Identifier'\n        ? j.stringLiteral(p.key.name)\n        : null\n    )\n    .filter((v) => v !== null);\n  return selectedKeys.length > 0 ? j.arrayExpression(selectedKeys) : null;\n}\n\nexport function transformOmit(\n  valibotIdentifier: string,\n  schemaExp: j.CallExpression | j.MemberExpression | j.Identifier,\n  inputArgs: j.CallExpression['arguments']\n) {\n  const args: any[] = [schemaExp];\n  const valiOmitArg = toValiOmitArg(inputArgs[0]);\n  if (valiOmitArg === null) {\n    return schemaExp;\n  }\n  args.push(valiOmitArg);\n  return j.callExpression(\n    j.memberExpression(j.identifier(valibotIdentifier), j.identifier('omit')),\n    args\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/optional/index.ts",
    "content": "export * from './optional';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/optional/optional.ts",
    "content": "import j from 'jscodeshift';\n\nexport function transformOptional(\n  valibotIdentifier: string,\n  schemaExp: j.CallExpression | j.MemberExpression | j.Identifier,\n  args: j.CallExpression['arguments']\n) {\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('optional')\n    ),\n    [schemaExp, ...args]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/or/index.ts",
    "content": "export * from './or';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/or/or.ts",
    "content": "import j from 'jscodeshift';\n\nexport function transformOr(\n  valibotIdentifier: string,\n  schemaExp: j.CallExpression | j.MemberExpression | j.Identifier,\n  inputArgs: j.CallExpression['arguments']\n) {\n  return j.callExpression(\n    j.memberExpression(j.identifier(valibotIdentifier), j.identifier('union')),\n    [j.arrayExpression([schemaExp, ...inputArgs])]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/parse/index.ts",
    "content": "export * from './parse';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/parse/parse.ts",
    "content": "import j from 'jscodeshift';\n\nexport function transformParse(\n  valibotIdentifier: string,\n  schemaExp: j.CallExpression | j.MemberExpression | j.Identifier,\n  args: j.CallExpression['arguments']\n) {\n  return j.callExpression(\n    j.memberExpression(j.identifier(valibotIdentifier), j.identifier('parse')),\n    [schemaExp, ...args]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/parseAsync/index.ts",
    "content": "export * from './parseAsync';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/parseAsync/parseAsync.ts",
    "content": "import j from 'jscodeshift';\n\nexport function transformParseAsync(\n  valibotIdentifier: string,\n  schemaExp: j.CallExpression | j.MemberExpression | j.Identifier,\n  args: j.CallExpression['arguments']\n) {\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('parseAsync')\n    ),\n    [schemaExp, ...args]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/partial/index.ts",
    "content": "export * from './partial';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/partial/partial.ts",
    "content": "import j from 'jscodeshift';\n\nfunction toValiPartialArg(partialArg: j.CallExpression['arguments'][number]) {\n  if (partialArg.type !== 'ObjectExpression') {\n    return null;\n  }\n  const selectedKeys = partialArg.properties\n    .map((p) =>\n      p.type === 'ObjectProperty' && p.key.type === 'Identifier'\n        ? j.stringLiteral(p.key.name)\n        : null\n    )\n    .filter((v) => v !== null);\n  return j.arrayExpression(selectedKeys);\n}\n\nexport function transformPartial(\n  valibotIdentifier: string,\n  schemaExp: j.CallExpression | j.MemberExpression | j.Identifier,\n  inputArgs: j.CallExpression['arguments']\n) {\n  const args: any[] = [schemaExp];\n  const valiPartialArg =\n    inputArgs.length > 0 ? toValiPartialArg(inputArgs[0]) : null;\n  if (valiPartialArg !== null) {\n    if (valiPartialArg.elements.length === 0) {\n      return schemaExp;\n    }\n    args.push(valiPartialArg);\n  }\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('partial')\n    ),\n    args\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/passthrough/index.ts",
    "content": "export * from './passthrough';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/passthrough/passthrough.ts",
    "content": "import j from 'jscodeshift';\nimport { addToPipe } from '../../helpers';\n\nexport function transformPassthrough(\n  valibotIdentifier: string,\n  schemaExp: j.CallExpression | j.MemberExpression | j.Identifier\n) {\n  // If the schema is already a looseObject, return it as-is (no-op)\n  if (\n    schemaExp.type === 'CallExpression' &&\n    schemaExp.callee.type === 'MemberExpression' &&\n    schemaExp.callee.object.type === 'Identifier' &&\n    schemaExp.callee.object.name === valibotIdentifier &&\n    schemaExp.callee.property.type === 'Identifier' &&\n    schemaExp.callee.property.name === 'looseObject'\n  ) {\n    return schemaExp;\n  }\n\n  // If the schema is a pipe with looseObject, return it as-is (no-op)\n  if (\n    schemaExp.type === 'CallExpression' &&\n    schemaExp.callee.type === 'MemberExpression' &&\n    schemaExp.callee.object.type === 'Identifier' &&\n    schemaExp.callee.object.name === valibotIdentifier &&\n    schemaExp.callee.property.type === 'Identifier' &&\n    schemaExp.callee.property.name === 'pipe' &&\n    schemaExp.arguments.length > 0 &&\n    schemaExp.arguments[0].type === 'CallExpression' &&\n    schemaExp.arguments[0].callee.type === 'MemberExpression' &&\n    schemaExp.arguments[0].callee.object.type === 'Identifier' &&\n    schemaExp.arguments[0].callee.object.name === valibotIdentifier &&\n    schemaExp.arguments[0].callee.property.type === 'Identifier' &&\n    schemaExp.arguments[0].callee.property.name === 'looseObject'\n  ) {\n    return schemaExp;\n  }\n\n  // Transform regular object to looseObject\n  if (\n    schemaExp.type === 'CallExpression' &&\n    schemaExp.callee.type === 'MemberExpression' &&\n    schemaExp.callee.object.type === 'Identifier' &&\n    schemaExp.callee.object.name === valibotIdentifier &&\n    schemaExp.callee.property.type === 'Identifier' &&\n    schemaExp.callee.property.name === 'object'\n  ) {\n    return j.callExpression(\n      j.memberExpression(\n        j.identifier(valibotIdentifier),\n        j.identifier('looseObject')\n      ),\n      schemaExp.arguments\n    );\n  }\n\n  const entries = j.memberExpression(schemaExp, j.identifier('entries'));\n\n  if (schemaExp.type === 'Identifier') {\n    entries.comments = [\n      j.block(\n        `@valibot-migrate we can't detect if ${schemaExp.name} has a \\`pipe\\` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline`,\n        true,\n        false\n      ),\n    ];\n  }\n\n  // Handle other cases (like previously defined schemas)\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('looseObject')\n    ),\n    [entries]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/pick/index.ts",
    "content": "export * from './pick';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/pick/pick.ts",
    "content": "import j from 'jscodeshift';\n\nfunction toValiPickArg(pickArg: j.CallExpression['arguments'][number]) {\n  if (pickArg.type !== 'ObjectExpression') {\n    return null;\n  }\n  const pickedKeys = pickArg.properties\n    .map((p) =>\n      p.type === 'ObjectProperty' && p.key.type === 'Identifier'\n        ? j.stringLiteral(p.key.name)\n        : null\n    )\n    .filter((v) => v !== null);\n  return pickedKeys.length > 0 ? j.arrayExpression(pickedKeys) : null;\n}\n\nexport function transformPick(\n  valibotIdentifier: string,\n  schemaExp: j.CallExpression | j.MemberExpression | j.Identifier,\n  inputArgs: j.CallExpression['arguments']\n) {\n  const args: any[] = [schemaExp];\n  const valiPickArg = toValiPickArg(inputArgs[0]);\n  if (valiPickArg === null) {\n    return schemaExp;\n  }\n  args.push(valiPickArg);\n  return j.callExpression(\n    j.memberExpression(j.identifier(valibotIdentifier), j.identifier('pick')),\n    args\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/refine/index.ts",
    "content": "export * from './refine';"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/refine/refine.ts",
    "content": "import j from 'jscodeshift';\nimport { addToPipe } from '../../helpers';\n\nexport function transformRefine(\n  valibotIdentifier: string,\n  schemaExp: j.CallExpression | j.MemberExpression | j.Identifier,\n  args: j.CallExpression['arguments']\n) {\n  // Transform Zod's refine arguments to Valibot's check arguments\n  const transformedArgs = args.map((arg) => {\n    // If the argument is an object with { message: \"...\" }, extract the message\n    if (\n      arg.type === 'ObjectExpression' &&\n      arg.properties.length === 1 &&\n      arg.properties[0].type === 'ObjectProperty' &&\n      arg.properties[0].key.type === 'Identifier' &&\n      arg.properties[0].key.name === 'message'\n    ) {\n      return arg.properties[0].value;\n    }\n    return arg;\n  }) as typeof args;\n\n  return addToPipe(\n    valibotIdentifier,\n    schemaExp,\n    j.callExpression(\n      j.memberExpression(\n        j.identifier(valibotIdentifier),\n        j.identifier('check')\n      ),\n      transformedArgs\n    )\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/required/index.ts",
    "content": "export * from './required';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/required/required.ts",
    "content": "import j from 'jscodeshift';\n\nfunction toValiRequiredArg(requiredArg: j.CallExpression['arguments'][number]) {\n  if (requiredArg.type !== 'ObjectExpression') {\n    return null;\n  }\n  const selectedKeys = requiredArg.properties\n    .map((p) =>\n      p.type === 'ObjectProperty' && p.key.type === 'Identifier'\n        ? j.stringLiteral(p.key.name)\n        : null\n    )\n    .filter((v) => v !== null);\n  return j.arrayExpression(selectedKeys);\n}\n\nexport function transformRequired(\n  valibotIdentifier: string,\n  schemaExp: j.CallExpression | j.MemberExpression | j.Identifier,\n  inputArgs: j.CallExpression['arguments']\n) {\n  const args: any[] = [schemaExp];\n  const valiRequiredArg =\n    inputArgs.length > 0 ? toValiRequiredArg(inputArgs[0]) : null;\n  if (valiRequiredArg !== null) {\n    if (valiRequiredArg.elements.length === 0) {\n      return schemaExp;\n    }\n    args.push(valiRequiredArg);\n  }\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('required')\n    ),\n    args\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/rest/index.ts",
    "content": "export * from './rest';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/rest/rest.ts",
    "content": "import j from 'jscodeshift';\nimport { addToPipe } from '../../helpers';\n\nexport function transformRest(\n  valibotIdentifier: string,\n  schemaExp: j.CallExpression | j.MemberExpression | j.Identifier,\n  args: j.CallExpression['arguments']\n) {\n  if (\n    schemaExp.type === 'CallExpression' &&\n    schemaExp.callee.type === 'MemberExpression' &&\n    schemaExp.callee.object.type === 'Identifier' &&\n    schemaExp.callee.object.name === valibotIdentifier &&\n    schemaExp.callee.property.type === 'Identifier' &&\n    schemaExp.callee.property.name === 'tuple'\n  ) {\n    return j.callExpression(\n      j.memberExpression(\n        j.identifier(valibotIdentifier),\n        j.identifier('tupleWithRest')\n      ),\n      [schemaExp.arguments[0], ...args, ...schemaExp.arguments.slice(1)]\n    );\n  }\n  return addToPipe(\n    valibotIdentifier,\n    schemaExp,\n    j.callExpression(\n      j.memberExpression(j.identifier(valibotIdentifier), j.identifier('rest')),\n      args\n    )\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/safeParse/index.ts",
    "content": "export * from './safeParse';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/safeParse/safeParse.ts",
    "content": "import j from 'jscodeshift';\n\nexport function transformSafeParse(\n  valibotIdentifier: string,\n  schemaExp: j.CallExpression | j.MemberExpression | j.Identifier,\n  args: j.CallExpression['arguments']\n) {\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('safeParse')\n    ),\n    [schemaExp, ...args]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/safeParseAsync/index.ts",
    "content": "export * from './safeParseAsync';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/safeParseAsync/safeParseAsync.ts",
    "content": "import j from 'jscodeshift';\n\nexport function transformSafeParseAsync(\n  valibotIdentifier: string,\n  schemaExp: j.CallExpression | j.MemberExpression | j.Identifier,\n  args: j.CallExpression['arguments']\n) {\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('safeParseAsync')\n    ),\n    [schemaExp, ...args]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/strict/index.ts",
    "content": "export * from './strict';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/strict/strict.ts",
    "content": "import j from 'jscodeshift';\nimport { addToPipe } from '../../helpers';\n\nexport function transformStrict(\n  valibotIdentifier: string,\n  schemaExp: j.CallExpression | j.MemberExpression | j.Identifier\n) {\n  // If the schema is already a strictObject, return it as-is (no-op)\n  if (\n    schemaExp.type === 'CallExpression' &&\n    schemaExp.callee.type === 'MemberExpression' &&\n    schemaExp.callee.object.type === 'Identifier' &&\n    schemaExp.callee.object.name === valibotIdentifier &&\n    schemaExp.callee.property.type === 'Identifier' &&\n    schemaExp.callee.property.name === 'strictObject'\n  ) {\n    return schemaExp;\n  }\n\n  // If the schema is a pipe with strictObject, return it as-is (no-op)\n  if (\n    schemaExp.type === 'CallExpression' &&\n    schemaExp.callee.type === 'MemberExpression' &&\n    schemaExp.callee.object.type === 'Identifier' &&\n    schemaExp.callee.object.name === valibotIdentifier &&\n    schemaExp.callee.property.type === 'Identifier' &&\n    schemaExp.callee.property.name === 'pipe' &&\n    schemaExp.arguments.length > 0 &&\n    schemaExp.arguments[0].type === 'CallExpression' &&\n    schemaExp.arguments[0].callee.type === 'MemberExpression' &&\n    schemaExp.arguments[0].callee.object.type === 'Identifier' &&\n    schemaExp.arguments[0].callee.object.name === valibotIdentifier &&\n    schemaExp.arguments[0].callee.property.type === 'Identifier' &&\n    schemaExp.arguments[0].callee.property.name === 'strictObject'\n  ) {\n    return schemaExp;\n  }\n\n  // Transform regular object to strictObject\n  if (\n    schemaExp.type === 'CallExpression' &&\n    schemaExp.callee.type === 'MemberExpression' &&\n    schemaExp.callee.object.type === 'Identifier' &&\n    schemaExp.callee.object.name === valibotIdentifier &&\n    schemaExp.callee.property.type === 'Identifier' &&\n    schemaExp.callee.property.name === 'object'\n  ) {\n    return j.callExpression(\n      j.memberExpression(\n        j.identifier(valibotIdentifier),\n        j.identifier('strictObject')\n      ),\n      schemaExp.arguments\n    );\n  }\n\n  const entries = j.memberExpression(schemaExp, j.identifier('entries'));\n\n  if (schemaExp.type === 'Identifier') {\n    entries.comments = [\n      j.block(\n        `@valibot-migrate we can't detect if ${schemaExp.name} has a \\`pipe\\` operator, if it does you might need to migrate this by hand otherwise it will loose it's pipeline`,\n        true,\n        false\n      ),\n    ];\n  }\n\n  // Handle other cases (like previously defined schemas)\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('strictObject')\n    ),\n    [entries]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/strip/index.ts",
    "content": "export * from './strip';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/strip/strip.ts",
    "content": "import j from 'jscodeshift';\nimport { addToPipe } from '../../helpers';\n\nexport function transformStrip(\n  valibotIdentifier: string,\n  schemaExp: j.CallExpression | j.MemberExpression | j.Identifier\n) {\n  if (\n    schemaExp.type === 'CallExpression' &&\n    schemaExp.callee.type === 'MemberExpression' &&\n    schemaExp.callee.object.type === 'Identifier' &&\n    schemaExp.callee.object.name === valibotIdentifier &&\n    schemaExp.callee.property.type === 'Identifier' &&\n    (schemaExp.callee.property.name === 'looseObject' ||\n      schemaExp.callee.property.name === 'strictObject')\n  ) {\n    return j.callExpression(\n      j.memberExpression(\n        j.identifier(valibotIdentifier),\n        j.identifier('object')\n      ),\n      schemaExp.arguments\n    );\n  }\n  return addToPipe(\n    valibotIdentifier,\n    schemaExp,\n    j.callExpression(\n      j.memberExpression(\n        j.identifier(valibotIdentifier),\n        j.identifier('strip')\n      ),\n      []\n    )\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/transform/index.ts",
    "content": "export * from './transform';"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/transform/transform.ts",
    "content": "import j from 'jscodeshift';\nimport { addToPipe } from '../../helpers';\n\nexport function transformTransform(\n  valibotIdentifier: string,\n  schemaExp: j.CallExpression | j.MemberExpression | j.Identifier,\n  args: j.CallExpression['arguments']\n) {\n  return addToPipe(\n    valibotIdentifier,\n    schemaExp,\n    j.callExpression(\n      j.memberExpression(\n        j.identifier(valibotIdentifier),\n        j.identifier('transform')\n      ),\n      args\n    )\n  );\n}"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/unwrap/index.ts",
    "content": "export * from './unwrap';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/methods/unwrap/unwrap.ts",
    "content": "import j from 'jscodeshift';\n\nexport function transformUnwrap(\n  valibotIdentifier: string,\n  schemaExp: j.CallExpression | j.MemberExpression | j.Identifier,\n  args: j.CallExpression['arguments']\n) {\n  return j.callExpression(\n    j.memberExpression(j.identifier(valibotIdentifier), j.identifier('unwrap')),\n    [schemaExp, ...args]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/properties/description.ts",
    "content": "import j from 'jscodeshift';\n\nexport function transformDescription(\n  valibotIdentifier: string,\n  exp: j.CallExpression | j.MemberExpression | j.Identifier\n) {\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('getDescription')\n    ),\n    [exp]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/properties/element.ts",
    "content": "import j from 'jscodeshift';\n\nexport function transformElement(\n  exp: j.CallExpression | j.MemberExpression | j.Identifier\n) {\n  return j.memberExpression(exp, j.identifier('item'));\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/properties/index.ts",
    "content": "export * from './element';\nexport * from './description';\nexport * from './shape';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/properties/shape.ts",
    "content": "import j from 'jscodeshift';\n\nexport function transformShape(\n  exp: j.CallExpression | j.MemberExpression | j.Identifier\n) {\n  return j.memberExpression(exp, j.identifier('entries'));\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/any/any.ts",
    "content": "import j from 'jscodeshift';\nimport { getSchemaComps, getSchemaWithOptionalDescription } from '../helpers';\n\nexport function transformAny(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { baseSchema, description } = getSchemaComps(\n    valibotIdentifier,\n    'any',\n    args,\n    1,\n    false,\n    false\n  );\n  return getSchemaWithOptionalDescription(\n    valibotIdentifier,\n    baseSchema,\n    description\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/any/index.ts",
    "content": "export * from './any';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/array/array.ts",
    "content": "import j from 'jscodeshift';\nimport { getSchemaComps, getSchemaWithOptionalDescription } from '../helpers';\n\nexport function transformArray(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { baseSchema, description } = getSchemaComps(\n    valibotIdentifier,\n    'array',\n    args,\n    2\n  );\n  return getSchemaWithOptionalDescription(\n    valibotIdentifier,\n    baseSchema,\n    description\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/array/index.ts",
    "content": "export * from './array';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/bigint/bigint.ts",
    "content": "import j from 'jscodeshift';\nimport {\n  getDescription,\n  getOptions,\n  getSchemaComps,\n  getSchemaWithOptionalDescription,\n  getTransformedMsgs,\n} from '../helpers';\n\nexport function transformBigint(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments'],\n  coerceSchema: boolean\n) {\n  const { baseSchema, coerce, description } = getSchemaComps(\n    valibotIdentifier,\n    'bigint',\n    args,\n    1,\n    coerceSchema\n  );\n  if (coerce) {\n    const optionsArg =\n      args.length > 0 && args[args.length - 1]?.type === 'ObjectExpression'\n        ? args[args.length - 1]\n        : null;\n    const msgs = getTransformedMsgs(getOptions(optionsArg));\n    return j.callExpression(\n      j.memberExpression(j.identifier(valibotIdentifier), j.identifier('pipe')),\n      [\n        j.callExpression(\n          j.memberExpression(\n            j.identifier(valibotIdentifier),\n            j.identifier('unknown')\n          ),\n          []\n        ),\n        j.callExpression(\n          j.memberExpression(\n            j.identifier(valibotIdentifier),\n            j.identifier('toBigint')\n          ),\n          msgs.filter((m) => m !== null)\n        ),\n        ...(description\n          ? [getDescription(valibotIdentifier, description)]\n          : []),\n      ]\n    );\n  }\n  return getSchemaWithOptionalDescription(\n    valibotIdentifier,\n    baseSchema,\n    description\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/bigint/index.ts",
    "content": "export * from './bigint';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/boolean/boolean.ts",
    "content": "import j from 'jscodeshift';\nimport {\n  getDescription,\n  getOptions,\n  getSchemaComps,\n  getSchemaWithOptionalDescription,\n  getTransformedMsgs,\n} from '../helpers';\n\nexport function transformBoolean(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments'],\n  coerceSchema: boolean\n) {\n  const { baseSchema, coerce, description } = getSchemaComps(\n    valibotIdentifier,\n    'boolean',\n    args,\n    1,\n    coerceSchema\n  );\n  if (coerce) {\n    const optionsArg =\n      args.length > 0 && args[args.length - 1]?.type === 'ObjectExpression'\n        ? args[args.length - 1]\n        : null;\n    const msgs = getTransformedMsgs(getOptions(optionsArg));\n    return j.callExpression(\n      j.memberExpression(j.identifier(valibotIdentifier), j.identifier('pipe')),\n      [\n        j.callExpression(\n          j.memberExpression(\n            j.identifier(valibotIdentifier),\n            j.identifier('unknown')\n          ),\n          []\n        ),\n        j.callExpression(\n          j.memberExpression(\n            j.identifier(valibotIdentifier),\n            j.identifier('toBoolean')\n          ),\n          msgs.filter((m) => m !== null)\n        ),\n        ...(description\n          ? [getDescription(valibotIdentifier, description)]\n          : []),\n      ]\n    );\n  }\n  return getSchemaWithOptionalDescription(\n    valibotIdentifier,\n    baseSchema,\n    description\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/boolean/index.ts",
    "content": "export * from './boolean';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/custom/custom.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getOption } from '../helpers';\n\nexport function transformCustom(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments'],\n  // no type definition found\n  typeParameters: any\n) {\n  const { firstArgs, lastArg } = splitLastArg(2, args);\n  const messageArg: any[] = [];\n  let messageKeyVal: any = null;\n  if (lastArg !== null) {\n    if (lastArg.type === 'StringLiteral') {\n      messageArg.push(lastArg);\n    } else if (\n      lastArg.type === 'ObjectExpression' &&\n      lastArg.properties.length === 1 &&\n      (messageKeyVal = getOption(lastArg, 'message')) !== null\n    ) {\n      messageArg.push(messageKeyVal);\n    } else {\n      messageArg.push(lastArg);\n    }\n  }\n  const transformedArgs = [...firstArgs, ...messageArg];\n  if (transformedArgs.length === 0) {\n    transformedArgs.push(j.arrowFunctionExpression([], j.booleanLiteral(true)));\n  }\n  const res = j.callExpression.from({\n    callee: j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('custom')\n    ),\n    arguments: transformedArgs,\n  });\n  // parser and types are not in sync\n  // @ts-expect-error\n  res.typeParameters = typeParameters;\n  return res;\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/custom/index.ts",
    "content": "export * from './custom';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/date/date.ts",
    "content": "import j from 'jscodeshift';\nimport {\n  getDescription,\n  getOptions,\n  getSchemaComps,\n  getSchemaWithOptionalDescription,\n  getTransformedMsgs,\n} from '../helpers';\n\nexport function transformDate(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments'],\n  coerceSchema: boolean\n) {\n  const { baseSchema, coerce, description } = getSchemaComps(\n    valibotIdentifier,\n    'date',\n    args,\n    1,\n    coerceSchema\n  );\n  if (coerce) {\n    const optionsArg =\n      args.length > 0 && args[args.length - 1]?.type === 'ObjectExpression'\n        ? args[args.length - 1]\n        : null;\n    const msgs = getTransformedMsgs(getOptions(optionsArg));\n    return j.callExpression(\n      j.memberExpression(j.identifier(valibotIdentifier), j.identifier('pipe')),\n      [\n        j.callExpression(\n          j.memberExpression(\n            j.identifier(valibotIdentifier),\n            j.identifier('unknown')\n          ),\n          []\n        ),\n        j.callExpression(\n          j.memberExpression(\n            j.identifier(valibotIdentifier),\n            j.identifier('toDate')\n          ),\n          msgs.filter((m) => m !== null)\n        ),\n        ...(description\n          ? [getDescription(valibotIdentifier, description)]\n          : []),\n      ]\n    );\n  }\n  return getSchemaWithOptionalDescription(\n    valibotIdentifier,\n    baseSchema,\n    description\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/date/index.ts",
    "content": "export * from './date';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/discriminatedUnion/discriminatedUnion.ts",
    "content": "import j from 'jscodeshift';\nimport { getSchemaComps, getSchemaWithOptionalDescription } from '../helpers';\n\nexport function transformDiscriminatedUnion(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { baseSchema, description } = getSchemaComps(\n    valibotIdentifier,\n    'variant',\n    args,\n    3\n  );\n  return getSchemaWithOptionalDescription(\n    valibotIdentifier,\n    baseSchema,\n    description\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/discriminatedUnion/index.ts",
    "content": "export * from './discriminatedUnion';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/enum/enum.ts",
    "content": "import j from 'jscodeshift';\nimport { getSchemaComps, getSchemaWithOptionalDescription } from '../helpers';\n\nexport function transformEnum(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { baseSchema, description } = getSchemaComps(\n    valibotIdentifier,\n    'picklist',\n    args,\n    2\n  );\n  return getSchemaWithOptionalDescription(\n    valibotIdentifier,\n    baseSchema,\n    description\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/enum/index.ts",
    "content": "export * from './enum';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/helpers.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../helpers';\nimport type { SchemaOptionsToASTVal } from './types';\n\nexport function getTransformedMsgs(schemaOptions: SchemaOptionsToASTVal) {\n  return schemaOptions.message\n    ? [schemaOptions.message]\n    : schemaOptions.required_error\n      ? [\n          j.arrowFunctionExpression(\n            [j.identifier('issue')],\n            j.conditionalExpression(\n              j.binaryExpression(\n                '===',\n                j.memberExpression(\n                  j.identifier('issue'),\n                  j.identifier('input')\n                ),\n                j.identifier('undefined')\n              ),\n              schemaOptions.required_error,\n              schemaOptions.invalid_type_error ??\n                j.memberExpression(\n                  j.identifier('issue'),\n                  j.identifier('message')\n                )\n            ),\n            true\n          ),\n        ]\n      : schemaOptions.invalid_type_error\n        ? [schemaOptions.invalid_type_error]\n        : [];\n}\n\nexport function getOption(\n  optionsArgs: j.CallExpression['arguments'][number] | null,\n  optionName: string\n) {\n  if (!optionsArgs || optionsArgs.type !== 'ObjectExpression') {\n    return null;\n  }\n  const optionVals = optionsArgs.properties\n    .map((p) =>\n      p.type === 'ObjectProperty' &&\n      p.key.type === 'Identifier' &&\n      p.key.name === optionName\n        ? p.value\n        : null\n    )\n    .filter((v) => v !== null);\n  const optionVal = optionVals[0];\n  return optionVal === undefined ||\n    optionVal.type === 'RestElement' ||\n    optionVal.type === 'SpreadElementPattern' ||\n    optionVal.type === 'PropertyPattern' ||\n    optionVal.type === 'ObjectPattern' ||\n    optionVal.type === 'ArrayPattern' ||\n    optionVal.type === 'AssignmentPattern' ||\n    optionVal.type === 'SpreadPropertyPattern' ||\n    optionVal.type === 'TSParameterProperty'\n    ? null\n    : optionVal;\n}\n\nexport function getOptions(\n  optionsArgs: j.CallExpression['arguments'][number] | null\n): Partial<\n  Record<\n    'description' | 'invalid_type_error' | 'required_error' | 'message',\n    ReturnType<typeof getOption>\n  > & { coerce: boolean }\n> {\n  const coerceOption = getOption(optionsArgs, 'coerce');\n  return {\n    description: getOption(optionsArgs, 'description'),\n    invalid_type_error: getOption(optionsArgs, 'invalid_type_error'),\n    required_error: getOption(optionsArgs, 'required_error'),\n    message: getOption(optionsArgs, 'message'),\n    coerce: coerceOption?.type === 'BooleanLiteral' && coerceOption.value,\n  };\n}\n\nexport function getSchemaComps(\n  valibotIdentifier: string,\n  schemaName: string,\n  args: j.CallExpression['arguments'],\n  maxArgs: number,\n  coerce = false,\n  addMsgArg = true\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(maxArgs, args);\n  const options = lastArg !== null ? getOptions(lastArg) : {};\n  return {\n    baseSchema: j.callExpression(\n      j.memberExpression(\n        j.identifier(valibotIdentifier),\n        j.identifier(schemaName)\n      ),\n      [...argsExceptOptions, ...(addMsgArg ? getTransformedMsgs(options) : [])]\n    ),\n    coerce: coerce || options.coerce,\n    description: options.description,\n  };\n}\n\nexport function getDescription(\n  valibotIdentifier: string,\n  description: SchemaOptionsToASTVal['description'] & {}\n) {\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('description')\n    ),\n    [description]\n  );\n}\n\nexport function getSchemaWithOptionalDescription(\n  valibotIdentifier: string,\n  schema: j.CallExpression,\n  description: SchemaOptionsToASTVal['description']\n) {\n  return description\n    ? j.callExpression(\n        j.memberExpression(\n          j.identifier(valibotIdentifier),\n          j.identifier('pipe')\n        ),\n        [schema, getDescription(valibotIdentifier, description)]\n      )\n    : schema;\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/index.ts",
    "content": "export * from './any';\nexport * from './array';\nexport * from './bigint/bigint';\nexport * from './boolean';\nexport * from './custom';\nexport * from './date';\nexport * from './discriminatedUnion';\nexport * from './enum';\nexport * from './instanceof';\nexport * from './intersection';\nexport * from './nan';\nexport * from './nativeEnum';\nexport * from './never';\nexport * from './null';\nexport * from './nullable';\nexport * from './number';\nexport * from './object';\nexport * from './optional';\nexport * from './record';\nexport * from './set';\nexport * from './string';\nexport * from './symbol';\nexport * from './tuple';\nexport * from './literal';\nexport * from './map';\nexport * from './undefined';\nexport * from './union';\nexport * from './unknown';\nexport * from './void';\nexport type { SchemaOptionsToASTVal } from './types';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/instanceof/index.ts",
    "content": "export * from './instanceof';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/instanceof/instanceof.ts",
    "content": "import j from 'jscodeshift';\nimport { getSchemaComps, getSchemaWithOptionalDescription } from '../helpers';\n\nexport function transformInstanceof(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { baseSchema, description } = getSchemaComps(\n    valibotIdentifier,\n    'instance',\n    args,\n    2\n  );\n  return getSchemaWithOptionalDescription(\n    valibotIdentifier,\n    baseSchema,\n    description\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/intersection/index.ts",
    "content": "export * from './intersection';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/intersection/intersection.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport {\n  getOptions,\n  getSchemaWithOptionalDescription,\n  getTransformedMsgs,\n} from '../helpers';\n\nexport function transformIntersection(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(3, args);\n  const options = lastArg !== null ? getOptions(lastArg) : {};\n  return getSchemaWithOptionalDescription(\n    valibotIdentifier,\n    j.callExpression(\n      j.memberExpression(\n        j.identifier(valibotIdentifier),\n        j.identifier('intersect')\n      ),\n      [j.arrayExpression(argsExceptOptions), ...getTransformedMsgs(options)]\n    ),\n    options.description\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/literal/index.ts",
    "content": "export * from './literal';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/literal/literal.ts",
    "content": "import j from 'jscodeshift';\nimport { getSchemaComps, getSchemaWithOptionalDescription } from '../helpers';\n\nexport function transformLiteral(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  let schemaName: 'null' | 'undefined' | 'literal' = 'literal';\n  let maxArgs = 2;\n  // The `literal` schema has at least one argument\n  // todo: find a way to check the assumption is correct and bail out if required\n  const [valArg] = args;\n  if (\n    valArg.type === 'NullLiteral' ||\n    (valArg.type === 'Identifier' && valArg.name === 'undefined')\n  ) {\n    args = args.slice(1);\n    maxArgs = 1;\n    schemaName = valArg.type === 'NullLiteral' ? 'null' : 'undefined';\n  }\n  const { baseSchema, description } = getSchemaComps(\n    valibotIdentifier,\n    schemaName,\n    args,\n    maxArgs\n  );\n  return getSchemaWithOptionalDescription(\n    valibotIdentifier,\n    baseSchema,\n    description\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/map/index.ts",
    "content": "export * from './map';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/map/map.ts",
    "content": "import j from 'jscodeshift';\nimport { getSchemaComps, getSchemaWithOptionalDescription } from '../helpers';\n\nexport function transformMap(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { baseSchema, description } = getSchemaComps(\n    valibotIdentifier,\n    'map',\n    args,\n    3\n  );\n  return getSchemaWithOptionalDescription(\n    valibotIdentifier,\n    baseSchema,\n    description\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/nan/index.ts",
    "content": "export * from './nan';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/nan/nan.ts",
    "content": "import j from 'jscodeshift';\nimport { getSchemaComps, getSchemaWithOptionalDescription } from '../helpers';\n\nexport function transformNan(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { baseSchema, description } = getSchemaComps(\n    valibotIdentifier,\n    'nan',\n    args,\n    1\n  );\n  return getSchemaWithOptionalDescription(\n    valibotIdentifier,\n    baseSchema,\n    description\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/nativeEnum/index.ts",
    "content": "export * from './nativeEnum';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/nativeEnum/nativeEnum.ts",
    "content": "import j from 'jscodeshift';\nimport { getSchemaComps, getSchemaWithOptionalDescription } from '../helpers';\n\nexport function transformNativeEnum(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { baseSchema, description } = getSchemaComps(\n    valibotIdentifier,\n    'enum',\n    args,\n    2\n  );\n  return getSchemaWithOptionalDescription(\n    valibotIdentifier,\n    baseSchema,\n    description\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/never/index.ts",
    "content": "export * from './never';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/never/never.ts",
    "content": "import j from 'jscodeshift';\nimport { getSchemaComps, getSchemaWithOptionalDescription } from '../helpers';\n\nexport function transformNever(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { baseSchema, description } = getSchemaComps(\n    valibotIdentifier,\n    'never',\n    args,\n    1\n  );\n  return getSchemaWithOptionalDescription(\n    valibotIdentifier,\n    baseSchema,\n    description\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/null/index.ts",
    "content": "export * from './null';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/null/null.ts",
    "content": "import j from 'jscodeshift';\nimport { getSchemaComps, getSchemaWithOptionalDescription } from '../helpers';\n\nexport function transformNull(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { baseSchema, description } = getSchemaComps(\n    valibotIdentifier,\n    'null',\n    args,\n    1\n  );\n  return getSchemaWithOptionalDescription(\n    valibotIdentifier,\n    baseSchema,\n    description\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/nullable/index.ts",
    "content": "export * from './nullable';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/nullable/nullable.ts",
    "content": "import j from 'jscodeshift';\nimport { getSchemaComps, getSchemaWithOptionalDescription } from '../helpers';\n\nexport function transformNullable(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { baseSchema, description } = getSchemaComps(\n    valibotIdentifier,\n    'nullable',\n    args,\n    2\n  );\n  return getSchemaWithOptionalDescription(\n    valibotIdentifier,\n    baseSchema,\n    description\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/number/index.ts",
    "content": "export * from './number';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/number/number.ts",
    "content": "import j from 'jscodeshift';\nimport {\n  getDescription,\n  getOptions,\n  getSchemaComps,\n  getSchemaWithOptionalDescription,\n  getTransformedMsgs,\n} from '../helpers';\n\nexport function transformNumber(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments'],\n  coerceSchema: boolean\n) {\n  const { baseSchema, coerce, description } = getSchemaComps(\n    valibotIdentifier,\n    'number',\n    args,\n    1,\n    coerceSchema\n  );\n  if (coerce) {\n    const optionsArg =\n      args.length > 0 && args[args.length - 1]?.type === 'ObjectExpression'\n        ? args[args.length - 1]\n        : null;\n    const msgs = getTransformedMsgs(getOptions(optionsArg));\n    return j.callExpression(\n      j.memberExpression(j.identifier(valibotIdentifier), j.identifier('pipe')),\n      [\n        j.callExpression(\n          j.memberExpression(\n            j.identifier(valibotIdentifier),\n            j.identifier('unknown')\n          ),\n          []\n        ),\n        j.callExpression(\n          j.memberExpression(\n            j.identifier(valibotIdentifier),\n            j.identifier('toNumber')\n          ),\n          msgs.filter((m) => m !== null)\n        ),\n        ...(description\n          ? [getDescription(valibotIdentifier, description)]\n          : []),\n      ]\n    );\n  }\n  return getSchemaWithOptionalDescription(\n    valibotIdentifier,\n    baseSchema,\n    description\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/object/index.ts",
    "content": "export * from './object';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/object/object.ts",
    "content": "import j from 'jscodeshift';\nimport { ObjectModifier } from '../../types';\nimport { getSchemaComps, getSchemaWithOptionalDescription } from '../helpers';\n\nexport function transformObject(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments'],\n  modifier: ObjectModifier = null\n) {\n  let schemaName = 'object';\n  if (modifier === 'strict') {\n    schemaName = 'strictObject';\n  } else if (modifier === 'passthrough') {\n    schemaName = 'looseObject';\n  }\n\n  const { baseSchema, description } = getSchemaComps(\n    valibotIdentifier,\n    schemaName,\n    args,\n    2\n  );\n  return getSchemaWithOptionalDescription(\n    valibotIdentifier,\n    baseSchema,\n    description\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/optional/index.ts",
    "content": "export * from './optional';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/optional/optional.ts",
    "content": "import j from 'jscodeshift';\nimport { getSchemaComps, getSchemaWithOptionalDescription } from '../helpers';\n\nexport function transformOptional(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { baseSchema, description } = getSchemaComps(\n    valibotIdentifier,\n    'optional',\n    args,\n    2\n  );\n  return getSchemaWithOptionalDescription(\n    valibotIdentifier,\n    baseSchema,\n    description\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/record/index.ts",
    "content": "export * from './record';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/record/record.ts",
    "content": "import j from 'jscodeshift';\nimport {\n  getSchemaComps,\n  getSchemaWithOptionalDescription,\n} from '../../schemas/helpers';\n\nexport function transformRecord(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { baseSchema, description } = getSchemaComps(\n    valibotIdentifier,\n    'record',\n    args.length === 1 ||\n      (args.length === 2 && args[1].type === 'ObjectExpression')\n      ? [\n          j.callExpression(\n            j.memberExpression(\n              j.identifier(valibotIdentifier),\n              j.identifier('string')\n            ),\n            []\n          ),\n          ...args,\n        ]\n      : args,\n    3\n  );\n  return getSchemaWithOptionalDescription(\n    valibotIdentifier,\n    baseSchema,\n    description\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/set/index.ts",
    "content": "export * from './set';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/set/set.ts",
    "content": "import j from 'jscodeshift';\nimport { getSchemaComps, getSchemaWithOptionalDescription } from '../helpers';\n\nexport function transformSet(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { baseSchema, description } = getSchemaComps(\n    valibotIdentifier,\n    'set',\n    args,\n    2\n  );\n  return getSchemaWithOptionalDescription(\n    valibotIdentifier,\n    baseSchema,\n    description\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/string/index.ts",
    "content": "export * from './string';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/string/string.ts",
    "content": "import j from 'jscodeshift';\nimport {\n  getDescription,\n  getOptions,\n  getSchemaComps,\n  getSchemaWithOptionalDescription,\n  getTransformedMsgs,\n} from '../helpers';\n\nexport function transformString(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments'],\n  coerceSchema: boolean\n) {\n  const { baseSchema, coerce, description } = getSchemaComps(\n    valibotIdentifier,\n    'string',\n    args,\n    1,\n    coerceSchema\n  );\n  if (coerce) {\n    const optionsArg =\n      args.length > 0 && args[args.length - 1]?.type === 'ObjectExpression'\n        ? args[args.length - 1]\n        : null;\n    const msgs = getTransformedMsgs(getOptions(optionsArg));\n    return j.callExpression(\n      j.memberExpression(j.identifier(valibotIdentifier), j.identifier('pipe')),\n      [\n        j.callExpression(\n          j.memberExpression(\n            j.identifier(valibotIdentifier),\n            j.identifier('unknown')\n          ),\n          []\n        ),\n        j.callExpression(\n          j.memberExpression(\n            j.identifier(valibotIdentifier),\n            j.identifier('toString')\n          ),\n          msgs.filter((m) => m !== null)\n        ),\n        ...(description\n          ? [getDescription(valibotIdentifier, description)]\n          : []),\n      ]\n    );\n  }\n  return getSchemaWithOptionalDescription(\n    valibotIdentifier,\n    baseSchema,\n    description\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/symbol/index.ts",
    "content": "export * from './symbol';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/symbol/symbol.ts",
    "content": "import j from 'jscodeshift';\nimport { getSchemaComps, getSchemaWithOptionalDescription } from '../helpers';\n\nexport function transformSymbol(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { baseSchema, description } = getSchemaComps(\n    valibotIdentifier,\n    'symbol',\n    args,\n    1\n  );\n  return getSchemaWithOptionalDescription(\n    valibotIdentifier,\n    baseSchema,\n    description\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/tuple/index.ts",
    "content": "export * from './tuple';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/tuple/tuple.ts",
    "content": "import j from 'jscodeshift';\nimport { getSchemaComps, getSchemaWithOptionalDescription } from '../helpers';\n\nexport function transformTuple(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { baseSchema, description } = getSchemaComps(\n    valibotIdentifier,\n    'tuple',\n    args,\n    2\n  );\n  return getSchemaWithOptionalDescription(\n    valibotIdentifier,\n    baseSchema,\n    description\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/types.ts",
    "content": "import type { getOption } from './helpers';\n\ntype SchemaOptionASTVal = ReturnType<typeof getOption>;\n\nexport type SchemaOptionsToASTVal = Partial<\n  Record<\n    'invalid_type_error' | 'required_error' | 'message' | 'description',\n    SchemaOptionASTVal\n  >\n>;\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/undefined/index.ts",
    "content": "export * from './undefined';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/undefined/undefined.ts",
    "content": "import j from 'jscodeshift';\nimport { getSchemaComps, getSchemaWithOptionalDescription } from '../helpers';\n\nexport function transformUndefined(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { baseSchema, description } = getSchemaComps(\n    valibotIdentifier,\n    'undefined',\n    args,\n    1\n  );\n  return getSchemaWithOptionalDescription(\n    valibotIdentifier,\n    baseSchema,\n    description\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/union/index.ts",
    "content": "export * from './union';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/union/union.ts",
    "content": "import j from 'jscodeshift';\nimport { getSchemaComps, getSchemaWithOptionalDescription } from '../helpers';\n\nexport function transformUnion(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { baseSchema, description } = getSchemaComps(\n    valibotIdentifier,\n    'union',\n    args,\n    2\n  );\n  return getSchemaWithOptionalDescription(\n    valibotIdentifier,\n    baseSchema,\n    description\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/unknown/index.ts",
    "content": "export * from './unknown';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/unknown/unknown.ts",
    "content": "import j from 'jscodeshift';\nimport { getSchemaComps, getSchemaWithOptionalDescription } from '../helpers';\n\nexport function transformUnknown(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { baseSchema, description } = getSchemaComps(\n    valibotIdentifier,\n    'unknown',\n    args,\n    1,\n    false,\n    false\n  );\n  return getSchemaWithOptionalDescription(\n    valibotIdentifier,\n    baseSchema,\n    description\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/void/index.ts",
    "content": "export * from './void';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas/void/void.ts",
    "content": "import j from 'jscodeshift';\nimport { getSchemaComps, getSchemaWithOptionalDescription } from '../helpers';\n\nexport function transformVoid(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { baseSchema, description } = getSchemaComps(\n    valibotIdentifier,\n    'void',\n    args,\n    1\n  );\n  return getSchemaWithOptionalDescription(\n    valibotIdentifier,\n    baseSchema,\n    description\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/schemas-and-links.ts",
    "content": "import j from 'jscodeshift';\nimport { assertNever, getIsTypeFn } from '../../utils';\nimport {\n  ZOD_METHODS,\n  ZOD_PROPERTIES,\n  ZOD_SCHEMA_TO_TYPE,\n  ZOD_SCHEMAS,\n  ZOD_TYPES,\n  ZOD_VALIDATORS,\n} from './constants';\nimport { addToPipe } from './helpers';\nimport {\n  transformArray as transformArrayMethod,\n  transformCatchall,\n  transformDeepPartial,\n  transformDefault,\n  transformExclude,\n  transformExtend,\n  transformExtract,\n  transformKeyof,\n  transformMerge,\n  transformNullable as transformNullableMethod,\n  transformNullish,\n  transformOmit,\n  transformOptional as transformOptionalMethod,\n  transformOr,\n  transformParse,\n  transformParseAsync,\n  transformPartial,\n  transformPassthrough,\n  transformPick,\n  transformRefine,\n  transformRequired,\n  transformRest,\n  transformSafeParse,\n  transformSafeParseAsync,\n  transformStrict,\n  transformStrip,\n  transformTransform,\n  transformUnwrap,\n} from './methods';\nimport {\n  transformDescription,\n  transformElement,\n  transformShape,\n} from './properties';\nimport {\n  transformAny,\n  transformArray,\n  transformBigint,\n  transformBoolean,\n  transformCustom,\n  transformDate,\n  transformDiscriminatedUnion,\n  transformEnum,\n  transformInstanceof,\n  transformIntersection,\n  transformLiteral,\n  transformMap,\n  transformNan,\n  transformNativeEnum,\n  transformNever,\n  transformNull,\n  transformNullable,\n  transformNumber,\n  transformObject,\n  transformOptional,\n  transformRecord,\n  transformSet,\n  transformString,\n  transformSymbol,\n  transformTuple,\n  transformUndefined,\n  transformUnion,\n  transformUnknown,\n  transformVoid,\n} from './schemas';\nimport { ObjectModifier, ZodSchemaType } from './types';\nimport {\n  transformBase64,\n  transformCUID2,\n  transformDateTime,\n  transformDate as transformDateValidator,\n  transformDescribe,\n  transformEmail,\n  transformEmoji,\n  transformEndsWith,\n  transformFinite,\n  transformGt,\n  transformGte,\n  transformIncludes,\n  transformInt,\n  transformIp,\n  transformLength,\n  transformLt,\n  transformLte,\n  transformMax,\n  transformMin,\n  transformMultipleOf,\n  transformNanoid,\n  transformNegative,\n  transformNonEmpty,\n  transformNonNegative,\n  transformNonPositive,\n  transformPositive,\n  transformReadonly,\n  transformRegex,\n  transformSafe,\n  transformSize,\n  transformStartsWith,\n  transformTime,\n  transformToLowerCase,\n  transformToUpperCase,\n  transformTrim,\n  transformULID,\n  transformUnimplemented,\n  transformUrl,\n  transformUUID,\n} from './validators';\n\ntype UnknownPath = j.ASTPath<{ type: unknown }>;\ntype ZodSchemaName = (typeof ZOD_SCHEMAS)[number];\ntype ZodValidatorName = (typeof ZOD_VALIDATORS)[number];\ntype ZodMethodName = (typeof ZOD_METHODS)[number];\ntype ZodPropertyName = (typeof ZOD_PROPERTIES)[number];\ntype ZodTypeName = (typeof ZOD_TYPES)[number];\n\nfunction isCallExp(path: UnknownPath): path is j.ASTPath<j.CallExpression> {\n  return path.value.type === 'CallExpression';\n}\n\nfunction isMemberExp(path: UnknownPath): path is j.ASTPath<j.MemberExpression> {\n  return path.value.type === 'MemberExpression';\n}\n\nconst isZodSchemaName = getIsTypeFn(ZOD_SCHEMAS);\nconst isZodValidatorName = getIsTypeFn(ZOD_VALIDATORS);\nconst isZodMethodName = getIsTypeFn(ZOD_METHODS);\nconst isZodPropertyName = getIsTypeFn(ZOD_PROPERTIES);\nconst isZodTypeName = getIsTypeFn(ZOD_TYPES);\n\nfunction checkForObjectModifierInChain(\n  cur: j.ASTPath<j.CallExpression>\n): ObjectModifier {\n  let parent = cur.parentPath;\n  let latestModifier: ObjectModifier = null;\n  \n  while (parent) {\n    if (\n      parent.value.type === 'CallExpression' &&\n      parent.value.callee.type === 'MemberExpression' &&\n      parent.value.callee.property.type === 'Identifier'\n    ) {\n      const methodName = parent.value.callee.property.name;\n      if (methodName === 'strict' || methodName === 'passthrough' || methodName === 'strip') {\n        latestModifier = methodName;\n      }\n    }\n    if (\n      parent.value.type === 'MemberExpression' &&\n      parent.value.property.type === 'Identifier' &&\n      parent.parentPath?.value.type === 'CallExpression'\n    ) {\n      const methodName = parent.value.property.name;\n      if (methodName === 'strict' || methodName === 'passthrough' || methodName === 'strip') {\n        latestModifier = methodName;\n      }\n    }\n    parent = parent.parentPath;\n  }\n  return latestModifier;\n}\n\nfunction toValibotSchemaExp(\n  valibotIdentifier: string,\n  zodSchemaName: ZodSchemaName,\n  inputArgs: j.CallExpression['arguments'],\n  // no type definition found\n  typeParameters: any,\n  coerceOption = false,\n  objectModifier: ObjectModifier = null\n): j.CallExpression {\n  const args = [valibotIdentifier, inputArgs] as const;\n  const argsWithCoerce = [...args, coerceOption] as const;\n  switch (zodSchemaName) {\n    case 'any':\n      return transformAny(...args);\n    case 'array':\n      return transformArray(...args);\n    case 'string':\n      return transformString(...argsWithCoerce);\n    case 'boolean':\n      return transformBoolean(...argsWithCoerce);\n    case 'custom':\n      return transformCustom(...args, typeParameters);\n    case 'discriminatedUnion':\n      return transformDiscriminatedUnion(...args);\n    case 'instanceof':\n      return transformInstanceof(...args);\n    case 'intersection':\n      return transformIntersection(...args);\n    case 'map':\n      return transformMap(...args);\n    case 'nan':\n      return transformNan(...args);\n    case 'nativeEnum':\n      return transformNativeEnum(...args);\n    case 'never':\n      return transformNever(...args);\n    case 'null':\n      return transformNull(...args);\n    case 'nullable':\n      return transformNullable(...args);\n    case 'number':\n      return transformNumber(...argsWithCoerce);\n    case 'bigint':\n      return transformBigint(...argsWithCoerce);\n    case 'date':\n      return transformDate(...argsWithCoerce);\n    case 'enum':\n      return transformEnum(...args);\n    case 'literal':\n      return transformLiteral(...args);\n    case 'object':\n      return transformObject(...args, objectModifier);\n    case 'optional':\n      return transformOptional(...args);\n    case 'record':\n      return transformRecord(...args);\n    case 'set':\n      return transformSet(...args);\n    case 'symbol':\n      return transformSymbol(...args);\n    case 'undefined':\n      return transformUndefined(...args);\n    case 'union':\n      return transformUnion(...args);\n    case 'unknown':\n      return transformUnknown(...args);\n    case 'tuple':\n      return transformTuple(...args);\n    case 'void':\n      return transformVoid(...args);\n    default: {\n      assertNever(zodSchemaName);\n    }\n  }\n}\n\nfunction toValibotActionExp(\n  valibotIdentifier: string,\n  zodValidatorName: ZodValidatorName,\n  inputArgs: j.CallExpression['arguments'],\n  schemaType: ZodSchemaType,\n  useBigInt: boolean\n) {\n  const args = [valibotIdentifier, inputArgs] as const;\n  switch (zodValidatorName) {\n    case 'base64':\n      return transformBase64(...args);\n    case 'base64url':\n      return transformUnimplemented(...args, 'base64url');\n    case 'cidr':\n      return transformUnimplemented(...args, 'cidr');\n    case 'cuid':\n      return transformUnimplemented(...args, 'cuid');\n    case 'cuid2':\n      return transformCUID2(...args);\n    case 'date':\n      return transformDateValidator(...args);\n    case 'datetime':\n      return transformDateTime(...args);\n    case 'describe':\n      return transformDescribe(...args);\n    case 'duration':\n      return transformUnimplemented(...args, 'duration');\n    case 'email':\n      return transformEmail(...args);\n    case 'emoji':\n      return transformEmoji(...args);\n    case 'endsWith':\n      return transformEndsWith(...args);\n    case 'finite':\n      return transformFinite(...args);\n    case 'includes':\n      return transformIncludes(...args);\n    case 'int':\n      return transformInt(...args);\n    case 'ip':\n      return transformIp(...args);\n    case 'jwt':\n      return transformUnimplemented(...args, 'jwt');\n    case 'length':\n      return transformLength(...args);\n    case 'max':\n      return transformMax(...args, schemaType);\n    case 'min':\n      return transformMin(...args, schemaType);\n    case 'step':\n    case 'multipleOf':\n      return transformMultipleOf(...args);\n    case 'nanoid':\n      return transformNanoid(...args);\n    case 'negative':\n      return transformNegative(...args, useBigInt);\n    case 'nonempty':\n      return transformNonEmpty(...args, schemaType === 'size');\n    case 'nonnegative':\n      return transformNonNegative(...args, useBigInt);\n    case 'nonpositive':\n      return transformNonPositive(...args, useBigInt);\n    case 'positive':\n      return transformPositive(...args, useBigInt);\n    case 'readonly':\n      return transformReadonly(valibotIdentifier);\n    case 'regex':\n      return transformRegex(...args);\n    case 'safe':\n      return transformSafe(...args);\n    case 'size':\n      return transformSize(...args);\n    case 'startsWith':\n      return transformStartsWith(...args);\n    case 'toLowerCase':\n      return transformToLowerCase(...args);\n    case 'toUpperCase':\n      return transformToUpperCase(...args);\n    case 'trim':\n      return transformTrim(...args);\n    case 'url':\n      return transformUrl(...args);\n    case 'gt':\n      return transformGt(...args);\n    case 'gte':\n      return transformGte(...args);\n    case 'lt':\n      return transformLt(...args);\n    case 'lte':\n      return transformLte(...args);\n    case 'time':\n      return transformTime(...args);\n    case 'ulid':\n      return transformULID(...args);\n    case 'uuid':\n      return transformUUID(...args);\n    default:\n      assertNever(zodValidatorName);\n  }\n}\n\nfunction toValiPropExp(\n  valibotIdentifier: string,\n  exp: j.CallExpression | j.MemberExpression | j.Identifier,\n  propertyName: ZodPropertyName\n) {\n  switch (propertyName) {\n    case 'data':\n      return j.memberExpression(exp, j.identifier('output'));\n    case 'description':\n      return transformDescription(valibotIdentifier, exp);\n    case 'element':\n      return transformElement(exp);\n    case 'error':\n      return j.memberExpression(exp, j.identifier('issues'));\n    case 'shape':\n      return transformShape(exp);\n    default:\n      assertNever(propertyName);\n  }\n}\n\nfunction toValibotMethodExp(\n  valibotIdentifier: string,\n  zodMethodName: ZodMethodName,\n  schemaExp: j.CallExpression | j.MemberExpression | j.Identifier,\n  inputArgs: j.CallExpression['arguments']\n) {\n  const args = [valibotIdentifier, schemaExp, inputArgs] as const;\n  switch (zodMethodName) {\n    case 'array':\n      return transformArrayMethod(...args);\n    case 'catchall':\n      return transformCatchall(valibotIdentifier, schemaExp, inputArgs);\n    case 'default':\n      return transformDefault(...args);\n    case 'deepPartial':\n      return transformDeepPartial(...args);\n    case 'exclude':\n      return transformExclude(...args);\n    case 'extend':\n      return transformExtend(...args);\n    case 'extract':\n      return transformExtract(valibotIdentifier, inputArgs);\n    case 'keyof':\n      return transformKeyof(...args);\n    case 'omit':\n      return transformOmit(...args);\n    case 'or':\n      return transformOr(...args);\n    case 'optional':\n      return transformOptionalMethod(...args);\n    case 'merge':\n      return transformMerge(...args);\n    case 'nullable':\n      return transformNullableMethod(...args);\n    case 'parse':\n      return transformParse(...args);\n    case 'parseAsync':\n      return transformParseAsync(...args);\n    case 'partial':\n      return transformPartial(...args);\n    case 'passthrough':\n      return transformPassthrough(valibotIdentifier, schemaExp);\n    case 'pick':\n      return transformPick(...args);\n    case 'refine':\n      return transformRefine(...args);\n    case 'required':\n      return transformRequired(...args);\n    case 'rest':\n      return transformRest(...args);\n    case 'safeParse':\n      return transformSafeParse(...args);\n    case 'safeParseAsync':\n    case 'spa':\n      return transformSafeParseAsync(...args);\n    case 'strict':\n      return transformStrict(valibotIdentifier, schemaExp);\n    case 'strip':\n      return transformStrip(valibotIdentifier, schemaExp);\n    case 'transform':\n      return transformTransform(...args);\n    case 'unwrap':\n      return transformUnwrap(...args);\n    case 'nullish':\n      return transformNullish(...args);\n    default:\n      assertNever(zodMethodName);\n  }\n}\n\nfunction getValiType(\n  valibotIdentifier: string,\n  typeName: string,\n  typeParameters: j.TSTypeParameterInstantiation | null | undefined\n) {\n  return j.tsTypeReference(\n    j.tsQualifiedName(j.identifier(valibotIdentifier), j.identifier(typeName)),\n    typeParameters\n  );\n}\n\nfunction toValiTypeExp(\n  valibotIdentifier: string,\n  typeParameters: j.TSTypeParameterInstantiation | null | undefined,\n  zodTypeName: ZodTypeName\n) {\n  switch (zodTypeName) {\n    case 'infer':\n    case 'output':\n      return getValiType(valibotIdentifier, 'InferOutput', typeParameters);\n    case 'input':\n      return getValiType(valibotIdentifier, 'InferInput', typeParameters);\n    default:\n      assertNever(zodTypeName);\n  }\n}\n\nfunction transformSchemasAndLinksHelper(\n  root: j.Collection<unknown>,\n  valibotIdentifier: string,\n  identifier: string,\n  schemaType: ZodSchemaType | null\n) {\n  const relevantExps = [\n    ...root\n      .find(j.MemberExpression, {\n        object: { name: identifier },\n      })\n      .paths(),\n    ...root.find(j.TSTypeReference).paths(),\n  ]\n    // to make sure nested schemas are transformed first\n    .reverse();\n  main: for (const relevantExp of relevantExps) {\n    if (\n      relevantExp.value.type === 'TSTypeReference' &&\n      relevantExp.value.typeName.type === 'TSQualifiedName' &&\n      relevantExp.value.typeName.left.type === 'Identifier' &&\n      relevantExp.value.typeName.left.name === valibotIdentifier\n    ) {\n      if (\n        relevantExp.value.typeName.right.type === 'Identifier' &&\n        isZodTypeName(relevantExp.value.typeName.right.name)\n      ) {\n        relevantExp.replace(\n          toValiTypeExp(\n            valibotIdentifier,\n            relevantExp.value.typeParameters,\n            relevantExp.value.typeName.right.name\n          )\n        );\n      }\n      continue;\n    }\n    let transformedExp:\n      | j.CallExpression\n      | j.MemberExpression\n      | j.Identifier\n      | null = null;\n    let transformLinks = true;\n    let coerce = false;\n    let useBigInt = false;\n    let curSchemaType = schemaType;\n    let cur: UnknownPath = relevantExp;\n    let rootExp:\n      | j.ASTPath<j.CallExpression>\n      | j.ASTPath<j.MemberExpression>\n      | null = null;\n    let knownRootExp:\n      | j.ASTPath<j.CallExpression>\n      | j.ASTPath<j.MemberExpression>\n      | null = null;\n    while (isMemberExp(cur) || isCallExp(cur)) {\n      rootExp = cur;\n      if (isMemberExp(cur)) {\n        if (cur.value.property.type !== 'Identifier') {\n          // the property name must always be an indentifier as\n          // extracting the property name might get tricky otherwise\n          transformLinks = false;\n          break;\n        }\n        const propertyName = cur.value.property.name;\n        // `coerce` is a special case\n        if (propertyName === 'coerce') {\n          coerce = true;\n        } else if (isZodPropertyName(propertyName)) {\n          coerce = false;\n          transformedExp = toValiPropExp(\n            valibotIdentifier,\n            transformedExp ?? j.identifier(identifier),\n            propertyName\n          );\n        } else if (!isCallExp(cur.parentPath)) {\n          // unknown property name\n          transformLinks = false;\n          break;\n        }\n        knownRootExp = cur;\n        cur = cur.parentPath;\n        continue;\n      }\n      // `cur` is a CallExpression\n      if (\n        cur.value.callee.type !== 'MemberExpression' ||\n        cur.value.callee.property.type !== 'Identifier'\n      ) {\n        // the property name must always be an indentifier as\n        // extracting the property name might get tricky otherwise\n        transformLinks = false;\n        break;\n      }\n      const propertyName = cur.value.callee.property.name;\n      if (curSchemaType === null && isZodSchemaName(propertyName)) {\n        curSchemaType = ZOD_SCHEMA_TO_TYPE[propertyName];\n        useBigInt = propertyName === 'bigint';\n\n        // Check if there's a modifier call in the chain for object schemas\n        let objectModifier: ObjectModifier = null;\n        if (propertyName === 'object') {\n          objectModifier = checkForObjectModifierInChain(cur);\n        }\n\n        transformedExp = toValibotSchemaExp(\n          valibotIdentifier,\n          propertyName,\n          cur.value.arguments,\n          // parser and types are not in sync\n          // @ts-expect-error\n          cur.value.typeParameters,\n          coerce,\n          objectModifier\n        );\n      } else if (isZodMethodName(propertyName)) {\n        transformedExp = toValibotMethodExp(\n          valibotIdentifier,\n          propertyName,\n          transformedExp ?? j.identifier(identifier),\n          cur.value.arguments\n        );\n      } else if (isZodValidatorName(propertyName)) {\n        if (curSchemaType === null) {\n          // validators can only be applied to parsed schemas\n          transformLinks = false;\n          break;\n        }\n        transformedExp = addToPipe(\n          valibotIdentifier,\n          transformedExp ?? j.identifier(identifier),\n          toValibotActionExp(\n            valibotIdentifier,\n            propertyName,\n            cur.value.arguments,\n            curSchemaType,\n            useBigInt\n          )\n        );\n      } else {\n        // `propertyName` is not a schema, validator, or method name\n        // it's not safe to transform the chain\n        transformLinks = false;\n        break;\n      }\n      coerce = false;\n      knownRootExp = cur;\n      cur = cur.parentPath;\n    }\n    if (transformedExp !== null) {\n      knownRootExp?.replace(transformedExp);\n    }\n    if (transformLinks && rootExp !== null) {\n      const nxtPath = j.AwaitExpression.check(rootExp.parentPath.value)\n        ? rootExp.parentPath\n        : rootExp;\n      if (\n        j.VariableDeclarator.check(nxtPath.parentPath.value) &&\n        j.Identifier.check(nxtPath.parentPath.value.id)\n      ) {\n        // transform links\n        transformSchemasAndLinksHelper(\n          root,\n          valibotIdentifier,\n          nxtPath.parentPath.value.id.name,\n          curSchemaType\n        );\n      }\n    }\n  }\n}\n\nexport function transformSchemasAndLinks(\n  root: j.Collection<unknown>,\n  valibotIdentifier: string\n) {\n  transformSchemasAndLinksHelper(\n    root,\n    valibotIdentifier,\n    valibotIdentifier,\n    null\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/types.ts",
    "content": "export type ZodSchemaType = 'value' | 'length' | 'size' | 'none';\n\nexport type ObjectModifier = 'strict' | 'passthrough' | null;\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/base64/base64.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformBase64(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(1, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(j.identifier(valibotIdentifier), j.identifier('base64')),\n    [...argsExceptOptions, ...(msgArg !== null ? [msgArg] : [])]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/base64/index.ts",
    "content": "export * from './base64';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/cuid2/cuid2.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformCUID2(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(1, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(j.identifier(valibotIdentifier), j.identifier('cuid2')),\n    [...argsExceptOptions, ...(msgArg !== null ? [msgArg] : [])]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/cuid2/index.ts",
    "content": "export * from './cuid2';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/date/date.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformDate(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(1, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('isoDate')\n    ),\n    [...argsExceptOptions, ...(msgArg !== null ? [msgArg] : [])]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/date/index.ts",
    "content": "export * from './date';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/datetime/datetime.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformDateTime(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(1, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('isoTimestamp')\n    ),\n    [...argsExceptOptions, ...(msgArg !== null ? [msgArg] : [])]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/datetime/index.ts",
    "content": "export * from './datetime';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/describe/describe.ts",
    "content": "import j from 'jscodeshift';\n\nexport function transformDescribe(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('description')\n    ),\n    args\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/describe/index.ts",
    "content": "export * from './describe';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/email/email.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformEmail(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(1, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(j.identifier(valibotIdentifier), j.identifier('email')),\n    [...argsExceptOptions, ...(msgArg !== null ? [msgArg] : [])]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/email/index.ts",
    "content": "export * from './email';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/emoji/emoji.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformEmoji(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(1, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(j.identifier(valibotIdentifier), j.identifier('emoji')),\n    [...argsExceptOptions, ...(msgArg !== null ? [msgArg] : [])]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/emoji/index.ts",
    "content": "export * from './emoji';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/endsWith/endsWith.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformEndsWith(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(2, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('endsWith')\n    ),\n    [...argsExceptOptions, ...(msgArg !== null ? [msgArg] : [])]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/endsWith/index.ts",
    "content": "export * from './endsWith';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/finite/finite.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformFinite(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(1, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(j.identifier(valibotIdentifier), j.identifier('finite')),\n    [...argsExceptOptions, ...(msgArg !== null ? [msgArg] : [])]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/finite/index.ts",
    "content": "export * from './finite';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/gt/gt.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformGt(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(2, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('gtValue')\n    ),\n    [...argsExceptOptions, ...(msgArg !== null ? [msgArg] : [])]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/gt/index.ts",
    "content": "export * from './gt';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/gte/gte.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformGte(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(2, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('minValue')\n    ),\n    [...argsExceptOptions, ...(msgArg !== null ? [msgArg] : [])]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/gte/index.ts",
    "content": "export * from './gte';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/helpers.ts",
    "content": "import j from 'jscodeshift';\n\nexport function getValidatorMsg(\n  msgArg: j.CallExpression['arguments'][number] | null\n) {\n  if (msgArg === null) {\n    return null;\n  }\n  if (msgArg.type !== 'ObjectExpression') {\n    return msgArg;\n  }\n  const msgVals = msgArg.properties\n    .map((p) =>\n      p.type === 'ObjectProperty' &&\n      p.key.type === 'Identifier' &&\n      p.key.name === 'message'\n        ? p.value\n        : null\n    )\n    .filter((v) => v !== null);\n  const msgVal = msgVals.at(0);\n  return msgVal === undefined ||\n    msgVal.type === 'RestElement' ||\n    msgVal.type === 'SpreadElementPattern' ||\n    msgVal.type === 'PropertyPattern' ||\n    msgVal.type === 'ObjectPattern' ||\n    msgVal.type === 'ArrayPattern' ||\n    msgVal.type === 'AssignmentPattern' ||\n    msgVal.type === 'SpreadPropertyPattern' ||\n    msgVal.type === 'TSParameterProperty'\n    ? null\n    : msgVal;\n}\n\nexport function transformUnimplemented(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments'],\n  validatorName: string\n) {\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier(validatorName)\n    ),\n    args\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/includes/includes.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformIncludes(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(2, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('includes')\n    ),\n    [...argsExceptOptions, ...(msgArg !== null ? [msgArg] : [])]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/includes/index.ts",
    "content": "export * from './includes';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/index.ts",
    "content": "export * from './base64';\nexport * from './cuid2';\nexport * from './date';\nexport * from './datetime';\nexport * from './describe';\nexport * from './email';\nexport * from './emoji';\nexport * from './endsWith';\nexport * from './finite';\nexport * from './includes';\nexport * from './int';\nexport * from './ip';\nexport * from './length';\nexport * from './max';\nexport * from './min';\nexport * from './multipleOf';\nexport * from './nanoid';\nexport * from './negative';\nexport * from './nonempty';\nexport * from './nonnegative';\nexport * from './nonpositive';\nexport * from './positive';\nexport * from './readonly';\nexport * from './regex';\nexport * from './safe';\nexport * from './size';\nexport * from './startsWith';\nexport * from './toLowerCase';\nexport * from './toUpperCase';\nexport * from './trim';\nexport * from './url';\nexport * from './gt';\nexport * from './gte';\nexport * from './lt';\nexport * from './lte';\nexport * from './time';\nexport * from './ulid';\nexport * from './uuid';\nexport { transformUnimplemented } from './helpers';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/int/index.ts",
    "content": "export * from './int';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/int/int.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformInt(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(1, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('integer')\n    ),\n    [...argsExceptOptions, ...(msgArg !== null ? [msgArg] : [])]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/ip/index.ts",
    "content": "export * from './ip';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/ip/ip.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function getVersion(\n  arg: j.CallExpression['arguments'][number] | null\n): 'ipv4' | 'ipv6' | null {\n  if (arg === null || arg.type !== 'ObjectExpression') {\n    return null;\n  }\n  const vals = arg.properties\n    .map((p) =>\n      p.type === 'ObjectProperty' &&\n      p.key.type === 'Identifier' &&\n      p.key.name === 'version'\n        ? p.value\n        : null\n    )\n    .filter((v) => v !== null);\n  const val = vals.at(0);\n  // todo: handle cases where the version is not a string literal\n  return val?.type === 'StringLiteral'\n    ? val.value === 'v4'\n      ? 'ipv4'\n      : 'ipv6'\n    : null;\n}\n\nexport function transformIp(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { lastArg } = splitLastArg(1, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier(getVersion(lastArg) ?? 'ip')\n    ),\n    msgArg !== null ? [msgArg] : []\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/length/index.ts",
    "content": "export * from './length';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/length/length.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformLength(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(2, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(j.identifier(valibotIdentifier), j.identifier('length')),\n    [...argsExceptOptions, ...(msgArg !== null ? [msgArg] : [])]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/lt/index.ts",
    "content": "export * from './lt';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/lt/lt.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformLt(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(2, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('ltValue')\n    ),\n    [...argsExceptOptions, ...(msgArg !== null ? [msgArg] : [])]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/lte/index.ts",
    "content": "export * from './lte';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/lte/lte.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformLte(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(2, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('maxValue')\n    ),\n    [...argsExceptOptions, ...(msgArg !== null ? [msgArg] : [])]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/max/index.ts",
    "content": "export * from './max';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/max/max.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { ZodSchemaType } from '../../types';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformMax(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments'],\n  schemaType: ZodSchemaType\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(2, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier(\n        `max${schemaType === 'value' ? 'Value' : schemaType === 'size' ? 'Size' : 'Length'}`\n      )\n    ),\n    [...argsExceptOptions, ...(msgArg !== null ? [msgArg] : [])]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/min/index.ts",
    "content": "export * from './min';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/min/min.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { ZodSchemaType } from '../../types';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformMin(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments'],\n  schemaType: ZodSchemaType\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(2, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier(\n        `min${schemaType === 'value' ? 'Value' : schemaType === 'size' ? 'Size' : 'Length'}`\n      )\n    ),\n    [...argsExceptOptions, ...(msgArg !== null ? [msgArg] : [])]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/multipleOf/index.ts",
    "content": "export * from './multipleOf';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/multipleOf/multipleOf.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformMultipleOf(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(2, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('multipleOf')\n    ),\n    [...argsExceptOptions, ...(msgArg !== null ? [msgArg] : [])]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/nanoid/index.ts",
    "content": "export * from './nanoid';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/nanoid/nanoid.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformNanoid(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(1, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(j.identifier(valibotIdentifier), j.identifier('nanoid')),\n    [...argsExceptOptions, ...(msgArg !== null ? [msgArg] : [])]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/negative/index.ts",
    "content": "export * from './negative';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/negative/negative.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformNegative(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments'],\n  useBigInt: boolean\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(1, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('ltValue')\n    ),\n    [\n      useBigInt ? j.bigIntLiteral('0') : j.numericLiteral(0),\n      ...argsExceptOptions,\n      ...(msgArg !== null ? [msgArg] : []),\n    ]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/nonempty/index.ts",
    "content": "export * from './nonempty';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/nonempty/nonempty.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformNonEmpty(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments'],\n  isSizeSchemaType: boolean\n) {\n  const { lastArg } = splitLastArg(1, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier(isSizeSchemaType ? 'minSize' : 'nonEmpty')\n    ),\n    [\n      ...(isSizeSchemaType ? [j.numericLiteral(1)] : []),\n      ...(msgArg !== null ? [msgArg] : []),\n    ]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/nonnegative/index.ts",
    "content": "export * from './nonnegative';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/nonnegative/nonnegative.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformNonNegative(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments'],\n  useBigInt: boolean\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(1, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('minValue')\n    ),\n    [\n      useBigInt ? j.bigIntLiteral('0') : j.numericLiteral(0),\n      ...argsExceptOptions,\n      ...(msgArg !== null ? [msgArg] : []),\n    ]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/nonpositive/index.ts",
    "content": "export * from './nonpositive';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/nonpositive/nonpositive.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformNonPositive(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments'],\n  useBigInt: boolean\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(1, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('maxValue')\n    ),\n    [\n      useBigInt ? j.bigIntLiteral('0') : j.numericLiteral(0),\n      ...argsExceptOptions,\n      ...(msgArg !== null ? [msgArg] : []),\n    ]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/positive/index.ts",
    "content": "export * from './positive';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/positive/positive.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformPositive(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments'],\n  useBigInt: boolean\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(1, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('gtValue')\n    ),\n    [\n      useBigInt ? j.bigIntLiteral('0') : j.numericLiteral(0),\n      ...argsExceptOptions,\n      ...(msgArg !== null ? [msgArg] : []),\n    ]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/readonly/index.ts",
    "content": "export * from './readonly';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/readonly/readonly.ts",
    "content": "import j from 'jscodeshift';\n\nexport function transformReadonly(valibotIdentifier: string) {\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('readonly')\n    ),\n    []\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/regex/index.ts",
    "content": "export * from './regex';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/regex/regex.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformRegex(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(2, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(j.identifier(valibotIdentifier), j.identifier('regex')),\n    [...argsExceptOptions, ...(msgArg !== null ? [msgArg] : [])]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/safe/index.ts",
    "content": "export * from './safe';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/safe/safe.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformSafe(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(1, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('safeInteger')\n    ),\n    [...argsExceptOptions, ...(msgArg !== null ? [msgArg] : [])]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/size/index.ts",
    "content": "export * from './size';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/size/size.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformSize(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(2, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(j.identifier(valibotIdentifier), j.identifier('size')),\n    [...argsExceptOptions, ...(msgArg !== null ? [msgArg] : [])]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/startsWith/index.ts",
    "content": "export * from './startsWith';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/startsWith/startsWith.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformStartsWith(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(2, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('startsWith')\n    ),\n    [...argsExceptOptions, ...(msgArg !== null ? [msgArg] : [])]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/time/index.ts",
    "content": "export * from './time';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/time/time.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformTime(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(1, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('isoTimeSecond')\n    ),\n    [...argsExceptOptions, ...(msgArg !== null ? [msgArg] : [])]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/toLowerCase/index.ts",
    "content": "export * from './toLowerCase';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/toLowerCase/toLowerCase.ts",
    "content": "import j from 'jscodeshift';\n\nexport function transformToLowerCase(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('toLowerCase')\n    ),\n    args\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/toUpperCase/index.ts",
    "content": "export * from './toUpperCase';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/toUpperCase/toUpperCase.ts",
    "content": "import j from 'jscodeshift';\n\nexport function transformToUpperCase(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  return j.callExpression(\n    j.memberExpression(\n      j.identifier(valibotIdentifier),\n      j.identifier('toUpperCase')\n    ),\n    args\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/trim/index.ts",
    "content": "export * from './trim';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/trim/trim.ts",
    "content": "import j from 'jscodeshift';\n\nexport function transformTrim(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  return j.callExpression(\n    j.memberExpression(j.identifier(valibotIdentifier), j.identifier('trim')),\n    args\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/ulid/index.ts",
    "content": "export * from './ulid';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/ulid/ulid.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformULID(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(1, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(j.identifier(valibotIdentifier), j.identifier('ulid')),\n    [...argsExceptOptions, ...(msgArg !== null ? [msgArg] : [])]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/url/index.ts",
    "content": "export * from './url';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/url/url.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformUrl(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(1, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(j.identifier(valibotIdentifier), j.identifier('url')),\n    [...argsExceptOptions, ...(msgArg !== null ? [msgArg] : [])]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/uuid/index.ts",
    "content": "export * from './uuid';\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/transform/schemas-and-links/validators/uuid/uuid.ts",
    "content": "import j from 'jscodeshift';\nimport { splitLastArg } from '../../helpers';\nimport { getValidatorMsg } from '../helpers';\n\nexport function transformUUID(\n  valibotIdentifier: string,\n  args: j.CallExpression['arguments']\n) {\n  const { firstArgs: argsExceptOptions, lastArg } = splitLastArg(1, args);\n  const msgArg = getValidatorMsg(lastArg);\n\n  return j.callExpression(\n    j.memberExpression(j.identifier(valibotIdentifier), j.identifier('uuid')),\n    [...argsExceptOptions, ...(msgArg !== null ? [msgArg] : [])]\n  );\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/src/utils.ts",
    "content": "import jscodeshift, { type Transform } from 'jscodeshift';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport { expect, test } from 'vitest';\n\nconst ALLOWED_EXTENSIONS = ['.ts', '.tsx'];\nexport type ElementFrom<T extends unknown[]> = T[number];\n\nexport function defineTests(transform: Transform, selectedTests?: string[]) {\n  const testFixturesPath = path.join(process.cwd(), '__testfixtures__');\n  const testsFromDir = fs.readdirSync(testFixturesPath);\n  if (typeof selectedTests === 'undefined') {\n    selectedTests = testsFromDir;\n  } else {\n    const testsFromDirSt = new Set(testsFromDir);\n    const selectedTestsInDir: string[] = [];\n    for (const selectedTest of selectedTests) {\n      if (!testsFromDirSt.has(selectedTest)) {\n        console.warn(\n          `Test \"${selectedTest}\" was not found in the test directory`\n        );\n        continue;\n      }\n      selectedTestsInDir.push(selectedTest);\n    }\n    selectedTests = selectedTestsInDir;\n  }\n  for (const selectedTest of selectedTests) {\n    const testPath = path.join(testFixturesPath, selectedTest);\n    const testFiles = fs.readdirSync(testPath);\n    if (testFiles.length === 0) {\n      console.error(`No test files found for \"${selectedTest}\" test`);\n      continue;\n    }\n    let inputFile = '';\n    let outputFile = '';\n    for (const testFile of testFiles) {\n      if (testFile.startsWith('input') && inputFile === '') {\n        inputFile = testFile;\n      }\n      if (testFile.startsWith('output') && outputFile === '') {\n        outputFile = testFile;\n      }\n      if (inputFile !== '' && outputFile !== '') {\n        break;\n      }\n    }\n    if (inputFile === '' || outputFile === '') {\n      console.error(`Invalid test file structure for \"${selectedTest}\" test`);\n      continue;\n    }\n    const inputFileExt = path.extname(inputFile);\n    if (!ALLOWED_EXTENSIONS.includes(inputFileExt)) {\n      console.error(`Invalid input file extension for \"${selectedTest}\" test`);\n      continue;\n    }\n    const j = jscodeshift.withParser(inputFileExt.slice(1));\n    const source = fs.readFileSync(path.join(testPath, inputFile), 'utf8');\n    const expectedOutput = fs.readFileSync(\n      path.join(testPath, outputFile),\n      'utf8'\n    );\n    test(selectedTest, async () => {\n      const output = await transform(\n        { path: inputFile, source },\n        { j, jscodeshift: j, stats: () => {}, report: () => {} },\n        {}\n      );\n      fs.writeFile(\n        path.join(testPath, '_actual.ts'),\n        output?.trim() ?? '',\n        () => {}\n      );\n      expect(output?.trim()).toBe(expectedOutput.trim());\n    });\n  }\n}\n\nexport function getIsTypeFn<T extends string[]>(\n  allowedValues: readonly [...T]\n): (arg: string) => arg is T[number] {\n  const st = new Set<string>(allowedValues);\n  return (arg: string): arg is T[number] => st.has(arg);\n}\n\nexport function assertNever(x: never): never {\n  throw new Error(`this should be unreachable. received: ${x}`);\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"outDir\": \"./dist\",\n    \"esModuleInterop\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"isolatedModules\": true,\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"node\",\n    \"skipLibCheck\": true,\n    \"strict\": true,\n    \"target\": \"ES6\",\n    \"allowJs\": true\n  },\n  \"include\": [\"./src/**/*.ts\"],\n  \"exclude\": [\"node_modules\", \"./dist/**/*\", \"./__testfixtures__/**/*\"]\n}\n"
  },
  {
    "path": "codemod/zod-to-valibot/tsdown.config.ts",
    "content": "import { defineConfig } from 'tsdown';\n\nexport default defineConfig([\n  {\n    entry: ['./src/transform/index.ts'],\n    clean: true,\n    format: ['es'],\n    minify: false,\n    dts: true,\n    outDir: './dist',\n  },\n]);\n"
  },
  {
    "path": "library/CHANGELOG.md",
    "content": "# Changelog\n\nAll notable changes to the library will be documented in this file.\n\n## v1.3.1 (March 18, 2026)\n\n- Change `MAC48_REGEX`, `MAC64_REGEX` and `MAC_REGEX` to drop the `i` flag for better JSON Schema compatibility (pull request #1430)\n- Change `hash` action to use case-expanded character classes instead of the `i` flag (pull request #1430)\n\n## v1.3.0 (March 17, 2026)\n\n- Add `guard` transformation action to narrow types using type predicates (pull request #1204)\n- Add `parseBoolean` transformation action to parse boolean values from strings and other types (pull request #1251)\n- Add `isrc` validation action to validate ISRC codes (pull request #1373)\n- Add `cache` method for caching schema output by input (pull request #1170)\n- Add `domain` validation action to validate domain names (pull request #1284)\n- Add `jwsCompact` validation action to validate JWS compact strings (pull request #1348)\n- Fix `creditCard` validation action to allow 13-digit Visa card numbers (pull request #1347)\n- Fix `isoTimestamp` validation action to allow optional space before UTC offset for PostgreSQL `timestamptz` compatibility (pull request #1195)\n- Fix types for deeply readonly default and fallback values\n\n## v1.2.0 (November 24, 2025)\n\n- Add `toBigint`, `toBoolean`, `toDate`, `toNumber` and `toString` transformation actions (pull request #1212)\n- Add `examples` action to add example values to a schema (pull request #1199)\n- Add `getExamples` method to extract example values from a schema (pull request #1199)\n- Add `isbn` validation action to validate ISBN-10 and ISBN-13 strings (pull request #1097)\n- Add exports for `RawCheckAddIssue`, `RawCheckContext`, `RawCheckIssueInfo`, `RawTransformAddIssue`, `RawTransformContext` and `RawTransformIssueInfo` types for better developer experience with `rawCheck` and `rawTransform` actions (pull request #1359)\n- Change build step to tsdown\n- Fix ReDoS vulnerability in `EMOJI_REGEX` used by `emoji` action\n\n## v1.1.0 (May 06, 2025)\n\n- Add `message` method to overwrite local error message configuration of a schema (pull request #1103)\n- Add `summarize` method to summarize issues into a pretty-printable multi-line string (pull request #1158)\n- Add `getTitle`, `getDescription` and `getMetadata` methods to extract metadata of a schema (pull request #1154)\n- Add `minEntries` and `maxEntries` validation action to validate number of object entries (pull request #1100)\n- Add `entries` and `notEntries` validation action to validate number of object entries (pull request #1156)\n- Add `parseJson` and `stringifyJson` transformation action to parse and stringify JSON (pull request #1137)\n- Add `flavor` transformation action to flavor the output type of a schema (pull request #950)\n- Add support for bigints to `multipleOf` validation action (pull request #1164)\n- Change implementation of `variant` and `variantAsync` schema to improve performance by aborting validation of discriminators early (pull request #1110)\n- Change name of `NanoIDAction` and `NanoIDIssue` interface to `NanoIdAction` and `NanoIdIssue` (pull request #1171)\n- Fix internal `MarkOptional` type to fix input and output type of objects in edge cases (issue #1176)\n\n## v1.0.0 (March 18, 2025)\n\n- Add `assert` method to assert values (issue #862)\n- Add `checkItemsAsync` action (pull request #856)\n- Add `graphemes`, `maxGraphemes`, `minGraphemes` and `notGraphemes` action (pull request #853)\n- Add `words`, `maxWords`, `minWords` and `notWords` action\n- Add `args` and `returns` action to transform functions (issue #243)\n- Add `rfcEmail` action to validate RFC 5322 email addresses (pull request #912)\n- Add `gtValue` and `ltValue` action for greater than and less than validation (pull request #978, #985)\n- Add `values` and `notValues` action for easier multi-value validation (pull request #919)\n- Add `slug` action to validate URL slugs (pull request #910)\n- Add support for `ReadonlyMap` and `ReadonlySet` to `readonly` action (issue #1059)\n- Add `entriesFromObjects` util to improve tree shaking (pull request #1023)\n- Add new overload signature to `pipe` and `pipeAync` method to support unlimited pipe items of same input and output type (issue #852)\n- Add `@__NO_SIDE_EFFECTS__` notation to improve tree shaking (pull request #995)\n- Add `exactOptional` and `exactOptionalAsync` schema (PR #1013)\n- Change types and implementation to support Standard Schema\n- Change behaviour of `minValue` and `maxValue` for `NaN` (pull request #843)\n- Change type and behaviour of `nullable`, `nullableAsync`, `nullish`, `nullishAsync`, `optional`, `optionalAsync`, `undefinedable` and `undefinedableAsync` for undefined default value (issue #878)\n- Change type signature of `partialCheck` and `partialCheckAsync` action to add `.pathList` property in a type-safe way\n- Change type signature of `findItem` action to support type predicates (issue #867)\n- Change validation of missing object entries in `looseObject`, `looseObjectAsync`, `object`, `objectAsync`, `objectWithRest`, `objectWithRestAsync`, `strictObject` and `strictObject` (PR #1013)\n- Change type signature of `optional` and `optionalAsync` when used within an object schema (PR #1013)\n- Change `MarkOptional` type to fix order of entries and TS error when using generic schemas (issue #1021)\n- Change `VariantOption` and `VariantOptionAsync` type to fix TS error when using generic schemas (issue #842)\n- Change implementation of `variant` and `variantAsync` to support optional discriminators using `exactOptional`, `exactOptionalAsync`, `optional`, `optionalAsync`, `nullish` or `nullishAsync`\n- Change `_addIssue` to not ignore empty strings as error message (pull request #1065)\n- Change `ISO_DATE_TIME_REGEX` and `ISO_TIMESTAMP_REGEX` to support space as separator (pull request #1064)\n- Change pipe tuple of `pipe` and `pipeAsync` to be readonly by default\n- Change `forward`, `forwardCheck`, `partialCheck` and `partialCheckAsync` to improve TypeScript performance (issue #987)\n- Change `DECIMAL_REGEX` to support floats that start with a dot (pull request #1086)\n- Change exports to export only public types to reduce noise\n- Refactor `bytes`, `maxBytes`, `minBytes` and `notBytes` action\n- Fix implementation of `nonOptional`, `nonOptionalAsync`, `nonNullable`, `nonNullableAsync`, `nonNullish` and `nonNullishAsync` schema in edge cases (issue #909)\n- Fix instantiation error for `any` in `PathKeys` type (issue #929)\n- Fix TypeScript error of `keyof` method for objects with many keys (pull request #988)\n- Fix options filtering in `enum_` schema (pull request #941)\n- Fix `partialCheck` and `partialCheckAsync` action for typed data with issues\n\n## v0.42.1 (September 20, 2024)\n\n- Fix function type declaration of `_run` property\n\n## v0.42.0 (September 15, 2024)\n\n- Add `metadata` action to add custom metadata to a schema\n- Add `title` metadata action to add a title to a schema (discussion #826)\n- Add `decimal` action to validate integer and float strings (pull request #823)\n- Rename `decimal` action to `digits` (pull request #823)\n- Rename `NoPipe` type to `SchemaWithoutPipe`\n- Fix inference of generics in `IssueDotPath` type (issue #814)\n\n## v0.41.0 (September 01, 2024)\n\n- Change `reference` property of all action base types to be less strict (issue #799)\n- Change implementation of `variant` and `variantAsync` to improve performance and issues generation for nested variants with different discriminators (pull request #809)\n\n## v0.40.0 (August 29, 2024)\n\n- Add `nanoid` action to validate Nano IDs (pull request #789)\n- Add `undefinedable` and `undefinedableAsync` schema (issue #385)\n- Fix invalid output type for transformed optional object entries (issue #806)\n\n## v0.39.0 (August 24, 2024)\n\n- Add support for `exactOptionalPropertyTypes` config (issue #385)\n- Fix `IssueDotPath` type for `pipe` and `pipeAsync` method (issue #793)\n- Fix `IssueDotPath` type for `variant` and `variantAsync` schema (issue #700)\n\n## v0.38.0 (August 20, 2024)\n\n- Change `expects` and `expected` property by enclosing combined values in parentheses\n- Change question mark handling for `optional`, `optionalAsync`, `nullish` and `nullishAsync` schemas in objects\n- Fix TypeScript errors in `TuplePath` and `QuestionMarkSchema` type (issue #659, #776)\n- Fix missing TypeScript errors in `pipe` and `pipeAsync` method (pull request #785)\n\n## v0.37.0 (July 30, 2024)\n\n- Add `base64` action to validate Base64 strings (pull request #644)\n- Add `description` metadata action (pull request #747)\n- Add metadata feature to `pipe` and `pipeAsync` method (pull request #747)\n- Refactor `HEXADECIMAL_REGEX` (pull request #666)\n- Change `unknown[]` in `LengthInput` type to `ArrayLike<unknown>`\n- Change `ArrayInput` and `ContentInput` type to use `MaybeReadonly`\n- Change `EMOJI_REGEX` to be more accurate and strict (pull request #666)\n- Fix bug in `fallback` and `fallbackAsync` method for specific schemas (pull request #752)\n- Fix bug in `fallbackAsync` method for async schemas (pull request #732)\n\n## v0.36.0 (July 05, 2024)\n\n- Add `normalize` action to normalize strings (issue #691)\n- Add support for async schemas to `entriesFromList` util\n- Add support for numbers and symbols to `entriesFromList` util (issue #492)\n- Add `key` property to `SetPathItem` type to improve DX (issue #693, #694)\n- Remove `FunctionReference` type and refactor code\n\n## v0.35.0 (June 25, 2024)\n\n- Increase argument limit of `pipe` and `pipeAsync` method (issue #643)\n\n## v0.34.0 (June 24, 2024)\n\n- Add `file`, `function` and `promise` schema\n- Add `awaitAsync` action to await promise in pipeline\n- Add `operation` property to `filterItems`, `findItem`, `mapItems`, `reduceItems` and `sortItem` action\n- Rename `action` argument of `filterItems`, `findItem`, `mapItems`, `reduceItems` and `sortItem` action to `operation`\n- Rename `action` argument and property of `transform` and `transformAsync` action to `operation`\n- Change and improve implementation of `_stringify` util\n\n## v0.33.3 (June 19, 2024)\n\n- Fix `_isPartiallyTyped` util of `partialCheck` and `partialCheckAsync` action\n\n## v0.33.2 (June 19, 2024)\n\n- Fix type exports for JSR and Deno (pull request #663)\n\n## v0.33.1 (June 18, 2024)\n\n- Fix types of `partialCheck` and `partialCheckAsync` action\n\n## v0.33.0 (June 18, 2024)\n\n- Add export alias with reserved keywords for functions with underscore suffix\n- Add `partialCheck` and `partialCheckAsync` action (issue #76, #145, #260)\n- Add `checkItems`, `filterItems`, `findItem`, `mapItems`, `reduceItems` and `sortItem` action (issue #595)\n- Rename `every` and `some` action to `everyItem` and `someItem`\n- Rename `_isAllowedObjectKey` to `_isValidObjectKey` and add check for inherited properties\n- Remove `RecordPathItem` and `TuplePathItem` type and refactor code\n- Fix `received` property of issue in `date` schema for invalid dates (issue #654)\n\n## v0.32.0 (June 14, 2024)\n\n- Add `rawCheck`, `rawCheckAsync`, `rawTransform` and `rawTransformAsync` action (issue #597)\n- Change `FlatErrors` type for better developer experience (discussion #640)\n- Change `pipe` and `pipeAsync` method to mark output as untyped only when necessary (discussion #613)\n- Remove unused `skipPipe` option from `Config` type and refactor library\n- Fix `this` reference in `looseTuple`, `looseTupleAsync`, `strictTuple`, `strictTupleAsync`, `tuple`, `tupleAsync`, `tupleWithRest` and `tupleWithRestAsync` schema (pull request #649)\n- Fix type of `options` key in `EnumSchema` interface\n\n## v0.31.1 (June 08, 2024)\n\n- Fix missing file extension for Deno (pull request #637)\n\n## v0.31.0 (June 06, 2024)\n\n> To migrate from an older version, please see the official [migration guide](https://valibot.dev/guides/migrate-to-v0.31.0/) and our [announcement post](https://valibot.dev/blog/valibot-v0.31.0-is-finally-available/).\n\n## v0.30.0 (March 06, 2024)\n\n- Add `Default` and `DefaultAsync` type and refactor codebase\n- Add `Fallback` and `FallbackAsync` type and refactor codebase\n- Add `isOfType` type guard util to check the type of an object\n- Refactor `getDefaults` and `getDefaultsAsync` method (pull request #259)\n- Refactor `getFallbacks` and `getFallbacksAsync` method (pull request #259)\n- Change type definitions from `type` to `interface` (pull request #259, #451)\n- Remove deprecated properties of `safeParse` and `safeParseAsync` method\n- Remove any deprecated method, schema and validation functions\n- Fix `NestedPath` type of `flatten` for async schemas (issue #456)\n- Fix implementation of `DefaultValue` type for transformed values\n\n## v0.29.0 (February 19, 2024)\n\n- Add `every` and `some` pipeline validation action\n- Add `input` of schema to `getter` function of `recursive` and `recursiveAsync` schema (pull request #441)\n- Change implementation of `transform` and `transformAsync` method to only run transformations if there are no issues (issue #436)\n- Rename `recursive` and `recursiveAsync` schema to `lazy` and `lazyAsync` (issue #440)\n- Fix bug in `i18n` util when using `setSchemaMessage`\n\n## v0.28.1 (February 06, 2024)\n\n- Fix bug in `union` and `unionAsync` schema for transformed inputs (issue #420)\n\n## v0.28.0 (February 05, 2024)\n\n> Note: The library has been revised and refactored. Therefore, not every change is listed in detail.\n\n- Add i18n feature, global configurations and improve error messages (pull request #397)\n- Add `number` and `bigint` to `PicklistOptions` type (issue #378)\n- Fix missing export of `forwardAsync` method (issue #412)\n\n## v0.27.1 (January 28, 2024)\n\n- Fix missing file extension for Deno (pull request #387)\n\n## v0.27.0 (January 24, 2024)\n\n- Remove `NonNullable`, `NonNullish` and `NonOptional` type\n- Add `NonNullableInput`, `NonNullableOutput`, `NonNullishInput`, `NonNullishOutput`, `NonOptionalInput` and `NonOptionalOutput` type\n- Improve type signature of `omit`, `omitAsync`, `pick` and `pickAsync` schema to also allow read-only object keys (issue #380)\n- Fix type of `pipe` argument at `intersect` and `intersectAsync` schema\n\n## v0.26.0 (January 16, 2024)\n\n- Improve performance of `enum_` and `enumAsync` schema by caching values\n- Change ISO timestamp regex to support timestamps with lower and higher millisecond accuracy (pull request #353)\n- Change issue handling of `union`, `unionAsync`, `variant` and `variantAsync` schema to improve developer experience\n- Fix bug in `getDefaults`, `getDefaultsAsync`, `getFallbacks` and `getFallbacksAsync` schema for falsy but not `undefined` values (issue #356)\n- Fix type of `pipe` argument at `union`, `unionAsync`, `variant` and `variantAsync` schema\n- Fix bug that broke pipeline execution in `union`, `unionAsync`, `variant` and `variantAsync` schema (issue #364)\n- Fix typo in type name of `startsWith` validation action (pull request #375)\n\n## v0.25.0 (December 26, 2023)\n\n- Add `creditCard`, `decimal`, `hash`, `hexadecimal`, `hexColor` and `octal` pipeline validation action (pull request #292, #304, #307, #308, #309)\n- Add `pipe` parameter to `intersect`, `intersectAsync`, `union`, `unionAsync`, `variant` and `variantAsync` schema (discussion #297)\n- Add support for multiple variant options with same discriminator key to `variant` and `variantAsync` schema (issue #310)\n- Add path to issues if discriminator key of `variant` and `variantAsync` schema is missing (issue #235, #303)\n- Change `PicklistOptions` type and generics of `picklist` and `picklistAsync` schema\n\n## v0.24.1 (December 11, 2023)\n\n- Fix output type of optional `object` and `objectAsync` entries with default value (issue #286)\n- Fix output type of `nullable`, `nullableAsync`, `nullish`, `nullishAsync`, `optional` and `optionalAsync` schema with default value (issue #286)\n\n## v0.24.0 (December 10, 2023)\n\n- Add support for `special` schema as key of `record` schema (issue #291)\n- Add support for `special` and `specialAsync` schema as key of `recordAsync` schema (issue #291)\n- Fix input and output type of optional `object` and `objectAsync` entries with default value (issue #286)\n\n## v0.23.0 (December 08, 2023)\n\n- Add `bic` validation function (pull request #284)\n- Add `mac`, `mac48` and `mac64` validation function (pull request #270)\n- Change `PicklistOptions`, `UnionOptions` and `UnionOptionsAsync` type from tuple to array (issue #279)\n- Change `IntersectOptions`, `IntersectOptionsAsync`, `UnionOptions` and `UnionOptionsAsync` type to support readonly values (issue #279)\n- Fix optional keys of `ObjectInput` and `ObjectOutput` type (issue #242)\n\n## v0.22.0 (December 03, 2023)\n\n- Add support for boolean to `notValue` validation (pull request #261)\n- Add `.typed` to schema validation result and execute pipeline of complex schemas if output is typed (issue #76, #145)\n- Add `forward` method that forwards issues of pipelines to nested fields (issue #76, #145)\n- Add `skipPipe` option to `is` type guard method (pull request #166)\n- Change return type of `safeParse` and `safeParseAsync` method\n- Rename and change util functions and refactor codebase\n- Fix `RecordInput` and `RecordOuput` type when using `unionAsync` as key\n- Fix output type for `nullable`, `nullableAsync`, `nullish`, `nullishAsync`, `optional` and `optionalAsync` when using a default value (issue #271)\n\n## v0.21.0 (November 19, 2023)\n\n- Change structure of schemas, validations and transformations to make properties accessible (pull request #211)\n- Fix errors in JSDoc comments and add JSDoc ESLint plugin (pull request #205)\n- Fix missing file extension for Deno (pull request #249)\n\n## v0.20.1 (November 2, 2023)\n\n- Remove `never` from type signatur of strict objects and tuples (issue #234)\n\n## v0.20.0 (October 31, 2023)\n\n> Note: The library has been revised and refactored. There is a migration guide in the [release notes](https://github.com/open-circle/valibot/releases/tag/v0.20.0).\n\n- Add `getRestAndDefaultArgs` utility function\n- Add `rest` argument to `object` and `objectAsync` schema\n- Add `variant` and `variantAsync` schema (issue #90, #216)\n- Add `getFallback` property to schema in `fallback` method (pull request #177)\n- Add `PartialObjectEntries` and `PartialObjectEntriesAsync` type (issue #217)\n- Add export for any validation regex (pull request #219)\n- Add `getDefaultAsync`, `getDefaults` and `getDefaultsAsync`, `getFallback`, `getFallbackAsync`, `getFallbacks`, `getFallbacksAsync` method (issue #155)\n- Add support for schema validation to `transform` and `transformAsync`\n- Fix type check in `date` and `dateAsync` for invalid dates (pull request #214)\n- Improve security of regular expressions (pull request #202)\n- Improve `optional`, `optionalAsync`, `nullable`, `nullableAsync`, `nullish` and `nullishAsync` schema\n- Change `ObjectSchema` and `ObjectSchemaAsync` type\n- Change type check in `tuple` and `tupleAsync` to be less strict\n- Change return type of `action` argument in `coerce` and `coerceAsync` to `unknown`\n- Change type of `brand`, `getDefault`, `transform` and `transformAsync` method\n- Change type of `array`, `arrayAsync`, `intersection`, `intersectionAsync`, `map`, `mapAsync`, `object`, `objectAsync`, `union`, `unionAsync`, `record`, `recordAsync`, `set`, `setAsync`, `tuple` and `tupleAsync` schema\n- Rename `schema` property of every schema type to `type`\n- Rename `intersection` and `intersectionAsync` schema to `intersect` and `intersectAsync`\n- Rename `enumType` and `enumTypeAsync` schema to `picklist` and `picklistAsync`\n- Rename `nativeEnum` and `nativeEnumAsync` schema to `enum_` and `enumAsync`\n- Rename `nullType` and `nullTypeAsync` schema to `null_` and `nullAsync`\n- Rename `undefinedType` and `undefinedTypeAsync` schema to `undefined_` and `undefinedAsync`\n- Rename `voidType` and `voidTypeAsync` schema to `void_` and `voidAsync`\n- Rename `default` property of `optional`, `optionalAsync`, `nullable`, `nullableAsync`, `nullish` and `nullishAsync` schema to `getDefault`\n- Rename `ObjectShape` and `ObjectShapeAsync` types to `ObjectEntries` and `ObjectEntriesAsync`\n- Rename `TupleShape` and `TupleShapeAsync` types to `TupleItems` and `TupleItemsAsync`\n- Deprecate `passthrough`, `strict` and `strip` method in favor of `object` schema with `rest` argument\n\n## v0.19.0 (October 08, 2023)\n\n- Add `notBytes`, `notLength`, `notSize` and `notValue` validation function (pull request #194)\n- Add support for unions as key of `record` and `recordAsync` schema (issue #201)\n- Add support for pipeline validation to `transform` and `transformAsync` (issue #197)\n- Change regex of `email` validation to improve performance and security (pull request #180)\n- Change `object` and `objectAsync` schema to exclude non-existing keys (issue #199)\n- Fix types at `brand`, `transform` and `unwrap` method (issue #195)\n- Deprecate `equal` validation function in favor of `value` (issue #192)\n\n## v0.18.0 (September 30, 2023)\n\n- Add `intersection` and `intersectionAsync` schema (pull request #117)\n- Fix `RecordInput` and `RecordOutput` type (pull request #184)\n- Change `RecordSchema` and `RecordSchemaAsync` type\n- Change `flatten` function and improve types\n\n## v0.17.1 (September 25, 2023)\n\n- Fix missing file extensions for Deno (pull request #178, #181)\n\n## v0.17.0 (September 17, 2023)\n\n- Add support for multiple branding of a value (pull request #88)\n- Add support for dynamic error messages via functions (pull request #136)\n- Add `skipPipe` option to skip execution of pipelines (pull request #164)\n\n## v0.16.0 (September 16, 2023)\n\n- Add `ulid` validation (pull request #151)\n- Add `getIssues`, `getOutput` and `getPipeIssues` util and refactor code\n- Fix type check in `number` and `numberAsync` schema (issue #157)\n- Change `PipeResult` type to allow multiple issues (issue #161)\n- Rename previous `getIssues` util to `getSchemaIssues`\n\n## v0.15.0 (September 10, 2023)\n\n- Add possibility to define path of pipeline issue (issue #5)\n- Add `getDefault` method to get default value of schema (issue #105)\n- Add support for enums as key of `record` and `recordAsync` schema (issue #134)\n- Add support for default values to `optional`, `optionalAsync`, `nullable`, `nullableAsync`, `nullish` and `nullishAsync` schema (issue #96, #118)\n- Deprecate `withDefault` method in favor of `optional` schema\n\n## v0.14.0 (September 08, 2023)\n\n- Add `cuid2` validation (pull request #130)\n- Add `passthrough`, `passthroughAsync`, `strip` and `stripAsync` method\n- Add `InstanceSchemaAsync` overload to `transformAsync` method (pull request #138)\n- Fix bug in `strict` and `strictAsync` method for optional keys (issue #131)\n\n## v0.13.1 (August 23, 2023)\n\n- Change object type check in `object` and `record` schema\n\n## v0.13.0 (August 23, 2023)\n\n> Note: The library has been revised and refactored. There is a migration guide in the [release notes](https://github.com/open-circle/valibot/releases/tag/v0.13.0).\n\n- Add `fallback` and `fallbackAsync` method (pull request #103)\n- Add `excludes` validation as negation of `includes`\n- Add support for more primitives to `literal` schema (pull request #102)\n- Add support for dynamic values to `withDefault` method\n- Change `flatten` function so that issues are also accepted as argument\n- Change return type of `safeParse` and `safeParseAsync` method\n- Change error handling and refactor library to improve performance\n- Rename `.parse` to `._parse` and `.types` to `._types` to mark it as internal\n\n## v0.12.0 (August 11, 2023)\n\n- Change input type of `mimeType` validation to `Blob`\n- Rename `useDefault` method to `withDefault` (issue #80)\n- Add `brand` method to support branded types (pull request #85)\n\n## v0.11.1 (August 07, 2023)\n\n- Fix types of `enumType` and `enumTypeAsync` schema (issue #70)\n- Improve performance of loops with for...of (pull request #68)\n\n## v0.11.0 (August 06, 2023)\n\n- Fix prototype pollution vulnerability of `record` and `recordAsync` (pull request #67)\n- Add `finite`, `safeInteger` and `multipleOf` validation (pull request #64, #65, #66)\n\n## v0.10.0 (August 05, 2023)\n\n- Add `integer` validation (pull request #62)\n\n## v0.9.0 (August 04, 2023)\n\n- Add `imei` validation and `isLuhnAlgo` util (pull request #37)\n- Fix `isoDateTime`, `isoTime`, `isoTimeSecond` and `isoTimestamp` validation (pull request #42)\n\n## v0.8.0 (July 31, 2023)\n\n- Fix infered `object` and `record` types (issue #9, #10, #34)\n- Add `strict` and `strictAsync` method to detect unknown object keys\n\n## v0.7.0 (July 30, 2023)\n\n- Add `is` method which can be used as a type guard (pull request #13)\n- Throw all validation issues of a pipeline by default (issue #18)\n- Add `abortPipeEarly` option to abort pipe on first error (issue #18)\n- Add `abortEarly` option to abort on first error\n\n## v0.6.0 (July 30, 2023)\n\n- Add `toMinValue` and `toMaxValue` transformation\n\n## v0.5.0 (July 28, 2023)\n\n- Fix invalid `comparable` import when using Deno\n- Add util functions to exports of library\n- Rename `minRange` and `maxRange` to `minValue` and `maxValue` (issue #20)\n- Add `value` validation function\n\n## v0.4.0 (July 27, 2023)\n\n- Add `instance` and `instanceAsync` schema\n- Refactor library to work with Deno\n\n## v0.3.0 (July 27, 2023)\n\n- Add `bytes`, `minBytes` and `maxBytes` validation (pull request #1)\n- Change build step to tsup and exports in package.json (issue #7)\n\n## v0.2.1 (July 26, 2023)\n\n- Change order of exports in package.json (issue #7)\n\n## v0.2.0 (July 25, 2023)\n\n- Add `blob` and `blobAsync` schema\n\n## v0.1.0 (July 12, 2023)\n\n- Initial release\n"
  },
  {
    "path": "library/LICENSE.md",
    "content": "MIT License\n\nCopyright (c) Fabian Hiller\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "library/README.md",
    "content": "![Valibot Logo](https://github.com/open-circle/valibot/blob/main/valibot.jpg?raw=true)\n\n# Valibot\n\n[![License: MIT][license-image]][license-url]\n[![CI][ci-image]][ci-url]\n[![NPM version][npm-image]][npm-url]\n[![Downloads][downloads-image]][npm-url]\n[![JSR version][jsr-image]][jsr-url]\n[![Discord][discord-image]][discord-url]\n\nHello, I am Valibot and I would like to help you validate data easily using a schema. No matter if it is incoming data on a server, a form or even configuration files. I have no dependencies and can run in any JavaScript environment.\n\n> I highly recommend you read the [announcement post](https://www.builder.io/blog/introducing-valibot), and if you are a nerd like me, the [bachelor's thesis](https://valibot.dev/thesis.pdf) I am based on.\n\n## Highlights\n\n- Fully type safe with static type inference\n- Small bundle size starting at less than 700 bytes\n- Validate everything from strings to complex objects\n- Open source and fully tested with 100 % coverage\n- Many transformation and validation actions included\n- Well structured source code without dependencies\n- Minimal, readable and well thought out API\n\n## Example\n\nFirst you create a schema that describes a structured data set. A schema can be compared to a type definition in TypeScript. The big difference is that TypeScript types are \"not executed\" and are more or less a DX feature. A schema on the other hand, apart from the inferred type definition, can also be executed at runtime to guarantee the type safety of unknown data.\n\n<!-- prettier-ignore -->\n```ts\nimport * as v from 'valibot'; // 1.31 kB\n\n// Create login schema with email and password\nconst LoginSchema = v.object({\n  email: v.pipe(v.string(), v.email()),\n  password: v.pipe(v.string(), v.minLength(8)),\n});\n\n// Infer output TypeScript type of login schema as\n// { email: string; password: string }\ntype LoginData = v.InferOutput<typeof LoginSchema>;\n\n// Throws error for email and password\nconst output1 = v.parse(LoginSchema, { email: '', password: '' });\n\n// Returns data as { email: string; password: string }\nconst output2 = v.parse(LoginSchema, {\n  email: 'jane@example.com',\n  password: '12345678',\n});\n```\n\nApart from `parse` I also offer a non-exception-based API with `safeParse` and a type guard function with `is`. You can read more about it [here](https://valibot.dev/guides/parse-data/).\n\n## Comparison\n\nInstead of relying on a few large functions with many methods, my API design and source code is based on many small and independent functions, each with just a single task. This modular design has several advantages.\n\nFor example, this allows a bundler to use the import statements to remove code that is not needed. This way, only the code that is actually used gets into your production build. This can reduce the bundle size by up to 95 % compared to [Zod](https://zod.dev/).\n\nIn addition, it allows you to easily extend my functionality with external code and makes my source code more robust and secure because the functionality of the individual functions can be tested much more easily through unit tests.\n\n## Partners\n\nThanks to our partners who support my development! [Join them](https://github.com/sponsors/fabian-hiller) and contribute to the sustainability of open source software!\n\n![Partners of Valibot](https://github.com/open-circle/valibot/blob/main/partners.webp?raw=true)\n\n## Credits\n\nMy friend [Fabian](https://github.com/fabian-hiller) created me as part of his [bachelor thesis](https://valibot.dev/thesis.pdf) at [Stuttgart Media University](https://www.hdm-stuttgart.de/en/), supervised by Walter Kriha, [Miško Hevery](https://github.com/mhevery) and [Ryan Carniato](https://github.com/ryansolid). My role models also include [Colin McDonnell](https://github.com/colinhacks), who had a big influence on my API design with [Zod](https://zod.dev/).\n\n## Feedback\n\nFind a bug or have an idea how to improve my code? Please fill out an [issue](https://github.com/open-circle/valibot/issues/new). Together we can make the library even better!\n\n## License\n\nI am completely free and licensed under the [MIT license](https://github.com/open-circle/valibot/blob/main/LICENSE.md). But if you like, you can feed me with a star on [GitHub](https://github.com/open-circle/valibot).\n\n[license-image]: https://img.shields.io/badge/License-MIT-brightgreen.svg?style=flat-square\n[license-url]: https://opensource.org/licenses/MIT\n[ci-image]: https://img.shields.io/github/actions/workflow/status/open-circle/valibot/ci.yml?branch=main&logo=github&style=flat-square\n[ci-url]: https://github.com/open-circle/valibot/actions/workflows/ci.yml\n[npm-image]: https://img.shields.io/npm/v/valibot.svg?style=flat-square\n[npm-url]: https://npmjs.org/package/valibot\n[downloads-image]: https://img.shields.io/npm/dm/valibot.svg?style=flat-square\n[jsr-image]: https://jsr.io/badges/@valibot/valibot?style=flat-square\n[jsr-url]: https://jsr.io/@valibot/valibot\n[discord-image]: https://img.shields.io/discord/1252985447273992222?label=Discord&style=flat-square\n[discord-url]: https://discord.gg/tkMjQACf2P\n"
  },
  {
    "path": "library/eslint.config.js",
    "content": "import eslint from '@eslint/js';\nimport importPlugin from 'eslint-plugin-import';\nimport jsdoc from 'eslint-plugin-jsdoc';\nimport redosDetector from 'eslint-plugin-redos-detector';\nimport regexpPlugin from 'eslint-plugin-regexp';\nimport pluginSecurity from 'eslint-plugin-security';\nimport tseslint from 'typescript-eslint';\n\nexport default tseslint.config(\n  {\n    ignores: [\n      'eslint.config.js',\n      'tsdown.config.ts',\n      'vitest.config.ts',\n      'mod.ts',\n      'playground.ts',\n    ],\n  },\n  eslint.configs.recommended,\n  tseslint.configs.strict,\n  tseslint.configs.stylistic,\n  jsdoc.configs['flat/recommended'],\n  pluginSecurity.configs.recommended,\n  regexpPlugin.configs['flat/recommended'],\n  {\n    files: ['src/**/*.ts'],\n    extends: [importPlugin.flatConfigs.recommended],\n    languageOptions: {\n      parserOptions: {\n        project: './tsconfig.json',\n        tsconfigRootDir: import.meta.dirname,\n      },\n    },\n    plugins: { jsdoc, 'redos-detector': redosDetector },\n    languageOptions: {\n      parserOptions: {\n        projectService: true,\n        tsconfigRootDir: import.meta.dirname,\n      },\n    },\n    rules: {\n      // Enable rules -----------------------------------------------------------\n\n      // TypeScript\n      '@typescript-eslint/consistent-type-definitions': 'error', // Enforce declaring types using `interface` keyword for better TS performance.\n      '@typescript-eslint/consistent-type-imports': 'warn',\n\n      // Import\n      'import/extensions': ['error', 'always'], // Require file extensions\n\n      // JSDoc\n      'jsdoc/tag-lines': ['error', 'any', { startLines: 1 }],\n      'jsdoc/sort-tags': [\n        'error',\n        {\n          linesBetween: 1,\n          tagSequence: [\n            { tags: ['deprecated'] },\n            { tags: ['param'] },\n            { tags: ['returns'] },\n          ],\n        },\n      ],\n      // NOTE: For overloads functions, we only require a JSDoc at the top\n      // SEE: https://github.com/gajus/eslint-plugin-jsdoc/issues/666\n      'jsdoc/require-jsdoc': [\n        'error',\n        {\n          contexts: [\n            'ExportNamedDeclaration[declaration.type=\"TSDeclareFunction\"]:not(ExportNamedDeclaration[declaration.type=\"TSDeclareFunction\"] + ExportNamedDeclaration[declaration.type=\"TSDeclareFunction\"])',\n            'ExportNamedDeclaration[declaration.type=\"FunctionDeclaration\"]:not(ExportNamedDeclaration[declaration.type=\"TSDeclareFunction\"] + ExportNamedDeclaration[declaration.type=\"FunctionDeclaration\"])',\n          ],\n          require: {\n            FunctionDeclaration: false,\n          },\n        },\n      ],\n      'jsdoc/check-tag-names': [\n        'error',\n        {\n          definedTags: ['alpha', 'beta', '__NO_SIDE_EFFECTS__'],\n        },\n      ],\n\n      // RegExp\n      'regexp/no-super-linear-move': 'error', // Prevent DoS regexps\n      'regexp/no-control-character': 'error', // Avoid unneeded regexps characters\n      'regexp/no-octal': 'error', // Avoid unneeded regexps characters\n      'regexp/no-standalone-backslash': 'error', // Avoid unneeded regexps characters\n      'regexp/prefer-escape-replacement-dollar-char': 'error', // Avoid unneeded regexps characters\n      'regexp/prefer-quantifier': 'error', // Avoid unneeded regexps characters\n      'regexp/hexadecimal-escape': ['error', 'always'], // Avoid unneeded regexps characters\n      'regexp/sort-alternatives': 'error', // Avoid unneeded regexps characters\n      'regexp/require-unicode-regexp': 'error', // /u flag is faster and enables regexp strict mode\n      'regexp/prefer-regexp-exec': 'error', // Enforce that RegExp#exec is used instead of String#match if no global flag is provided, as exec is faster\n\n      // Redos detector\n      'redos-detector/no-unsafe-regex': ['error', { ignoreError: true }], // Prevent DoS regexps\n\n      // Disable rules ----------------------------------------------------------\n\n      // TypeScript\n      '@typescript-eslint/ban-ts-comment': 'off',\n      '@typescript-eslint/no-non-null-assertion': 'off',\n      '@typescript-eslint/consistent-indexed-object-style': 'off',\n      '@typescript-eslint/no-inferrable-types': 'off',\n\n      // Imports\n      'no-duplicate-imports': 'off',\n\n      // JSDoc\n      'jsdoc/require-param-type': 'off',\n      'jsdoc/require-returns-type': 'off',\n\n      // RegExp\n      'regexp/use-ignore-case': 'off', // We sometimes don't use the i flag for a better JSON Schema compatibility\n\n      // Security\n      'security/detect-object-injection': 'off', // Too many false positives\n      'security/detect-unsafe-regex': 'off', // Too many false positives, see https://github.com/eslint-community/eslint-plugin-security/issues/28 - we use the redos-detector plugin instead\n    },\n  }\n);\n"
  },
  {
    "path": "library/jsr.json",
    "content": "{\n  \"name\": \"@valibot/valibot\",\n  \"version\": \"1.3.1\",\n  \"exports\": \"./src/index.ts\",\n  \"publish\": {\n    \"include\": [\"src/**/*.ts\", \"README.md\"],\n    \"exclude\": [\"src/**/*.test.ts\", \"src/**/*.test-d.ts\", \"src/vitest/**/*.ts\"]\n  }\n}\n"
  },
  {
    "path": "library/mod.ts",
    "content": "export * from './src/index.ts';\n"
  },
  {
    "path": "library/package.json",
    "content": "{\n  \"name\": \"valibot\",\n  \"description\": \"The modular and type safe schema library for validating structural data\",\n  \"version\": \"1.3.1\",\n  \"license\": \"MIT\",\n  \"author\": \"Fabian Hiller\",\n  \"homepage\": \"https://valibot.dev\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/open-circle/valibot\"\n  },\n  \"keywords\": [\n    \"modular\",\n    \"typescript\",\n    \"schema\",\n    \"validation\",\n    \"parsing\",\n    \"bundle-size\",\n    \"type-safe\",\n    \"runtime\"\n  ],\n  \"type\": \"module\",\n  \"main\": \"./dist/index.mjs\",\n  \"types\": \"./dist/index.d.mts\",\n  \"exports\": {\n    \".\": {\n      \"import\": {\n        \"types\": \"./dist/index.d.mts\",\n        \"default\": \"./dist/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./dist/index.d.cts\",\n        \"default\": \"./dist/index.cjs\"\n      }\n    }\n  },\n  \"sideEffects\": false,\n  \"files\": [\n    \"dist\"\n  ],\n  \"publishConfig\": {\n    \"access\": \"public\"\n  },\n  \"scripts\": {\n    \"play\": \"tsm ./playground.ts\",\n    \"test\": \"vitest --typecheck\",\n    \"coverage\": \"vitest run --coverage --isolate\",\n    \"lint\": \"eslint \\\"src/**/*.ts*\\\" && tsc --noEmit && deno check ./src/index.ts\",\n    \"lint.fix\": \"eslint \\\"src/**/*.ts*\\\" --fix\",\n    \"format\": \"prettier --write ./src\",\n    \"format.check\": \"prettier --check ./src\",\n    \"build\": \"tsdown\"\n  },\n  \"devDependencies\": {\n    \"@eslint/js\": \"^9.39.1\",\n    \"@vitest/coverage-v8\": \"^4.0.13\",\n    \"eslint\": \"^9.39.1\",\n    \"eslint-plugin-import\": \"^2.32.0\",\n    \"eslint-plugin-jsdoc\": \"^61.4.0\",\n    \"eslint-plugin-redos-detector\": \"^3.1.1\",\n    \"eslint-plugin-regexp\": \"^2.10.0\",\n    \"eslint-plugin-security\": \"^3.0.1\",\n    \"jsdom\": \"^27.2.0\",\n    \"tsdown\": \"^0.16.6\",\n    \"tsm\": \"^2.3.0\",\n    \"typescript\": \"^5.9.3\",\n    \"typescript-eslint\": \"^8.47.0\",\n    \"vite\": \"^7.2.4\",\n    \"vitest\": \"4.0.13\"\n  },\n  \"peerDependencies\": {\n    \"typescript\": \">=5\"\n  },\n  \"peerDependenciesMeta\": {\n    \"typescript\": {\n      \"optional\": true\n    }\n  }\n}\n"
  },
  {
    "path": "library/playground.ts",
    "content": "// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport * as v from './dist/index.mjs';\n"
  },
  {
    "path": "library/src/actions/args/args.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport { boolean, number, string, tupleWithRest } from '../../schemas/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { args, type ArgsAction } from './args.ts';\n\ndescribe('args', () => {\n  type Input = (...args: unknown[]) => number;\n  const schema = tupleWithRest([string(), number()], boolean());\n  type Schema = typeof schema;\n  type Action = ArgsAction<Input, Schema>;\n\n  test('should return action object', () => {\n    expectTypeOf(args<Input, Schema>(schema)).toEqualTypeOf<Action>();\n  });\n\n  describe('should infer correct types', () => {\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<\n        (arg1: string, arg2: number, ...rest: boolean[]) => number\n      >();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<never>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/args/args.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { boolean, number, string, tupleWithRest } from '../../schemas/index.ts';\nimport { args, type ArgsAction } from './args.ts';\n\ndescribe('args', () => {\n  type Input = (...args: unknown[]) => number;\n  const schema = tupleWithRest([string(), number()], boolean());\n  type Schema = typeof schema;\n  const action = args(schema);\n\n  test('should return action object', () => {\n    expect(action).toStrictEqual({\n      kind: 'transformation',\n      type: 'args',\n      reference: args,\n      async: false,\n      schema,\n      '~run': expect.any(Function),\n    } satisfies ArgsAction<Input, Schema>);\n  });\n\n  const func = () => 123;\n  const dataset = action['~run']({ typed: true, value: func }, {});\n\n  test('should return new function', () => {\n    expect(dataset).toStrictEqual({\n      typed: true,\n      value: expect.any(Function),\n    });\n    expect(dataset.value).not.toBe(func);\n  });\n\n  test('should not throw error for valid args', () => {\n    if (dataset.typed) {\n      expect(() => dataset.value('foo', 123)).not.toThrowError();\n      expect(() => dataset.value('foo', 123, true)).not.toThrowError();\n      expect(() => dataset.value('foo', 123, true, false)).not.toThrowError();\n      expect(() =>\n        dataset.value('foo', 123, true, false, true)\n      ).not.toThrowError();\n    }\n  });\n\n  test('should throw error for invalid args', () => {\n    if (dataset.typed) {\n      // @ts-expect-error\n      expect(() => dataset.value()).toThrowError();\n      // @ts-expect-error\n      expect(() => dataset.value('foo')).toThrowError();\n      // @ts-expect-error\n      expect(() => dataset.value(null, 123)).toThrowError();\n      // @ts-expect-error\n      expect(() => dataset.value('foo', null)).toThrowError();\n      // @ts-expect-error\n      expect(() => dataset.value(123, 'foo')).toThrowError();\n      // @ts-expect-error\n      expect(() => dataset.value('foo', 123, null)).toThrowError();\n    }\n  });\n});\n"
  },
  {
    "path": "library/src/actions/args/args.ts",
    "content": "import type {\n  LooseTupleIssue,\n  LooseTupleSchema,\n  StrictTupleIssue,\n  StrictTupleSchema,\n  TupleIssue,\n  TupleSchema,\n  TupleWithRestIssue,\n  TupleWithRestSchema,\n} from '../../schemas/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  BaseTransformation,\n  ErrorMessage,\n  InferInput,\n  TupleItems,\n} from '../../types/index.ts';\nimport { ValiError } from '../../utils/index.ts';\n\n/**\n * Schema type.\n */\ntype Schema =\n  | LooseTupleSchema<TupleItems, ErrorMessage<LooseTupleIssue> | undefined>\n  | StrictTupleSchema<TupleItems, ErrorMessage<StrictTupleIssue> | undefined>\n  | TupleSchema<TupleItems, ErrorMessage<TupleIssue> | undefined>\n  | TupleWithRestSchema<\n      TupleItems,\n      BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n      ErrorMessage<TupleWithRestIssue> | undefined\n    >;\n\n/**\n * Args action type.\n */\nexport interface ArgsAction<\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  TInput extends (...args: any[]) => unknown,\n  TSchema extends Schema,\n> extends BaseTransformation<\n    TInput,\n    (...args: InferInput<TSchema>) => ReturnType<TInput>,\n    never\n  > {\n  /**\n   * The action type.\n   */\n  readonly type: 'args';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof args;\n  /**\n   * The arguments schema.\n   */\n  readonly schema: TSchema;\n}\n\n/**\n * Creates a function arguments transformation action.\n *\n * @param schema The arguments schema.\n *\n * @returns An args action.\n */\nexport function args<\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  TInput extends (...args: any[]) => unknown,\n  TSchema extends Schema,\n>(schema: TSchema): ArgsAction<TInput, TSchema>;\n\n// @__NO_SIDE_EFFECTS__\nexport function args(\n  schema: Schema\n): ArgsAction<(...args: unknown[]) => unknown, Schema> {\n  return {\n    kind: 'transformation',\n    type: 'args',\n    reference: args,\n    async: false,\n    schema,\n    '~run'(dataset, config) {\n      const func = dataset.value;\n      dataset.value = (...args_) => {\n        const argsDataset = this.schema['~run']({ value: args_ }, config);\n        if (argsDataset.issues) {\n          throw new ValiError(argsDataset.issues);\n        }\n        return func(...argsDataset.value);\n      };\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/args/argsAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport {\n  boolean,\n  number,\n  string,\n  tupleWithRestAsync,\n} from '../../schemas/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { type ArgsActionAsync, argsAsync } from './argsAsync.ts';\n\ndescribe('argsAsync', () => {\n  type Input = (...args: unknown[]) => Promise<number>;\n  const schema = tupleWithRestAsync([string(), number()], boolean());\n  type Schema = typeof schema;\n  type Action = ArgsActionAsync<Input, Schema>;\n\n  test('should return action object', () => {\n    expectTypeOf(argsAsync<Input, Schema>(schema)).toEqualTypeOf<Action>();\n  });\n\n  describe('should infer correct types', () => {\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<\n        (arg1: string, arg2: number, ...rest: boolean[]) => Promise<number>\n      >();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<never>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/args/argsAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  boolean,\n  number,\n  string,\n  tupleWithRestAsync,\n} from '../../schemas/index.ts';\nimport { type ArgsActionAsync, argsAsync } from './argsAsync.ts';\n\ndescribe('argsAsync', () => {\n  type Input = (...args: unknown[]) => Promise<number>;\n  const schema = tupleWithRestAsync([string(), number()], boolean());\n  type Schema = typeof schema;\n  const action = argsAsync(schema);\n\n  test('should return action object', () => {\n    expect(action).toStrictEqual({\n      kind: 'transformation',\n      type: 'args',\n      reference: argsAsync,\n      async: false,\n      schema,\n      '~run': expect.any(Function),\n    } satisfies ArgsActionAsync<Input, Schema>);\n  });\n\n  const func = async () => 123;\n  const dataset = action['~run']({ typed: true, value: func }, {});\n\n  test('should return new function', () => {\n    expect(dataset).toStrictEqual({\n      typed: true,\n      value: expect.any(Function),\n    });\n    expect(dataset.value).not.toBe(func);\n  });\n\n  test('should not throw error for valid args', async () => {\n    if (dataset.typed) {\n      await expect(dataset.value('foo', 123)).resolves.not.toThrowError();\n      await expect(dataset.value('foo', 123, true)).resolves.not.toThrowError();\n      await expect(\n        dataset.value('foo', 123, true, false)\n      ).resolves.not.toThrowError();\n      await expect(\n        dataset.value('foo', 123, true, false, true)\n      ).resolves.not.toThrowError();\n    }\n  });\n\n  test('should throw error for invalid args', async () => {\n    if (dataset.typed) {\n      // @ts-expect-error\n      await expect(dataset.value()).rejects.toThrowError();\n      // @ts-expect-error\n      await expect(dataset.value('foo')).rejects.toThrowError();\n      // @ts-expect-error\n      await expect(dataset.value(null, 123)).rejects.toThrowError();\n      // @ts-expect-error\n      await expect(dataset.value('foo', null)).rejects.toThrowError();\n      // @ts-expect-error\n      await expect(dataset.value(123, 'foo')).rejects.toThrowError();\n      await expect(\n        // @ts-expect-error\n        dataset.value('foo', 123, null)\n      ).rejects.toThrowError();\n    }\n  });\n});\n"
  },
  {
    "path": "library/src/actions/args/argsAsync.ts",
    "content": "import type {\n  LooseTupleIssue,\n  LooseTupleSchema,\n  LooseTupleSchemaAsync,\n  StrictTupleIssue,\n  StrictTupleSchema,\n  StrictTupleSchemaAsync,\n  TupleIssue,\n  TupleSchema,\n  TupleSchemaAsync,\n  TupleWithRestIssue,\n  TupleWithRestSchema,\n  TupleWithRestSchemaAsync,\n} from '../../schemas/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  BaseTransformation,\n  ErrorMessage,\n  InferInput,\n  SuccessDataset,\n  TupleItems,\n  TupleItemsAsync,\n} from '../../types/index.ts';\nimport { ValiError } from '../../utils/index.ts';\n\n/**\n * Schema type.\n */\ntype Schema =\n  | LooseTupleSchema<TupleItems, ErrorMessage<LooseTupleIssue> | undefined>\n  | LooseTupleSchemaAsync<\n      TupleItemsAsync,\n      ErrorMessage<LooseTupleIssue> | undefined\n    >\n  | StrictTupleSchema<TupleItems, ErrorMessage<StrictTupleIssue> | undefined>\n  | StrictTupleSchemaAsync<\n      TupleItemsAsync,\n      ErrorMessage<StrictTupleIssue> | undefined\n    >\n  | TupleSchema<TupleItems, ErrorMessage<TupleIssue> | undefined>\n  | TupleSchemaAsync<TupleItemsAsync, ErrorMessage<TupleIssue> | undefined>\n  | TupleWithRestSchema<\n      TupleItems,\n      BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n      ErrorMessage<TupleWithRestIssue> | undefined\n    >\n  | TupleWithRestSchemaAsync<\n      TupleItemsAsync,\n      | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n      | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n      ErrorMessage<TupleWithRestIssue> | undefined\n    >;\n\n/**\n * Args action async type.\n */\nexport interface ArgsActionAsync<\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  TInput extends (...args: any[]) => unknown,\n  TSchema extends Schema,\n> extends BaseTransformation<\n    TInput,\n    (...args: InferInput<TSchema>) => Promise<Awaited<ReturnType<TInput>>>,\n    never\n  > {\n  /**\n   * The action type.\n   */\n  readonly type: 'args';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof argsAsync;\n  /**\n   * The arguments schema.\n   */\n  readonly schema: TSchema;\n}\n\n/**\n * Creates a function arguments transformation action.\n *\n * @param schema The arguments schema.\n *\n * @returns An args action.\n */\nexport function argsAsync<\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  TInput extends (...args: any[]) => unknown,\n  TSchema extends Schema,\n>(schema: TSchema): ArgsActionAsync<TInput, TSchema>;\n\n// @__NO_SIDE_EFFECTS__\nexport function argsAsync(\n  schema: Schema\n): ArgsActionAsync<(...args: unknown[]) => unknown, Schema> {\n  return {\n    kind: 'transformation',\n    type: 'args',\n    reference: argsAsync,\n    async: false,\n    schema,\n    '~run'(dataset, config) {\n      const func = dataset.value;\n      dataset.value = async (...args) => {\n        const argsDataset = await schema['~run']({ value: args }, config);\n        if (argsDataset.issues) {\n          throw new ValiError(argsDataset.issues);\n        }\n        return func(...argsDataset.value);\n      };\n      return dataset as SuccessDataset<\n        (...args: unknown[]) => Promise<unknown>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/args/index.ts",
    "content": "export * from './args.ts';\nexport * from './argsAsync.ts';\n"
  },
  {
    "path": "library/src/actions/await/awaitAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { type AwaitActionAsync, awaitAsync } from './awaitAsync.ts';\n\ndescribe('awaitAsync', () => {\n  type Input = Promise<string>;\n  type Action = AwaitActionAsync<Promise<string>>;\n\n  test('should return action object', () => {\n    expectTypeOf(awaitAsync<Input>()).toEqualTypeOf<Action>();\n  });\n\n  describe('should infer correct types', () => {\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<never>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/await/awaitAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { type AwaitActionAsync, awaitAsync } from './awaitAsync.ts';\n\ndescribe('awaitAsync', () => {\n  type Input = Promise<string>;\n  const action = awaitAsync<Input>();\n\n  test('should return action object', () => {\n    expect(action).toStrictEqual({\n      kind: 'transformation',\n      type: 'await',\n      reference: awaitAsync,\n      async: true,\n      '~run': expect.any(Function),\n    } satisfies AwaitActionAsync<Input>);\n  });\n\n  test('should await promise', async () => {\n    expect(\n      await action['~run']({ typed: true, value: Promise.resolve('foo') }, {})\n    ).toStrictEqual({\n      typed: true,\n      value: 'foo',\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/await/awaitAsync.ts",
    "content": "import type {\n  BaseTransformationAsync,\n  SuccessDataset,\n} from '../../types/index.ts';\n\n/**\n * Await action async interface.\n */\nexport interface AwaitActionAsync<TInput extends Promise<unknown>>\n  extends BaseTransformationAsync<TInput, Awaited<TInput>, never> {\n  /**\n   * The action type.\n   */\n  readonly type: 'await';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof awaitAsync;\n}\n\n/**\n * Creates an await transformation action.\n *\n * @returns An await action.\n */\n// @__NO_SIDE_EFFECTS__\nexport function awaitAsync<\n  TInput extends Promise<unknown>,\n>(): AwaitActionAsync<TInput> {\n  return {\n    kind: 'transformation',\n    type: 'await',\n    reference: awaitAsync,\n    async: true,\n    async '~run'(dataset) {\n      dataset.value = await dataset.value;\n      return dataset as SuccessDataset<Awaited<TInput>>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/await/index.ts",
    "content": "export * from './awaitAsync.ts';\n"
  },
  {
    "path": "library/src/actions/base64/base64.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { base64, type Base64Action, type Base64Issue } from './base64.ts';\n\ndescribe('base64', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = Base64Action<string, undefined>;\n      expectTypeOf(base64<string>()).toEqualTypeOf<Action>();\n      expectTypeOf(\n        base64<string, undefined>(undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(base64<string, 'message'>('message')).toEqualTypeOf<\n        Base64Action<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(base64<string, () => string>(() => 'message')).toEqualTypeOf<\n        Base64Action<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = Base64Action<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<Base64Issue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/base64/base64.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { BASE64_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { base64, type Base64Action, type Base64Issue } from './base64.ts';\n\ndescribe('base64', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<Base64Action<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'base64',\n      reference: base64,\n      expects: null,\n      requirement: BASE64_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: Base64Action<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(base64()).toStrictEqual(action);\n      expect(base64(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(base64('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies Base64Action<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(base64(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies Base64Action<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = base64();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for empty string', () => {\n      expectNoActionIssue(action, ['']);\n    });\n\n    test('for Base64 strings', () => {\n      expectNoActionIssue(action, [\n        // Test vectors from https://datatracker.ietf.org/doc/html/rfc4648#section-10\n        '', // ''\n        'Zg==', // 'f'\n        'Zm8=', // 'fo'\n        'Zm9v', // 'foo'\n        'Zm9vYg==', // 'foob'\n        'Zm9vYmE=', // 'fooba'\n        'Zm9vYmFy', // 'foobar'\n\n        // Other custom tests\n        'dmFsaWJvdA==', // 'valibot'\n        'SGVsbG8sIEkgYW0gVmFsaWJvdCBhbmQgSSB3b3VsZCBsaWtlIHRvIGhlbHAgeW91IHZhbGlkYXRlIGRhdGEgZWFzaWx5IHVzaW5nIGEgc2NoZW1hLg==', // 'Hello, I am Valibot and I would like to help you validate data easily using a schema.'\n        '8J+Mrg==', // '🌮'\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = base64('message');\n    const baseIssue: Omit<Base64Issue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'base64',\n      expected: null,\n      message: 'message',\n      requirement: BASE64_REGEX,\n    };\n\n    test('for blank strings', () => {\n      expectActionIssue(action, baseIssue, [' ', '\\n']);\n    });\n\n    test('for invalid chars', () => {\n      expectActionIssue(action, baseIssue, [\n        'foo`', // `\n        'foo~', // ~\n        'foo!', // !\n        'foo@', // @\n        'foo#', // #\n        'foo$', // $\n        'foo%', // %\n        'foo^', // ^\n        'foo&', // &\n        'foo*', // *\n        'foo(', // (\n        'foo)', // )\n        'foo-', // -\n        'foo_', // _\n        'foo[', // [\n        'foo]', // ]\n        'foo{', // {\n        'foo}', // }\n        'foo\\\\', // \\\n        'foo|', // |\n        'foo;', // ;\n        'foo:', // :\n        \"foo'\", // '\n        'foo\"', // \"\n        'foo,', // ,\n        'foo.', // .\n        'foo<', // <\n        'foo>', // >\n        'foo?', // ?\n      ]);\n    });\n\n    test('for invalid padding', () => {\n      expectActionIssue(action, baseIssue, [\n        'dmFsaWJvdA', // == missing\n        'dmFsaWJvdA=', // = missing\n        'dmFsaWJvdA===', // = extra\n        'Zm9vYmE', // = missing\n        'Zm9vYmE==', // = extra\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/base64/base64.ts",
    "content": "import { BASE64_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * Base64 issue interface.\n */\nexport interface Base64Issue<TInput extends string> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'base64';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The Base64 regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * Base64 action interface.\n */\nexport interface Base64Action<\n  TInput extends string,\n  TMessage extends ErrorMessage<Base64Issue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, Base64Issue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'base64';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof base64;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The Base64 regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a [Base64](https://en.wikipedia.org/wiki/Base64) validation action.\n *\n * @returns A Base64 action.\n */\nexport function base64<TInput extends string>(): Base64Action<\n  TInput,\n  undefined\n>;\n\n/**\n * Creates a [Base64](https://en.wikipedia.org/wiki/Base64) validation action.\n *\n * @param message The error message.\n *\n * @returns A Base64 action.\n */\nexport function base64<\n  TInput extends string,\n  const TMessage extends ErrorMessage<Base64Issue<TInput>> | undefined,\n>(message: TMessage): Base64Action<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function base64(\n  message?: ErrorMessage<Base64Issue<string>>\n): Base64Action<string, ErrorMessage<Base64Issue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'base64',\n    reference: base64,\n    async: false,\n    expects: null,\n    requirement: BASE64_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'Base64', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/base64/index.ts",
    "content": "export * from './base64.ts';\n"
  },
  {
    "path": "library/src/actions/bic/bic.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { bic, type BicAction, type BicIssue } from './bic.ts';\n\ndescribe('bic', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = BicAction<string, undefined>;\n      expectTypeOf(bic<string>()).toEqualTypeOf<Action>();\n      expectTypeOf(bic<string, undefined>(undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(bic<string, 'message'>('message')).toEqualTypeOf<\n        BicAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(bic<string, () => string>(() => 'message')).toEqualTypeOf<\n        BicAction<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = BicAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<BicIssue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/bic/bic.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { BIC_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue } from '../../vitest/expectActionIssue.ts';\nimport { expectNoActionIssue } from '../../vitest/expectNoActionIssue.ts';\nimport { bic, type BicAction, type BicIssue } from './bic.ts';\n\ndescribe('bic', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<BicAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'bic',\n      reference: bic,\n      expects: null,\n      requirement: BIC_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: BicAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(bic()).toStrictEqual(action);\n      expect(bic(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(bic('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies BicAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(bic(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies BicAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = bic();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid BICs', () => {\n      expectNoActionIssue(action, [\n        'DEUTDEFF',\n        'DEUTDEFF400',\n        'NEDSZAJJXXX',\n        'MLCOUS33',\n        'EBATFRPPEB1',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = bic('message');\n    const baseIssue: Omit<BicIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'bic',\n      expected: null,\n      message: 'message',\n      requirement: BIC_REGEX,\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for lowercase letters', () => {\n      expectActionIssue(action, baseIssue, [\n        'deutdeff',\n        'DEUtDEFF400',\n        'nEDSZAJJXXX',\n        'MLcouS33',\n        'EBATFRPPEb1',\n      ]);\n    });\n\n    test('for digit in first 6 chars', () => {\n      expectActionIssue(action, baseIssue, [\n        'DE8TDEFF',\n        '3EUTDEFF400',\n        'NEDSZ8JJXXX',\n        'M2COUS33',\n        'EBAT4RPPEB1',\n      ]);\n    });\n\n    test('for too short BICs', () => {\n      expectActionIssue(action, baseIssue, ['DEUTDEF', 'MLCOUS']);\n    });\n\n    test('for too long BICs', () => {\n      expectActionIssue(action, baseIssue, [\n        'DEUTDEFF4000',\n        'NEDSZAJJXXXX',\n        'EBATFRPPEB123',\n      ]);\n    });\n\n    test('for test BICs', () => {\n      expectActionIssue(action, baseIssue, ['DEUTDE00', 'NEDSZA00XXX']);\n    });\n\n    test('for special chars', () => {\n      expectActionIssue(action, baseIssue, [\n        'DEU@DEFF',\n        'DEUTDEFF$00',\n        'NEDSZAJJXX%',\n        'MLCOU€33',\n        'EB#TFRPPEB1',\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/bic/bic.ts",
    "content": "import { BIC_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * BIC issue interface.\n */\nexport interface BicIssue<TInput extends string> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'bic';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The BIC regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * BIC action interface.\n */\nexport interface BicAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<BicIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, BicIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'bic';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof bic;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The BIC regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a [BIC](https://en.wikipedia.org/wiki/ISO_9362) validation action.\n *\n * @returns A BIC action.\n */\nexport function bic<TInput extends string>(): BicAction<TInput, undefined>;\n\n/**\n * Creates a [BIC](https://en.wikipedia.org/wiki/ISO_9362) validation action.\n *\n * @param message The error message.\n *\n * @returns A BIC action.\n */\nexport function bic<\n  TInput extends string,\n  const TMessage extends ErrorMessage<BicIssue<TInput>> | undefined,\n>(message: TMessage): BicAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function bic(\n  message?: ErrorMessage<BicIssue<string>>\n): BicAction<string, ErrorMessage<BicIssue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'bic',\n    reference: bic,\n    async: false,\n    expects: null,\n    requirement: BIC_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'BIC', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/bic/index.ts",
    "content": "export * from './bic.ts';\n"
  },
  {
    "path": "library/src/actions/brand/brand.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { type Brand, brand, type BrandAction } from './brand.ts';\n\ndescribe('brand', () => {\n  type Action = BrandAction<string, 'foo'>;\n\n  test('should return action object', () => {\n    expectTypeOf(brand<string, 'foo'>('foo')).toEqualTypeOf<Action>();\n  });\n\n  describe('should infer correct types', () => {\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<\n        string & Brand<'foo'>\n      >();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<never>();\n    });\n  });\n\n  describe('should only match specific types', () => {\n    type Output = InferOutput<Action>;\n\n    test('should not match unbranded types', () => {\n      expectTypeOf<string>().not.toMatchTypeOf<Output>();\n    });\n\n    test('should match types with same brand', () => {\n      expectTypeOf<\n        InferOutput<BrandAction<string, 'foo'>>\n      >().toMatchTypeOf<Output>();\n    });\n\n    test('should not match types with different brand', () => {\n      expectTypeOf<\n        InferOutput<BrandAction<string, 'bar'>>\n      >().not.toMatchTypeOf<Output>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/brand/brand.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { brand, type BrandAction } from './brand.ts';\n\ndescribe('brand', () => {\n  test('should return action object', () => {\n    expect(brand('foo')).toStrictEqual({\n      kind: 'transformation',\n      type: 'brand',\n      reference: brand,\n      name: 'foo',\n      async: false,\n      '~run': expect.any(Function),\n    } satisfies BrandAction<string, 'foo'>);\n  });\n\n  test('should return same dataset', () => {\n    const dataset = { typed: true, value: 'foo' } as const;\n    expect(brand('foo')['~run'](dataset, {})).toStrictEqual(dataset);\n  });\n});\n"
  },
  {
    "path": "library/src/actions/brand/brand.ts",
    "content": "import type { BaseTransformation, SuccessDataset } from '../../types/index.ts';\n\n/**\n * Brand symbol.\n */\nexport declare const BrandSymbol: unique symbol;\n\n/**\n * Brand name type.\n */\nexport type BrandName = string | number | symbol;\n\n/**\n * Brand interface.\n */\nexport interface Brand<TName extends BrandName> {\n  [BrandSymbol]: { [TValue in TName]: TValue };\n}\n\n/**\n * Brand action interface.\n */\nexport interface BrandAction<TInput, TName extends BrandName>\n  extends BaseTransformation<TInput, TInput & Brand<TName>, never> {\n  /**\n   * The action type.\n   */\n  readonly type: 'brand';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof brand;\n  /**\n   * The brand name.\n   */\n  readonly name: TName;\n}\n\n/**\n * Creates a brand transformation action.\n *\n * @param name The brand name.\n *\n * @returns A brand action.\n */\n// @__NO_SIDE_EFFECTS__\nexport function brand<TInput, TName extends BrandName>(\n  name: TName\n): BrandAction<TInput, TName> {\n  return {\n    kind: 'transformation',\n    type: 'brand',\n    reference: brand,\n    async: false,\n    name,\n    '~run'(dataset) {\n      return dataset as SuccessDataset<TInput & Brand<TName>>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/brand/index.ts",
    "content": "export * from './brand.ts';\n"
  },
  {
    "path": "library/src/actions/bytes/bytes.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { bytes, type BytesAction, type BytesIssue } from './bytes.ts';\n\ndescribe('bytes', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = BytesAction<string, 10, undefined>;\n      expectTypeOf(bytes<string, 10>(10)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        bytes<string, 10, undefined>(10, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(bytes<string, 10, 'message'>(10, 'message')).toEqualTypeOf<\n        BytesAction<string, 10, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        bytes<string, 10, () => string>(10, () => 'message')\n      ).toEqualTypeOf<BytesAction<string, 10, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = BytesAction<string, 10, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        BytesIssue<string, 10>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/bytes/bytes.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { bytes, type BytesAction, type BytesIssue } from './bytes.ts';\n\ndescribe('bytes', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<BytesAction<string, 5, never>, 'message'> = {\n      kind: 'validation',\n      type: 'bytes',\n      reference: bytes,\n      expects: '5',\n      requirement: 5,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: BytesAction<string, 5, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(bytes(5)).toStrictEqual(action);\n      expect(bytes(5, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(bytes(5, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies BytesAction<string, 5, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(bytes(5, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies BytesAction<string, 5, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = bytes(5);\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid strings', () => {\n      expectNoActionIssue(action, ['12345', 'abcde']);\n    });\n\n    test('for valid chars', () => {\n      expectNoActionIssue(action, [\n        '12あ', // 'あ' is 3 bytes\n        '🤖!', // '🤖' is 4 bytes\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = bytes(5, 'message');\n    const baseIssue: Omit<BytesIssue<string, 5>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'bytes',\n      expected: '5',\n      message: 'message',\n      requirement: 5,\n    };\n\n    const getReceived = (value: string) =>\n      `${new TextEncoder().encode(value).length}`;\n\n    test('for invalid strings', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        ['', '1234', '123456', '123456789'],\n        getReceived\n      );\n    });\n\n    test('for invalid chars', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [\n          'あ', // 'あ' is 3 bytes\n          '🤖', // '🤖' is 4 bytes\n          'あい', // 'あい' is 6 bytes\n        ],\n        getReceived\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/bytes/bytes.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue, _getByteCount } from '../../utils/index.ts';\n\n/**\n * Bytes issue interface.\n */\nexport interface BytesIssue<TInput extends string, TRequirement extends number>\n  extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'bytes';\n  /**\n   * The expected property.\n   */\n  readonly expected: `${TRequirement}`;\n  /**\n   * The received property.\n   */\n  readonly received: `${number}`;\n  /**\n   * The required bytes.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Bytes action interface.\n */\nexport interface BytesAction<\n  TInput extends string,\n  TRequirement extends number,\n  TMessage extends ErrorMessage<BytesIssue<TInput, TRequirement>> | undefined,\n> extends BaseValidation<TInput, TInput, BytesIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'bytes';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof bytes;\n  /**\n   * The expected property.\n   */\n  readonly expects: `${TRequirement}`;\n  /**\n   * The required bytes.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a [bytes](https://en.wikipedia.org/wiki/Byte) validation action.\n *\n * @param requirement The required bytes.\n *\n * @returns A bytes action.\n */\nexport function bytes<TInput extends string, const TRequirement extends number>(\n  requirement: TRequirement\n): BytesAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a [bytes](https://en.wikipedia.org/wiki/Byte) validation action.\n *\n * @param requirement The required bytes.\n * @param message The error message.\n *\n * @returns A bytes action.\n */\nexport function bytes<\n  TInput extends string,\n  const TRequirement extends number,\n  const TMessage extends\n    | ErrorMessage<BytesIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): BytesAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function bytes(\n  requirement: number,\n  message?: ErrorMessage<BytesIssue<string, number>>\n): BytesAction<\n  string,\n  number,\n  ErrorMessage<BytesIssue<string, number>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'bytes',\n    reference: bytes,\n    async: false,\n    expects: `${requirement}`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed) {\n        const length = _getByteCount(dataset.value);\n        if (length !== this.requirement) {\n          _addIssue(this, 'bytes', dataset, config, {\n            received: `${length}`,\n          });\n        }\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/bytes/index.ts",
    "content": "export * from './bytes.ts';\n"
  },
  {
    "path": "library/src/actions/check/check.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { check, type CheckAction } from './check.ts';\nimport type { CheckIssue } from './types.ts';\n\ndescribe('check', () => {\n  describe('should return action object', () => {\n    const requirement = (input: string) => Boolean(input);\n\n    test('with undefined message', () => {\n      type Action = CheckAction<string, undefined>;\n      expectTypeOf(check<string>(requirement)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        check<string, undefined>(requirement, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        check<string, 'message'>(requirement, 'message')\n      ).toEqualTypeOf<CheckAction<string, 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        check<string, () => string>(requirement, () => 'message')\n      ).toEqualTypeOf<CheckAction<string, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Input = ['foo', 123, true];\n    type Action = CheckAction<Input, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<CheckIssue<Input>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/check/check.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { check, type CheckAction } from './check.ts';\nimport type { CheckIssue } from './types.ts';\n\ndescribe('check', () => {\n  describe('should return action object', () => {\n    const requirement = (input: string) => input.includes('foo');\n    const baseAction: Omit<CheckAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'check',\n      reference: check,\n      expects: null,\n      requirement,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: CheckAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(check<string>(requirement)).toStrictEqual(action);\n      expect(check<string, undefined>(requirement, undefined)).toStrictEqual(\n        action\n      );\n    });\n\n    test('with string message', () => {\n      const message = 'message';\n      expect(check<string, 'message'>(requirement, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies CheckAction<string, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(check<string, typeof message>(requirement, message)).toStrictEqual(\n        {\n          ...baseAction,\n          message,\n        } satisfies CheckAction<string, typeof message>\n      );\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = check<number>((input) => input > 0);\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid inputs', () => {\n      expectNoActionIssue(action, [1, 12345, Infinity]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const requirement = (input: number) => input > 0;\n    const action = check<number, 'message'>(requirement, 'message');\n\n    const baseIssue: Omit<CheckIssue<number>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'check',\n      expected: null,\n      message: 'message',\n      requirement,\n    };\n\n    test('for invalid inputs', () => {\n      expectActionIssue(action, baseIssue, [0, -1, -12345, -Infinity]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/check/check.ts",
    "content": "import type { BaseValidation, ErrorMessage } from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\nimport type { CheckIssue } from './types.ts';\n\n/**\n * Check action interface.\n */\nexport interface CheckAction<\n  TInput,\n  TMessage extends ErrorMessage<CheckIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, CheckIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'check';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof check;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The validation function.\n   */\n  readonly requirement: (input: TInput) => boolean;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a check validation action.\n *\n * @param requirement The validation function.\n *\n * @returns A check action.\n */\nexport function check<TInput>(\n  requirement: (input: TInput) => boolean\n): CheckAction<TInput, undefined>;\n\n/**\n * Creates a check validation action.\n *\n * @param requirement The validation function.\n * @param message The error message.\n *\n * @returns A check action.\n */\nexport function check<\n  TInput,\n  const TMessage extends ErrorMessage<CheckIssue<TInput>> | undefined,\n>(\n  requirement: (input: TInput) => boolean,\n  message: TMessage\n): CheckAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function check(\n  requirement: (input: unknown) => boolean,\n  message?: ErrorMessage<CheckIssue<unknown>>\n): CheckAction<unknown, ErrorMessage<CheckIssue<unknown>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'check',\n    reference: check,\n    async: false,\n    expects: null,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement(dataset.value)) {\n        _addIssue(this, 'input', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/check/checkAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { type CheckActionAsync, checkAsync } from './checkAsync.ts';\nimport type { CheckIssue } from './types.ts';\n\ndescribe('checkAsync', () => {\n  describe('should return action object', () => {\n    const requirement = async (input: string) => Boolean(input);\n\n    test('with undefined message', () => {\n      type Action = CheckActionAsync<string, undefined>;\n      expectTypeOf(checkAsync<string>(requirement)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        checkAsync<string, undefined>(requirement, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        checkAsync<string, 'message'>(requirement, 'message')\n      ).toEqualTypeOf<CheckActionAsync<string, 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        checkAsync<string, () => string>(requirement, () => 'message')\n      ).toEqualTypeOf<CheckActionAsync<string, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Input = ['foo', 123, true];\n    type Action = CheckActionAsync<Input, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<CheckIssue<Input>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/check/checkAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport {\n  expectActionIssueAsync,\n  expectNoActionIssueAsync,\n} from '../../vitest/index.ts';\nimport { type CheckActionAsync, checkAsync } from './checkAsync.ts';\nimport type { CheckIssue } from './types.ts';\n\ndescribe('checkAsync', () => {\n  describe('should return action object', () => {\n    const requirement = async (input: string) => input.includes('foo');\n    const baseAction: Omit<CheckActionAsync<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'check',\n      reference: checkAsync,\n      expects: null,\n      requirement,\n      async: true,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: CheckActionAsync<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(checkAsync<string>(requirement)).toStrictEqual(action);\n      expect(\n        checkAsync<string, undefined>(requirement, undefined)\n      ).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      const message = 'message';\n      expect(checkAsync<string, 'message'>(requirement, message)).toStrictEqual(\n        {\n          ...baseAction,\n          message,\n        } satisfies CheckActionAsync<string, 'message'>\n      );\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(\n        checkAsync<string, typeof message>(requirement, message)\n      ).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies CheckActionAsync<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = checkAsync<number>(async (input) => input > 0);\n\n    test('for untyped inputs', async () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        await action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid inputs', async () => {\n      await expectNoActionIssueAsync(action, [1, 12345, Infinity]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const requirement = async (input: number) => input > 0;\n    const action = checkAsync<number, 'message'>(requirement, 'message');\n\n    const baseIssue: Omit<CheckIssue<number>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'check',\n      expected: null,\n      message: 'message',\n      requirement,\n    };\n\n    test('for invalid inputs', async () => {\n      await expectActionIssueAsync(action, baseIssue, [\n        0,\n        -1,\n        -12345,\n        -Infinity,\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/check/checkAsync.ts",
    "content": "import type {\n  BaseValidationAsync,\n  ErrorMessage,\n  MaybePromise,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\nimport type { CheckIssue } from './types.ts';\n\n/**\n * Check action async interface.\n */\nexport interface CheckActionAsync<\n  TInput,\n  TMessage extends ErrorMessage<CheckIssue<TInput>> | undefined,\n> extends BaseValidationAsync<TInput, TInput, CheckIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'check';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof checkAsync;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The validation function.\n   */\n  readonly requirement: (input: TInput) => MaybePromise<boolean>;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a check validation action.\n *\n * @param requirement The validation function.\n *\n * @returns A check action.\n */\nexport function checkAsync<TInput>(\n  requirement: (input: TInput) => MaybePromise<boolean>\n): CheckActionAsync<TInput, undefined>;\n\n/**\n * Creates a check validation action.\n *\n * @param requirement The validation function.\n * @param message The error message.\n *\n * @returns A check action.\n */\nexport function checkAsync<\n  TInput,\n  const TMessage extends ErrorMessage<CheckIssue<TInput>> | undefined,\n>(\n  requirement: (input: TInput) => MaybePromise<boolean>,\n  message: TMessage\n): CheckActionAsync<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function checkAsync(\n  requirement: (input: unknown) => MaybePromise<boolean>,\n  message?: ErrorMessage<CheckIssue<unknown>>\n): CheckActionAsync<unknown, ErrorMessage<CheckIssue<unknown>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'check',\n    reference: checkAsync,\n    async: true,\n    expects: null,\n    requirement,\n    message,\n    async '~run'(dataset, config) {\n      if (dataset.typed && !(await this.requirement(dataset.value))) {\n        _addIssue(this, 'input', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/check/index.ts",
    "content": "export * from './check.ts';\nexport * from './checkAsync.ts';\nexport * from './types.ts';\n"
  },
  {
    "path": "library/src/actions/check/types.ts",
    "content": "import type { BaseIssue, MaybePromise } from '../../types/index.ts';\n\n/**\n * Check issue interface.\n */\nexport interface CheckIssue<TInput> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'check';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The validation function.\n   */\n  readonly requirement: (input: TInput) => MaybePromise<boolean>;\n}\n"
  },
  {
    "path": "library/src/actions/checkItems/checkItems.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { checkItems, type CheckItemsAction } from './checkItems.ts';\nimport type { CheckItemsIssue } from './types.ts';\n\ndescribe('checkItems', () => {\n  describe('should return action object', () => {\n    const requirement = (item: string) => Boolean(item);\n\n    test('with undefined message', () => {\n      type Action = CheckItemsAction<string[], undefined>;\n      expectTypeOf(checkItems<string[]>(requirement)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        checkItems<string[], undefined>(requirement, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        checkItems<string[], 'message'>(requirement, 'message')\n      ).toEqualTypeOf<CheckItemsAction<string[], 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        checkItems<string[], () => string>(requirement, () => 'message')\n      ).toEqualTypeOf<CheckItemsAction<string[], () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Input = ['foo', 123, true];\n    type Action = CheckItemsAction<Input, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        CheckItemsIssue<Input>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/checkItems/checkItems.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport type { PartialDataset } from '../../types/dataset.ts';\nimport { expectNoActionIssue } from '../../vitest/index.ts';\nimport { checkItems, type CheckItemsAction } from './checkItems.ts';\nimport type { CheckItemsIssue } from './types.ts';\n\ndescribe('checkItems', () => {\n  describe('should return action object', () => {\n    const requirement = (item: string) => item.startsWith('DE');\n    const baseAction: Omit<CheckItemsAction<string[], never>, 'message'> = {\n      kind: 'validation',\n      type: 'check_items',\n      reference: checkItems,\n      expects: null,\n      requirement,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: CheckItemsAction<string[], undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(checkItems<string[]>(requirement)).toStrictEqual(action);\n      expect(\n        checkItems<string[], undefined>(requirement, undefined)\n      ).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      const message = 'message';\n      expect(\n        checkItems<string[], 'message'>(requirement, message)\n      ).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies CheckItemsAction<string[], 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(\n        checkItems<string[], typeof message>(requirement, message)\n      ).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies CheckItemsAction<string[], typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = checkItems<number[]>((item: number) => item > 9);\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for empty array', () => {\n      expectNoActionIssue(action, [[]]);\n    });\n\n    test('for valid content', () => {\n      expectNoActionIssue(action, [[10, 11, 12, 13, 99]]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const requirement = (item: number) => item > 9;\n    const action = checkItems<number[], 'message'>(requirement, 'message');\n\n    const baseIssue: Omit<CheckItemsIssue<number[]>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'check_items',\n      expected: null,\n      message: 'message',\n      requirement,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    test('for invalid content', () => {\n      const input = [-12, 345, 6, 10];\n      expect(action['~run']({ typed: true, value: input }, {})).toStrictEqual({\n        typed: true,\n        value: input,\n        issues: [\n          {\n            ...baseIssue,\n            input: input[0],\n            received: `${input[0]}`,\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input,\n                key: 0,\n                value: input[0],\n              },\n            ],\n          },\n          {\n            ...baseIssue,\n            input: input[2],\n            received: `${input[2]}`,\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input,\n                key: 2,\n                value: input[2],\n              },\n            ],\n          },\n        ],\n      } satisfies PartialDataset<number[], CheckItemsIssue<number[]>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/checkItems/checkItems.ts",
    "content": "import type { BaseValidation, ErrorMessage } from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\nimport type { ArrayInput, ArrayRequirement } from '../types.ts';\nimport type { CheckItemsIssue } from './types.ts';\n\n/**\n * Check items action interface.\n */\nexport interface CheckItemsAction<\n  TInput extends ArrayInput,\n  TMessage extends ErrorMessage<CheckItemsIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, CheckItemsIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'check_items';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof checkItems;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The validation function.\n   */\n  readonly requirement: ArrayRequirement<TInput>;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an check items validation action.\n *\n * @param requirement The validation function.\n *\n * @returns An check items action.\n */\nexport function checkItems<TInput extends ArrayInput>(\n  requirement: ArrayRequirement<TInput>\n): CheckItemsAction<TInput, undefined>;\n\n/**\n * Creates an check items validation action.\n *\n * @param requirement The validation function.\n * @param message The error message.\n *\n * @returns An check items action.\n */\nexport function checkItems<\n  TInput extends ArrayInput,\n  const TMessage extends ErrorMessage<CheckItemsIssue<TInput>> | undefined,\n>(\n  requirement: ArrayRequirement<TInput>,\n  message: TMessage\n): CheckItemsAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function checkItems(\n  requirement: ArrayRequirement<unknown[]>,\n  message?: ErrorMessage<CheckItemsIssue<unknown[]>>\n): CheckItemsAction<\n  unknown[],\n  ErrorMessage<CheckItemsIssue<unknown[]>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'check_items',\n    reference: checkItems,\n    async: false,\n    expects: null,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed) {\n        for (let index = 0; index < dataset.value.length; index++) {\n          const item = dataset.value[index];\n          if (!this.requirement(item, index, dataset.value)) {\n            _addIssue(this, 'item', dataset, config, {\n              input: item,\n              path: [\n                {\n                  type: 'array',\n                  origin: 'value',\n                  input: dataset.value,\n                  key: index,\n                  value: item,\n                },\n              ],\n            });\n          }\n        }\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/checkItems/checkItemsAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  type CheckItemsActionAsync,\n  checkItemsAsync,\n} from './checkItemsAsync.ts';\nimport type { CheckItemsIssue } from './types.ts';\n\ndescribe('checkItemsAsync', () => {\n  describe('should return action object', () => {\n    const requirement = async (item: string) => Boolean(item);\n\n    test('with undefined message', () => {\n      type Action = CheckItemsActionAsync<string[], undefined>;\n      expectTypeOf(\n        checkItemsAsync<string[]>(requirement)\n      ).toEqualTypeOf<Action>();\n      expectTypeOf(\n        checkItemsAsync<string[], undefined>(requirement, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        checkItemsAsync<string[], 'message'>(requirement, 'message')\n      ).toEqualTypeOf<CheckItemsActionAsync<string[], 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        checkItemsAsync<string[], () => string>(requirement, () => 'message')\n      ).toEqualTypeOf<CheckItemsActionAsync<string[], () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Input = ['foo', 123, true];\n    type Action = CheckItemsActionAsync<Input, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        CheckItemsIssue<Input>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/checkItems/checkItemsAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport type { PartialDataset } from '../../types/dataset.ts';\nimport { expectNoActionIssueAsync } from '../../vitest/index.ts';\nimport {\n  type CheckItemsActionAsync,\n  checkItemsAsync,\n} from './checkItemsAsync.ts';\nimport type { CheckItemsIssue } from './types.ts';\n\ndescribe('checkItemsAsync', () => {\n  describe('should return action object', () => {\n    const requirement = async (item: string) => item.startsWith('DE');\n    const baseAction: Omit<\n      CheckItemsActionAsync<string[], never>,\n      'message'\n    > = {\n      kind: 'validation',\n      type: 'check_items',\n      reference: checkItemsAsync,\n      expects: null,\n      requirement,\n      async: true,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: CheckItemsActionAsync<string[], undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(checkItemsAsync<string[]>(requirement)).toStrictEqual(action);\n      expect(\n        checkItemsAsync<string[], undefined>(requirement, undefined)\n      ).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      const message = 'message';\n      expect(\n        checkItemsAsync<string[], 'message'>(requirement, message)\n      ).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies CheckItemsActionAsync<string[], 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(\n        checkItemsAsync<string[], typeof message>(requirement, message)\n      ).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies CheckItemsActionAsync<string[], typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = checkItemsAsync<number[]>(async (item: number) => item > 9);\n\n    test('for untyped inputs', async () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        await action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for empty array', async () => {\n      await expectNoActionIssueAsync(action, [[]]);\n    });\n\n    test('for valid content', async () => {\n      await expectNoActionIssueAsync(action, [[10, 11, 12, 13, 99]]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const requirement = async (item: number) => item > 9;\n    const action = checkItemsAsync<number[], 'message'>(requirement, 'message');\n\n    const baseIssue: Omit<CheckItemsIssue<number[]>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'check_items',\n      expected: null,\n      message: 'message',\n      requirement,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    test('for invalid content', async () => {\n      const input = [-12, 345, 6, 10];\n      expect(\n        await action['~run']({ typed: true, value: input }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: input,\n        issues: [\n          {\n            ...baseIssue,\n            input: input[0],\n            received: `${input[0]}`,\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input,\n                key: 0,\n                value: input[0],\n              },\n            ],\n          },\n          {\n            ...baseIssue,\n            input: input[2],\n            received: `${input[2]}`,\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input,\n                key: 2,\n                value: input[2],\n              },\n            ],\n          },\n        ],\n      } satisfies PartialDataset<number[], CheckItemsIssue<number[]>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/checkItems/checkItemsAsync.ts",
    "content": "import type { BaseValidationAsync, ErrorMessage } from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\nimport type { ArrayInput, ArrayRequirementAsync } from '../types.ts';\nimport type { CheckItemsIssue } from './types.ts';\n\n/**\n * Check items action async interface.\n */\nexport interface CheckItemsActionAsync<\n  TInput extends ArrayInput,\n  TMessage extends ErrorMessage<CheckItemsIssue<TInput>> | undefined,\n> extends BaseValidationAsync<TInput, TInput, CheckItemsIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'check_items';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof checkItemsAsync;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The validation function.\n   */\n  readonly requirement: ArrayRequirementAsync<TInput>;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a check items validation action.\n *\n * @param requirement The validation function.\n *\n * @returns A check items action.\n */\nexport function checkItemsAsync<TInput extends ArrayInput>(\n  requirement: ArrayRequirementAsync<TInput>\n): CheckItemsActionAsync<TInput, undefined>;\n\n/**\n * Creates a check items validation action.\n *\n * @param requirement The validation function.\n * @param message The error message.\n *\n * @returns A check items action.\n */\nexport function checkItemsAsync<\n  TInput extends ArrayInput,\n  const TMessage extends ErrorMessage<CheckItemsIssue<TInput>> | undefined,\n>(\n  requirement: ArrayRequirementAsync<TInput>,\n  message: TMessage\n): CheckItemsActionAsync<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function checkItemsAsync(\n  requirement: ArrayRequirementAsync<unknown[]>,\n  message?: ErrorMessage<CheckItemsIssue<unknown[]>>\n): CheckItemsActionAsync<\n  unknown[],\n  ErrorMessage<CheckItemsIssue<unknown[]>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'check_items',\n    reference: checkItemsAsync,\n    async: true,\n    expects: null,\n    requirement,\n    message,\n    async '~run'(dataset, config) {\n      if (dataset.typed) {\n        const requirementResults = await Promise.all(\n          dataset.value.map(this.requirement)\n        );\n        for (let index = 0; index < dataset.value.length; index++) {\n          if (!requirementResults[index]) {\n            const item = dataset.value[index];\n            _addIssue(this, 'item', dataset, config, {\n              input: item,\n              path: [\n                {\n                  type: 'array',\n                  origin: 'value',\n                  input: dataset.value,\n                  key: index,\n                  value: item,\n                },\n              ],\n            });\n          }\n        }\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/checkItems/index.ts",
    "content": "export * from './checkItems.ts';\nexport * from './checkItemsAsync.ts';\nexport * from './types.ts';\n"
  },
  {
    "path": "library/src/actions/checkItems/types.ts",
    "content": "import type { BaseIssue } from '../../types/index.ts';\nimport type { ArrayInput, ArrayRequirementAsync } from '../types.ts';\n\n/**\n * Check items issue interface.\n */\nexport interface CheckItemsIssue<TInput extends ArrayInput>\n  extends BaseIssue<TInput[number]> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'check_items';\n  /**\n   * The expected input.\n   */\n  readonly expected: null;\n  /**\n   * The validation function.\n   */\n  readonly requirement: ArrayRequirementAsync<TInput>;\n}\n"
  },
  {
    "path": "library/src/actions/creditCard/creditCard.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  creditCard,\n  type CreditCardAction,\n  type CreditCardIssue,\n} from './creditCard.ts';\n\ndescribe('creditCard', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = CreditCardAction<string, undefined>;\n      expectTypeOf(creditCard<string>()).toEqualTypeOf<Action>();\n      expectTypeOf(\n        creditCard<string, undefined>(undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(creditCard<string, 'message'>('message')).toEqualTypeOf<\n        CreditCardAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        creditCard<string, () => string>(() => 'message')\n      ).toEqualTypeOf<CreditCardAction<string, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = CreditCardAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        CreditCardIssue<string>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/creditCard/creditCard.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  creditCard,\n  type CreditCardAction,\n  type CreditCardIssue,\n} from './creditCard.ts';\n\ndescribe('creditCard', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<CreditCardAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'credit_card',\n      reference: creditCard,\n      expects: null,\n      requirement: expect.any(Function),\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: CreditCardAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(creditCard()).toStrictEqual(action);\n      expect(creditCard(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(creditCard('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies CreditCardAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(creditCard(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies CreditCardAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = creditCard();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for American Express', () => {\n      expectNoActionIssue(action, ['378282246310005', '371449635398431']);\n    });\n\n    test('for Diners Club', () => {\n      expectNoActionIssue(action, ['3056930009020004', '36227206271667']);\n    });\n\n    test('for Discover', () => {\n      expectNoActionIssue(action, [\n        '6011111111111117',\n        '6011000990139424',\n        '6011981111111113',\n      ]);\n    });\n\n    test('for JCB', () => {\n      expectNoActionIssue(action, ['3530111333300000', '3566002020360505']);\n    });\n\n    test('for Mastercard', () => {\n      expectNoActionIssue(action, [\n        '5555555555554444',\n        '2223003122003222',\n        '5200828282828210',\n        '5105105105105100',\n      ]);\n    });\n\n    test('for UnionPay', () => {\n      expectNoActionIssue(action, [\n        '6200000000000005',\n        '6200000000000047',\n        '6205500000000000004',\n      ]);\n    });\n\n    test('for Visa', () => {\n      expectNoActionIssue(action, [\n        '4242424242424242',\n        '4000056655665556',\n        '4007000000027',\n      ]);\n    });\n\n    test('with space dividers', () => {\n      expectNoActionIssue(action, [\n        '4000 0025 0000 1001',\n        '5555 5525 0000 1001',\n        '4007 000 000 027',\n      ]);\n    });\n\n    test('with dashe dividers', () => {\n      expectNoActionIssue(action, [\n        '4000-0503-6000-0001',\n        '5555-0503-6000-0080',\n        '4007-000-000-027',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = creditCard('message');\n    const baseIssue: Omit<CreditCardIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'credit_card',\n      expected: null,\n      message: 'message',\n      requirement: expect.any(Function),\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for included letters', () => {\n      expectActionIssue(action, baseIssue, [\n        'DE6200000000000005',\n        '6011000A90139424',\n        '37828224631000E',\n      ]);\n    });\n\n    test('for mixed divider', () => {\n      expectActionIssue(action, baseIssue, [\n        '40000025 0000-1001',\n        '5555-55250000 1001',\n        '5555 55555555-4444',\n      ]);\n    });\n\n    test('for double divider', () => {\n      expectActionIssue(action, baseIssue, [\n        '4000  0025 0000 1001',\n        '5555-0503--6000-0080',\n      ]);\n    });\n\n    test('for too short numbers', () => {\n      expectActionIssue(action, baseIssue, ['3782822463100', '3622720627166']);\n    });\n\n    test('for too long numbers', () => {\n      expectActionIssue(action, baseIssue, ['62055000000000000040']);\n    });\n\n    test('for invalid providers', () => {\n      expectActionIssue(action, baseIssue, [\n        '7530111333300000',\n        '1105105105105100',\n        '9000056655665556',\n      ]);\n    });\n\n    test('for invalid checksum', () => {\n      expectActionIssue(action, baseIssue, [\n        '5200828282828211',\n        '371449635398434',\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/creditCard/creditCard.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue, _isLuhnAlgo } from '../../utils/index.ts';\n\n/**\n * Credit card issue interface.\n */\nexport interface CreditCardIssue<TInput extends string>\n  extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'credit_card';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The validation function.\n   */\n  readonly requirement: (input: string) => boolean;\n}\n\n/**\n * Credit card action interface.\n */\nexport interface CreditCardAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<CreditCardIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, CreditCardIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'credit_card';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof creditCard;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The validation function.\n   */\n  readonly requirement: (input: string) => boolean;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Credit card regex.\n */\nconst CREDIT_CARD_REGEX =\n  /^(?:\\d{13,19}|\\d{4}(?: \\d{3,6}){2,4}|\\d{4}(?:-\\d{3,6}){2,4})$/u;\n\n/**\n * Sanitize regex.\n */\nconst SANITIZE_REGEX = /[- ]/gu;\n\n/**\n * Provider regex list.\n */\nconst PROVIDER_REGEX_LIST = [\n  // American Express\n  /^3[47]\\d{13}$/u,\n  // Diners Club\n  /^3(?:0[0-5]|[68]\\d)\\d{11,13}$/u,\n  // Discover\n  /^6(?:011|5\\d{2})\\d{12,15}$/u,\n  // JCB\n  /^(?:2131|1800|35\\d{3})\\d{11}$/u,\n  // Mastercard\n  // eslint-disable-next-line redos-detector/no-unsafe-regex\n  /^5[1-5]\\d{2}|(?:222\\d|22[3-9]\\d|2[3-6]\\d{2}|27[01]\\d|2720)\\d{12}$/u,\n  // UnionPay\n  /^(?:6[27]\\d{14,17}|81\\d{14,17})$/u,\n  // Visa\n  /^4\\d{12}(?:\\d{3,6})?$/u,\n];\n\n/**\n * Creates a [credit card](https://en.wikipedia.org/wiki/Payment_card_number) validation action.\n *\n * @returns A Credit card action.\n */\nexport function creditCard<TInput extends string>(): CreditCardAction<\n  TInput,\n  undefined\n>;\n\n/**\n * Creates a [credit card](https://en.wikipedia.org/wiki/Payment_card_number) validation action.\n *\n * @param message The error message.\n *\n * @returns A credit card action.\n */\nexport function creditCard<\n  TInput extends string,\n  const TMessage extends ErrorMessage<CreditCardIssue<TInput>> | undefined,\n>(message: TMessage): CreditCardAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function creditCard(\n  message?: ErrorMessage<CreditCardIssue<string>>\n): CreditCardAction<string, ErrorMessage<CreditCardIssue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'credit_card',\n    reference: creditCard,\n    async: false,\n    expects: null,\n    requirement(input) {\n      let sanitized: string | undefined;\n      return (CREDIT_CARD_REGEX.test(input) &&\n        // Remove any hyphens and blanks\n        (sanitized = input.replace(SANITIZE_REGEX, '')) &&\n        // Check if it matches a provider\n        PROVIDER_REGEX_LIST.some((regex) => regex.test(sanitized!)) &&\n        // Check if passes luhn algorithm\n        _isLuhnAlgo(sanitized)) as boolean;\n    },\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement(dataset.value)) {\n        _addIssue(this, 'credit card', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/creditCard/index.ts",
    "content": "export * from './creditCard.ts';\n"
  },
  {
    "path": "library/src/actions/cuid2/cuid2.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { cuid2, type Cuid2Action, type Cuid2Issue } from './cuid2.ts';\n\ndescribe('cuid2', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = Cuid2Action<string, undefined>;\n      expectTypeOf(cuid2<string>()).toEqualTypeOf<Action>();\n      expectTypeOf(cuid2<string, undefined>(undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(cuid2<string, 'message'>('message')).toEqualTypeOf<\n        Cuid2Action<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(cuid2<string, () => string>(() => 'message')).toEqualTypeOf<\n        Cuid2Action<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = Cuid2Action<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<Cuid2Issue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/cuid2/cuid2.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { CUID2_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { cuid2, type Cuid2Action, type Cuid2Issue } from './cuid2.ts';\n\ndescribe('cuid2', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<Cuid2Action<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'cuid2',\n      reference: cuid2,\n      expects: null,\n      requirement: CUID2_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: Cuid2Action<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(cuid2()).toStrictEqual(action);\n      expect(cuid2(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(cuid2('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies Cuid2Action<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(cuid2(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies Cuid2Action<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = cuid2();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for single lowercase letters', () => {\n      expectNoActionIssue(action, ['a', 'b', 'y', 'z']);\n    });\n\n    test('for two lowercase letters', () => {\n      expectNoActionIssue(action, ['ab', 'cd', 'wx', 'yz']);\n    });\n\n    test('for letter plus digit', () => {\n      expectNoActionIssue(action, ['a1', 'b2', 'y8', 'z9']);\n    });\n\n    test('for very long Cuid2s', () => {\n      expectNoActionIssue(action, [\n        'o2dyrckf0vbqhftbcx8ex7r8',\n        'pj17j4wheabtydu00x2yuo8s',\n        'vkydd2qpoediyioixyeh8zyo',\n        'ja3j1arc87i80ys1zxk8iyiv',\n        'pbe6zw7wikj83vv5knjk1wx8',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = cuid2('message');\n    const baseIssue: Omit<Cuid2Issue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'cuid2',\n      expected: null,\n      message: 'message',\n      requirement: CUID2_REGEX,\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for string with spaces', () => {\n      expectActionIssue(action, baseIssue, [' o2dyr', 'o2dyr ', 'o2d yr']);\n    });\n\n    test('for digit as first char', () => {\n      expectActionIssue(action, baseIssue, ['1', '9', '1a', '9z']);\n    });\n\n    test('for uppercase letters', () => {\n      expectActionIssue(action, baseIssue, ['A', 'Bc', 'De', 'F1', 'o2Dyr']);\n    });\n\n    test('for special chars', () => {\n      expectActionIssue(action, baseIssue, ['@', '#', '$', '%', '&']);\n      expectActionIssue(action, baseIssue, ['a@', 'b#', 'x$', 'z%', 'y&']);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/cuid2/cuid2.ts",
    "content": "import { CUID2_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * Cuid2 issue interface.\n */\nexport interface Cuid2Issue<TInput extends string> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'cuid2';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The Cuid2 regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * Cuid2 action interface.\n */\nexport interface Cuid2Action<\n  TInput extends string,\n  TMessage extends ErrorMessage<Cuid2Issue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, Cuid2Issue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'cuid2';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof cuid2;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The Cuid2 regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a [Cuid2](https://github.com/paralleldrive/cuid2) validation action.\n *\n * @returns A Cuid2 action.\n */\nexport function cuid2<TInput extends string>(): Cuid2Action<TInput, undefined>;\n\n/**\n * Creates a [Cuid2](https://github.com/paralleldrive/cuid2) validation action.\n *\n * @param message The error message.\n *\n * @returns A Cuid2 action.\n */\nexport function cuid2<\n  TInput extends string,\n  const TMessage extends ErrorMessage<Cuid2Issue<TInput>> | undefined,\n>(message: TMessage): Cuid2Action<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function cuid2(\n  message?: ErrorMessage<Cuid2Issue<string>>\n): Cuid2Action<string, ErrorMessage<Cuid2Issue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'cuid2',\n    reference: cuid2,\n    async: false,\n    expects: null,\n    requirement: CUID2_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'Cuid2', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/cuid2/index.ts",
    "content": "export * from './cuid2.ts';\n"
  },
  {
    "path": "library/src/actions/decimal/decimal.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { decimal, type DecimalAction, type DecimalIssue } from './decimal.ts';\n\ndescribe('decimal', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = DecimalAction<string, undefined>;\n      expectTypeOf(decimal()).toEqualTypeOf<Action>();\n      expectTypeOf(decimal(undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(decimal('message')).toEqualTypeOf<\n        DecimalAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(decimal(() => 'message')).toEqualTypeOf<\n        DecimalAction<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = DecimalAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<DecimalIssue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/decimal/decimal.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { DECIMAL_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { decimal, type DecimalAction, type DecimalIssue } from './decimal.ts';\n\ndescribe('decimal', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<DecimalAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'decimal',\n      reference: decimal,\n      expects: null,\n      requirement: DECIMAL_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: DecimalAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(decimal()).toStrictEqual(action);\n      expect(decimal(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(decimal('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies DecimalAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(decimal(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies DecimalAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = decimal();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for a single digit', () => {\n      const values = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];\n      expectNoActionIssue(action, values);\n    });\n\n    test('for two digits', () => {\n      expectNoActionIssue(action, ['00', '01', '12', '99']);\n    });\n\n    test('for multiple digits', () => {\n      expectNoActionIssue(action, ['1234', '0123456789']);\n    });\n\n    test('for float numbers', () => {\n      expectNoActionIssue(action, ['0.1', '123.456']);\n    });\n\n    test('for number signs', () => {\n      expectNoActionIssue(action, ['+1', '-1', '+123', '-123', '+001', '-001']);\n    });\n\n    test('for floats with a number sign', () => {\n      expectNoActionIssue(action, ['-2.0', '-52.61', '+4.0', '-11.31']);\n    });\n\n    test('for floats starting with a dot', () => {\n      expectNoActionIssue(action, ['.6', '.763']);\n    });\n\n    test('for floats starting with number sign followed by a dot', () => {\n      expectNoActionIssue(action, ['-.2', '-.922', '+.5', '+.452']);\n    });\n\n    test('for numbers with leading 0s', () => {\n      expectNoActionIssue(action, ['000', '000123', '000.123', '00012.3']);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = decimal('message');\n    const baseIssue: Omit<DecimalIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'decimal',\n      expected: null,\n      message: 'message',\n      requirement: DECIMAL_REGEX,\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for blank spaces', () => {\n      expectActionIssue(action, baseIssue, [' 1', '1 ', ' 1 ', '1 2']);\n    });\n\n    test('for invalid separators', () => {\n      expectActionIssue(action, baseIssue, ['1,000', '1_000', '1 000']);\n    });\n\n    test('for scientific notation', () => {\n      expectActionIssue(action, baseIssue, ['1e3', '1e-3', '1e+3']);\n    });\n\n    test('for floats ending with a dot', () => {\n      expectActionIssue(action, baseIssue, ['1.', '342.']);\n    });\n\n    test('for floats with multiple dots', () => {\n      expectActionIssue(action, baseIssue, [\n        '1.2.3',\n        '1..23',\n        '12..3',\n        '12.3.4',\n        '1.23.4',\n        '1.2.34',\n      ]);\n    });\n\n    test('for word chars', () => {\n      expectActionIssue(action, baseIssue, ['a', 'A', 'abc', 'ABC']);\n    });\n\n    test('for special chars', () => {\n      expectActionIssue(action, baseIssue, [\n        '-',\n        '+',\n        '#',\n        '#1',\n        '$',\n        '$1',\n        '%',\n        '1%',\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/decimal/decimal.ts",
    "content": "import { DECIMAL_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * Decimal issue interface.\n */\nexport interface DecimalIssue<TInput extends string> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'decimal';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The decimal regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * Decimal action interface.\n */\nexport interface DecimalAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<DecimalIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, DecimalIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'decimal';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof decimal;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The decimal regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a [decimal](https://en.wikipedia.org/wiki/Decimal) validation action.\n *\n * The difference between `decimal` and `digits` is that `decimal` accepts\n * floating point numbers and negative numbers, while `digits` accepts only the\n * digits 0-9.\n *\n * @returns An decimal action.\n */\nexport function decimal<TInput extends string>(): DecimalAction<\n  TInput,\n  undefined\n>;\n\n/**\n * Creates a [decimal](https://en.wikipedia.org/wiki/Decimal) validation action.\n *\n * The difference between `decimal` and `digits` is that `decimal` accepts\n * floating point numbers and negative numbers, while `digits` accepts only the\n * digits 0-9.\n *\n * @param message The error message.\n *\n * @returns An decimal action.\n */\nexport function decimal<\n  TInput extends string,\n  const TMessage extends ErrorMessage<DecimalIssue<TInput>> | undefined,\n>(message: TMessage): DecimalAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function decimal(\n  message?: ErrorMessage<DecimalIssue<string>>\n): DecimalAction<string, ErrorMessage<DecimalIssue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'decimal',\n    reference: decimal,\n    async: false,\n    expects: null,\n    requirement: DECIMAL_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'decimal', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/decimal/index.ts",
    "content": "export * from './decimal.ts';\n"
  },
  {
    "path": "library/src/actions/description/description.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { description, type DescriptionAction } from './description.ts';\n\ndescribe('description', () => {\n  type Action = DescriptionAction<string, 'text'>;\n\n  test('should return action object', () => {\n    expectTypeOf(description<string, 'text'>('text')).toEqualTypeOf<Action>();\n  });\n\n  describe('should infer correct types', () => {\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<never>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/description/description.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { description, type DescriptionAction } from './description.ts';\n\ndescribe('description', () => {\n  test('should return action object', () => {\n    expect(description<string, 'text'>('text')).toStrictEqual({\n      kind: 'metadata',\n      type: 'description',\n      reference: description,\n      description: 'text',\n    } satisfies DescriptionAction<string, 'text'>);\n  });\n});\n"
  },
  {
    "path": "library/src/actions/description/description.ts",
    "content": "import type { BaseMetadata } from '../../types/index.ts';\n\n/**\n * Description action interface.\n */\nexport interface DescriptionAction<TInput, TDescription extends string>\n  extends BaseMetadata<TInput> {\n  /**\n   * The action type.\n   */\n  readonly type: 'description';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof description;\n  /**\n   * The description text.\n   */\n  readonly description: TDescription;\n}\n\n/**\n * Creates a description metadata action.\n *\n * @param description_ The description text.\n *\n * @returns A description action.\n */\n// @__NO_SIDE_EFFECTS__\nexport function description<TInput, TDescription extends string>(\n  description_: TDescription\n): DescriptionAction<TInput, TDescription> {\n  return {\n    kind: 'metadata',\n    type: 'description',\n    reference: description,\n    description: description_,\n  };\n}\n"
  },
  {
    "path": "library/src/actions/description/index.ts",
    "content": "export * from './description.ts';\n"
  },
  {
    "path": "library/src/actions/digits/digits.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { digits, type DigitsAction, type DigitsIssue } from './digits.ts';\n\ndescribe('digits', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = DigitsAction<string, undefined>;\n      expectTypeOf(digits()).toEqualTypeOf<Action>();\n      expectTypeOf(digits(undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(digits('message')).toEqualTypeOf<\n        DigitsAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(digits(() => 'message')).toEqualTypeOf<\n        DigitsAction<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = DigitsAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<DigitsIssue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/digits/digits.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { DIGITS_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { digits, type DigitsAction, type DigitsIssue } from './digits.ts';\n\ndescribe('digits', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<DigitsAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'digits',\n      reference: digits,\n      expects: null,\n      requirement: DIGITS_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: DigitsAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(digits()).toStrictEqual(action);\n      expect(digits(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(digits('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies DigitsAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(digits(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies DigitsAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = digits();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for a single digit', () => {\n      const values = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];\n      expectNoActionIssue(action, values);\n    });\n\n    test('for two digits', () => {\n      expectNoActionIssue(action, ['00', '01', '12', '99']);\n    });\n\n    test('for multiple digits', () => {\n      expectNoActionIssue(action, ['0123456789']);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = digits('message');\n    const baseIssue: Omit<DigitsIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'digits',\n      expected: null,\n      message: 'message',\n      requirement: DIGITS_REGEX,\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for blank spaces', () => {\n      expectActionIssue(action, baseIssue, [' 1', '1 ', ' 1 ', '1 2']);\n    });\n\n    test('for number separators', () => {\n      expectActionIssue(action, baseIssue, ['1,000', '1_000', '1 000']);\n    });\n\n    test('for number signs', () => {\n      expectActionIssue(action, baseIssue, ['+1', '-1', '+123', '-123']);\n    });\n\n    test('for float numbers', () => {\n      expectActionIssue(action, baseIssue, ['0.1', '123.456']);\n    });\n\n    test('for exponential numbers', () => {\n      expectActionIssue(action, baseIssue, ['1e3', '1e-3', '1e+3']);\n    });\n\n    test('for word chars', () => {\n      expectActionIssue(action, baseIssue, ['a', 'A', 'abc', 'ABC']);\n    });\n\n    test('for special chars', () => {\n      expectActionIssue(action, baseIssue, [\n        '-',\n        '-1',\n        '+',\n        '+1',\n        '#',\n        '#1',\n        '$',\n        '$1',\n        '%',\n        '1%',\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/digits/digits.ts",
    "content": "import { DIGITS_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * Digits issue interface.\n */\nexport interface DigitsIssue<TInput extends string> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'digits';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The digits regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * Digits action interface.\n */\nexport interface DigitsAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<DigitsIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, DigitsIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'digits';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof digits;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The digits regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a [digits](https://en.wikipedia.org/wiki/Numerical_digit) validation action.\n *\n * The difference between `digits` and `decimal` is that `digits` accepts only\n * the digits 0-9, while `decimal` accepts floating point numbers and negative\n * numbers.\n *\n * @returns An digits action.\n */\nexport function digits<TInput extends string>(): DigitsAction<\n  TInput,\n  undefined\n>;\n\n/**\n * Creates a [digits](https://en.wikipedia.org/wiki/Numerical_digit) validation action.\n *\n * The difference between `digits` and `decimal` is that `digits` accepts only\n * the digits 0-9, while `decimal` accepts floating point numbers and negative\n * numbers.\n *\n * @param message The error message.\n *\n * @returns An digits action.\n */\nexport function digits<\n  TInput extends string,\n  const TMessage extends ErrorMessage<DigitsIssue<TInput>> | undefined,\n>(message: TMessage): DigitsAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function digits(\n  message?: ErrorMessage<DigitsIssue<string>>\n): DigitsAction<string, ErrorMessage<DigitsIssue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'digits',\n    reference: digits,\n    async: false,\n    expects: null,\n    requirement: DIGITS_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'digits', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/digits/index.ts",
    "content": "export * from './digits.ts';\n"
  },
  {
    "path": "library/src/actions/domain/domain.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { domain, type DomainAction, type DomainIssue } from './domain.ts';\n\ndescribe('domain', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = DomainAction<string, undefined>;\n      expectTypeOf(domain()).toEqualTypeOf<Action>();\n      expectTypeOf(domain(undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(domain('message')).toEqualTypeOf<\n        DomainAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(domain(() => 'message')).toEqualTypeOf<\n        DomainAction<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = DomainAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<DomainIssue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/domain/domain.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { DOMAIN_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { domain, type DomainAction, type DomainIssue } from './domain.ts';\n\ndescribe('domain', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<DomainAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'domain',\n      reference: domain,\n      expects: null,\n      requirement: DOMAIN_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: DomainAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(domain()).toStrictEqual(action);\n      expect(domain(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(domain('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies DomainAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(domain(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies DomainAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = domain();\n\n    // General tests\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for common domains', () => {\n      expectNoActionIssue(action, [\n        'example.com',\n        'EXAMPLE.COM',\n        'sub.example.com',\n        'sub.sub2.example.co.uk',\n        'a.example',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = domain('message');\n    const baseIssue: Omit<DomainIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'domain',\n      expected: null,\n      message: 'message',\n      requirement: DOMAIN_REGEX,\n    };\n\n    test('too long label (max 63 chars)', () => {\n      const tooLongLabel = 'a'.repeat(64);\n      const domainWithTooLongLabel = tooLongLabel + '.com';\n      expect(domainWithTooLongLabel.length).toBeGreaterThan(63);\n      expectActionIssue(action, baseIssue, ['a'.repeat(64) + '.com']);\n    });\n\n    test('too long TLD (max 63 chars)', () => {\n      const tooLongTLD = 'a'.repeat(64);\n      const domainWithTooLongTLD = `example.${tooLongTLD}`;\n      expect(domainWithTooLongTLD.length).toBeGreaterThan(63);\n      expectActionIssue(action, baseIssue, [domainWithTooLongTLD]);\n    });\n\n    test('too long domain (max 253 chars)', () => {\n      const label = 'a'.repeat(63);\n      const tooLongDomain = `${label}.${label}.${label}.${label}.${label}.com`;\n      expect(tooLongDomain.length).toBeGreaterThan(253);\n      expectActionIssue(action, baseIssue, [tooLongDomain]);\n    });\n\n    test('for empty or whitespace strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n', '\\t']);\n    });\n\n    test('for missing TLD or single label', () => {\n      expectActionIssue(action, baseIssue, [\n        'localhost',\n        'intranet',\n        'example',\n      ]);\n    });\n\n    test('for invalid label starts/ends', () => {\n      expectActionIssue(action, baseIssue, [\n        '-example.com',\n        'example-.com',\n        '.example.com',\n        'example..com',\n        'example.com.',\n        'example.c',\n      ]);\n    });\n\n    test('for invalid characters and formats', () => {\n      expectActionIssue(action, baseIssue, [\n        'exa mple.com',\n        'example!.com',\n        'exa*mple.com',\n        'ex_amp.le.com',\n        '*.example.com',\n        'http://example.com',\n        '127.0.0.1',\n        'example.123',\n      ]);\n    });\n\n    test('for IDN and Punycode domains', () => {\n      expectActionIssue(action, baseIssue, [\n        'bücher.example',\n        'почта.рф',\n        'xn--bcher-kva.example',\n        'xn--80a1acny.xn--p1ai',\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/domain/domain.ts",
    "content": "import { DOMAIN_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * Domain issue interface.\n *\n * @beta\n */\nexport interface DomainIssue<TInput extends string> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'domain';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The domain regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * Domain action interface.\n *\n * @beta\n */\nexport interface DomainAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<DomainIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, DomainIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'domain';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof domain;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The domain regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a [domain name](https://en.wikipedia.org/wiki/Domain_name) validation\n * action.\n *\n * Hint: ASCII-only validation. Internationalized domain names (IDNs) are not\n * supported, including Punycode-encoded labels.\n *\n * @returns A domain action.\n *\n * @beta\n */\nexport function domain<TInput extends string>(): DomainAction<\n  TInput,\n  undefined\n>;\n\n/**\n * Creates a [domain name](https://en.wikipedia.org/wiki/Domain_name) validation\n * action.\n *\n * Hint: ASCII-only validation. Internationalized domain names (IDNs) are not\n * supported, including Punycode-encoded labels.\n *\n * @param message The error message.\n *\n * @returns A domain action.\n *\n * @beta\n */\nexport function domain<\n  TInput extends string,\n  const TMessage extends ErrorMessage<DomainIssue<TInput>> | undefined,\n>(message: TMessage): DomainAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function domain(\n  message?: ErrorMessage<DomainIssue<string>>\n): DomainAction<string, ErrorMessage<DomainIssue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'domain',\n    reference: domain,\n    expects: null,\n    async: false,\n    requirement: DOMAIN_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'domain', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/domain/index.ts",
    "content": "export * from './domain.ts';\n"
  },
  {
    "path": "library/src/actions/email/email.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { email, type EmailAction, type EmailIssue } from './email.ts';\n\ndescribe('email', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = EmailAction<string, undefined>;\n      expectTypeOf(email()).toEqualTypeOf<Action>();\n      expectTypeOf(email(undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(email('message')).toEqualTypeOf<\n        EmailAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(email(() => 'message')).toEqualTypeOf<\n        EmailAction<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = EmailAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<EmailIssue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/email/email.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { EMAIL_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { email, type EmailAction, type EmailIssue } from './email.ts';\n\ndescribe('email', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<EmailAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'email',\n      reference: email,\n      expects: null,\n      requirement: EMAIL_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: EmailAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(email()).toStrictEqual(action);\n      expect(email(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(email('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies EmailAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(email(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies EmailAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = email();\n\n    // General tests\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for simple email', () => {\n      expectNoActionIssue(action, ['email@example.com']);\n    });\n\n    test('for very short email', () => {\n      expectNoActionIssue(action, ['a@b.cd']);\n    });\n\n    // Start of local part\n\n    test('for underscore in beginning of local part', () => {\n      expectNoActionIssue(action, ['_email@example.com']);\n    });\n\n    test('for hyphen in beginning of local part', () => {\n      expectNoActionIssue(action, ['-email@example.com']);\n    });\n\n    test('for plus in beginning of local part', () => {\n      expectNoActionIssue(action, ['+email@example.com']);\n    });\n\n    // End of local part\n\n    test('for underscore in end of local part', () => {\n      expectNoActionIssue(action, ['email_@example.com']);\n    });\n\n    test('for hyphen in end of local part', () => {\n      expectNoActionIssue(action, ['email-@example.com']);\n    });\n\n    test('for plus in end of local part', () => {\n      expectNoActionIssue(action, ['email+@example.com']);\n    });\n\n    // Middle of local part\n\n    test('for dot in local part', () => {\n      expectNoActionIssue(action, ['firstname.lastname@example.com']);\n    });\n\n    test('for underscore in local part', () => {\n      expectNoActionIssue(action, ['firstname_lastname@example.com']);\n    });\n\n    test('for hyphen in local part', () => {\n      expectNoActionIssue(action, ['firstname-lastname@example.com']);\n    });\n\n    test('for plus in local part', () => {\n      expectNoActionIssue(action, ['firstname+lastname@example.com']);\n    });\n\n    // Special local parts\n\n    test('for numerical local part', () => {\n      expectNoActionIssue(action, ['1234567890@example.com']);\n    });\n\n    test('for underscore local part', () => {\n      expectNoActionIssue(action, ['_______@example.com']);\n    });\n\n    // Domain part variations\n\n    test('for hyphen in domain part', () => {\n      expectNoActionIssue(action, ['email@example-domain.com']);\n    });\n\n    test('for domain with subdomain', () => {\n      expectNoActionIssue(action, ['email@subdomain.example.com']);\n    });\n\n    test('for subdomain and hyphen in domain', () => {\n      expectNoActionIssue(action, ['email@subdomain.example-domain.com']);\n    });\n\n    test('for long top level domain', () => {\n      expectNoActionIssue(action, ['email@example.technology']);\n    });\n\n    test('for country code TLD', () => {\n      expectNoActionIssue(action, ['email@example.co.uk']);\n    });\n\n    test('for subdomain and country code TLD', () => {\n      expectNoActionIssue(action, ['email@subdomain.example.co.uk']);\n    });\n\n    test('for numerical domain', () => {\n      expectNoActionIssue(action, ['email@123.com']);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = email('message');\n    const baseIssue: Omit<EmailIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'email',\n      expected: null,\n      message: 'message',\n      requirement: EMAIL_REGEX,\n    };\n\n    // General tests\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for simple strings', () => {\n      expectActionIssue(action, baseIssue, ['email', 'emailexamplecom']);\n    });\n\n    test('for email with spaces', () => {\n      expectActionIssue(action, baseIssue, [\n        ' email@example.com',\n        'e mail@example.com',\n        'email @example.com',\n        'email@ example.com',\n        'email@exa mple.com',\n        'email@example. com',\n        'email@example.com ',\n      ]);\n    });\n\n    // Missing parts\n\n    test('for missing local part', () => {\n      expectActionIssue(action, baseIssue, ['@example.com']);\n    });\n\n    test('for missing @ symbol', () => {\n      expectActionIssue(action, baseIssue, [\n        'example.com',\n        'email.example.com',\n      ]);\n    });\n\n    test('for missing domain part', () => {\n      expectActionIssue(action, baseIssue, ['email@']);\n    });\n\n    test('for missing domain name', () => {\n      expectActionIssue(action, baseIssue, ['email@.com']);\n    });\n\n    test('for missing TLD', () => {\n      expectActionIssue(action, baseIssue, ['email@example']);\n    });\n\n    // Invalid repeated chars\n\n    test('for two following dots in local part', () => {\n      expectActionIssue(action, baseIssue, ['email..email@example.com']);\n    });\n\n    test('for two following @ symbols', () => {\n      expectActionIssue(action, baseIssue, ['email@@example.com']);\n    });\n\n    test('for dot in end of domain name', () => {\n      expectActionIssue(action, baseIssue, ['email@example..com']);\n    });\n\n    // Beginning and end of local part\n\n    test('for dot in beginning of local part', () => {\n      expectActionIssue(action, baseIssue, ['.email@example.com']);\n    });\n\n    test('for dot in end of local part', () => {\n      expectActionIssue(action, baseIssue, ['email.@example.com']);\n    });\n\n    // Beginning and end of domain part\n\n    test('for underscore in beginning of domain part', () => {\n      expectActionIssue(action, baseIssue, ['email@_example.com']);\n    });\n\n    test('for hypen in beginning of domain part', () => {\n      expectActionIssue(action, baseIssue, ['email@-example.com']);\n    });\n\n    test('for plus in beginning of domain part', () => {\n      expectActionIssue(action, baseIssue, ['email@+example.com']);\n    });\n\n    test('for dot in beginning of domain part', () => {\n      expectActionIssue(action, baseIssue, ['email@.example.com']);\n    });\n\n    test('for underscore in end of domain name', () => {\n      expectActionIssue(action, baseIssue, ['email@example_.com']);\n    });\n\n    test('for hypen in end of domain name', () => {\n      expectActionIssue(action, baseIssue, ['email@example-.com']);\n    });\n\n    test('for plus in end of domain name', () => {\n      expectActionIssue(action, baseIssue, ['email@example+.com']);\n    });\n\n    test('for numerical TLD', () => {\n      expectActionIssue(action, baseIssue, ['email@example.123']);\n    });\n\n    test('for single char TLD', () => {\n      expectActionIssue(action, baseIssue, ['email@example.a']);\n    });\n\n    // Other special cases\n\n    test('for repeated domain part', () => {\n      expectActionIssue(action, baseIssue, ['email@example@example.com']);\n    });\n\n    test('for special chars', () => {\n      expectActionIssue(action, baseIssue, [\n        '#$&%@example.com',\n        'email@#$&%.com',\n        'email@example.#$&%',\n      ]);\n    });\n\n    test('for non ASCII chars', () => {\n      expectActionIssue(action, baseIssue, [\n        'あいうえお@example.com',\n        'email@あいうえお.com',\n        'email@example.あいう',\n      ]);\n    });\n\n    test('for email username', () => {\n      expectActionIssue(action, baseIssue, [\n        'Joe Smith <email@example.com>',\n        'email@example.com (Joe Smith)',\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/email/email.ts",
    "content": "import { EMAIL_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * Email issue interface.\n */\nexport interface EmailIssue<TInput extends string> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'email';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The email regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * Email action interface.\n */\nexport interface EmailAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<EmailIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, EmailIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'email';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof email;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The email regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an [email](https://en.wikipedia.org/wiki/Email_address) validation\n * action.\n *\n * Hint: This validation action intentionally only validates common email\n * addresses. If you are interested in an action that covers the entire\n * specification, please use the `rfcEmail` action instead.\n *\n * @returns An email action.\n */\nexport function email<TInput extends string>(): EmailAction<TInput, undefined>;\n\n/**\n * Creates an [email](https://en.wikipedia.org/wiki/Email_address) validation\n * action.\n *\n * Hint: This validation action intentionally only validates common email\n * addresses. If you are interested in an action that covers the entire\n * specification, please use the `rfcEmail` action instead.\n *\n * @param message The error message.\n *\n * @returns An email action.\n */\nexport function email<\n  TInput extends string,\n  const TMessage extends ErrorMessage<EmailIssue<TInput>> | undefined,\n>(message: TMessage): EmailAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function email(\n  message?: ErrorMessage<EmailIssue<string>>\n): EmailAction<string, ErrorMessage<EmailIssue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'email',\n    reference: email,\n    expects: null,\n    async: false,\n    requirement: EMAIL_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'email', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/email/index.ts",
    "content": "export * from './email.ts';\n"
  },
  {
    "path": "library/src/actions/emoji/emoji.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { emoji, type EmojiAction, type EmojiIssue } from './emoji.ts';\n\ndescribe('emoji', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = EmojiAction<string, undefined>;\n      expectTypeOf(emoji()).toEqualTypeOf<Action>();\n      expectTypeOf(emoji(undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(emoji('message')).toEqualTypeOf<\n        EmojiAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(emoji(() => 'message')).toEqualTypeOf<\n        EmojiAction<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = EmojiAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<EmojiIssue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/emoji/emoji.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { EMOJI_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { emoji, type EmojiAction, type EmojiIssue } from './emoji.ts';\n\ndescribe('emoji', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<EmojiAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'emoji',\n      reference: emoji,\n      expects: null,\n      requirement: EMOJI_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: EmojiAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(emoji()).toStrictEqual(action);\n      expect(emoji(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(emoji('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies EmojiAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(emoji(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies EmojiAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = emoji();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for emoji chars (not exhaustive)', () => {\n      expectNoActionIssue(action, [\n        '🙂',\n        '🤖',\n        '\\uD83D\\uDE0D', // 😍\n        '🔥',\n        '💯',\n        '2️⃣',\n        '🔟',\n        '🇺🇸',\n        '👋🏼',\n        '🫨',\n        '✈️',\n      ]);\n    });\n\n    test('for two chars', () => {\n      expectNoActionIssue(action, [\n        '🙂🤖',\n        '\\uD83D\\uDE0D🔥', // 😍🔥\n        '2️⃣🔟',\n        '🇺🇸👋🏼',\n      ]);\n    });\n\n    test('for multiple chars', () => {\n      expectNoActionIssue(action, [\n        '🧩🙌🏁💅🎬',\n        '🤖\\uD83D\\uDE0D🔥💯',\n        '🤖😍🔥💯',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = emoji('message');\n    const baseIssue: Omit<EmojiIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'emoji',\n      expected: null,\n      message: 'message',\n      requirement: EMOJI_REGEX,\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for blank spaces', () => {\n      expectActionIssue(action, baseIssue, [' 🤖', '🤖 ', ' 🤖 ', '🤖 😍']);\n    });\n\n    test('for word chars', () => {\n      expectActionIssue(action, baseIssue, [\n        'emoji',\n        '😀emoji',\n        'emoji😀',\n        'hi',\n        'hi👋🏼',\n        '👋🏼hi',\n      ]);\n    });\n\n    test('for numbers', () => {\n      expectActionIssue(action, baseIssue, [\n        '0',\n        '1',\n        '2',\n        '3',\n        '4',\n        '5',\n        '6',\n        '7',\n        '8',\n        '9',\n        '0123456789',\n      ]);\n    });\n\n    test('for special chars', () => {\n      expectActionIssue(action, baseIssue, [\n        '#',\n        '*',\n        '!',\n        '@',\n        '$',\n        '%',\n        '^',\n        '&',\n        '-',\n        '+',\n        '~',\n      ]);\n    });\n\n    test('for escape chars', () => {\n      expectActionIssue(action, baseIssue, [\n        '\\n',\n        '\\t',\n        '\\r',\n        '\\\\',\n        '\\v',\n        '\\f',\n        '\\b',\n      ]);\n    });\n\n    test('for format and mark chars', () => {\n      expectActionIssue(action, baseIssue, [\n        '\\u200D',\n        '\\u20E3',\n        '\\uFE0F',\n        '\\u{E007F}',\n      ]);\n    });\n\n    test('for tag digit and tag small letter chars', () => {\n      expectActionIssue(action, baseIssue, [\n        '\\u{E0030}',\n        '\\u{E0039}',\n        '\\u{E0061}',\n        '\\u{E007A}',\n      ]);\n    });\n\n    test('for non-emoji symbol chars', () => {\n      expectActionIssue(action, baseIssue, [\n        '\\u2642', // ♂\n        '\\u2708', // ✈\n        '\\u{1F3F3}', // 🏳\n        '\\u{1F441}', // 👁\n      ]);\n    });\n\n    test('for composite chars', () => {\n      expectActionIssue(action, baseIssue, [\n        'S\\u0307', // Ṡ\n        'S\\u0307\\u0323', // Ṩ\n        '\\u1e68', // Ṩ\n      ]);\n    });\n\n    test('for surrogate code points', () => {\n      // 😍 '\\u{1F60D}' can be represented with surrogate pair '\\uD83D\\uDE0D'\n      expectActionIssue(action, baseIssue, [\n        '\\uD83D', // Lone high surrogate\n        '\\uDE0D', // Lone low surrogate\n        '\\uDE0D\\uD83D', // Reversed surrogate order for 😍\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/emoji/emoji.ts",
    "content": "import { EMOJI_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * Emoji issue interface.\n */\nexport interface EmojiIssue<TInput extends string> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'emoji';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The emoji regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * Emoji action interface.\n */\nexport interface EmojiAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<EmojiIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, EmojiIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'emoji';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof emoji;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The emoji regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an [emoji](https://en.wikipedia.org/wiki/Emoji) validation action.\n *\n * @returns An emoji action.\n */\nexport function emoji<TInput extends string>(): EmojiAction<TInput, undefined>;\n\n/**\n * Creates an [emoji](https://en.wikipedia.org/wiki/Emoji) validation action.\n *\n * @param message The error message.\n *\n * @returns An emoji action.\n */\nexport function emoji<\n  TInput extends string,\n  const TMessage extends ErrorMessage<EmojiIssue<TInput>> | undefined,\n>(message: TMessage): EmojiAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function emoji(\n  message?: ErrorMessage<EmojiIssue<string>>\n): EmojiAction<string, ErrorMessage<EmojiIssue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'emoji',\n    reference: emoji,\n    async: false,\n    expects: null,\n    requirement: EMOJI_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'emoji', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/emoji/index.ts",
    "content": "export * from './emoji.ts';\n"
  },
  {
    "path": "library/src/actions/empty/empty.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { empty, type EmptyAction, type EmptyIssue } from './empty.ts';\n\ndescribe('empty', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = EmptyAction<string, undefined>;\n      expectTypeOf(empty<string>()).toEqualTypeOf<Action>();\n      expectTypeOf(empty<string, undefined>(undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(empty<string, 'message'>('message')).toEqualTypeOf<\n        EmptyAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(empty<string, () => string>(() => 'message')).toEqualTypeOf<\n        EmptyAction<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = EmptyAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<EmptyIssue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/empty/empty.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { empty, type EmptyAction, type EmptyIssue } from './empty.ts';\n\ndescribe('empty', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<EmptyAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'empty',\n      reference: empty,\n      expects: '0',\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: EmptyAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(empty()).toStrictEqual(action);\n      expect(empty(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(empty('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies EmptyAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(empty(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies EmptyAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = empty();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid strings', () => {\n      expectNoActionIssue(action, ['']);\n    });\n\n    test('for valid arrays', () => {\n      expectNoActionIssue(action, [[]]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = empty('message');\n    const baseIssue: Omit<EmptyIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'empty',\n      expected: '0',\n      message: 'message',\n    };\n\n    test('for invalid strings', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [' ', '\\n', 'foo', 'foobarbaz123'],\n        (input) => `${input.length}`\n      );\n    });\n\n    test('for invalid arrays', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [[null], [1, 2, 3, 4, 6], Array(999)],\n        (input) => `${input.length}`\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/empty/empty.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\nimport type { LengthInput } from '../types.ts';\n\n/**\n * Empty issue interface.\n */\nexport interface EmptyIssue<TInput extends LengthInput>\n  extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'empty';\n  /**\n   * The expected input.\n   */\n  readonly expected: '0';\n  /**\n   * The received input.\n   */\n  readonly received: `${number}`;\n}\n\n/**\n * Empty action interface.\n */\nexport interface EmptyAction<\n  TInput extends LengthInput,\n  TMessage extends ErrorMessage<EmptyIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, EmptyIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'empty';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof empty;\n  /**\n   * The expected property.\n   */\n  readonly expects: '0';\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an empty validation action.\n *\n * @returns An empty action.\n */\nexport function empty<TInput extends LengthInput>(): EmptyAction<\n  TInput,\n  undefined\n>;\n\n/**\n * Creates an empty validation action.\n *\n * @param message The error message.\n *\n * @returns An empty action.\n */\nexport function empty<\n  TInput extends LengthInput,\n  const TMessage extends ErrorMessage<EmptyIssue<TInput>> | undefined,\n>(message: TMessage): EmptyAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function empty(\n  message?: ErrorMessage<EmptyIssue<LengthInput>>\n): EmptyAction<LengthInput, ErrorMessage<EmptyIssue<LengthInput>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'empty',\n    reference: empty,\n    async: false,\n    expects: '0',\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && dataset.value.length > 0) {\n        _addIssue(this, 'length', dataset, config, {\n          received: `${dataset.value.length}`,\n        });\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/empty/index.ts",
    "content": "export * from './empty.ts';\n"
  },
  {
    "path": "library/src/actions/endsWith/endsWith.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  endsWith,\n  type EndsWithAction,\n  type EndsWithIssue,\n} from './endsWith.ts';\n\ndescribe('endsWith', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = EndsWithAction<string, 'foo', undefined>;\n      expectTypeOf(endsWith<string, 'foo'>('foo')).toEqualTypeOf<Action>();\n      expectTypeOf(\n        endsWith<string, 'foo', undefined>('foo', undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        endsWith<string, 'foo', 'message'>('foo', 'message')\n      ).toEqualTypeOf<EndsWithAction<string, 'foo', 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        endsWith<string, 'foo', () => string>('foo', () => 'message')\n      ).toEqualTypeOf<EndsWithAction<string, 'foo', () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = EndsWithAction<string, 'foo', undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        EndsWithIssue<string, 'foo'>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/endsWith/endsWith.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  endsWith,\n  type EndsWithAction,\n  type EndsWithIssue,\n} from './endsWith.ts';\n\ndescribe('endsWith', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<EndsWithAction<string, 'abc', never>, 'message'> = {\n      kind: 'validation',\n      type: 'ends_with',\n      reference: endsWith,\n      expects: '\"abc\"',\n      requirement: 'abc',\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: EndsWithAction<string, 'abc', undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(endsWith('abc')).toStrictEqual(action);\n      expect(endsWith('abc', undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(endsWith('abc', 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies EndsWithAction<string, 'abc', string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(endsWith('abc', message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies EndsWithAction<string, 'abc', typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = endsWith('abc');\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid inputs', () => {\n      expectNoActionIssue(action, ['abc', '123abc', 'xyzabc', 'xyz123abc']);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = endsWith('abc', 'message');\n    const baseIssue: Omit<\n      EndsWithIssue<string, 'abc'>,\n      'input' | 'received'\n    > = {\n      kind: 'validation',\n      type: 'ends_with',\n      expected: '\"abc\"',\n      message: 'message',\n      requirement: 'abc',\n    };\n\n    test('for invalid inputs', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [\n          '',\n          'c',\n          'bc',\n          'abc ',\n          'abC',\n          '123a',\n          '123ab',\n          'xyzab',\n          'abcc',\n          'abcz',\n          'zabcdef',\n        ],\n        (value) => `\"${value.slice(-'abc'.length)}\"`\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/endsWith/endsWith.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * Ends with issue interface.\n */\nexport interface EndsWithIssue<\n  TInput extends string,\n  TRequirement extends string,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'ends_with';\n  /**\n   * The expected property.\n   */\n  readonly expected: `\"${TRequirement}\"`;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The end string.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Ends with action interface.\n */\nexport interface EndsWithAction<\n  TInput extends string,\n  TRequirement extends string,\n  TMessage extends\n    | ErrorMessage<EndsWithIssue<TInput, TRequirement>>\n    | undefined,\n> extends BaseValidation<TInput, TInput, EndsWithIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'ends_with';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof endsWith;\n  /**\n   * The expected property.\n   */\n  readonly expects: `\"${TRequirement}\"`;\n  /**\n   * The end string.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an ends with validation action.\n *\n * @param requirement The end string.\n *\n * @returns An ends with action.\n */\nexport function endsWith<\n  TInput extends string,\n  const TRequirement extends string,\n>(requirement: TRequirement): EndsWithAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates an ends with validation action.\n *\n * @param requirement The end string.\n * @param message The error message.\n *\n * @returns An ends with action.\n */\nexport function endsWith<\n  TInput extends string,\n  const TRequirement extends string,\n  const TMessage extends\n    | ErrorMessage<EndsWithIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): EndsWithAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function endsWith(\n  requirement: string,\n  message?: ErrorMessage<EndsWithIssue<string, string>>\n): EndsWithAction<\n  string,\n  string,\n  ErrorMessage<EndsWithIssue<string, string>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'ends_with',\n    reference: endsWith,\n    async: false,\n    expects: `\"${requirement}\"`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !dataset.value.endsWith(this.requirement)) {\n        _addIssue(this, 'end', dataset, config, {\n          received: `\"${dataset.value.slice(-this.requirement.length)}\"`,\n        });\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/endsWith/index.ts",
    "content": "export * from './endsWith.ts';\n"
  },
  {
    "path": "library/src/actions/entries/entries.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { entries, type EntriesAction, type EntriesIssue } from './entries.ts';\n\ndescribe('entries', () => {\n  type Input = Record<string, number>;\n\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = EntriesAction<Input, 10, undefined>;\n      expectTypeOf(entries<Input, 10>(10)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        entries<Input, 10, undefined>(10, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(entries<Input, 10, 'message'>(10, 'message')).toEqualTypeOf<\n        EntriesAction<Input, 10, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        entries<Input, 10, () => string>(10, () => 'message')\n      ).toEqualTypeOf<EntriesAction<Input, 10, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = EntriesAction<Input, 10, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        EntriesIssue<Input, 10>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/entries/entries.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { RecordIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { entries, type EntriesAction, type EntriesIssue } from './entries.ts';\n\ndescribe('entries', () => {\n  type Input = Record<string, number>;\n\n  describe('should return action object', () => {\n    const baseAction: Omit<EntriesAction<Input, 3, never>, 'message'> = {\n      kind: 'validation',\n      type: 'entries',\n      reference: entries,\n      expects: '3',\n      requirement: 3,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: EntriesAction<Input, 3, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(entries(3)).toStrictEqual(action);\n      expect(entries(3, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(entries(3, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies EntriesAction<Input, 3, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(entries(3, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies EntriesAction<Input, 3, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = entries(3);\n\n    test('for untyped inputs', () => {\n      const issues: [RecordIssue] = [\n        {\n          kind: 'schema',\n          type: 'record',\n          input: null,\n          expected: 'Object',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid objects', () => {\n      expectNoActionIssue(action, [{ foo: 1, bar: 2, baz: 3 }]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = entries(3, 'message');\n    const baseIssue: Omit<EntriesIssue<Input, 3>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'entries',\n      expected: '3',\n      message: 'message',\n      requirement: 3,\n    };\n\n    test('for invalid objects', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [\n          {},\n          { foo: 1 },\n          { foo: 1, bar: 2 },\n          { foo: 1, bar: 2, baz: 3, qux: 4 },\n          { foo: 1, bar: 2, baz: 3, qux: 4, quux: 5 },\n        ],\n        (value) => `${Object.keys(value).length}`\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/entries/entries.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\nimport type { EntriesInput } from '../types.ts';\n\n/**\n * Entries issue interface.\n *\n * @beta\n */\nexport interface EntriesIssue<\n  TInput extends EntriesInput,\n  TRequirement extends number,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'entries';\n  /**\n   * The expected property.\n   */\n  readonly expected: `${TRequirement}`;\n  /**\n   * The received property.\n   */\n  readonly received: `${number}`;\n  /**\n   * The required entries.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Entries action interface.\n *\n * @beta\n */\nexport interface EntriesAction<\n  TInput extends EntriesInput,\n  TRequirement extends number,\n  TMessage extends ErrorMessage<EntriesIssue<TInput, TRequirement>> | undefined,\n> extends BaseValidation<TInput, TInput, EntriesIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'entries';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof entries;\n  /**\n   * The expected property.\n   */\n  readonly expects: `${TRequirement}`;\n  /**\n   * The required entries.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an entries validation action.\n *\n * @param requirement The required entries.\n *\n * @returns An entries action.\n *\n * @beta\n */\nexport function entries<\n  TInput extends EntriesInput,\n  const TRequirement extends number,\n>(requirement: TRequirement): EntriesAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates an entries validation action.\n *\n * @param requirement The required entries.\n * @param message The error message.\n *\n * @returns An entries action.\n *\n * @beta\n */\nexport function entries<\n  TInput extends EntriesInput,\n  const TRequirement extends number,\n  const TMessage extends\n    | ErrorMessage<EntriesIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): EntriesAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function entries(\n  requirement: number,\n  message?: ErrorMessage<EntriesIssue<EntriesInput, number>>\n): EntriesAction<\n  EntriesInput,\n  number,\n  ErrorMessage<EntriesIssue<EntriesInput, number>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'entries',\n    reference: entries,\n    async: false,\n    expects: `${requirement}`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (!dataset.typed) return dataset;\n      const count = Object.keys(dataset.value).length;\n      if (dataset.typed && count !== this.requirement) {\n        _addIssue(this, 'entries', dataset, config, {\n          received: `${count}`,\n        });\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/entries/index.ts",
    "content": "export * from './entries.ts';\n"
  },
  {
    "path": "library/src/actions/everyItem/everyItem.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  everyItem,\n  type EveryItemAction,\n  type EveryItemIssue,\n} from './everyItem.ts';\n\ndescribe('everyItem', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = EveryItemAction<string[], undefined>;\n      expectTypeOf(\n        everyItem<string[]>((item: string) => Boolean(item))\n      ).toEqualTypeOf<Action>();\n      expectTypeOf(\n        everyItem<string[], undefined>(\n          (item: string) => Boolean(item),\n          undefined\n        )\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        everyItem<string[], 'message'>(\n          (item: string) => Boolean(item),\n          'message'\n        )\n      ).toEqualTypeOf<EveryItemAction<string[], 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        everyItem<string[], () => string>(\n          (item: string) => Boolean(item),\n          () => 'message'\n        )\n      ).toEqualTypeOf<EveryItemAction<string[], () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Input = ['foo', 123, true];\n    type Action = EveryItemAction<Input, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<EveryItemIssue<Input>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/everyItem/everyItem.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { ArrayIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  everyItem,\n  type EveryItemAction,\n  type EveryItemIssue,\n} from './everyItem.ts';\n\ndescribe('everyItem', () => {\n  describe('should return action object', () => {\n    const requirement = (item: string) => item.startsWith('DE');\n    const baseAction: Omit<EveryItemAction<string[], never>, 'message'> = {\n      kind: 'validation',\n      type: 'every_item',\n      reference: everyItem,\n      expects: null,\n      requirement,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: EveryItemAction<string[], undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(everyItem<string[]>(requirement)).toStrictEqual(action);\n      expect(\n        everyItem<string[], undefined>(requirement, undefined)\n      ).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      const message = 'message';\n      expect(\n        everyItem<string[], 'message'>(requirement, message)\n      ).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies EveryItemAction<string[], 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(\n        everyItem<string[], typeof message>(requirement, message)\n      ).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies EveryItemAction<string[], typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = everyItem<number[]>((item: number) => item > 9);\n\n    test('for untyped inputs', () => {\n      const issues: [ArrayIssue] = [\n        {\n          kind: 'schema',\n          type: 'array',\n          input: null,\n          expected: 'Array',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for empty array', () => {\n      expectNoActionIssue(action, [[]]);\n    });\n\n    test('for valid content', () => {\n      expectNoActionIssue(action, [[10, 11, 12, 13, 99]]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const requirement = (item: number) => item > 9;\n    const action = everyItem<number[], 'message'>(requirement, 'message');\n\n    const baseIssue: Omit<EveryItemIssue<number[]>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'every_item',\n      expected: null,\n      message: 'message',\n      requirement,\n    };\n\n    test('for invalid content', () => {\n      expectActionIssue(action, baseIssue, [\n        [9],\n        [1, 2, 3],\n        [10, 11, -12, 13, 99],\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/everyItem/everyItem.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\nimport type { ArrayInput, ArrayRequirement } from '../types.ts';\n\n/**\n * Every item issue interface.\n */\nexport interface EveryItemIssue<TInput extends ArrayInput>\n  extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'every_item';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The validation function.\n   */\n  readonly requirement: ArrayRequirement<TInput>;\n}\n\n/**\n * Every item action interface.\n */\nexport interface EveryItemAction<\n  TInput extends ArrayInput,\n  TMessage extends ErrorMessage<EveryItemIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, EveryItemIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'every_item';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof everyItem;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The validation function.\n   */\n  readonly requirement: ArrayRequirement<TInput>;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an every item validation action.\n *\n * @param requirement The validation function.\n *\n * @returns An every item action.\n */\nexport function everyItem<TInput extends ArrayInput>(\n  requirement: ArrayRequirement<TInput>\n): EveryItemAction<TInput, undefined>;\n\n/**\n * Creates an every item validation action.\n *\n * @param requirement The validation function.\n * @param message The error message.\n *\n * @returns An every item action.\n */\nexport function everyItem<\n  TInput extends ArrayInput,\n  const TMessage extends ErrorMessage<EveryItemIssue<TInput>> | undefined,\n>(\n  requirement: ArrayRequirement<TInput>,\n  message: TMessage\n): EveryItemAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function everyItem(\n  requirement: ArrayRequirement<unknown[]>,\n  message?: ErrorMessage<EveryItemIssue<unknown[]>>\n): EveryItemAction<\n  unknown[],\n  ErrorMessage<EveryItemIssue<unknown[]>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'every_item',\n    reference: everyItem,\n    async: false,\n    expects: null,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !dataset.value.every(this.requirement)) {\n        _addIssue(this, 'item', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/everyItem/index.ts",
    "content": "export * from './everyItem.ts';\n"
  },
  {
    "path": "library/src/actions/examples/examples.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport { pipe } from '../../methods/index.ts';\nimport { string } from '../../schemas/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { examples, type ExamplesAction } from './examples.ts';\n\ndescribe('examples', () => {\n  test('should return action object', () => {\n    type Action = ExamplesAction<string, ['foo', 'bar']>;\n    expectTypeOf(\n      examples<string, ['foo', 'bar']>(['foo', 'bar'])\n    ).toEqualTypeOf<Action>();\n  });\n  test(\"should error if example doesn't match input\", () => {\n    pipe(\n      string(),\n      examples([\n        'foo',\n        // @ts-expect-error\n        123,\n      ])\n    );\n  });\n\n  describe('should infer correct types', () => {\n    type Input = 'foo' | 'bar';\n    type Action = ExamplesAction<Input, ['foo', 'bar']>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<never>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/examples/examples.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { examples, type ExamplesAction } from './examples.ts';\n\ndescribe('examples', () => {\n  test('should return action object', () => {\n    expect(examples(['foo', 'bar'])).toStrictEqual({\n      kind: 'metadata',\n      type: 'examples',\n      reference: examples,\n      examples: ['foo', 'bar'],\n    } satisfies ExamplesAction<string, ['foo', 'bar']>);\n  });\n});\n"
  },
  {
    "path": "library/src/actions/examples/examples.ts",
    "content": "import type { BaseMetadata } from '../../types/index.ts';\n\n/**\n * Examples action interface.\n */\nexport interface ExamplesAction<TInput, TExamples extends readonly TInput[]>\n  extends BaseMetadata<TInput> {\n  /**\n   * The action type.\n   */\n  readonly type: 'examples';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof examples;\n  /**\n   * The examples.\n   */\n  readonly examples: TExamples;\n}\n\n/**\n * Creates an examples metadata action.\n *\n * @param examples_ The examples.\n *\n * @returns An examples action.\n *\n * @beta\n */\n// @__NO_SIDE_EFFECTS__\nexport function examples<TInput, const TExamples extends readonly TInput[]>(\n  examples_: TExamples\n): ExamplesAction<TInput, TExamples> {\n  return {\n    kind: 'metadata',\n    type: 'examples',\n    reference: examples,\n    examples: examples_,\n  };\n}\n"
  },
  {
    "path": "library/src/actions/examples/index.ts",
    "content": "export * from './examples.ts';\n"
  },
  {
    "path": "library/src/actions/excludes/excludes.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  excludes,\n  type ExcludesAction,\n  type ExcludesIssue,\n} from './excludes.ts';\n\ndescribe('excludes', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = ExcludesAction<string, 'foo', undefined>;\n      expectTypeOf(excludes<string, 'foo'>('foo')).toEqualTypeOf<Action>();\n      expectTypeOf(\n        excludes<string, 'foo', undefined>('foo', undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        excludes<string, 'foo', 'message'>('foo', 'message')\n      ).toEqualTypeOf<ExcludesAction<string, 'foo', 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        excludes<string, 'foo', () => string>('foo', () => 'message')\n      ).toEqualTypeOf<ExcludesAction<string, 'foo', () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Input = ['foo', 123, true];\n    type Action = ExcludesAction<Input, 'foo', undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        ExcludesIssue<Input, 'foo'>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/excludes/excludes.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  excludes,\n  type ExcludesAction,\n  type ExcludesIssue,\n} from './excludes.ts';\n\ndescribe('excludes', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<ExcludesAction<string, 'foo', never>, 'message'> = {\n      kind: 'validation',\n      type: 'excludes',\n      reference: excludes,\n      expects: `!\"foo\"`,\n      requirement: 'foo',\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: ExcludesAction<string, 'foo', undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(excludes('foo')).toStrictEqual(action);\n      expect(excludes('foo', undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      const message = 'message';\n      expect(excludes('foo', message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies ExcludesAction<string, 'foo', string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(excludes('foo', message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies ExcludesAction<string, 'foo', typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = excludes('foo');\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid strings', () => {\n      expectNoActionIssue(action, ['', 'fo', 'fobar', '123fo']);\n    });\n\n    test('for valid arrays', () => {\n      expectNoActionIssue(action, [\n        [],\n        ['fo'],\n        [123, 'fobar'],\n        [null, 123, true],\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = excludes('foo', 'message');\n    const baseIssue: Omit<\n      ExcludesIssue<string, 'foo'>,\n      'input' | 'received'\n    > = {\n      kind: 'validation',\n      type: 'excludes',\n      expected: `!\"foo\"`,\n      message: 'message',\n      requirement: 'foo',\n    };\n\n    test('for invalid strings', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        ['foo', 'foobar', '123foo'],\n        () => '\"foo\"'\n      );\n    });\n\n    test('for invalid arrays', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [['foo'], [123, 'foo'], [null, 123, 'foo', true, 'foo']],\n        () => '\"foo\"'\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/excludes/excludes.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue, _stringify } from '../../utils/index.ts';\nimport type { ContentInput, ContentRequirement } from '../types.ts';\n\n/**\n * Excludes issue interface.\n */\nexport interface ExcludesIssue<\n  TInput extends ContentInput,\n  TRequirement extends ContentRequirement<TInput>,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'excludes';\n  /**\n   * The expected property.\n   */\n  readonly expected: string;\n  /**\n   * The content to be excluded.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Excludes action interface.\n */\nexport interface ExcludesAction<\n  TInput extends ContentInput,\n  TRequirement extends ContentRequirement<TInput>,\n  TMessage extends\n    | ErrorMessage<ExcludesIssue<TInput, TRequirement>>\n    | undefined,\n> extends BaseValidation<TInput, TInput, ExcludesIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'excludes';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof excludes;\n  /**\n   * The expected property.\n   */\n  readonly expects: string;\n  /**\n   * The content to be excluded.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an excludes validation action.\n *\n * @param requirement The content to be excluded.\n *\n * @returns An excludes action.\n */\nexport function excludes<\n  TInput extends ContentInput,\n  const TRequirement extends ContentRequirement<TInput>,\n>(requirement: TRequirement): ExcludesAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates an excludes validation action.\n *\n * @param requirement The content to be excluded.\n * @param message The error message.\n *\n * @returns An excludes action.\n */\nexport function excludes<\n  TInput extends ContentInput,\n  const TRequirement extends ContentRequirement<TInput>,\n  const TMessage extends\n    | ErrorMessage<ExcludesIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): ExcludesAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function excludes(\n  requirement: ContentRequirement<ContentInput>,\n  message?: ErrorMessage<\n    ExcludesIssue<ContentInput, ContentRequirement<ContentInput>>\n  >\n): ExcludesAction<\n  ContentInput,\n  ContentRequirement<ContentInput>,\n  | ErrorMessage<ExcludesIssue<ContentInput, ContentRequirement<ContentInput>>>\n  | undefined\n> {\n  const received = _stringify(requirement);\n  return {\n    kind: 'validation',\n    type: 'excludes',\n    reference: excludes,\n    async: false,\n    expects: `!${received}`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      // @ts-expect-error\n      if (dataset.typed && dataset.value.includes(this.requirement)) {\n        _addIssue(this, 'content', dataset, config, { received });\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/excludes/index.ts",
    "content": "export * from './excludes.ts';\n"
  },
  {
    "path": "library/src/actions/filterItems/filterItems.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { filterItems, type FilterItemsAction } from './filterItems.ts';\n\ndescribe('filterItems', () => {\n  test('should return action object', () => {\n    expectTypeOf(filterItems<number[]>((item) => item > 9)).toEqualTypeOf<\n      FilterItemsAction<number[]>\n    >();\n  });\n\n  describe('should infer correct types', () => {\n    type Input = (string | number)[];\n    type Action = FilterItemsAction<Input>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<never>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/filterItems/filterItems.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { filterItems, type FilterItemsAction } from './filterItems.ts';\n\ndescribe('filterItems', () => {\n  const operation = (item: number) => item > 9;\n  const action = filterItems<number[]>(operation);\n\n  test('should return action object', () => {\n    expect(action).toStrictEqual({\n      kind: 'transformation',\n      type: 'filter_items',\n      reference: filterItems,\n      async: false,\n      operation,\n      '~run': expect.any(Function),\n    } satisfies FilterItemsAction<number[]>);\n  });\n\n  test('should transform input', () => {\n    expect(\n      action['~run']({ typed: true, value: [-12, 345, 0, 9, 10, 999] }, {})\n    ).toStrictEqual({\n      typed: true,\n      value: [345, 10, 999],\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/filterItems/filterItems.ts",
    "content": "import type { BaseTransformation } from '../../types/index.ts';\nimport type { ArrayInput, ArrayRequirement } from '../types.ts';\n\n/**\n * Filter items action interface.\n */\nexport interface FilterItemsAction<TInput extends ArrayInput>\n  extends BaseTransformation<TInput, TInput, never> {\n  /**\n   * The action type.\n   */\n  readonly type: 'filter_items';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof filterItems;\n  /**\n   * The filter items operation.\n   */\n  readonly operation: ArrayRequirement<TInput>;\n}\n\n/**\n * Creates a filter items transformation action.\n *\n * @param operation The filter items operation.\n *\n * @returns A filter items action.\n */\nexport function filterItems<TInput extends ArrayInput>(\n  operation: ArrayRequirement<TInput>\n): FilterItemsAction<TInput>;\n\n// @__NO_SIDE_EFFECTS__\nexport function filterItems(\n  operation: ArrayRequirement<unknown[]>\n): FilterItemsAction<unknown[]> {\n  return {\n    kind: 'transformation',\n    type: 'filter_items',\n    reference: filterItems,\n    async: false,\n    operation,\n    '~run'(dataset) {\n      dataset.value = dataset.value.filter(this.operation);\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/filterItems/index.ts",
    "content": "export * from './filterItems.ts';\n"
  },
  {
    "path": "library/src/actions/findItem/findItem.test-d.ts",
    "content": "/* eslint-disable @typescript-eslint/consistent-type-definitions */\nimport { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { findItem, type FindItemAction } from './findItem.ts';\n\ndescribe('findItem', () => {\n  type Dog = { type: 'dog' };\n  type Cat = { type: 'cat' };\n  type Animal = Dog | Cat;\n  type Input = Animal[];\n\n  type Action1 = FindItemAction<Input, Animal>;\n  type Action2 = FindItemAction<Input, Dog>;\n\n  test('should return action object', () => {\n    expectTypeOf(\n      findItem<Input, Animal>((item): boolean => item.type === 'dog')\n    ).toEqualTypeOf<Action1>();\n    expectTypeOf(\n      findItem<Input, Dog>((item): item is Dog => item.type === 'dog')\n    ).toEqualTypeOf<Action2>();\n  });\n\n  describe('should infer correct types', () => {\n    test('of input', () => {\n      expectTypeOf<InferInput<Action1>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Action2>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action1>>().toEqualTypeOf<Animal | undefined>();\n      expectTypeOf<InferOutput<Action2>>().toEqualTypeOf<Dog | undefined>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action1>>().toEqualTypeOf<never>();\n      expectTypeOf<InferIssue<Action2>>().toEqualTypeOf<never>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/findItem/findItem.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { findItem, type FindItemAction } from './findItem.ts';\n\ndescribe('findItem', () => {\n  const operation = (item: number) => item > 9;\n  const action = findItem<number[], number>(operation);\n\n  test('should return action object', () => {\n    expect(action).toStrictEqual({\n      kind: 'transformation',\n      type: 'find_item',\n      reference: findItem,\n      async: false,\n      operation,\n      '~run': expect.any(Function),\n    } satisfies FindItemAction<number[], number>);\n  });\n\n  describe('should transform input', () => {\n    test('to searched item', () => {\n      expect(\n        action['~run']({ typed: true, value: [-12, 9, 345, 10, 0, 999] }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: 345,\n      });\n    });\n\n    test('to undefined', () => {\n      expect(\n        action['~run']({ typed: true, value: [-12, 9, 0] }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: undefined,\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/findItem/findItem.ts",
    "content": "import type { BaseTransformation, SuccessDataset } from '../../types/index.ts';\nimport type { ArrayInput } from '../types.ts';\n\n/**\n * Array requirement type.\n */\ntype ArrayRequirement<\n  TInput extends ArrayInput,\n  TOuput extends TInput[number],\n> =\n  | ((item: TInput[number], index: number, array: TInput) => item is TOuput)\n  | ((item: TInput[number], index: number, array: TInput) => boolean);\n\n/**\n * Find item action interface.\n */\nexport interface FindItemAction<\n  TInput extends ArrayInput,\n  TOuput extends TInput[number],\n> extends BaseTransformation<TInput, TOuput | undefined, never> {\n  /**\n   * The action type.\n   */\n  readonly type: 'find_item';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof findItem;\n  /**\n   * The find item operation.\n   */\n  readonly operation: ArrayRequirement<TInput, TOuput>;\n}\n\n/**\n * Creates a find item transformation action.\n *\n * @param operation The find item operation.\n *\n * @returns A find item action.\n */\nexport function findItem<\n  TInput extends ArrayInput,\n  TOuput extends TInput[number],\n>(operation: ArrayRequirement<TInput, TOuput>): FindItemAction<TInput, TOuput>;\n\n// @__NO_SIDE_EFFECTS__\nexport function findItem(\n  operation: ArrayRequirement<unknown[], unknown>\n): FindItemAction<unknown[], unknown> {\n  return {\n    kind: 'transformation',\n    type: 'find_item',\n    reference: findItem,\n    async: false,\n    operation,\n    '~run'(dataset) {\n      // @ts-expect-error\n      dataset.value = dataset.value.find(this.operation);\n      return dataset as SuccessDataset<unknown | undefined>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/findItem/index.ts",
    "content": "export * from './findItem.ts';\n"
  },
  {
    "path": "library/src/actions/finite/finite.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { finite, type FiniteAction, type FiniteIssue } from './finite.ts';\n\ndescribe('finite', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = FiniteAction<number, undefined>;\n      expectTypeOf(finite()).toEqualTypeOf<Action>();\n      expectTypeOf(finite(undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(finite('message')).toEqualTypeOf<\n        FiniteAction<number, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(finite(() => 'message')).toEqualTypeOf<\n        FiniteAction<number, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = FiniteAction<number, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<FiniteIssue<number>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/finite/finite.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { NumberIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { finite, type FiniteAction, type FiniteIssue } from './finite.ts';\n\ndescribe('finite', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<FiniteAction<number, never>, 'message'> = {\n      kind: 'validation',\n      type: 'finite',\n      reference: finite,\n      expects: null,\n      requirement: expect.any(Function),\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: FiniteAction<number, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(finite()).toStrictEqual(action);\n      expect(finite(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(finite('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies FiniteAction<number, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(finite(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies FiniteAction<number, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = finite();\n\n    test('for untyped inputs', () => {\n      const issues: [NumberIssue] = [\n        {\n          kind: 'schema',\n          type: 'number',\n          input: null,\n          expected: 'number',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for finite numbers', () => {\n      expectNoActionIssue(action, [\n        0,\n        1234,\n        12.34,\n        Number.MAX_VALUE,\n        Number.MIN_VALUE,\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = finite('message');\n    const baseIssue: Omit<FiniteIssue<number>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'finite',\n      expected: null,\n      message: 'message',\n      requirement: expect.any(Function),\n    };\n\n    test('for infinite numbers', () => {\n      expectActionIssue(action, baseIssue, [Infinity, -Infinity]);\n    });\n\n    test('for not a number', () => {\n      expectActionIssue(action, baseIssue, [NaN]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/finite/finite.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * Finite issue interface.\n */\nexport interface FiniteIssue<TInput extends number> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'finite';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `${number}`;\n  /**\n   * The validation function.\n   */\n  readonly requirement: (input: number) => boolean;\n}\n\n/**\n * Finite action interface.\n */\nexport interface FiniteAction<\n  TInput extends number,\n  TMessage extends ErrorMessage<FiniteIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, FiniteIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'finite';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof finite;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The validation function.\n   */\n  readonly requirement: (input: number) => boolean;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a [finite](https://en.wikipedia.org/wiki/Finite) validation action.\n *\n * @returns A finite action.\n */\nexport function finite<TInput extends number>(): FiniteAction<\n  TInput,\n  undefined\n>;\n\n/**\n * Creates a [finite](https://en.wikipedia.org/wiki/Finite) validation action.\n *\n * @param message The error message.\n *\n * @returns A finite action.\n */\nexport function finite<\n  TInput extends number,\n  const TMessage extends ErrorMessage<FiniteIssue<TInput>> | undefined,\n>(message: TMessage): FiniteAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function finite(\n  message?: ErrorMessage<FiniteIssue<number>>\n): FiniteAction<number, ErrorMessage<FiniteIssue<number>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'finite',\n    reference: finite,\n    async: false,\n    expects: null,\n    requirement: Number.isFinite,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement(dataset.value)) {\n        _addIssue(this, 'finite', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/finite/index.ts",
    "content": "export * from './finite.ts';\n"
  },
  {
    "path": "library/src/actions/flavor/flavor.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { type Flavor, flavor, type FlavorAction } from './flavor.ts';\n\ndescribe('flavor', () => {\n  type Action = FlavorAction<string, 'foo'>;\n\n  test('should return action object', () => {\n    expectTypeOf(flavor<string, 'foo'>('foo')).toEqualTypeOf<Action>();\n  });\n\n  describe('should infer correct types', () => {\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<\n        string & Flavor<'foo'>\n      >();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<never>();\n    });\n  });\n\n  describe('should only match specific types', () => {\n    type Output = InferOutput<Action>;\n\n    test('should match unflavored types', () => {\n      expectTypeOf<string>().toMatchTypeOf<Output>();\n    });\n\n    test('should match types with same flavor', () => {\n      expectTypeOf<\n        InferOutput<FlavorAction<string, 'foo'>>\n      >().toMatchTypeOf<Output>();\n    });\n\n    test('should not match types with different flavor', () => {\n      expectTypeOf<\n        InferOutput<FlavorAction<string, 'bar'>>\n      >().not.toMatchTypeOf<Output>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/flavor/flavor.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { flavor, type FlavorAction } from './flavor.ts';\n\ndescribe('flavor', () => {\n  test('should return action object', () => {\n    expect(flavor('foo')).toStrictEqual({\n      kind: 'transformation',\n      type: 'flavor',\n      reference: flavor,\n      name: 'foo',\n      async: false,\n      '~run': expect.any(Function),\n    } satisfies FlavorAction<string, 'foo'>);\n  });\n\n  test('should return same dataset', () => {\n    const dataset = { typed: true, value: 'foo' } as const;\n    expect(flavor('foo')['~run'](dataset, {})).toStrictEqual(dataset);\n  });\n});\n"
  },
  {
    "path": "library/src/actions/flavor/flavor.ts",
    "content": "import type { BaseTransformation, SuccessDataset } from '../../types/index.ts';\n\n/**\n * Flavor symbol.\n *\n * @beta\n */\nexport declare const FlavorSymbol: unique symbol;\n\n/**\n * Flavor name type.\n *\n * @beta\n */\nexport type FlavorName = string | number | symbol;\n\n/**\n * Flavor interface.\n *\n * @beta\n */\nexport interface Flavor<TName extends FlavorName> {\n  [FlavorSymbol]?: { [TValue in TName]: TValue };\n}\n\n/**\n * Flavor action interface.\n *\n * @beta\n */\nexport interface FlavorAction<TInput, TName extends FlavorName>\n  extends BaseTransformation<TInput, TInput & Flavor<TName>, never> {\n  /**\n   * The action type.\n   */\n  readonly type: 'flavor';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof flavor;\n  /**\n   * The flavor name.\n   */\n  readonly name: TName;\n}\n\n/**\n * Creates a flavor transformation action.\n *\n * @param name The flavor name.\n *\n * @returns A flavor action.\n *\n * @beta\n */\n// @__NO_SIDE_EFFECTS__\nexport function flavor<TInput, TName extends FlavorName>(\n  name: TName\n): FlavorAction<TInput, TName> {\n  return {\n    kind: 'transformation',\n    type: 'flavor',\n    reference: flavor,\n    async: false,\n    name,\n    '~run'(dataset) {\n      return dataset as SuccessDataset<TInput & Flavor<TName>>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/flavor/index.ts",
    "content": "export * from './flavor.ts';\n"
  },
  {
    "path": "library/src/actions/graphemes/graphemes.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  graphemes,\n  type GraphemesAction,\n  type GraphemesIssue,\n} from './graphemes.ts';\n\ndescribe('graphemes', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = GraphemesAction<string, 10, undefined>;\n      expectTypeOf(graphemes<string, 10>(10)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        graphemes<string, 10, undefined>(10, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        graphemes<string, 10, 'message'>(10, 'message')\n      ).toEqualTypeOf<GraphemesAction<string, 10, 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        graphemes<string, 10, () => string>(10, () => 'message')\n      ).toEqualTypeOf<GraphemesAction<string, 10, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Input = 'example string';\n    type Action = GraphemesAction<Input, 5, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        GraphemesIssue<Input, 5>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/graphemes/graphemes.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { _getGraphemeCount } from '../../utils/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  graphemes,\n  type GraphemesAction,\n  type GraphemesIssue,\n} from './graphemes.ts';\n\ndescribe('graphemes', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<GraphemesAction<string, 5, never>, 'message'> = {\n      kind: 'validation',\n      type: 'graphemes',\n      reference: graphemes,\n      expects: '5',\n      requirement: 5,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: GraphemesAction<string, 5, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(graphemes(5)).toStrictEqual(action);\n      expect(graphemes(5, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(graphemes(5, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies GraphemesAction<string, 5, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(graphemes(5, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies GraphemesAction<string, 5, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = graphemes(5);\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid strings', () => {\n      expectNoActionIssue(action, ['12345', '12 45', '1234 ', 'hello']);\n    });\n\n    test('for valid emoji', () => {\n      expectNoActionIssue(action, ['😀👋🏼🧩👩🏻‍🏫🫥']);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = graphemes(5, 'message');\n    const baseIssue: Omit<GraphemesIssue<string, 5>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'graphemes',\n      expected: '5',\n      message: 'message',\n      requirement: 5,\n    };\n\n    test('for invalid strings', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        ['', ' ', '1', '1234', '123 ', '123456', '12 456', '123456789'],\n        (value) => `${_getGraphemeCount(value)}`\n      );\n    });\n\n    test('for invalid emoji', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        ['😀', '😀👋🏼🧩👩🏻‍🏫', '😀👋🏼🧩👩🏻‍🏫🫥🫠', '😀👋🏼🧩👩🏻‍🏫🫥🫠🧑‍💻👻🥎'],\n        (value) => `${_getGraphemeCount(value)}`\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/graphemes/graphemes.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue, _getGraphemeCount } from '../../utils/index.ts';\n\n/**\n * Graphemes issue interface.\n */\nexport interface GraphemesIssue<\n  TInput extends string,\n  TRequirement extends number,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'graphemes';\n  /**\n   * The expected property.\n   */\n  readonly expected: `${TRequirement}`;\n  /**\n   * The received property.\n   */\n  readonly received: `${number}`;\n  /**\n   * The required graphemes.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Graphemes action interface.\n */\nexport interface GraphemesAction<\n  TInput extends string,\n  TRequirement extends number,\n  TMessage extends\n    | ErrorMessage<GraphemesIssue<TInput, TRequirement>>\n    | undefined,\n> extends BaseValidation<TInput, TInput, GraphemesIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'graphemes';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof graphemes;\n  /**\n   * The expected property.\n   */\n  readonly expects: `${TRequirement}`;\n  /**\n   * The required graphemes.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a graphemes validation action.\n *\n * @param requirement The required graphemes.\n *\n * @returns A graphemes action.\n */\nexport function graphemes<\n  TInput extends string,\n  const TRequirement extends number,\n>(requirement: TRequirement): GraphemesAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a graphemes validation action.\n *\n * @param requirement The required graphemes.\n * @param message The error message.\n *\n * @returns A graphemes action.\n */\nexport function graphemes<\n  TInput extends string,\n  const TRequirement extends number,\n  const TMessage extends\n    | ErrorMessage<GraphemesIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): GraphemesAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function graphemes(\n  requirement: number,\n  message?: ErrorMessage<GraphemesIssue<string, number>>\n): GraphemesAction<\n  string,\n  number,\n  ErrorMessage<GraphemesIssue<string, number>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'graphemes',\n    reference: graphemes,\n    async: false,\n    expects: `${requirement}`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed) {\n        const count = _getGraphemeCount(dataset.value);\n        if (count !== this.requirement) {\n          _addIssue(this, 'graphemes', dataset, config, {\n            received: `${count}`,\n          });\n        }\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/graphemes/index.ts",
    "content": "export * from './graphemes.ts';\n"
  },
  {
    "path": "library/src/actions/gtValue/gtValue.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { NumberIssue } from '../../schemas/index.ts';\nimport { _stringify } from '../../utils/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { gtValue, type GtValueAction } from './gtValue.ts';\n\ndescribe('gtValue', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<GtValueAction<number, 5, never>, 'message'> = {\n      kind: 'validation',\n      type: 'gt_value',\n      reference: gtValue,\n      expects: '>5',\n      requirement: 5,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: GtValueAction<number, 5, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(gtValue(5)).toStrictEqual(action);\n      expect(gtValue(5, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(gtValue(5, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies GtValueAction<number, 5, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(gtValue(5, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies GtValueAction<number, 5, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for untyped inputs', () => {\n      const issues: [NumberIssue] = [\n        {\n          kind: 'schema',\n          type: 'number',\n          input: null,\n          expected: 'number',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        gtValue(1)['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({ typed: false, value: null, issues });\n    });\n\n    test('for valid bigints', () => {\n      expectNoActionIssue(gtValue(1n), [2n, 9999n]);\n    });\n\n    test('for valid non-bigints', () => {\n      expectNoActionIssue(gtValue(10n), [\n        ' 11 ',\n        '+11',\n        '11',\n        10.5,\n        11,\n        11.0,\n        Infinity,\n        new Date(11),\n        new Date(11.5),\n      ]);\n\n      expectNoActionIssue(gtValue(1n), [\n        ' 2 ',\n        '+2',\n        '2',\n        1.5,\n        2,\n        2.0,\n        Infinity,\n        new Date(2),\n        new Date(2.5),\n      ]);\n\n      expectNoActionIssue(gtValue(0n), [\n        ' 1 ',\n        '+1',\n        '1',\n        0.5,\n        1,\n        1.5,\n        Infinity,\n        true,\n        new Date(1),\n      ]);\n\n      expectNoActionIssue(gtValue(-1n), [\n        ' 0 ',\n        '+0',\n        '0',\n        -0.5,\n        0,\n        0.5,\n        Infinity,\n        true,\n        false,\n        new Date(0),\n      ]);\n    });\n\n    test('for valid booleans', () => {\n      expectNoActionIssue(gtValue(false), [true]);\n    });\n\n    test('for valid non-booleans', () => {\n      expectNoActionIssue(gtValue(true), [\n        '1.5',\n        '2',\n        '99',\n        '+1.5',\n        '+2',\n        '+99',\n        '1.5',\n        '2.0',\n        '99.9',\n        ' 1.5 ',\n        ' 2 ',\n        ' 99 ',\n        1.5,\n        2,\n        99,\n        Infinity,\n        new Date(2),\n        new Date(99),\n        2n,\n        99n,\n      ]);\n\n      expectNoActionIssue(gtValue(false), [\n        '0.5',\n        '1',\n        '99',\n        '+0.5',\n        '+1',\n        '+99',\n        '0.5',\n        '1.0',\n        '99.9',\n        ' 0.5 ',\n        ' 1 ',\n        ' 99 ',\n        0.5,\n        1,\n        99,\n        Infinity,\n        new Date(1),\n        new Date(99),\n        1n,\n        99n,\n      ]);\n    });\n\n    test('for valid dates', () => {\n      const date = new Date();\n      expectNoActionIssue(gtValue(date), [\n        new Date(+date + 1),\n        new Date(+date + 999999),\n      ]);\n    });\n\n    test('for valid non-dates', () => {\n      expectNoActionIssue(gtValue(new Date(10)), [\n        ' 10.5 ',\n        '+10.5',\n        '10.5',\n        '11',\n        '11.0',\n        10.5,\n        11,\n        11.0,\n        Infinity,\n        11n,\n      ]);\n\n      expectNoActionIssue(gtValue(new Date(1)), [\n        ' 1.5 ',\n        '+1.5 ',\n        '1.5',\n        '2',\n        '2.0',\n        1.5,\n        2,\n        2.0,\n        Infinity,\n        2n,\n      ]);\n\n      expectNoActionIssue(gtValue(new Date(0)), [\n        ' 0.5 ',\n        '+0.5',\n        '0.5',\n        '1',\n        '+1',\n        '1.0',\n        ' 1 ',\n        0.5,\n        1,\n        1.0,\n        Infinity,\n        true,\n        1n,\n      ]);\n\n      expectNoActionIssue(gtValue(new Date(-1)), [\n        '',\n        ' ',\n        '0',\n        '1',\n        '-0.5',\n        '0.0',\n        '1.0',\n        ' -0.5 ',\n        ' 0 ',\n        ' 1 ',\n        0,\n        -0,\n        1,\n        -0.5,\n        0.0,\n        1.0,\n        Infinity,\n        false,\n        true,\n        0n,\n        1n,\n      ]);\n    });\n\n    test('for valid numbers', () => {\n      expectNoActionIssue(gtValue(10), [10.5, 11, 9999, Number.MAX_VALUE]);\n    });\n\n    test('for valid non-numbers', () => {\n      expectNoActionIssue(gtValue(10), [\n        ' 10.5 ',\n        '+10.5',\n        '10.5',\n        '11',\n        '99.99',\n        new Date(11),\n        new Date(99),\n        11n,\n        99n,\n      ]);\n\n      expectNoActionIssue(gtValue(1), [\n        ' 1.5 ',\n        '+1.5 ',\n        '1.5',\n        '2',\n        '2.0',\n        new Date(2),\n        2n,\n      ]);\n\n      expectNoActionIssue(gtValue(0), [\n        ' 0.5 ',\n        '+0.5',\n        '0.5',\n        '1',\n        '+1',\n        '1.0',\n        ' 1 ',\n        true,\n        new Date(1),\n        1n,\n      ]);\n\n      expectNoActionIssue(gtValue(-1), [\n        '',\n        ' ',\n        ' -0.5 ',\n        '-0.5',\n        '-0',\n        '0',\n        '+0',\n        '0.0',\n        ' 0 ',\n        true,\n        false,\n        new Date(0),\n        0n,\n      ]);\n    });\n\n    test('for valid strings', () => {\n      expectNoActionIssue(gtValue('2024'), ['2024.', '2025', '9999', 'XYZ']);\n    });\n\n    test('for valid non-strings', () => {\n      expectNoActionIssue(gtValue('10'), [\n        10.5,\n        11,\n        99.99,\n        Infinity,\n        new Date(11),\n        new Date(99),\n        11n,\n        99n,\n      ]);\n\n      expectNoActionIssue(gtValue('1'), [\n        1.5,\n        2,\n        2.0,\n        Infinity,\n        new Date(2),\n        2n,\n      ]);\n\n      expectNoActionIssue(gtValue('0'), [\n        0.5,\n        1,\n        1.0,\n        Infinity,\n        true,\n        new Date(1),\n        1n,\n      ]);\n\n      expectNoActionIssue(gtValue('-1'), [\n        -0.5,\n        0,\n        0.0,\n        Infinity,\n        true,\n        false,\n        new Date(0),\n        0n,\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const baseInfo = {\n      kind: 'validation',\n      type: 'gt_value',\n      message: 'message',\n    } as const;\n\n    const getReceived = (value: unknown): string =>\n      value instanceof Date ? value.toJSON() : _stringify(value);\n\n    test('for invalid bigints', () => {\n      expectActionIssue(\n        gtValue(10n, 'message'),\n        { ...baseInfo, expected: '>10', requirement: 10n },\n        [-9999n, 0n, 9n, 10n]\n      );\n    });\n\n    test('for invalid non-bigints', () => {\n      expectActionIssue(\n        gtValue(123n, 'message'),\n        { ...baseInfo, expected: '>123', requirement: 123n },\n        [\n          'nan',\n          '124px',\n          '+ 124',\n          '-124',\n          '',\n          ' ',\n          '0.0',\n          '123',\n          ' 123 ',\n          '123.4',\n          -123,\n          0,\n          123,\n          123.0,\n          NaN,\n          false,\n          true,\n          new Date(-123),\n          new Date(0),\n          new Date(123),\n        ],\n        getReceived\n      );\n\n      expectActionIssue(\n        gtValue(1n, 'message'),\n        { ...baseInfo, expected: '>1', requirement: 1n },\n        [\n          'nan',\n          '2px',\n          '+ 2',\n          '-1',\n          '',\n          '0',\n          '1',\n          '1.0',\n          '1.5',\n          -1,\n          1,\n          1.0,\n          NaN,\n          false,\n          true,\n          new Date(-1),\n          new Date(0),\n          new Date(1),\n        ],\n        getReceived\n      );\n\n      expectActionIssue(\n        gtValue(0n, 'message'),\n        { ...baseInfo, expected: '>0', requirement: 0n },\n        [\n          'nan',\n          '1px',\n          '+ 1',\n          '-1',\n          '',\n          '0',\n          '0.0',\n          '0.5',\n          -1,\n          0,\n          0.0,\n          NaN,\n          false,\n          new Date(-1),\n          new Date(0),\n        ],\n        getReceived\n      );\n    });\n\n    test('for invalid booleans', () => {\n      expectActionIssue(\n        gtValue(false, 'message'),\n        { ...baseInfo, expected: '>false', requirement: false },\n        [false]\n      );\n\n      expectActionIssue(\n        gtValue(true, 'message'),\n        { ...baseInfo, expected: '>true', requirement: true },\n        [false, true]\n      );\n    });\n\n    test('for invalid non-booleans', () => {\n      expectActionIssue(\n        gtValue(false, 'message'),\n        { ...baseInfo, expected: '>false', requirement: false },\n        [\n          'nan',\n          '1px',\n          '+ 1',\n          '-1',\n          '',\n          '0',\n          '0.0',\n          -1,\n          0,\n          0.0,\n          NaN,\n          new Date(-1),\n          new Date(0),\n          -1n,\n          0n,\n        ],\n        getReceived\n      );\n\n      expectActionIssue(\n        gtValue(true, 'message'),\n        { ...baseInfo, expected: '>true', requirement: true },\n        [\n          'nan',\n          '2px',\n          '+ 2',\n          '-2',\n          '',\n          '0',\n          '1',\n          '1.0',\n          -1,\n          1,\n          1.0,\n          NaN,\n          new Date(-1),\n          new Date(0),\n          new Date(1),\n          -1n,\n          0n,\n          1n,\n        ],\n        getReceived\n      );\n    });\n\n    test('for invalid dates', () => {\n      const date = new Date();\n      expectActionIssue(\n        gtValue<Date, Date, 'message'>(date, 'message'),\n        { ...baseInfo, expected: `>${date.toJSON()}`, requirement: date },\n        [date, new Date(0), new Date(+date - 999999), new Date(+date - 1)],\n        (value) => value.toJSON()\n      );\n    });\n\n    test('for invalid non-dates', () => {\n      const date1 = new Date(123);\n      expectActionIssue(\n        gtValue(date1, 'message'),\n        { ...baseInfo, expected: `>${date1.toJSON()}`, requirement: date1 },\n        [\n          'nan',\n          '124px',\n          '+ 124',\n          '-124',\n          '',\n          '123',\n          '123.0',\n          -124,\n          0,\n          123,\n          123.0,\n          NaN,\n          false,\n          true,\n          -124n,\n          0n,\n          123n,\n        ],\n        getReceived\n      );\n\n      const date2 = new Date(1);\n      expectActionIssue(\n        gtValue(date2, 'message'),\n        { ...baseInfo, expected: `>${date2.toJSON()}`, requirement: date2 },\n        [\n          'nan',\n          '2px',\n          '+ 2',\n          '-2',\n          '',\n          '0',\n          '1',\n          '1.0',\n          -2,\n          1,\n          1.0,\n          NaN,\n          false,\n          true,\n          -2n,\n          0n,\n          1n,\n        ],\n        getReceived\n      );\n\n      const date3 = new Date(0);\n      expectActionIssue(\n        gtValue(date3, 'message'),\n        { ...baseInfo, expected: `>${date3.toJSON()}`, requirement: date3 },\n        [\n          'nan',\n          '1px',\n          '+ 1',\n          '-1',\n          '',\n          '0',\n          '0.0',\n          -1,\n          0,\n          0.0,\n          NaN,\n          false,\n          -1n,\n          0n,\n        ],\n        getReceived\n      );\n    });\n\n    test('for invalid numbers', () => {\n      expectActionIssue(\n        gtValue(10, 'message'),\n        { ...baseInfo, expected: '>10', requirement: 10 },\n        [Number.MIN_VALUE, 0, 9, 10, NaN]\n      );\n    });\n\n    test('for invalid non-numbers', () => {\n      expectActionIssue(\n        gtValue(123, 'message'),\n        { ...baseInfo, expected: '>123', requirement: 123 },\n        [\n          'nan',\n          '124px',\n          '+ 124',\n          '-124',\n          '',\n          '123',\n          '123.0',\n          false,\n          true,\n          new Date(-123),\n          new Date(0),\n          new Date(123),\n          -123n,\n          0n,\n          123n,\n        ],\n        getReceived\n      );\n\n      expectActionIssue(\n        gtValue(1, 'message'),\n        { ...baseInfo, expected: '>1', requirement: 1 },\n        [\n          'nan',\n          '2px',\n          '+ 2',\n          '-1',\n          '',\n          '0',\n          '1',\n          '1.0',\n          false,\n          true,\n          new Date(-1),\n          new Date(0),\n          new Date(1),\n          -1n,\n          0n,\n          1n,\n        ],\n        getReceived\n      );\n\n      expectActionIssue(\n        gtValue(0, 'message'),\n        { ...baseInfo, expected: '>0', requirement: 0 },\n        [\n          'nan',\n          '1px',\n          '+ 1',\n          '-1',\n          '',\n          ' ',\n          '0',\n          '0.0',\n          false,\n          new Date(-1),\n          new Date(0),\n          -1n,\n          0n,\n        ],\n        getReceived\n      );\n    });\n\n    test('for invalid strings', () => {\n      expectActionIssue(\n        gtValue('2024', 'message'),\n        { ...baseInfo, expected: '>\"2024\"', requirement: '2024' },\n        ['', '1234', '2024']\n      );\n    });\n\n    test('for invalid non-strings', () => {\n      expectActionIssue(\n        gtValue('123', 'message'),\n        { ...baseInfo, expected: '>\"123\"', requirement: '123' },\n        [\n          -123,\n          0,\n          123,\n          123.0,\n          NaN,\n          false,\n          true,\n          new Date(-123),\n          new Date(0),\n          new Date(123),\n          -123n,\n          0n,\n          123n,\n        ],\n        getReceived\n      );\n\n      expectActionIssue(\n        gtValue('1', 'message'),\n        { ...baseInfo, expected: '>\"1\"', requirement: '1' },\n        [\n          -1,\n          1,\n          1.0,\n          NaN,\n          false,\n          true,\n          new Date(-1),\n          new Date(0),\n          new Date(1),\n          new Date(1.5),\n          -1n,\n          0n,\n          1n,\n        ],\n        getReceived\n      );\n\n      expectActionIssue(\n        gtValue('0', 'message'),\n        { ...baseInfo, expected: '>\"0\"', requirement: '0' },\n        [\n          -1,\n          0,\n          0.0,\n          NaN,\n          false,\n          new Date(-1),\n          new Date(0),\n          new Date(0.5),\n          -1n,\n          0n,\n        ],\n        getReceived\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/gtValue/gtValue.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue, _stringify } from '../../utils/index.ts';\nimport type { ValueInput } from '../types.ts';\n\n/**\n * Greater than value issue type.\n */\nexport interface GtValueIssue<\n  TInput extends ValueInput,\n  TRequirement extends TInput,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'gt_value';\n  /**\n   * The expected property.\n   */\n  readonly expected: `>${string}`;\n  /**\n   * The greater than value.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Greater than value action type.\n */\nexport interface GtValueAction<\n  TInput extends ValueInput,\n  TRequirement extends TInput,\n  TMessage extends ErrorMessage<GtValueIssue<TInput, TRequirement>> | undefined,\n> extends BaseValidation<TInput, TInput, GtValueIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'gt_value';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof gtValue;\n  /**\n   * The expected property.\n   */\n  readonly expects: `>${string}`;\n  /**\n   * The greater than value.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a greater than value validation action.\n *\n * @param requirement The greater than value.\n *\n * @returns A greater than value action.\n */\nexport function gtValue<\n  TInput extends ValueInput,\n  const TRequirement extends TInput,\n>(requirement: TRequirement): GtValueAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a greater than value validation action.\n *\n * @param requirement The greater than value.\n * @param message The error message.\n *\n * @returns A greater than value action.\n */\nexport function gtValue<\n  TInput extends ValueInput,\n  const TRequirement extends TInput,\n  const TMessage extends\n    | ErrorMessage<GtValueIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): GtValueAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function gtValue(\n  requirement: ValueInput,\n  message?: ErrorMessage<GtValueIssue<ValueInput, ValueInput>>\n): GtValueAction<\n  ValueInput,\n  ValueInput,\n  ErrorMessage<GtValueIssue<ValueInput, ValueInput>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'gt_value',\n    reference: gtValue,\n    async: false,\n    expects: `>${\n      requirement instanceof Date\n        ? requirement.toJSON()\n        : _stringify(requirement)\n    }`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !(dataset.value > this.requirement)) {\n        _addIssue(this, 'value', dataset, config, {\n          received:\n            dataset.value instanceof Date\n              ? dataset.value.toJSON()\n              : _stringify(dataset.value),\n        });\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/gtValue/gtValues.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { gtValue, type GtValueAction, type GtValueIssue } from './gtValue.ts';\n\ndescribe('gtValue', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = GtValueAction<number, 10, undefined>;\n      expectTypeOf(gtValue<number, 10>(10)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        gtValue<number, 10, undefined>(10, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(gtValue<number, 10, 'message'>(10, 'message')).toEqualTypeOf<\n        GtValueAction<number, 10, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        gtValue<number, 10, () => string>(10, () => 'message')\n      ).toEqualTypeOf<GtValueAction<number, 10, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = GtValueAction<number, 10, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        GtValueIssue<number, 10>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/gtValue/index.ts",
    "content": "export * from './gtValue.ts';\n"
  },
  {
    "path": "library/src/actions/guard/guard.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport { pipe } from '../../methods/index.ts';\nimport { literal, number, string } from '../../schemas/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { GuardAction, GuardIssue } from './guard.ts';\nimport { guard } from './guard.ts';\n\ndescribe('guard', () => {\n  type PixelString = `${number}px`;\n  const isPixelString = (input: string): input is PixelString =>\n    /^\\d+px$/u.test(input);\n\n  describe('should return action object', () => {\n    test('with no message', () => {\n      expectTypeOf(guard(isPixelString)).toEqualTypeOf<\n        GuardAction<string, typeof isPixelString, undefined>\n      >();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(guard(isPixelString, 'message')).toEqualTypeOf<\n        GuardAction<string, typeof isPixelString, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(guard(isPixelString, () => 'message')).toEqualTypeOf<\n        GuardAction<string, typeof isPixelString, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    test('of input', () => {\n      expectTypeOf<\n        InferInput<GuardAction<string, typeof isPixelString, undefined>>\n      >().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<\n        InferOutput<GuardAction<string, typeof isPixelString, undefined>>\n      >().toEqualTypeOf<PixelString>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<\n        InferIssue<GuardAction<string, typeof isPixelString, undefined>>\n      >().toEqualTypeOf<GuardIssue<string, typeof isPixelString>>();\n    });\n  });\n\n  test('should infer correct type in pipe', () => {\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    const schema = pipe(\n      string(),\n      guard((input) => {\n        expectTypeOf(input).toEqualTypeOf<string>();\n        return isPixelString(input);\n      })\n    );\n    expectTypeOf<InferOutput<typeof schema>>().toEqualTypeOf<PixelString>();\n  });\n\n  test(\"should error if pipe input doesn't match\", () => {\n    pipe(\n      number(),\n      // @ts-expect-error\n      guard(isPixelString)\n    );\n  });\n\n  test('should allow narrower input or wider output', () => {\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    const narrowInput = pipe(\n      string(),\n      // guard allows wider input than current pipe\n      guard(\n        (input: unknown) => typeof input === 'string' && isPixelString(input)\n      )\n    );\n\n    expectTypeOf<\n      InferOutput<typeof narrowInput>\n    >().toEqualTypeOf<PixelString>();\n\n    // guarded type is wider than current pipe\n    // so we keep the narrower type\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    const wideOutput = pipe(literal('123px'), guard(isPixelString));\n\n    expectTypeOf<InferOutput<typeof wideOutput>>().toEqualTypeOf<'123px'>();\n  });\n});\n"
  },
  {
    "path": "library/src/actions/guard/guard.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { FailureDataset } from '../../types/dataset.ts';\nimport type { GuardAction, GuardIssue } from './guard.ts';\nimport { guard } from './guard.ts';\n\ndescribe('guard', () => {\n  type PixelString = `${number}px`;\n  const isPixelString = (input: string): input is PixelString =>\n    /^\\d+px$/u.test(input);\n\n  const baseAction: Omit<\n    GuardAction<string, typeof isPixelString, undefined>,\n    'message'\n  > = {\n    kind: 'transformation',\n    type: 'guard',\n    reference: guard,\n    requirement: isPixelString,\n    async: false,\n    '~run': expect.any(Function),\n  };\n\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      const action: GuardAction<string, typeof isPixelString, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(guard(isPixelString)).toStrictEqual(action);\n      expect(guard(isPixelString, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      const action: GuardAction<string, typeof isPixelString, 'message'> = {\n        ...baseAction,\n        message: 'message',\n      };\n      expect(guard(isPixelString, 'message')).toStrictEqual(action);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      const action: GuardAction<string, typeof isPixelString, typeof message> =\n        {\n          ...baseAction,\n          message,\n        };\n      expect(guard(isPixelString, message)).toStrictEqual(action);\n    });\n  });\n\n  test('should return dataset without issues', () => {\n    const action = guard(isPixelString);\n    const outputDataset = { typed: true, value: '123px' };\n    expect(action['~run']({ typed: true, value: '123px' }, {})).toStrictEqual(\n      outputDataset\n    );\n  });\n\n  test('should return dataset with issues', () => {\n    const action = guard(isPixelString, 'message');\n    const baseIssue: Omit<\n      GuardIssue<string, typeof isPixelString>,\n      'input' | 'received'\n    > = {\n      kind: 'transformation',\n      type: 'guard',\n      expected: null,\n      message: 'message',\n      requirement: isPixelString,\n      path: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    expect(action['~run']({ typed: true, value: '123' }, {})).toStrictEqual({\n      typed: false,\n      value: '123',\n      issues: [\n        {\n          ...baseIssue,\n          input: '123',\n          received: '\"123\"',\n        },\n      ],\n    } satisfies FailureDataset<GuardIssue<string, typeof isPixelString>>);\n  });\n});\n"
  },
  {
    "path": "library/src/actions/guard/guard.ts",
    "content": "import type {\n  BaseIssue,\n  BaseTransformation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * Guard function type.\n *\n * @beta\n */\nexport type GuardFunction<TInput> = (\n  input: TInput\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n) => input is any;\n\n/**\n * Infer guard output type.\n *\n * @beta\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type InferGuardOutput<TGuard extends GuardFunction<any>> =\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  TGuard extends (input: any) => input is infer TOutput ? TOutput : unknown;\n\n/**\n * Guard issue interface.\n *\n * @beta\n */\nexport interface GuardIssue<TInput, TGuard extends GuardFunction<TInput>>\n  extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'transformation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'guard';\n  /**\n   * The guard function.\n   */\n  readonly requirement: TGuard;\n}\n\n/**\n * Guard action interface.\n *\n * @beta\n */\nexport interface GuardAction<\n  TInput,\n  TGuard extends GuardFunction<TInput>,\n  TMessage extends ErrorMessage<GuardIssue<TInput, TGuard>> | undefined,\n> extends BaseTransformation<\n    TInput,\n    // intersect in case guard is actually wider\n    TInput & InferGuardOutput<TGuard>,\n    GuardIssue<TInput, TGuard>\n  > {\n  /**\n   * The action type.\n   */\n  readonly type: 'guard';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof guard;\n  /**\n   * The guard function.\n   */\n  readonly requirement: TGuard;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a guard transformation action.\n *\n * @param requirement The guard function.\n *\n * @returns A guard action.\n *\n * @beta\n */\n// known input from pipe\nexport function guard<TInput, const TGuard extends GuardFunction<TInput>>(\n  requirement: TGuard\n): GuardAction<TInput, TGuard, undefined>;\n\n/**\n * Creates a guard transformation action.\n *\n * @param requirement The guard function.\n *\n * @returns A guard action.\n *\n * @beta\n */\n// unknown input, e.g. standalone\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function guard<const TGuard extends GuardFunction<any>>(\n  requirement: TGuard\n): GuardAction<Parameters<TGuard>[0], TGuard, undefined>;\n\n/**\n * Creates a guard transformation action.\n *\n * @param requirement The guard function.\n * @param message The error message.\n *\n * @returns A guard action.\n *\n * @beta\n */\n// known input from pipe\nexport function guard<\n  TInput,\n  const TGuard extends GuardFunction<TInput>,\n  const TMessage extends ErrorMessage<GuardIssue<TInput, TGuard>> | undefined,\n>(\n  requirement: TGuard,\n  message: TMessage\n): GuardAction<TInput, TGuard, TMessage>;\n\n/**\n * Creates a guard transformation action.\n *\n * @param requirement The guard function.\n * @param message The error message.\n *\n * @returns A guard action.\n *\n * @beta\n */\n// unknown input, e.g. standalone\nexport function guard<\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  const TGuard extends GuardFunction<any>,\n  const TMessage extends\n    | ErrorMessage<GuardIssue<Parameters<TGuard>[0], TGuard>>\n    | undefined,\n>(\n  requirement: TGuard,\n  message: TMessage\n): GuardAction<Parameters<TGuard>[0], TGuard, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function guard(\n  requirement: GuardFunction<unknown>,\n  message?: ErrorMessage<GuardIssue<unknown, GuardFunction<unknown>>>\n): GuardAction<\n  unknown,\n  GuardFunction<unknown>,\n  ErrorMessage<GuardIssue<unknown, GuardFunction<unknown>>> | undefined\n> {\n  return {\n    kind: 'transformation',\n    type: 'guard',\n    reference: guard,\n    async: false,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement(dataset.value)) {\n        _addIssue(this, 'input', dataset, config);\n        // @ts-expect-error\n        dataset.typed = false;\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/guard/index.ts",
    "content": "export * from './guard.ts';\n"
  },
  {
    "path": "library/src/actions/hash/hash.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { hash, type HashAction, type HashIssue } from './hash.ts';\n\ndescribe('hash', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = HashAction<string, undefined>;\n      expectTypeOf(hash(['md5'])).toEqualTypeOf<Action>();\n      expectTypeOf(hash(['md5'], undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(hash(['md5'], 'message')).toEqualTypeOf<\n        HashAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(hash(['md5'], () => 'message')).toEqualTypeOf<\n        HashAction<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = HashAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<HashIssue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/hash/hash.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { hash, type HashAction, type HashIssue } from './hash.ts';\n\ndescribe('hash', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<HashAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'hash',\n      reference: hash,\n      expects: null,\n      requirement: expect.any(RegExp),\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: HashAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(hash(['md5'])).toStrictEqual(action);\n      expect(hash(['md5'], undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(hash(['md5'], 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies HashAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(hash(['md5'], message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies HashAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        hash(['md5'])['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for md4 hashes', () => {\n      expectNoActionIssue(hash(['md4']), [\n        'c93d3bf7a7c4afe94b64e30c2ce39f4f',\n        '16360e57b209fb9d07f725aa796789ac',\n        'fbe550055d737a0cd3a4325df5dfdc79',\n      ]);\n    });\n\n    test('for md5 hashes', () => {\n      expectNoActionIssue(hash(['md5']), [\n        'd41d8cd98f00b204e9800998ecf8427e',\n        '52f3810691030a673b1d060a98b31d09',\n        '8a00ee7faa357ad736a5832a56c03c73',\n      ]);\n    });\n\n    test('for sha1 hashes', () => {\n      expectNoActionIssue(hash(['sha1']), [\n        'd033e22ae348aeb5660fc2140aec35850c4da997',\n        '6a382c838f2d4b656062a55e69e3755ae267c254',\n        'ed8bda3e9fba8a9341fc1267926389bdac60df33',\n      ]);\n    });\n\n    test('for sha256 hashes', () => {\n      expectNoActionIssue(hash(['sha256']), [\n        '9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08',\n        '03b04c0f41234a184ddb0f6dd5f85a63e7f40b4bbad056160954306922f12d57',\n        '86f5b2c8a75e3f359e588debdd10a076b839a9c9f47db2edf903c0b908dea46f',\n      ]);\n    });\n\n    test('for sha384 hashes', () => {\n      expectNoActionIssue(hash(['sha384']), [\n        '38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b',\n        'e1c83876fcf6991b54fb249d79c6a75dc85643385d3727a9801413a86087fd177ae09b3a63a7991d5631836dc1cdffd1',\n        'b6b6b75130ad75944c39b2e347362446c009f7ba57eb16693c86129983c692ce82d94b4b0f4bb5a408dd76e59fdf4fef',\n      ]);\n    });\n\n    test('for sha512 hashes', () => {\n      expectNoActionIssue(hash(['sha512']), [\n        'a8cdec07e13c3af4a7a992db4a352efe3699fe95b470ee503940b7198c4b0ddc8ba0eda677be76bcf638c27ac837c779cd924de0726a1fc137a88ae8a208ef28',\n        '6c3fa2fd93b9615fb138973c37f13df3de43bd6917a29c75ed9870cc7882fee2fb89706209abc05d39c3cff220f36ea94e4e3ce900d2204d99e20315c2702a55',\n        'c2529f7fe73e78b926d44c76270a1dbb22239da068ecfcef7a6dec99be5fb8e083fb34eb4f79cdf97c559ccad4deb61869ac17aa651a23f254db35ecc9fca5d5',\n      ]);\n    });\n\n    test('for ripemd128 hashes', () => {\n      expectNoActionIssue(hash(['ripemd128']), [\n        'c766f912a89d4ccda88e0cce6a713ef7',\n        '350de5ee5242d93e23a98966ad7ea3ce',\n        '3fa9692610626962c2c9a12adbb2b264',\n      ]);\n    });\n\n    test('for ripemd160 hashes', () => {\n      expectNoActionIssue(hash(['ripemd160']), [\n        '9c1185a5c5e9fc54612808977ee8f548b2258d31',\n        'e5075950e0b90e426ef7474e4993abb724aef047',\n        'a04fefb2f2b664fd10cdb8b17b1ec974db299529',\n      ]);\n    });\n\n    test('for tiger128 hashes', () => {\n      expectNoActionIssue(hash(['tiger128']), [\n        '7ab383fc29d81f8d0d68e87c69bae5f1',\n        'c914df7857ee41f7d6bebe131a902723',\n        'b971739819c2475c757f6e2d7a3309f8',\n      ]);\n    });\n\n    test('for tiger160 hashes', () => {\n      expectNoActionIssue(hash(['tiger160']), [\n        '7ab383fc29d81f8d0d68e87c69bae5f1f18266d7',\n        'f741ee5778df14c92327901a13bebed617fc3968',\n        '5c47c219987371b9f809337a2d6e7f753d7d0f84',\n      ]);\n    });\n\n    test('for tiger192 hashes', () => {\n      expectNoActionIssue(hash(['tiger192']), [\n        '4dd00f9e8e8a6a8e3883af1051237c4b47bd2a329b1de1a3',\n        'f741ee5778df14c92327901a13bebed617fc3968d42eee4c',\n        '5c47c219987371b9f809337a2d6e7f753d7d0f8420fdd8bf',\n      ]);\n    });\n\n    test('for crc32 hashes', () => {\n      expectNoActionIssue(hash(['crc32']), [\n        '3d08bb77',\n        'd87f7e0c',\n        '35ce1956',\n        'fb57a171',\n      ]);\n    });\n\n    test('for crc32b hashes', () => {\n      expectNoActionIssue(hash(['crc32b']), [\n        '7d4da703',\n        '35ce1956',\n        'fb57a171',\n      ]);\n    });\n\n    test('for adler32 hashes', () => {\n      expectNoActionIssue(hash(['adler32']), [\n        '045d01c1',\n        '0bbf02f2',\n        '66b108b6',\n      ]);\n    });\n\n    test('for md5 or adler32 hashes', () => {\n      expectNoActionIssue(hash(['md5', 'adler32']), [\n        '045d01c1',\n        'd41d8cd98f00b204e9800998ecf8427e',\n        '52f3810691030a673b1d060a98b31d09',\n        '0bbf02f2',\n        '8a00ee7faa357ad736a5832a56c03c73',\n        '66b108b6',\n      ]);\n    });\n\n    test('for md4, sha256 or tiger128 hashes', () => {\n      expectNoActionIssue(hash(['md4', 'sha256', 'tiger128']), [\n        'c93d3bf7a7c4afe94b64e30c2ce39f4f',\n        '9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08',\n        '7ab383fc29d81f8d0d68e87c69bae5f1',\n        'c914df7857ee41f7d6bebe131a902723',\n        '16360e57b209fb9d07f725aa796789ac',\n        '03b04c0f41234a184ddb0f6dd5f85a63e7f40b4bbad056160954306922f12d57',\n        'b971739819c2475c757f6e2d7a3309f8',\n        'fbe550055d737a0cd3a4325df5dfdc79',\n        '86f5b2c8a75e3f359e588debdd10a076b839a9c9f47db2edf903c0b908dea46f',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const baseIssue: Omit<\n      HashIssue<string>,\n      'input' | 'received' | 'requirement'\n    > = {\n      kind: 'validation',\n      type: 'hash',\n      expected: null,\n      message: 'message',\n    };\n\n    test('for invalid md4 hashes', () => {\n      expectActionIssue(\n        hash(['md4'], 'message'),\n        { ...baseIssue, requirement: /^[a-fA-F0-9]{32}$/u },\n        [\n          '',\n          ' ',\n          '12345',\n          'c93d3bf7a7c4afe94b64e+0c2ce39f4f',\n          'd033e22ae348aeb5660fc2140aec35850c4da997',\n        ]\n      );\n    });\n\n    test('for invalid md5 hashes', () => {\n      expectActionIssue(\n        hash(['md5'], 'message'),\n        { ...baseIssue, requirement: /^[a-fA-F0-9]{32}$/u },\n        [\n          '',\n          ' ',\n          '12345',\n          'd41d8cd98f00b204g9800998ecf8427e',\n          '38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b',\n        ]\n      );\n    });\n\n    test('for invalid sha1 hashes', () => {\n      expectActionIssue(\n        hash(['sha1'], 'message'),\n        { ...baseIssue, requirement: /^[a-fA-F0-9]{40}$/u },\n        [\n          '',\n          ' ',\n          '12345',\n          'ed8bda3e9fba8a9341fc12679263h9bdac60df33',\n          '9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08',\n        ]\n      );\n    });\n\n    test('for invalid sha256 hashes', () => {\n      expectActionIssue(\n        hash(['sha256'], 'message'),\n        { ...baseIssue, requirement: /^[a-fA-F0-9]{64}$/u },\n        [\n          '',\n          ' ',\n          '12345',\n          '9f86d081884c7d659a2feaa0c5iad015a3bf4f1b2b0b822cd15d6c15b0f00a08',\n          'a8cdec07e13c3af4a7a992db4a352efe3699fe95b470ee503940b7198c4b0ddc8ba0eda677be76bcf638c27ac837c779cd924de0726a1fc137a88ae8a208ef28',\n        ]\n      );\n    });\n\n    test('for invalid sha384 hashes', () => {\n      expectActionIssue(\n        hash(['sha384'], 'message'),\n        { ...baseIssue, requirement: /^[a-fA-F0-9]{96}$/u },\n        [\n          '',\n          ' ',\n          '12345',\n          '38b060a751ac96384cd9327eb1b1e36a21fdb711k4be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b',\n          'c2529f7fe73e78b926d44c76270a1dbb22239da068ecfcef7a6dec99be5fb8e083fb34eb4f79cdf97c559ccad4deb61869ac17aa651a23f254db35ecc9fca5d5',\n        ]\n      );\n    });\n\n    test('for invalid sha512 hashes', () => {\n      expectActionIssue(\n        hash(['sha512'], 'message'),\n        { ...baseIssue, requirement: /^[a-fA-F0-9]{128}$/u },\n        [\n          '',\n          ' ',\n          '12345',\n          'a8cdec07e13c3af4a7a992db4a352efe3699fe95b470ee5j3940b7198c4b0ddc8ba0eda677be76bcf638c27ac837c779cd924de0726a1fc137a88ae8a208ef28',\n          'd41d8cd98f00b204e9800998ecf8427e',\n        ]\n      );\n    });\n\n    test('for invalid ripemd128 hashes', () => {\n      expectActionIssue(\n        hash(['ripemd128'], 'message'),\n        { ...baseIssue, requirement: /^[a-fA-F0-9]{32}$/u },\n        [\n          '',\n          ' ',\n          '12345',\n          'c766f912a89d4ccdal8e0cce6a713ef7',\n          'e5075950e0b90e426ef7474e4993abb724aef047',\n        ]\n      );\n    });\n\n    test('for invalid ripemd160 hashes', () => {\n      expectActionIssue(\n        hash(['ripemd160'], 'message'),\n        { ...baseIssue, requirement: /^[a-fA-F0-9]{40}$/u },\n        [\n          '',\n          ' ',\n          '12345',\n          '350de5ee5242d93e23a98966ad7ea3ce',\n          '9c1185a5c5e9fc54612m08977ee8f548b2258d31',\n        ]\n      );\n    });\n\n    test('for invalid tiger128 hashes', () => {\n      expectActionIssue(\n        hash(['tiger128'], 'message'),\n        { ...baseIssue, requirement: /^[a-fA-F0-9]{32}$/u },\n        [\n          '',\n          ' ',\n          '12345',\n          '7ab383fc29d81f8d0dn8e87c69bae5f1',\n          'f741ee5778df14c92327901a13bebed617fc3968',\n        ]\n      );\n    });\n\n    test('for invalid tiger160 hashes', () => {\n      expectActionIssue(\n        hash(['tiger160'], 'message'),\n        { ...baseIssue, requirement: /^[a-fA-F0-9]{40}$/u },\n        [\n          '',\n          ' ',\n          '12345',\n          '7ab383fc29d81f8d0d68eo7c69bae5f1f18266d7',\n          'f741ee5778df14c92327901a13bebed617fc3968d42eee4c',\n        ]\n      );\n    });\n\n    test('for invalid tiger192 hashes', () => {\n      expectActionIssue(\n        hash(['tiger192'], 'message'),\n        { ...baseIssue, requirement: /^[a-fA-F0-9]{48}$/u },\n        [\n          '',\n          ' ',\n          '12345',\n          '4dd00f9e8e8a6a8e3883af1051237p4b47bd2a329b1de1a3',\n          '9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08',\n        ]\n      );\n    });\n\n    test('for invalid crc32 hashes', () => {\n      expectActionIssue(\n        hash(['crc32'], 'message'),\n        { ...baseIssue, requirement: /^[a-fA-F0-9]{8}$/u },\n        ['', ' ', '12345', '3d08bq77', 'c93d3bf7a7c4afe94b64e30c2ce39f4f']\n      );\n    });\n\n    test('for invalid crc32b hashes', () => {\n      expectActionIssue(\n        hash(['crc32b'], 'message'),\n        { ...baseIssue, requirement: /^[a-fA-F0-9]{8}$/u },\n        ['', ' ', '12345', '35cer956', 'fbe550055d737a0cd3a4325df5dfdc79']\n      );\n    });\n\n    test('for invalid adler32 hashes', () => {\n      expectActionIssue(\n        hash(['adler32'], 'message'),\n        { ...baseIssue, requirement: /^[a-fA-F0-9]{8}$/u },\n        ['', ' ', '12345', '045dx1c1', '16360e57b209fb9d07f725aa796789ac']\n      );\n    });\n\n    test('for invalid md5 and adler32 hashes', () => {\n      expectActionIssue(\n        hash(['adler32', 'md5'], 'message'),\n        { ...baseIssue, requirement: /^[a-fA-F0-9]{8}$|^[a-fA-F0-9]{32}$/u },\n        [\n          '',\n          ' ',\n          '12345',\n          '045d0yc1',\n          'd41d8zd98f00b204e9800998ecf8427e',\n          '52f38#0691030a673b1d060a98b31d09',\n          '9f86d081884c7d659a2feaa0c5iad015a3bf4f1b2b0b822cd15d6c15b0f00a08',\n        ]\n      );\n    });\n\n    test('for invalid crc32, ripemd128 and sha1 hashes', () => {\n      expectActionIssue(\n        hash(['crc32', 'ripemd128', 'sha1'], 'message'),\n        {\n          ...baseIssue,\n          requirement: /^[a-fA-F0-9]{8}$|^[a-fA-F0-9]{32}$|^[a-fA-F0-9]{40}$/u,\n        },\n        [\n          '',\n          ' ',\n          '1234',\n          'fbx7a171',\n          '350de5ee5242d93ez3a98966ad7ea3ce',\n          '6a382c838f2d4b65y062a55e69e3755ae267c254',\n          'c2529f7fe73e78b926d44c76270a1dbb22239da068ecfcef7a6dec99be5fb8e083fb34eb4f79cdf97c559ccad4deb61869ac17aa651a23f254db35ecc9fca5d5',\n        ]\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/hash/hash.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * Hash lengths object.\n */\nconst HASH_LENGTHS = {\n  md4: 32,\n  md5: 32,\n  sha1: 40,\n  sha256: 64,\n  sha384: 96,\n  sha512: 128,\n  ripemd128: 32,\n  ripemd160: 40,\n  tiger128: 32,\n  tiger160: 40,\n  tiger192: 48,\n  crc32: 8,\n  crc32b: 8,\n  adler32: 8,\n} as const;\n\n/**\n * Hash type type.\n */\nexport type HashType = keyof typeof HASH_LENGTHS;\n\n/**\n * Hash issue interface.\n */\nexport interface HashIssue<TInput extends string> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'hash';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The hash regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * Hash action interface.\n */\nexport interface HashAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<HashIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, HashIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'hash';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof hash;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The hash regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a [hash](https://en.wikipedia.org/wiki/Hash_function) validation action.\n *\n * @param types The hash types.\n *\n * @returns A hash action.\n */\nexport function hash<TInput extends string>(\n  types: [HashType, ...HashType[]]\n): HashAction<TInput, undefined>;\n\n/**\n * Creates a [hash](https://en.wikipedia.org/wiki/Hash_function) validation action.\n *\n * @param types The hash types.\n * @param message The error message.\n *\n * @returns A hash action.\n */\nexport function hash<\n  TInput extends string,\n  const TMessage extends ErrorMessage<HashIssue<TInput>> | undefined,\n>(\n  types: [HashType, ...HashType[]],\n  message: TMessage\n): HashAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function hash(\n  types: [HashType, ...HashType[]],\n  message?: ErrorMessage<HashIssue<string>>\n): HashAction<string, ErrorMessage<HashIssue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'hash',\n    reference: hash,\n    expects: null,\n    async: false,\n    requirement: RegExp(\n      types.map((type) => `^[a-fA-F0-9]{${HASH_LENGTHS[type]}}$`).join('|'),\n      'u'\n    ),\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'hash', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/hash/index.ts",
    "content": "export * from './hash.ts';\n"
  },
  {
    "path": "library/src/actions/hexColor/hexColor.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  hexColor,\n  type HexColorAction,\n  type HexColorIssue,\n} from './hexColor.ts';\n\ndescribe('hexColor', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = HexColorAction<string, undefined>;\n      expectTypeOf(hexColor()).toEqualTypeOf<Action>();\n      expectTypeOf(hexColor(undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(hexColor('message')).toEqualTypeOf<\n        HexColorAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(hexColor(() => 'message')).toEqualTypeOf<\n        HexColorAction<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = HexColorAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<HexColorIssue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/hexColor/hexColor.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { HEX_COLOR_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  hexColor,\n  type HexColorAction,\n  type HexColorIssue,\n} from './hexColor.ts';\n\ndescribe('hexColor', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<HexColorAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'hex_color',\n      reference: hexColor,\n      expects: null,\n      requirement: HEX_COLOR_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: HexColorAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(hexColor()).toStrictEqual(action);\n      expect(hexColor(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(hexColor('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies HexColorAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(hexColor(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies HexColorAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = hexColor();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for 3 digits', () => {\n      expectNoActionIssue(action, [\n        '#000',\n        '#FFF',\n        '#F00',\n        '#0F0',\n        '#00F',\n        '#123',\n        '#abc',\n      ]);\n    });\n\n    test('for 4 digits', () => {\n      expectNoActionIssue(action, [\n        '#0000',\n        '#FFFF',\n        '#F00F',\n        '#0F0F',\n        '#00FF',\n        '#1234',\n        '#abcd',\n      ]);\n    });\n\n    test('for 6 digits', () => {\n      expectNoActionIssue(action, [\n        '#000000',\n        '#FFFFFF',\n        '#FF0000',\n        '#00FF00',\n        '#0000FF',\n        '#123456',\n        '#abcdef',\n      ]);\n    });\n\n    test('for 8 digits', () => {\n      expectNoActionIssue(action, [\n        '#00000000',\n        '#FFFFFFFF',\n        '#FF0000FF',\n        '#00FF00FF',\n        '#0000FFFF',\n        '#12345678',\n        '#abcdefab',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = hexColor('message');\n    const baseIssue: Omit<HexColorIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'hex_color',\n      expected: null,\n      message: 'message',\n      requirement: HEX_COLOR_REGEX,\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for missing # symbol', () => {\n      expectActionIssue(action, baseIssue, [\n        'FFF',\n        'FFFF',\n        'FFFFFF',\n        'FFFFFFFF',\n      ]);\n    });\n\n    test('for two # symbols', () => {\n      expectActionIssue(action, baseIssue, [\n        '##FFF',\n        '##FFFF',\n        '##FFFFFF',\n        '##FFFFFFFF',\n      ]);\n    });\n\n    test('for missing digits', () => {\n      expectActionIssue(action, baseIssue, ['#']);\n    });\n\n    test('for blank spaces', () => {\n      expectActionIssue(action, baseIssue, [' #FFF', '#FFF ', '#FFF FFF']);\n    });\n\n    test('for 1 digit', () => {\n      expectActionIssue(action, baseIssue, ['#0', '#F', '#1', '#a']);\n    });\n\n    test('for 2 digits', () => {\n      expectActionIssue(action, baseIssue, ['#00', '#FF', '#12', '#ab']);\n    });\n\n    test('for 5 digits', () => {\n      expectActionIssue(action, baseIssue, [\n        '#00000',\n        '#FFFFF',\n        '#12345',\n        '#abcde',\n      ]);\n    });\n\n    test('for 7 digits', () => {\n      expectActionIssue(action, baseIssue, [\n        '#0000000',\n        '#FFFFFFF',\n        '#1234567',\n        '#abcdefa',\n      ]);\n    });\n\n    test('for 9 digits', () => {\n      expectActionIssue(action, baseIssue, [\n        '#000000000',\n        '#FFFFFFFFF',\n        '#123456789',\n        '#abcdefabc',\n      ]);\n    });\n\n    test('for non hex chars', () => {\n      expectActionIssue(action, baseIssue, [\n        '#GGG',\n        '#zzz',\n        '#GGGG',\n        '#zzzz',\n        '#GGGGGG',\n        '#zzzzzz',\n        '#GGGGGGGG',\n        '#zzzzzzzz',\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/hexColor/hexColor.ts",
    "content": "import { HEX_COLOR_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * Hex color issue interface.\n */\nexport interface HexColorIssue<TInput extends string>\n  extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'hex_color';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The hex color regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * Hex color action interface.\n */\nexport interface HexColorAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<HexColorIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, HexColorIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'hex_color';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof hexColor;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The hex color regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a [hex color](https://en.wikipedia.org/wiki/Web_colors#Hex_triplet) validation action.\n *\n * @returns A hex color action.\n */\nexport function hexColor<TInput extends string>(): HexColorAction<\n  TInput,\n  undefined\n>;\n\n/**\n * Creates a [hex color](https://en.wikipedia.org/wiki/Web_colors#Hex_triplet) validation action.\n *\n * @param message The error message.\n *\n * @returns A hex color action.\n */\nexport function hexColor<\n  TInput extends string,\n  const TMessage extends ErrorMessage<HexColorIssue<TInput>> | undefined,\n>(message: TMessage): HexColorAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function hexColor(\n  message?: ErrorMessage<HexColorIssue<string>>\n): HexColorAction<string, ErrorMessage<HexColorIssue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'hex_color',\n    reference: hexColor,\n    async: false,\n    expects: null,\n    requirement: HEX_COLOR_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'hex color', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/hexColor/index.ts",
    "content": "export * from './hexColor.ts';\n"
  },
  {
    "path": "library/src/actions/hexadecimal/hexadecimal.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  hexadecimal,\n  type HexadecimalAction,\n  type HexadecimalIssue,\n} from './hexadecimal.ts';\n\ndescribe('hexadecimal', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = HexadecimalAction<string, undefined>;\n      expectTypeOf(hexadecimal()).toEqualTypeOf<Action>();\n      expectTypeOf(hexadecimal(undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(hexadecimal('message')).toEqualTypeOf<\n        HexadecimalAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(hexadecimal(() => 'message')).toEqualTypeOf<\n        HexadecimalAction<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = HexadecimalAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        HexadecimalIssue<string>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/hexadecimal/hexadecimal.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { HEXADECIMAL_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  hexadecimal,\n  type HexadecimalAction,\n  type HexadecimalIssue,\n} from './hexadecimal.ts';\n\ndescribe('hexadecimal', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<HexadecimalAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'hexadecimal',\n      reference: hexadecimal,\n      expects: null,\n      requirement: HEXADECIMAL_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: HexadecimalAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(hexadecimal()).toStrictEqual(action);\n      expect(hexadecimal(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(hexadecimal('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies HexadecimalAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(hexadecimal(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies HexadecimalAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = hexadecimal();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for hexadecimal chars', () => {\n      expectNoActionIssue(action, [\n        '0',\n        '1',\n        '2',\n        '3',\n        '4',\n        '5',\n        '6',\n        '7',\n        '8',\n        '9',\n        'a',\n        'b',\n        'c',\n        'd',\n        'e',\n        'f',\n        'A',\n        'B',\n        'C',\n        'D',\n        'E',\n        'F',\n      ]);\n    });\n\n    test('for two chars', () => {\n      expectNoActionIssue(action, ['00', '12', 'FF']);\n    });\n\n    test('for multiple chars', () => {\n      expectNoActionIssue(action, [\n        '000000000000000',\n        '123456789abcdef',\n        '123456789ABCDEF',\n        'FFFFFFFFFFFFFFF',\n      ]);\n    });\n\n    test('for 0h prefix', () => {\n      expectNoActionIssue(action, [\n        '0h000000000000000',\n        '0h123456789abcdef',\n        '0h123456789ABCDEF',\n        '0hFFFFFFFFFFFFFFF',\n      ]);\n    });\n\n    test('for 0x prefix', () => {\n      expectNoActionIssue(action, [\n        '0x000000000000000',\n        '0x123456789abcdef',\n        '0x123456789ABCDEF',\n        '0xFFFFFFFFFFFFFFF',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = hexadecimal('message');\n    const baseIssue: Omit<HexadecimalIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'hexadecimal',\n      expected: null,\n      message: 'message',\n      requirement: HEXADECIMAL_REGEX,\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for blank spaces', () => {\n      expectActionIssue(action, baseIssue, [' 1', '1 ', ' 1 ', '1 2']);\n    });\n\n    test('for number signs', () => {\n      expectActionIssue(action, baseIssue, ['+1', '-1', '+123', '-123']);\n    });\n\n    test('for float numbers', () => {\n      expectActionIssue(action, baseIssue, ['0.1', '123.456']);\n    });\n\n    test('for exponential numbers', () => {\n      expectActionIssue(action, baseIssue, ['1e-3', '1e+3']);\n    });\n\n    test('for invalid letters', () => {\n      expectActionIssue(action, baseIssue, [\n        'g',\n        'G',\n        'z',\n        'Z',\n        '123456789abcdefg',\n        '123456789ABCDEFG',\n        '123456789abcdefghijklmnopqrstuvwxyz',\n        '123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',\n      ]);\n    });\n\n    test('for special chars', () => {\n      expectActionIssue(action, baseIssue, [\n        '-',\n        '-1',\n        '+',\n        '+1',\n        '#',\n        '#1',\n        '$',\n        '$1',\n        '%',\n        '1%',\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/hexadecimal/hexadecimal.ts",
    "content": "import { HEXADECIMAL_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * Hexadecimal issue interface.\n */\nexport interface HexadecimalIssue<TInput extends string>\n  extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'hexadecimal';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The hexadecimal regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * Hexadecimal action interface.\n */\nexport interface HexadecimalAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<HexadecimalIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, HexadecimalIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'hexadecimal';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof hexadecimal;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The hexadecimal regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a [hexadecimal](https://en.wikipedia.org/wiki/Hexadecimal) validation action.\n *\n * @returns A hexadecimal action.\n */\nexport function hexadecimal<TInput extends string>(): HexadecimalAction<\n  TInput,\n  undefined\n>;\n\n/**\n * Creates a [hexadecimal](https://en.wikipedia.org/wiki/Hexadecimal) validation action.\n *\n * @param message The error message.\n *\n * @returns A hexadecimal action.\n */\nexport function hexadecimal<\n  TInput extends string,\n  const TMessage extends ErrorMessage<HexadecimalIssue<TInput>> | undefined,\n>(message: TMessage): HexadecimalAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function hexadecimal(\n  message?: ErrorMessage<HexadecimalIssue<string>>\n): HexadecimalAction<\n  string,\n  ErrorMessage<HexadecimalIssue<string>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'hexadecimal',\n    reference: hexadecimal,\n    async: false,\n    expects: null,\n    requirement: HEXADECIMAL_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'hexadecimal', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/hexadecimal/index.ts",
    "content": "export * from './hexadecimal.ts';\n"
  },
  {
    "path": "library/src/actions/imei/imei.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { imei, type ImeiAction, type ImeiIssue } from './imei.ts';\n\ndescribe('imei', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = ImeiAction<string, undefined>;\n      expectTypeOf(imei()).toEqualTypeOf<Action>();\n      expectTypeOf(imei(undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(imei('message')).toEqualTypeOf<\n        ImeiAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(imei(() => 'message')).toEqualTypeOf<\n        ImeiAction<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = ImeiAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<ImeiIssue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/imei/imei.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { imei, type ImeiAction, type ImeiIssue } from './imei.ts';\n\ndescribe('imei', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<ImeiAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'imei',\n      reference: imei,\n      expects: null,\n      requirement: expect.any(Function),\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: ImeiAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(imei()).toStrictEqual(action);\n      expect(imei(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(imei('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies ImeiAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(imei(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies ImeiAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = imei();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid IMEI without separators', () => {\n      expectNoActionIssue(action, [\n        '861812069402168',\n        '536498459191226',\n        '454438576454550',\n        '356741089396021',\n      ]);\n    });\n\n    test('for valid IMEI with separators', () => {\n      expectNoActionIssue(action, [\n        '86-181206-940216-8',\n        '53-649845-919122-6',\n        '45-443857-645455-0',\n        '35-674108-939602-1',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = imei('message');\n    const baseIssue: Omit<ImeiIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'imei',\n      expected: null,\n      message: 'message',\n      requirement: expect.any(Function),\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for blank spaces', () => {\n      expectActionIssue(action, baseIssue, [\n        ' 861812069402168',\n        '861812069402168 ',\n        ' 861812069402168 ',\n      ]);\n    });\n\n    test('for missing separators', () => {\n      expectActionIssue(action, baseIssue, [\n        '86181206-940216-8',\n        '86-181206940216-8',\n        '86-181206-9402168',\n      ]);\n    });\n\n    test('for double separators', () => {\n      expectActionIssue(action, baseIssue, [\n        '86--181206-940216-8',\n        '86-181206--940216-8',\n        '86-181206-940216--8',\n        '86--181206--940216--8',\n      ]);\n    });\n\n    test('for invalid separators', () => {\n      expectActionIssue(action, baseIssue, [\n        '86 181206 940216 8',\n        '86/181206/940216/8',\n        '86_181206_940216_8',\n        '86–181206–940216–8',\n      ]);\n    });\n\n    test('for invalid digit count', () => {\n      expectActionIssue(action, baseIssue, [\n        '86181206940216', // 14 digits\n        '8618120694021683', // 16 digits\n        '8-181206-940216-8', // missing A digit\n        '862-181206-940216-8', // extra A digit\n        '86-11206-940216-8', // missing B digit\n        '86-1817206-940216-8', // extra B digit\n        '86-181206-94216-8', // missing C digit\n        '86-181206-9408216-8', // extra C digit\n        '86-181206-940216', // missing D digit\n        '86-181206-940216-', // missing D digit\n        '86-181206-940216-82', // extra D digit\n      ]);\n    });\n\n    test('for non digit chars', () => {\n      expectActionIssue(action, baseIssue, [\n        '861812A69402168', // A digit\n        '8A-181206-940216-8', // A digit\n        '861812a69402168', // a digit\n        '86-1a1206-940216-8', // a digit\n        '86181206Z402168', // Z digit\n        '86-181206-9402Z6-8', // Z digit\n        '86181206z402168', // z digit\n        '86-181206-940216-z', // z digit\n        '861812069$02168', // $ digit\n        '86-18$206-940216-8', // $ digit\n        '861@12069402168', // @ digit\n        '86-181206-94@216-8', // @ digit\n      ]);\n    });\n\n    test('for invalid check digit', () => {\n      expectActionIssue(action, baseIssue, [\n        '861812069402163',\n        '536498459191225',\n        '454438576454552',\n        '356741089396029',\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/imei/imei.ts",
    "content": "import { IMEI_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue, _isLuhnAlgo } from '../../utils/index.ts';\n\n/**\n * IMEI issue interface.\n */\nexport interface ImeiIssue<TInput extends string> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'imei';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The validation function.\n   */\n  readonly requirement: (input: string) => boolean;\n}\n\n/**\n * IMEI action interface.\n */\nexport interface ImeiAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<ImeiIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, ImeiIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'imei';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof imei;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The validation function.\n   */\n  readonly requirement: (input: string) => boolean;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an [IMEI](https://en.wikipedia.org/wiki/International_Mobile_Equipment_Identity) validation action.\n *\n * Formats:\n * - AABBBBBBCCCCCCD\n * - AA-BBBBBB-CCCCCC-D\n *\n * @returns An IMEI action.\n */\nexport function imei<TInput extends string>(): ImeiAction<TInput, undefined>;\n\n/**\n * Creates an [IMEI](https://en.wikipedia.org/wiki/International_Mobile_Equipment_Identity) validation action.\n *\n * Formats:\n * - AABBBBBBCCCCCCD\n * - AA-BBBBBB-CCCCCC-D\n *\n * @param message The error message.\n *\n * @returns An IMEI action.\n */\nexport function imei<\n  TInput extends string,\n  const TMessage extends ErrorMessage<ImeiIssue<TInput>> | undefined,\n>(message: TMessage): ImeiAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function imei(\n  message?: ErrorMessage<ImeiIssue<string>>\n): ImeiAction<string, ErrorMessage<ImeiIssue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'imei',\n    reference: imei,\n    async: false,\n    expects: null,\n    requirement(input) {\n      return IMEI_REGEX.test(input) && _isLuhnAlgo(input);\n    },\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement(dataset.value)) {\n        _addIssue(this, 'IMEI', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/imei/index.ts",
    "content": "export * from './imei.ts';\n"
  },
  {
    "path": "library/src/actions/includes/includes.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  includes,\n  type IncludesAction,\n  type IncludesIssue,\n} from './includes.ts';\n\ndescribe('includes', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = IncludesAction<string, 'foo', undefined>;\n      expectTypeOf(includes<string, 'foo'>('foo')).toEqualTypeOf<Action>();\n      expectTypeOf(\n        includes<string, 'foo', undefined>('foo', undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        includes<string, 'foo', 'message'>('foo', 'message')\n      ).toEqualTypeOf<IncludesAction<string, 'foo', 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        includes<string, 'foo', () => string>('foo', () => 'message')\n      ).toEqualTypeOf<IncludesAction<string, 'foo', () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Input = ['foo', 123, true];\n    type Action = IncludesAction<Input, 123, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        IncludesIssue<Input, 123>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/includes/includes.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  includes,\n  type IncludesAction,\n  type IncludesIssue,\n} from './includes.ts';\n\ndescribe('includes', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<IncludesAction<string, 'foo', never>, 'message'> = {\n      kind: 'validation',\n      type: 'includes',\n      reference: includes,\n      expects: '\"foo\"',\n      requirement: 'foo',\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: IncludesAction<string, 'foo', undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(includes('foo')).toStrictEqual(action);\n      expect(includes('foo', undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      const message = 'message';\n      expect(includes('foo', message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies IncludesAction<string, 'foo', string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(includes('foo', message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies IncludesAction<string, 'foo', typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = includes('foo');\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid strings', () => {\n      expectNoActionIssue(action, ['foo', 'foobar', '123foo']);\n    });\n\n    test('for valid arrays', () => {\n      expectNoActionIssue(action, [\n        ['foo'],\n        [123, 'foo'],\n        [null, 123, 'foo', true, 'foo'],\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = includes('foo', 'message');\n    const baseIssue: Omit<\n      IncludesIssue<string, 'foo'>,\n      'input' | 'received'\n    > = {\n      kind: 'validation',\n      type: 'includes',\n      expected: '\"foo\"',\n      message: 'message',\n      requirement: 'foo',\n    };\n\n    test('for invalid strings', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        ['', 'fo', 'fobar', '123fo'],\n        () => '!\"foo\"'\n      );\n    });\n\n    test('for invalid arrays', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [[], ['fo'], [123, 'fobar'], [null, 123, true]],\n        () => '!\"foo\"'\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/includes/includes.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue, _stringify } from '../../utils/index.ts';\nimport type { ContentInput, ContentRequirement } from '../types.ts';\n\n/**\n * Includes issue interface.\n */\nexport interface IncludesIssue<\n  TInput extends ContentInput,\n  TRequirement extends ContentRequirement<TInput>,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'includes';\n  /**\n   * The expected property.\n   */\n  readonly expected: string;\n  /**\n   * The content to be included.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Includes action interface.\n */\nexport interface IncludesAction<\n  TInput extends ContentInput,\n  TRequirement extends ContentRequirement<TInput>,\n  TMessage extends\n    | ErrorMessage<IncludesIssue<TInput, TRequirement>>\n    | undefined,\n> extends BaseValidation<TInput, TInput, IncludesIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'includes';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof includes;\n  /**\n   * The expected property.\n   */\n  readonly expects: string;\n  /**\n   * The content to be included.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an includes validation action.\n *\n * @param requirement The content to be included.\n *\n * @returns An includes action.\n */\nexport function includes<\n  TInput extends ContentInput,\n  const TRequirement extends ContentRequirement<TInput>,\n>(requirement: TRequirement): IncludesAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates an includes validation action.\n *\n * @param requirement The content to be included.\n * @param message The error message.\n *\n * @returns An includes action.\n */\nexport function includes<\n  TInput extends ContentInput,\n  const TRequirement extends ContentRequirement<TInput>,\n  const TMessage extends\n    | ErrorMessage<IncludesIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): IncludesAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function includes(\n  requirement: ContentRequirement<ContentInput>,\n  message?: ErrorMessage<\n    IncludesIssue<ContentInput, ContentRequirement<ContentInput>>\n  >\n): IncludesAction<\n  ContentInput,\n  ContentRequirement<ContentInput>,\n  | ErrorMessage<IncludesIssue<ContentInput, ContentRequirement<ContentInput>>>\n  | undefined\n> {\n  const expects = _stringify(requirement);\n  return {\n    kind: 'validation',\n    type: 'includes',\n    reference: includes,\n    async: false,\n    expects,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      // @ts-expect-error\n      if (dataset.typed && !dataset.value.includes(this.requirement)) {\n        _addIssue(this, 'content', dataset, config, {\n          received: `!${expects}`,\n        });\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/includes/index.ts",
    "content": "export * from './includes.ts';\n"
  },
  {
    "path": "library/src/actions/index.ts",
    "content": "export * from './args/index.ts';\nexport * from './await/index.ts';\nexport * from './base64/index.ts';\nexport * from './bic/index.ts';\nexport * from './brand/index.ts';\nexport * from './bytes/index.ts';\nexport * from './check/index.ts';\nexport * from './checkItems/index.ts';\nexport * from './creditCard/index.ts';\nexport * from './cuid2/index.ts';\nexport * from './decimal/index.ts';\nexport * from './description/index.ts';\nexport * from './digits/index.ts';\nexport * from './domain/index.ts';\nexport * from './email/index.ts';\nexport * from './emoji/index.ts';\nexport * from './empty/index.ts';\nexport * from './endsWith/index.ts';\nexport * from './entries/index.ts';\nexport * from './everyItem/index.ts';\nexport * from './examples/index.ts';\nexport * from './excludes/index.ts';\nexport * from './filterItems/index.ts';\nexport * from './findItem/index.ts';\nexport * from './finite/index.ts';\nexport * from './flavor/index.ts';\nexport * from './graphemes/index.ts';\nexport * from './gtValue/index.ts';\nexport * from './guard/index.ts';\nexport * from './hash/index.ts';\nexport * from './hexadecimal/index.ts';\nexport * from './hexColor/index.ts';\nexport * from './imei/index.ts';\nexport * from './includes/index.ts';\nexport * from './integer/index.ts';\nexport * from './ip/index.ts';\nexport * from './ipv4/index.ts';\nexport * from './ipv6/index.ts';\nexport * from './isbn/index.ts';\nexport * from './isrc/index.ts';\nexport * from './isoDate/index.ts';\nexport * from './isoDateTime/index.ts';\nexport * from './isoTime/index.ts';\nexport * from './isoTimeSecond/index.ts';\nexport * from './isoTimestamp/index.ts';\nexport * from './isoWeek/index.ts';\nexport * from './jwsCompact/index.ts';\nexport * from './length/index.ts';\nexport * from './ltValue/index.ts';\nexport * from './mac/index.ts';\nexport * from './mac48/index.ts';\nexport * from './mac64/index.ts';\nexport * from './mapItems/index.ts';\nexport * from './maxBytes/index.ts';\nexport * from './maxEntries/index.ts';\nexport * from './maxGraphemes/index.ts';\nexport * from './maxLength/index.ts';\nexport * from './maxSize/index.ts';\nexport * from './maxValue/index.ts';\nexport * from './maxWords/index.ts';\nexport * from './metadata/index.ts';\nexport * from './mimeType/index.ts';\nexport * from './minBytes/index.ts';\nexport * from './minEntries/index.ts';\nexport * from './minGraphemes/index.ts';\nexport * from './minLength/index.ts';\nexport * from './minSize/index.ts';\nexport * from './minValue/index.ts';\nexport * from './minWords/index.ts';\nexport * from './multipleOf/index.ts';\nexport * from './nanoid/index.ts';\nexport * from './nonEmpty/index.ts';\nexport * from './normalize/index.ts';\nexport * from './notBytes/index.ts';\nexport * from './notEntries/index.ts';\nexport * from './notGraphemes/index.ts';\nexport * from './notLength/index.ts';\nexport * from './notSize/index.ts';\nexport * from './notValue/index.ts';\nexport * from './notValues/index.ts';\nexport * from './notWords/index.ts';\nexport * from './octal/index.ts';\nexport * from './parseBoolean/index.ts';\nexport * from './parseJson/index.ts';\nexport * from './partialCheck/index.ts';\nexport * from './rawCheck/index.ts';\nexport * from './rawTransform/index.ts';\nexport * from './readonly/index.ts';\nexport * from './reduceItems/index.ts';\nexport * from './regex/index.ts';\nexport * from './returns/index.ts';\nexport * from './rfcEmail/index.ts';\nexport * from './safeInteger/index.ts';\nexport * from './size/index.ts';\nexport * from './slug/index.ts';\nexport * from './someItem/index.ts';\nexport * from './sortItems/index.ts';\nexport * from './startsWith/index.ts';\nexport * from './stringifyJson/index.ts';\nexport * from './title/index.ts';\nexport * from './toBigint/index.ts';\nexport * from './toBoolean/index.ts';\nexport * from './toDate/index.ts';\nexport * from './toLowerCase/index.ts';\nexport * from './toMaxValue/index.ts';\nexport * from './toMinValue/index.ts';\nexport * from './toNumber/index.ts';\nexport * from './toString/index.ts';\nexport * from './toUpperCase/index.ts';\nexport * from './transform/index.ts';\nexport * from './trim/index.ts';\nexport * from './trimEnd/index.ts';\nexport * from './trimStart/index.ts';\nexport * from './types.ts';\nexport * from './ulid/index.ts';\nexport * from './url/index.ts';\nexport * from './uuid/index.ts';\nexport * from './value/index.ts';\nexport * from './values/index.ts';\nexport * from './words/index.ts';\n"
  },
  {
    "path": "library/src/actions/integer/index.ts",
    "content": "export * from './integer.ts';\n"
  },
  {
    "path": "library/src/actions/integer/integer.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { integer, type IntegerAction, type IntegerIssue } from './integer.ts';\n\ndescribe('integer', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = IntegerAction<number, undefined>;\n      expectTypeOf(integer()).toEqualTypeOf<Action>();\n      expectTypeOf(integer(undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(integer('message')).toEqualTypeOf<\n        IntegerAction<number, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(integer(() => 'message')).toEqualTypeOf<\n        IntegerAction<number, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = IntegerAction<number, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<IntegerIssue<number>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/integer/integer.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { NumberIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { integer, type IntegerAction, type IntegerIssue } from './integer.ts';\n\ndescribe('integer', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<IntegerAction<number, never>, 'message'> = {\n      kind: 'validation',\n      type: 'integer',\n      reference: integer,\n      expects: null,\n      requirement: expect.any(Function),\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: IntegerAction<number, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(integer()).toStrictEqual(action);\n      expect(integer(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(integer('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies IntegerAction<number, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(integer(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies IntegerAction<number, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = integer();\n\n    test('for untyped inputs', () => {\n      const issues: [NumberIssue] = [\n        {\n          kind: 'schema',\n          type: 'number',\n          input: null,\n          expected: 'number',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for integer numbers', () => {\n      expectNoActionIssue(action, [\n        0,\n        123456789,\n        -123456789,\n        Number.MAX_SAFE_INTEGER,\n        Number.MIN_SAFE_INTEGER,\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = integer('message');\n    const baseIssue: Omit<IntegerIssue<number>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'integer',\n      expected: null,\n      message: 'message',\n      requirement: expect.any(Function),\n    };\n\n    test('for floating point numbers', () => {\n      expectActionIssue(action, baseIssue, [0.1, 12.34, -1 / 3, Math.PI]);\n    });\n\n    test('for infinite numbers', () => {\n      expectActionIssue(action, baseIssue, [Infinity, -Infinity]);\n    });\n\n    test('for not a number', () => {\n      expectActionIssue(action, baseIssue, [NaN]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/integer/integer.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * Integer issue interface.\n */\nexport interface IntegerIssue<TInput extends number> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'integer';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `${number}`;\n  /**\n   * The validation function.\n   */\n  readonly requirement: (input: number) => boolean;\n}\n\n/**\n * Integer action interface.\n */\nexport interface IntegerAction<\n  TInput extends number,\n  TMessage extends ErrorMessage<IntegerIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, IntegerIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'integer';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof integer;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The validation function.\n   */\n  readonly requirement: (input: number) => boolean;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an [integer](https://en.wikipedia.org/wiki/Integer) validation action.\n *\n * @returns An integer action.\n */\nexport function integer<TInput extends number>(): IntegerAction<\n  TInput,\n  undefined\n>;\n\n/**\n * Creates an [integer](https://en.wikipedia.org/wiki/Integer) validation action.\n *\n * @param message The error message.\n *\n * @returns An integer action.\n */\nexport function integer<\n  TInput extends number,\n  const TMessage extends ErrorMessage<IntegerIssue<TInput>> | undefined,\n>(message: TMessage): IntegerAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function integer(\n  message?: ErrorMessage<IntegerIssue<number>>\n): IntegerAction<number, ErrorMessage<IntegerIssue<number>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'integer',\n    reference: integer,\n    async: false,\n    expects: null,\n    requirement: Number.isInteger,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement(dataset.value)) {\n        _addIssue(this, 'integer', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/ip/index.ts",
    "content": "export * from './ip.ts';\n"
  },
  {
    "path": "library/src/actions/ip/ip.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { ip, type IpAction, type IpIssue } from './ip.ts';\n\ndescribe('ip', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = IpAction<string, undefined>;\n      expectTypeOf(ip<string>()).toEqualTypeOf<Action>();\n      expectTypeOf(ip<string, undefined>(undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(ip<string, 'message'>('message')).toEqualTypeOf<\n        IpAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(ip<string, () => string>(() => 'message')).toEqualTypeOf<\n        IpAction<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = IpAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<IpIssue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/ip/ip.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { IP_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { ip, type IpAction, type IpIssue } from './ip.ts';\n\n// TODO: Improve tests to cover all possible scenarios based on the regex used.\n\ndescribe('ip', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<IpAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'ip',\n      reference: ip,\n      expects: null,\n      requirement: IP_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: IpAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(ip()).toStrictEqual(action);\n      expect(ip(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(ip('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies IpAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(ip(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies IpAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = ip();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for IPv4 address', () => {\n      expectNoActionIssue(action, [\n        '192.168.1.1',\n        '127.0.0.1',\n        '0.0.0.0',\n        '255.255.255.255',\n      ]);\n    });\n\n    test('for IPv6 address', () => {\n      expectNoActionIssue(action, [\n        '2001:0db8:85a3:0000:0000:8a2e:0370:7334',\n        'FE80:0000:0000:0000:0202:B3FF:FE1E:8329',\n        'fe80::1ff:fe23:4567:890a',\n        '2001:db8:85a3:8d3:1319:8a2e:370:7348',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = ip('message');\n    const baseIssue: Omit<IpIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'ip',\n      expected: null,\n      message: 'message',\n      requirement: IP_REGEX,\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for invalid IPv4 address', () => {\n      expectActionIssue(action, baseIssue, [\n        '1',\n        '-1.0.0.0',\n        '0..0.0.0',\n        '1234.0.0.0',\n        '256.256.256.256',\n        '1.2.3',\n        '0.0.0.0.0',\n        'a.a.a.a',\n      ]);\n    });\n\n    test('for invalid IPv6 address', () => {\n      expectActionIssue(action, baseIssue, [\n        'd329:1be4:25b4:db47:a9d1:dc71:4926:992c:14af',\n        'd5e7:7214:2b78::3906:85e6:53cc:709:32ba',\n        '8f69::c757:395e:976e::3441',\n        '54cb::473f:d516:0.255.256.22',\n        '54cb::473f:d516:192.168.1',\n        'test:test:test:test:test:test:test:test',\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/ip/ip.ts",
    "content": "import { IP_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * IP issue interface.\n */\nexport interface IpIssue<TInput extends string> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'ip';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The IP regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * IP action interface.\n */\nexport interface IpAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<IpIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, IpIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'ip';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof ip;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The IP regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an [IP address](https://en.wikipedia.org/wiki/IP_address) validation action.\n *\n * @returns An IP action.\n */\nexport function ip<TInput extends string>(): IpAction<TInput, undefined>;\n\n/**\n * Creates an [IP address](https://en.wikipedia.org/wiki/IP_address) validation action.\n *\n * @param message The error message.\n *\n * @returns An IP action.\n */\nexport function ip<\n  TInput extends string,\n  const TMessage extends ErrorMessage<IpIssue<TInput>> | undefined,\n>(message: TMessage): IpAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function ip(\n  message?: ErrorMessage<IpIssue<string>>\n): IpAction<string, ErrorMessage<IpIssue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'ip',\n    reference: ip,\n    async: false,\n    expects: null,\n    requirement: IP_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'IP', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/ipv4/index.ts",
    "content": "export * from './ipv4.ts';\n"
  },
  {
    "path": "library/src/actions/ipv4/ipv4.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { ipv4, type Ipv4Action, type Ipv4Issue } from './ipv4.ts';\n\ndescribe('ipv4', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = Ipv4Action<string, undefined>;\n      expectTypeOf(ipv4<string>()).toEqualTypeOf<Action>();\n      expectTypeOf(ipv4<string, undefined>(undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(ipv4<string, 'message'>('message')).toEqualTypeOf<\n        Ipv4Action<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(ipv4<string, () => string>(() => 'message')).toEqualTypeOf<\n        Ipv4Action<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = Ipv4Action<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<Ipv4Issue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/ipv4/ipv4.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { IPV4_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { ipv4, type Ipv4Action, type Ipv4Issue } from './ipv4.ts';\n\ndescribe('ipv4', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<Ipv4Action<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'ipv4',\n      reference: ipv4,\n      expects: null,\n      requirement: IPV4_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: Ipv4Action<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(ipv4()).toStrictEqual(action);\n      expect(ipv4(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(ipv4('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies Ipv4Action<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(ipv4(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies Ipv4Action<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = ipv4();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for IPv4 address', () => {\n      expectNoActionIssue(action, [\n        '192.168.1.1',\n        '127.0.0.1',\n        '10.10.10.10',\n        '90.90.90.90',\n        '50.60.70.80',\n        '100.100.100.100',\n        '190.190.190.190',\n        '150.150.150.150',\n        '200.200.200.200',\n        '240.240.240.240',\n        '0.0.0.0',\n        '9.9.9.9',\n        '5.5.5.5',\n        '250.250.250.250',\n        '255.255.255.255',\n        '19.19.19.19',\n        '99.99.99.99',\n        '59.69.79.89',\n        '109.109.109.109',\n        '199.199.199.199',\n        '159.159.159.159',\n        '209.209.209.209',\n        '249.249.249.249',\n        '15.15.15.15',\n        '95.95.95.95',\n        '55.65.75.85',\n        '105.105.105.105',\n        '195.195.195.195',\n        '155.155.155.155',\n        '205.205.205.205',\n        '245.245.245.245',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = ipv4('message');\n    const baseIssue: Omit<Ipv4Issue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'ipv4',\n      expected: null,\n      message: 'message',\n      requirement: IPV4_REGEX,\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '  ', '\\n', '\\t']);\n    });\n\n    test('for invalid IPv4 address', () => {\n      expectActionIssue(action, baseIssue, [\n        '1',\n        '-1.0.0.0',\n        '0..0.0.0',\n        '1234.0.0.0',\n        '1.2.3',\n        '0.0.0.0.0',\n        'a.a.a.a',\n        '+1.2.3.4',\n        ' 0.0.0.0',\n        '0.0.0.0 ',\n        '0.0 0.0',\n        '0-0-0-0',\n        '00.00.00.00',\n        '256.256.256.256',\n        '-1.-1.-1.-1',\n        '259.259.259.259',\n        '09.09.09.09',\n        '05.05.05.05',\n      ]);\n    });\n\n    test('for IPv6 address', () => {\n      expectActionIssue(action, baseIssue, [\n        '2001:0db8:85a3:0000:0000:8a2e:0370:7334',\n        'FE80:0000:0000:0000:0202:B3FF:FE1E:8329',\n        'fe80::1ff:fe23:4567:890a',\n        '2001:db8:85a3:8d3:1319:8a2e:370:7348',\n        // IPv4-mapped IPv6\n        '::ffff:192.168.1.1',\n        '::ffff:0.0.0.0',\n        '::ffff:255.255.255.255',\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/ipv4/ipv4.ts",
    "content": "import { IPV4_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * IPv4 issue interface.\n */\nexport interface Ipv4Issue<TInput extends string> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'ipv4';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The IPv4 regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * IPv4 action interface.\n */\nexport interface Ipv4Action<\n  TInput extends string,\n  TMessage extends ErrorMessage<Ipv4Issue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, Ipv4Issue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'ipv4';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof ipv4;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The IPv4 regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an [IPv4](https://en.wikipedia.org/wiki/IPv4) address validation action.\n *\n * @returns An IPv4 action.\n */\nexport function ipv4<TInput extends string>(): Ipv4Action<TInput, undefined>;\n\n/**\n * Creates an [IPv4](https://en.wikipedia.org/wiki/IPv4) address validation action.\n *\n * @param message The error message.\n *\n * @returns An IPv4 action.\n */\nexport function ipv4<\n  TInput extends string,\n  const TMessage extends ErrorMessage<Ipv4Issue<TInput>> | undefined,\n>(message: TMessage): Ipv4Action<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function ipv4(\n  message?: ErrorMessage<Ipv4Issue<string>>\n): Ipv4Action<string, ErrorMessage<Ipv4Issue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'ipv4',\n    reference: ipv4,\n    async: false,\n    expects: null,\n    requirement: IPV4_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'IPv4', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/ipv6/index.ts",
    "content": "export * from './ipv6.ts';\n"
  },
  {
    "path": "library/src/actions/ipv6/ipv6.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { ipv6, type Ipv6Action, type Ipv6Issue } from './ipv6.ts';\n\ndescribe('ipv6', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = Ipv6Action<string, undefined>;\n      expectTypeOf(ipv6<string>()).toEqualTypeOf<Action>();\n      expectTypeOf(ipv6<string, undefined>(undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(ipv6<string, 'message'>('message')).toEqualTypeOf<\n        Ipv6Action<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(ipv6<string, () => string>(() => 'message')).toEqualTypeOf<\n        Ipv6Action<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = Ipv6Action<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<Ipv6Issue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/ipv6/ipv6.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { IPV6_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { ipv6, type Ipv6Action, type Ipv6Issue } from './ipv6.ts';\n\n// TODO: Improve tests to cover all possible scenarios based on the regex used.\n\ndescribe('ipv6', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<Ipv6Action<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'ipv6',\n      reference: ipv6,\n      expects: null,\n      requirement: IPV6_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: Ipv6Action<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(ipv6()).toStrictEqual(action);\n      expect(ipv6(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(ipv6('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies Ipv6Action<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(ipv6(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies Ipv6Action<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = ipv6();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for IPv6 address', () => {\n      expectNoActionIssue(action, [\n        '2001:0db8:85a3:0000:0000:8a2e:0370:7334',\n        'FE80:0000:0000:0000:0202:B3FF:FE1E:8329',\n        'fe80::1ff:fe23:4567:890a',\n        '2001:db8:85a3:8d3:1319:8a2e:370:7348',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = ipv6('message');\n    const baseIssue: Omit<Ipv6Issue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'ipv6',\n      expected: null,\n      message: 'message',\n      requirement: IPV6_REGEX,\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for invalid IPv6 address', () => {\n      expectActionIssue(action, baseIssue, [\n        'd329:1be4:25b4:db47:a9d1:dc71:4926:992c:14af',\n        'd5e7:7214:2b78::3906:85e6:53cc:709:32ba',\n        '8f69::c757:395e:976e::3441',\n        '54cb::473f:d516:0.255.256.22',\n        '54cb::473f:d516:192.168.1',\n        'test:test:test:test:test:test:test:test',\n      ]);\n    });\n\n    test('for IPv4 address', () => {\n      expectActionIssue(action, baseIssue, [\n        '192.168.1.1',\n        '127.0.0.1',\n        '0.0.0.0',\n        '255.255.255.255',\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/ipv6/ipv6.ts",
    "content": "import { IPV6_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * IPv6 issue interface.\n */\nexport interface Ipv6Issue<TInput extends string> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'ipv6';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The IPv6 regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * IPv6 action interface.\n */\nexport interface Ipv6Action<\n  TInput extends string,\n  TMessage extends ErrorMessage<Ipv6Issue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, Ipv6Issue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'ipv6';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof ipv6;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The IPv6 regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an [IPv6](https://en.wikipedia.org/wiki/IPv6) address validation action.\n *\n * @returns An IPv6 action.\n */\nexport function ipv6<TInput extends string>(): Ipv6Action<TInput, undefined>;\n\n/**\n * Creates an [IPv6](https://en.wikipedia.org/wiki/IPv6) address validation action.\n *\n * @param message The error message.\n *\n * @returns An IPv6 action.\n */\nexport function ipv6<\n  TInput extends string,\n  const TMessage extends ErrorMessage<Ipv6Issue<TInput>> | undefined,\n>(message: TMessage): Ipv6Action<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function ipv6(\n  message?: ErrorMessage<Ipv6Issue<string>>\n): Ipv6Action<string, ErrorMessage<Ipv6Issue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'ipv6',\n    reference: ipv6,\n    async: false,\n    expects: null,\n    requirement: IPV6_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'IPv6', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/isbn/index.ts",
    "content": "export * from './isbn.ts';\n"
  },
  {
    "path": "library/src/actions/isbn/isbn.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { isbn, type IsbnAction, type IsbnIssue } from './isbn.ts';\n\ndescribe('isbn', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = IsbnAction<string, undefined>;\n      expectTypeOf(isbn<string>()).toEqualTypeOf<Action>();\n      expectTypeOf(isbn<string, undefined>(undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(isbn<string, 'message'>('message')).toEqualTypeOf<\n        IsbnAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(isbn<string, () => string>(() => 'message')).toEqualTypeOf<\n        IsbnAction<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = IsbnAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<IsbnIssue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/isbn/isbn.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { isbn, type IsbnAction, type IsbnIssue } from './isbn.ts';\n\ndescribe('ISBN', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<IsbnAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'isbn',\n      reference: isbn,\n      expects: null,\n      requirement: expect.any(Function),\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: IsbnAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(isbn()).toStrictEqual(action);\n      expect(isbn(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(isbn('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies IsbnAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(isbn(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies IsbnAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = isbn();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for ISBN-10', () => {\n      expectNoActionIssue(action, [\n        '4873118735',\n        '4-87311-873-5',\n        '4 87311 873 5',\n        '020530902X',\n        '0-205-30902-X',\n        '0471958697', // check digit 0\n        '0-306 40615-2', // mixed separators\n      ]);\n    });\n\n    test('for ISBN-13', () => {\n      expectNoActionIssue(action, [\n        '978-4873118734',\n        '9784873118734',\n        '978-4-87311-873-4',\n        '978 4 87311 873 4',\n        '9790000000001', // 979 prefix\n        '9791843123391', // 979 prefix\n        '9783161484100', // check digit 0\n        '978-0 306 40615-7', // mixed separators\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = isbn('message');\n    const baseIssue: Omit<IsbnIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'isbn',\n      expected: null,\n      message: 'message',\n      requirement: expect.any(Function),\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for ISBN-10', () => {\n      expectActionIssue(action, baseIssue, [\n        '4873118736', // invalid check digit\n        '4 87311 873 6', // invalid check digit\n        '020530902x', // lowercase 'x'\n        '020530902 x', // lowercase 'x'\n        '020530902', // too short\n        '020530902XX', // too long\n        'X234567890', // X in wrong position\n        '12345X7890', // X in middle\n      ]);\n    });\n\n    test('for ISBN-13', () => {\n      expectActionIssue(action, baseIssue, [\n        '9784873118735', // invalid check digit\n        '978 4873118735', // invalid check digit\n        '978487311873', // too short\n        '97848731187345', // too long\n        '978030640615X', // X not allowed\n        '9770000000001', // invalid prefix\n        '9800000000002', // invalid prefix\n      ]);\n    });\n\n    test('for other invalid formats', () => {\n      expectActionIssue(action, baseIssue, [\n        'abc1234567890', // letters\n        '978abc0000000', // letters in ISBN-13\n        '12345', // too short for both\n        '97804739123456', // too long (14 digits)\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/isbn/isbn.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\nimport { _isIsbn10, _isIsbn13 } from './utils/index.ts';\n\n/**\n * ISBN issue interface.\n */\nexport interface IsbnIssue<TInput extends string> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'isbn';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The validation function.\n   */\n  readonly requirement: (input: string) => boolean;\n}\n\n/**\n * ISBN action interface.\n */\nexport interface IsbnAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<IsbnIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, IsbnIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'isbn';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof isbn;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The validation function.\n   */\n  readonly requirement: (input: string) => boolean;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * ISBN separator regex.\n */\nconst ISBN_SEPARATOR_REGEX = /[- ]/gu;\n\n/**\n * ISBN-10 detection regex.\n */\nconst ISBN_10_DETECTION_REGEX = /^\\d{9}[\\dX]$/u;\n\n/**\n * ISBN-13 detection regex.\n */\nconst ISBN_13_DETECTION_REGEX = /^\\d{13}$/u;\n\n/**\n * Creates an [ISBN](https://en.wikipedia.org/wiki/ISBN) action.\n *\n * @returns An ISBN action.\n *\n * @beta\n */\nexport function isbn<TInput extends string>(): IsbnAction<TInput, undefined>;\n\n/**\n * Creates an [ISBN](https://en.wikipedia.org/wiki/ISBN) action.\n *\n * @param message The error message.\n *\n * @returns An ISBN action.\n *\n * @beta\n */\nexport function isbn<\n  TInput extends string,\n  const TMessage extends ErrorMessage<IsbnIssue<TInput>> | undefined,\n>(message: TMessage): IsbnAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function isbn(\n  message?: ErrorMessage<IsbnIssue<string>>\n): IsbnAction<string, ErrorMessage<IsbnIssue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'isbn',\n    reference: isbn,\n    async: false,\n    expects: null,\n    requirement(input) {\n      const replacedInput = input.replace(ISBN_SEPARATOR_REGEX, '');\n      if (ISBN_10_DETECTION_REGEX.test(replacedInput)) {\n        return _isIsbn10(replacedInput);\n      } else if (ISBN_13_DETECTION_REGEX.test(replacedInput)) {\n        return _isIsbn13(replacedInput);\n      }\n      return false;\n    },\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement(dataset.value)) {\n        _addIssue(this, 'ISBN', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/isbn/utils/_isIsbn10.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { _isIsbn10 } from './_isIsbn10.ts';\n\ndescribe('_isIsbn10', () => {\n  test('should return true', () => {\n    expect(_isIsbn10('0306406152')).toBe(true);\n    expect(_isIsbn10('0451526538')).toBe(true);\n    expect(_isIsbn10('0007149689')).toBe(true);\n    expect(_isIsbn10('043942089X')).toBe(true);\n    expect(_isIsbn10('097522980X')).toBe(true);\n    expect(_isIsbn10('0684843285')).toBe(true);\n    expect(_isIsbn10('1566199093')).toBe(true);\n  });\n\n  test('should return false', () => {\n    expect(_isIsbn10('0306406153')).toBe(false);\n    expect(_isIsbn10('0451526539')).toBe(false);\n    expect(_isIsbn10('0007149680')).toBe(false);\n    expect(_isIsbn10('0439420891')).toBe(false);\n    expect(_isIsbn10('0975229801')).toBe(false);\n    expect(_isIsbn10('0684843286')).toBe(false);\n    expect(_isIsbn10('1566199094')).toBe(false);\n  });\n});\n"
  },
  {
    "path": "library/src/actions/isbn/utils/_isIsbn10.ts",
    "content": "/**\n * [Validates an ISBN-10](https://en.wikipedia.org/wiki/ISBN#ISBN-10_check_digits).\n *\n * @param input The input value.\n *\n * @returns `true` if the input is a valid ISBN-10, `false` otherwise.\n *\n * @internal\n */\nexport function _isIsbn10(input: string): boolean {\n  const digits = input.split('').map((c) => (c === 'X' ? 10 : parseInt(c)));\n  let sum = 0;\n  for (let i = 0; i < 10; i++) {\n    sum += digits[i] * (10 - i);\n  }\n  return sum % 11 === 0;\n}\n"
  },
  {
    "path": "library/src/actions/isbn/utils/_isIsbn13.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { _isIsbn13 } from './_isIsbn13.ts';\n\ndescribe('_isIsbn13', () => {\n  test('should return true', () => {\n    expect(_isIsbn13('9780306406157')).toBe(true);\n    expect(_isIsbn13('9780451526533')).toBe(true);\n    expect(_isIsbn13('9780007149681')).toBe(true);\n    expect(_isIsbn13('9780439420891')).toBe(true);\n    expect(_isIsbn13('9780975229804')).toBe(true);\n    expect(_isIsbn13('9780684843285')).toBe(true);\n    expect(_isIsbn13('9781566199094')).toBe(true);\n  });\n\n  test('should return false', () => {\n    expect(_isIsbn13('9780306406158')).toBe(false);\n    expect(_isIsbn13('9780451526534')).toBe(false);\n    expect(_isIsbn13('9780007149682')).toBe(false);\n    expect(_isIsbn13('9780439420892')).toBe(false);\n    expect(_isIsbn13('9780975229805')).toBe(false);\n    expect(_isIsbn13('9780684843286')).toBe(false);\n    expect(_isIsbn13('9781566199095')).toBe(false);\n  });\n});\n"
  },
  {
    "path": "library/src/actions/isbn/utils/_isIsbn13.ts",
    "content": "/**\n * [Validates an ISBN-13](https://en.wikipedia.org/wiki/ISBN#ISBN-13_check_digit_calculation).\n *\n * @param input The input value.\n *\n * @returns `true` if the input is a valid ISBN-13, `false` otherwise.\n *\n * @internal\n */\nexport function _isIsbn13(input: string): boolean {\n  const digits = input.split('').map((c) => parseInt(c));\n  let sum = 0;\n  for (let i = 0; i < 13; i++) {\n    sum += digits[i] * (i % 2 === 0 ? 1 : 3);\n  }\n  return sum % 10 === 0;\n}\n"
  },
  {
    "path": "library/src/actions/isbn/utils/index.ts",
    "content": "export * from './_isIsbn10.ts';\nexport * from './_isIsbn13.ts';\n"
  },
  {
    "path": "library/src/actions/isoDate/index.ts",
    "content": "export * from './isoDate.ts';\n"
  },
  {
    "path": "library/src/actions/isoDate/isoDate.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { isoDate, type IsoDateAction, type IsoDateIssue } from './isoDate.ts';\n\ndescribe('isoDate', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = IsoDateAction<string, undefined>;\n      expectTypeOf(isoDate<string>()).toEqualTypeOf<Action>();\n      expectTypeOf(\n        isoDate<string, undefined>(undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(isoDate<string, 'message'>('message')).toEqualTypeOf<\n        IsoDateAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        isoDate<string, () => string>(() => 'message')\n      ).toEqualTypeOf<IsoDateAction<string, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = IsoDateAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<IsoDateIssue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/isoDate/isoDate.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { ISO_DATE_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue } from '../../vitest/expectActionIssue.ts';\nimport { expectNoActionIssue } from '../../vitest/expectNoActionIssue.ts';\nimport { isoDate, type IsoDateAction, type IsoDateIssue } from './isoDate.ts';\n\ndescribe('isoDate', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<IsoDateAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'iso_date',\n      reference: isoDate,\n      expects: null,\n      requirement: ISO_DATE_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: IsoDateAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(isoDate()).toStrictEqual(action);\n      expect(isoDate(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(isoDate('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies IsoDateAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(isoDate(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies IsoDateAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = isoDate();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid ISO dates', () => {\n      expectNoActionIssue(action, ['0000-01-01', '9999-12-31', '2024-05-06']);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = isoDate('message');\n    const baseIssue: Omit<IsoDateIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'iso_date',\n      expected: null,\n      message: 'message',\n      requirement: ISO_DATE_REGEX,\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for blank spaces', () => {\n      expectActionIssue(action, baseIssue, [\n        ' 0000-01-01',\n        '0000-01-01 ',\n        ' 0000-01-01 ',\n      ]);\n    });\n\n    test('for missing separator', () => {\n      expectActionIssue(action, baseIssue, [\n        '0000-0101',\n        '000001-01',\n        '00000101',\n      ]);\n    });\n\n    test('for double separators', () => {\n      expectActionIssue(action, baseIssue, [\n        '0000--01-01',\n        '0000-01--01',\n        '0000--01--01',\n      ]);\n    });\n\n    test('for wrong separators', () => {\n      expectActionIssue(action, baseIssue, [\n        '0000 01 01',\n        '0000_01_01',\n        '0000/01/01',\n        '0000–01–01',\n        '0000:01:01',\n      ]);\n    });\n\n    test('for invalid year', () => {\n      expectActionIssue(action, baseIssue, [\n        '-01-01', // missing digits\n        '0-01-01', // 1 digit\n        '00-01-01', // 2 digit\n        '000-01-01', // 3 digits\n        '00000-01-01', // 5 digits\n      ]);\n    });\n\n    test('for invalid month', () => {\n      expectActionIssue(action, baseIssue, [\n        '0000-01', // missing digits\n        '0000-1-01', // 1 digit\n        '0000-010-01', // 3 digits\n        '0000-00-01', // 00\n        '0000-13-01', // 13\n        '0000-99-01', // 99\n      ]);\n    });\n\n    test('for invalid day', () => {\n      expectActionIssue(action, baseIssue, [\n        '0000-01', // missing digits\n        '0000-01-1', // 1 digit\n        '0000-01-010', // 3 digits\n        '0000-01-00', // 00\n        '0000-01-32', // 32\n        '0000-01-99', // 99\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/isoDate/isoDate.ts",
    "content": "import { ISO_DATE_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * ISO date issue interface.\n */\nexport interface IsoDateIssue<TInput extends string> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'iso_date';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The ISO date regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * ISO date action interface.\n */\nexport interface IsoDateAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<IsoDateIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, IsoDateIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'iso_date';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof isoDate;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The ISO date regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an [ISO date](https://en.wikipedia.org/wiki/ISO_8601) validation action.\n *\n * Format: yyyy-mm-dd\n *\n * Hint: The regex used cannot validate the maximum number of days based on\n * year and month. For example, \"2023-06-31\" is valid although June has only\n * 30 days.\n *\n * @returns An ISO date action.\n */\nexport function isoDate<TInput extends string>(): IsoDateAction<\n  TInput,\n  undefined\n>;\n\n/**\n * Creates an [ISO date](https://en.wikipedia.org/wiki/ISO_8601) validation action.\n *\n * Format: yyyy-mm-dd\n *\n * Hint: The regex used cannot validate the maximum number of days based on\n * year and month. For example, \"2023-06-31\" is valid although June has only\n * 30 days.\n *\n * @param message The error message.\n *\n * @returns An ISO date action.\n */\nexport function isoDate<\n  TInput extends string,\n  const TMessage extends ErrorMessage<IsoDateIssue<TInput>> | undefined,\n>(message: TMessage): IsoDateAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function isoDate(\n  message?: ErrorMessage<IsoDateIssue<string>>\n): IsoDateAction<string, ErrorMessage<IsoDateIssue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'iso_date',\n    reference: isoDate,\n    async: false,\n    expects: null,\n    requirement: ISO_DATE_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'date', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/isoDateTime/index.ts",
    "content": "export * from './isoDateTime.ts';\n"
  },
  {
    "path": "library/src/actions/isoDateTime/isoDateTime.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  isoDateTime,\n  type IsoDateTimeAction,\n  type IsoDateTimeIssue,\n} from './isoDateTime.ts';\n\ndescribe('isoDateTime', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = IsoDateTimeAction<string, undefined>;\n      expectTypeOf(isoDateTime<string>()).toEqualTypeOf<Action>();\n      expectTypeOf(\n        isoDateTime<string, undefined>(undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(isoDateTime<string, 'message'>('message')).toEqualTypeOf<\n        IsoDateTimeAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        isoDateTime<string, () => string>(() => 'message')\n      ).toEqualTypeOf<IsoDateTimeAction<string, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = IsoDateTimeAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        IsoDateTimeIssue<string>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/isoDateTime/isoDateTime.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { ISO_DATE_TIME_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue } from '../../vitest/expectActionIssue.ts';\nimport { expectNoActionIssue } from '../../vitest/expectNoActionIssue.ts';\nimport {\n  isoDateTime,\n  type IsoDateTimeAction,\n  type IsoDateTimeIssue,\n} from './isoDateTime.ts';\n\ndescribe('isoDateTime', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<IsoDateTimeAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'iso_date_time',\n      reference: isoDateTime,\n      expects: null,\n      requirement: ISO_DATE_TIME_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: IsoDateTimeAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(isoDateTime()).toStrictEqual(action);\n      expect(isoDateTime(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(isoDateTime('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies IsoDateTimeAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(isoDateTime(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies IsoDateTimeAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = isoDateTime();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for normal date times', () => {\n      expectNoActionIssue(action, [\n        '0000-01-01T00:00',\n        '9999-12-31T23:59',\n        '2023-07-11T19:34',\n      ]);\n    });\n\n    test('for space as separator', () => {\n      expectNoActionIssue(action, [\n        '0000-01-01 00:00',\n        '2023-07-11 17:26',\n        '9999-12-31 23:59',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = isoDateTime('message');\n    const baseIssue: Omit<IsoDateTimeIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'iso_date_time',\n      expected: null,\n      message: 'message',\n      requirement: ISO_DATE_TIME_REGEX,\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for blank spaces', () => {\n      expectActionIssue(action, baseIssue, [\n        ' 0000-01-01T00:00',\n        '0000-01-01T00:00 ',\n        ' 0000-01-01T00:00 ',\n      ]);\n    });\n\n    test('for missing separators', () => {\n      expectActionIssue(action, baseIssue, [\n        '000001-01T00:00',\n        '0000-0101T00:00',\n        '0000-01-0100:00',\n        '0000-01-01T0000',\n      ]);\n    });\n\n    test('for wrong separators', () => {\n      expectActionIssue(action, baseIssue, [\n        // Date separators\n        '0000 01 01T00:00',\n        '0000–01–01T00:00',\n        '0000/01/01T00:00',\n        '0000_01_01T00:00',\n        '0000:01:01T00:00',\n\n        // Date/time delimiter\n        '0000-01-01A00:00',\n        '0000-01-01U00:00',\n        '0000-01-01Z00:00',\n        '0000-01-01_00:00',\n        '0000-01-01-00:00',\n\n        // Time separators\n        '0000-01-01T00 00',\n        '0000-01-01T00-00',\n        '0000-01-01T00_00',\n        '0000-01-01T00–00',\n        '0000-01-01T00/00',\n        '0000-01-01T00.00',\n      ]);\n    });\n\n    test('for invalid year', () => {\n      expectActionIssue(action, baseIssue, [\n        '-01-01T00:00', // missing digits\n        '0-01-01T00:00', // 1 digit\n        '00-01-01T00:00', // 2 digit\n        '000-01-01T00:00', // 3 digits\n        '00000-01-01T00:00', // 5 digits\n      ]);\n    });\n\n    test('for invalid month', () => {\n      expectActionIssue(action, baseIssue, [\n        '0000-01T00:00', // missing digits\n        '0000-1-01T00:00', // 1 digit\n        '0000-010-01T00:00', // 3 digits\n        '0000-00-01T00:00', // 00\n        '0000-13-01T00:00', // 13\n        '0000-99-01T00:00', // 99\n      ]);\n    });\n\n    test('for invalid day', () => {\n      expectActionIssue(action, baseIssue, [\n        '0000-01T00:00', // missing digits\n        '0000-01-1T00:00', // 1 digit\n        '0000-01-010T00:00', // 3 digits\n        '0000-01-00T00:00', // 00\n        '0000-01-32T00:00', // 32\n        '0000-01-99T00:00', // 99\n      ]);\n    });\n\n    test('for invalid hour', () => {\n      expectActionIssue(action, baseIssue, [\n        '0000-01-01T:00', // missing digits\n        '0000-01-01T00', // missing digits\n        '0000-01-01T0:00', // 1 digit\n        '0000-01-01T000:00', // 3 digits\n        '0000-01-01T24:00', // 24\n        '0000-01-01T99:00', // 99\n      ]);\n    });\n\n    test('for invalid minute', () => {\n      expectActionIssue(action, baseIssue, [\n        '0000-01-01T00', // missing digits\n        '0000-01-01T00:0', // 1 digit\n        '0000-01-01T00:000', // 3 digits\n        '0000-01-01T00:60', // 60\n        '0000-01-01T00:99', // 99\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/isoDateTime/isoDateTime.ts",
    "content": "import { ISO_DATE_TIME_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * ISO date time issue interface.\n */\nexport interface IsoDateTimeIssue<TInput extends string>\n  extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'iso_date_time';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The ISO date time regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * ISO date time action interface.\n */\nexport interface IsoDateTimeAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<IsoDateTimeIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, IsoDateTimeIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'iso_date_time';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof isoDateTime;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The ISO date time regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an [ISO date time](https://en.wikipedia.org/wiki/ISO_8601) validation action.\n *\n * Format: yyyy-mm-ddThh:mm\n *\n * Hint: The regex used cannot validate the maximum number of days based on\n * year and month. For example, \"2023-06-31T00:00\" is valid although June has only\n * 30 days.\n *\n * Hint: The regex also allows a space as a separator between the date and time\n * parts instead of the \"T\" character.\n *\n * @returns An ISO date time action.\n */\nexport function isoDateTime<TInput extends string>(): IsoDateTimeAction<\n  TInput,\n  undefined\n>;\n\n/**\n * Creates an [ISO date time](https://en.wikipedia.org/wiki/ISO_8601) validation action.\n *\n * Format: yyyy-mm-ddThh:mm\n *\n * Hint: The regex used cannot validate the maximum number of days based on\n * year and month. For example, \"2023-06-31T00:00\" is valid although June has only\n * 30 days.\n *\n * Hint: The regex also allows a space as a separator between the date and time\n * parts instead of the \"T\" character.\n *\n * @param message The error message.\n *\n * @returns An ISO date time action.\n */\nexport function isoDateTime<\n  TInput extends string,\n  const TMessage extends ErrorMessage<IsoDateTimeIssue<TInput>> | undefined,\n>(message: TMessage): IsoDateTimeAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function isoDateTime(\n  message?: ErrorMessage<IsoDateTimeIssue<string>>\n): IsoDateTimeAction<\n  string,\n  ErrorMessage<IsoDateTimeIssue<string>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'iso_date_time',\n    reference: isoDateTime,\n    async: false,\n    expects: null,\n    requirement: ISO_DATE_TIME_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'date-time', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/isoTime/index.ts",
    "content": "export * from './isoTime.ts';\n"
  },
  {
    "path": "library/src/actions/isoTime/isoTime.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { isoTime, type IsoTimeAction, type IsoTimeIssue } from './isoTime.ts';\n\ndescribe('isoTime', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = IsoTimeAction<string, undefined>;\n      expectTypeOf(isoTime<string>()).toEqualTypeOf<Action>();\n      expectTypeOf(\n        isoTime<string, undefined>(undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(isoTime<string, 'message'>('message')).toEqualTypeOf<\n        IsoTimeAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        isoTime<string, () => string>(() => 'message')\n      ).toEqualTypeOf<IsoTimeAction<string, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = IsoTimeAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<IsoTimeIssue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/isoTime/isoTime.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { ISO_TIME_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue } from '../../vitest/expectActionIssue.ts';\nimport { expectNoActionIssue } from '../../vitest/expectNoActionIssue.ts';\nimport { isoTime, type IsoTimeAction, type IsoTimeIssue } from './isoTime.ts';\n\ndescribe('isoTime', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<IsoTimeAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'iso_time',\n      reference: isoTime,\n      expects: null,\n      requirement: ISO_TIME_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: IsoTimeAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(isoTime()).toStrictEqual(action);\n      expect(isoTime(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(isoTime('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies IsoTimeAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(isoTime(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies IsoTimeAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = isoTime();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid ISO times', () => {\n      expectNoActionIssue(action, ['00:00', '12:34', '23:59']);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = isoTime('message');\n    const baseIssue: Omit<IsoTimeIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'iso_time',\n      expected: null,\n      message: 'message',\n      requirement: ISO_TIME_REGEX,\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for blank spaces', () => {\n      expectActionIssue(action, baseIssue, [' 00:00', '00:00 ', ' 00:00 ']);\n    });\n\n    test('for missing separator', () => {\n      expectActionIssue(action, baseIssue, ['0000', '1234', '2359']);\n    });\n\n    test('for invalid separators', () => {\n      expectActionIssue(action, baseIssue, [\n        '00 00',\n        '00-00',\n        '00_00',\n        '00–00',\n        '00/00',\n        '00.00',\n      ]);\n    });\n\n    test('for mathematical signs', () => {\n      expectActionIssue(action, baseIssue, ['+00:00', '-12:34', '+23:59']);\n    });\n\n    test('for invalid hour', () => {\n      expectActionIssue(action, baseIssue, [\n        ':00', // missing digits\n        '0:00', // 1 digit\n        '000:00', // 3 digits\n        '24:00', // 24\n        '99:00', // 99\n      ]);\n    });\n\n    test('for invalid minute', () => {\n      expectActionIssue(action, baseIssue, [\n        '00:', // missing digits\n        '00:0', // 1 digit\n        '00:000', // 3 digits\n        '00:60', // 60\n        '00:99', // 99\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/isoTime/isoTime.ts",
    "content": "import { ISO_TIME_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * ISO time issue interface.\n */\nexport interface IsoTimeIssue<TInput extends string> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'iso_time';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The ISO time regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * ISO time action interface.\n */\nexport interface IsoTimeAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<IsoTimeIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, IsoTimeIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'iso_time';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof isoTime;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The ISO time regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an [ISO time](https://en.wikipedia.org/wiki/ISO_8601) validation action.\n *\n * Format: hh:mm\n *\n * @returns An ISO time action.\n */\nexport function isoTime<TInput extends string>(): IsoTimeAction<\n  TInput,\n  undefined\n>;\n\n/**\n * Creates an [ISO time](https://en.wikipedia.org/wiki/ISO_8601) validation action.\n *\n * Format: hh:mm\n *\n * @param message The error message.\n *\n * @returns An ISO time action.\n */\nexport function isoTime<\n  TInput extends string,\n  const TMessage extends ErrorMessage<IsoTimeIssue<TInput>> | undefined,\n>(message: TMessage): IsoTimeAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function isoTime(\n  message?: ErrorMessage<IsoTimeIssue<string>>\n): IsoTimeAction<string, ErrorMessage<IsoTimeIssue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'iso_time',\n    reference: isoTime,\n    async: false,\n    expects: null,\n    requirement: ISO_TIME_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'time', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/isoTimeSecond/index.ts",
    "content": "export * from './isoTimeSecond.ts';\n"
  },
  {
    "path": "library/src/actions/isoTimeSecond/isoTimeSecond.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  isoTimeSecond,\n  type IsoTimeSecondAction,\n  type IsoTimeSecondIssue,\n} from './isoTimeSecond.ts';\n\ndescribe('isoTimeSecond', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = IsoTimeSecondAction<string, undefined>;\n      expectTypeOf(isoTimeSecond<string>()).toEqualTypeOf<Action>();\n      expectTypeOf(\n        isoTimeSecond<string, undefined>(undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(isoTimeSecond<string, 'message'>('message')).toEqualTypeOf<\n        IsoTimeSecondAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        isoTimeSecond<string, () => string>(() => 'message')\n      ).toEqualTypeOf<IsoTimeSecondAction<string, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = IsoTimeSecondAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        IsoTimeSecondIssue<string>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/isoTimeSecond/isoTimeSecond.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { ISO_TIME_SECOND_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue } from '../../vitest/expectActionIssue.ts';\nimport { expectNoActionIssue } from '../../vitest/expectNoActionIssue.ts';\nimport {\n  isoTimeSecond,\n  type IsoTimeSecondAction,\n  type IsoTimeSecondIssue,\n} from './isoTimeSecond.ts';\n\ndescribe('isoTimeSecond', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<IsoTimeSecondAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'iso_time_second',\n      reference: isoTimeSecond,\n      expects: null,\n      requirement: ISO_TIME_SECOND_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: IsoTimeSecondAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(isoTimeSecond()).toStrictEqual(action);\n      expect(isoTimeSecond(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(isoTimeSecond('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies IsoTimeSecondAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(isoTimeSecond(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies IsoTimeSecondAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = isoTimeSecond();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid ISO time seconds', () => {\n      expectNoActionIssue(action, ['00:00:00', '12:34:56', '23:59:59']);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = isoTimeSecond('message');\n    const baseIssue: Omit<IsoTimeSecondIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'iso_time_second',\n      expected: null,\n      message: 'message',\n      requirement: ISO_TIME_SECOND_REGEX,\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for blank spaces', () => {\n      expectActionIssue(action, baseIssue, [\n        ' 00:00:00',\n        '00:00:00 ',\n        ' 00:00:00 ',\n      ]);\n    });\n\n    test('for missing separators', () => {\n      expectActionIssue(action, baseIssue, ['0000:00', '00:0000', '000000']);\n    });\n\n    test('for double separators', () => {\n      expectActionIssue(action, baseIssue, [\n        '00::00:00',\n        '00:00::00',\n        '00::00::00',\n      ]);\n    });\n\n    test('for wrong separators', () => {\n      expectActionIssue(action, baseIssue, [\n        '00 00 00',\n        '00/00/00',\n        '00H00M00',\n        '00_00_00',\n        '00.00.00',\n      ]);\n    });\n\n    test('for mathematical signs', () => {\n      expectActionIssue(action, baseIssue, [\n        '+00:00:00',\n        '-12:34:56',\n        '+23:59:59',\n      ]);\n    });\n\n    test('for invalid hour', () => {\n      expectActionIssue(action, baseIssue, [\n        ':00:00', // missing digits\n        '0:00:00', // 1 digit\n        '000:00:00', // 3 digits\n        '24:00:00', // 24\n        '99:00:00', // 99\n      ]);\n    });\n\n    test('for invalid minute', () => {\n      expectActionIssue(action, baseIssue, [\n        '00::00', // missing digits\n        '00:0:00', // 1 digit\n        '00:000:00', // 3 digits\n        '00:60:00', // 60\n        '00:99:00', // 99\n      ]);\n    });\n\n    test('for invalid second', () => {\n      expectActionIssue(action, baseIssue, [\n        '00:00:', // missing digits\n        '00:00:0', // 1 digit\n        '00:00:000', // 3 digits\n        '00:00:60', // 60\n        '00:00:99', // 99\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/isoTimeSecond/isoTimeSecond.ts",
    "content": "import { ISO_TIME_SECOND_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * ISO time second issue interface.\n */\nexport interface IsoTimeSecondIssue<TInput extends string>\n  extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'iso_time_second';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The ISO time with seconds regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * ISO time second action interface.\n */\nexport interface IsoTimeSecondAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<IsoTimeSecondIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, IsoTimeSecondIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'iso_time_second';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof isoTimeSecond;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The ISO time second regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an [ISO time second](https://en.wikipedia.org/wiki/ISO_8601) validation action.\n *\n * Format: hh:mm:ss\n *\n * @returns An ISO time second action.\n */\nexport function isoTimeSecond<TInput extends string>(): IsoTimeSecondAction<\n  TInput,\n  undefined\n>;\n\n/**\n * Creates an [ISO time second](https://en.wikipedia.org/wiki/ISO_8601) validation action.\n *\n * Format: hh:mm:ss\n *\n * @param message The error message.\n *\n * @returns An ISO time second action.\n */\nexport function isoTimeSecond<\n  TInput extends string,\n  const TMessage extends ErrorMessage<IsoTimeSecondIssue<TInput>> | undefined,\n>(message: TMessage): IsoTimeSecondAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function isoTimeSecond(\n  message?: ErrorMessage<IsoTimeSecondIssue<string>>\n): IsoTimeSecondAction<\n  string,\n  ErrorMessage<IsoTimeSecondIssue<string>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'iso_time_second',\n    reference: isoTimeSecond,\n    async: false,\n    expects: null,\n    requirement: ISO_TIME_SECOND_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'time-second', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/isoTimestamp/index.ts",
    "content": "export * from './isoTimestamp.ts';\n"
  },
  {
    "path": "library/src/actions/isoTimestamp/isoTimestamp.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { IsoTimestampAction, IsoTimestampIssue } from './isoTimestamp.ts';\nimport { isoTimestamp } from './isoTimestamp.ts';\n\ndescribe('isoTimestamp', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = IsoTimestampAction<string, undefined>;\n      expectTypeOf(isoTimestamp<string>()).toEqualTypeOf<Action>();\n      expectTypeOf(\n        isoTimestamp<string, undefined>(undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(isoTimestamp<string, 'message'>('message')).toEqualTypeOf<\n        IsoTimestampAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        isoTimestamp<string, () => string>(() => 'message')\n      ).toEqualTypeOf<IsoTimestampAction<string, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = IsoTimestampAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        IsoTimestampIssue<string>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/isoTimestamp/isoTimestamp.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { ISO_TIMESTAMP_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue } from '../../vitest/expectActionIssue.ts';\nimport { expectNoActionIssue } from '../../vitest/expectNoActionIssue.ts';\nimport type { IsoTimestampAction, IsoTimestampIssue } from './isoTimestamp.ts';\nimport { isoTimestamp } from './isoTimestamp.ts';\n\ndescribe('isoTimestamp', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<IsoTimestampAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'iso_timestamp',\n      reference: isoTimestamp,\n      expects: null,\n      requirement: ISO_TIMESTAMP_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: IsoTimestampAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(isoTimestamp()).toStrictEqual(action);\n      expect(isoTimestamp(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(isoTimestamp('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies IsoTimestampAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(isoTimestamp(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies IsoTimestampAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = isoTimestamp();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for zero UTC offset', () => {\n      expectNoActionIssue(action, [\n        '0000-01-01T00:00:00.000Z',\n        '2023-07-11T17:26:27.243Z',\n        '9999-12-31T23:59:59.999Z',\n      ]);\n    });\n\n    test('for specific UTC offset', () => {\n      expectNoActionIssue(action, [\n        // '+hh:mm'\n        '0000-01-01T00:00:00.000+00:00',\n        '2023-07-11T17:26:27.243+12:34',\n        '9999-12-31T23:59:59.999+23:59',\n        // '+hhmm'\n        '0000-01-01T00:00:00.000+0000',\n        '2023-07-11T17:26:27.243+1234',\n        '9999-12-31T23:59:59.999+2359',\n        // '+hh'\n        '0000-01-01T00:00:00.000+00',\n        '2023-07-11T17:26:27.243+12',\n        '9999-12-31T23:59:59.999+23',\n        // '-hh:mm'\n        '0000-01-01T00:00:00.000-00:00',\n        '2023-07-11T17:26:27.243-12:34',\n        '9999-12-31T23:59:59.999-23:59',\n        // '-hhmm'\n        '0000-01-01T00:00:00.000-0000',\n        '2023-07-11T17:26:27.243-1234',\n        '9999-12-31T23:59:59.999-2359',\n        // '-hh'\n        '0000-01-01T00:00:00.000-00',\n        '2023-07-11T17:26:27.243-12',\n        '9999-12-31T23:59:59.999-23',\n      ]);\n    });\n\n    test('for without milliseconds', () => {\n      expectNoActionIssue(action, [\n        '0000-01-01T00:00:00Z',\n        '2023-07-11T17:26:27Z',\n        '9999-12-31T23:59:59Z',\n      ]);\n    });\n\n    test('for 9 milliseconds digits', () => {\n      expectNoActionIssue(action, [\n        '0000-01-01T00:00:00.000000000Z',\n        '2023-07-11T17:26:27.184618592Z',\n        '9999-12-31T23:59:59.999999999Z',\n      ]);\n    });\n\n    test('for space as separator', () => {\n      expectNoActionIssue(action, [\n        '0000-01-01 00:00:00.000Z',\n        '2023-07-11 17:26:27.243Z',\n        '9999-12-31 23:59:59.999Z',\n      ]);\n    });\n\n    test('for space before UTC offset', () => {\n      expectNoActionIssue(action, [\n        // Space date/time separator + space before offset\n        '0000-01-01 00:00:00.000 +00:00',\n        '0000-01-01 00:00:00.000 -00:00',\n        '2023-07-11 17:26:27.243 +0000',\n        '2023-07-11 17:26:27.243 -0000',\n        '9999-12-31 23:59:59.999 +00',\n        '9999-12-31 23:59:59.999 -00',\n        // T date/time separator + space before offset\n        '0000-01-01T00:00:00.000 +00:00',\n        '0000-01-01T00:00:00.000 -00:00',\n        '2023-07-11T17:26:27.243 +0000',\n        '2023-07-11T17:26:27.243 -0000',\n        '9999-12-31T23:59:59.999 +00',\n        '9999-12-31T23:59:59.999 -00',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = isoTimestamp('message');\n    const baseIssue: Omit<IsoTimestampIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'iso_timestamp',\n      expected: null,\n      message: 'message',\n      requirement: ISO_TIMESTAMP_REGEX,\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for blank spaces', () => {\n      expectActionIssue(action, baseIssue, [\n        ' 0000-01-01T00:00:00.000Z',\n        '0000-01-01T00:00:00.000Z ',\n        ' 0000-01-01T00:00:00.000Z ',\n      ]);\n    });\n\n    test('for missing separators', () => {\n      expectActionIssue(action, baseIssue, [\n        '000001-01T00:00:00.000Z',\n        '0000-0101T00:00:00.000Z',\n        '0000-01-0100:00:00.000Z',\n        '0000-01-01T0000:00.000Z',\n        '0000-01-01T00:0000.000Z',\n        '0000-01-01T00:00:00000Z',\n        '0000-01-01T00:00:00.000',\n        '0000-01-01T00:00:00.00000:00',\n      ]);\n    });\n\n    test('for double separators', () => {\n      expectActionIssue(action, baseIssue, [\n        '0000--01-01T00:00:00.000Z',\n        '0000-01--01T00:00:00.000Z',\n        '0000-01-01TT00:00:00.000Z',\n        '0000-01-01T00::00:00.000Z',\n        '0000-01-01T00:00::00.000Z',\n        '0000-01-01T00:00:00..000Z',\n        '0000-01-01T00:00:00.000ZZ',\n        '0000-01-01T00:00:00.000++00:00',\n        '0000-01-01T00:00:00.000--00:00',\n        '0000-01-01T00:00:00.000+00::00',\n        '0000-01-01T00:00:00.000  +00:00',\n        '0000-01-01 00:00:00.000  +00:00',\n      ]);\n    });\n\n    test('for wrong separators', () => {\n      expectActionIssue(action, baseIssue, [\n        // Date separators\n        '0000 01 01T00:00:00.000Z',\n        '0000–01–01T00:00:00.000Z',\n        '0000/01/01T00:00:00.000Z',\n        '0000_01_01T00:00:00.000Z',\n        '0000:01:01T00:00:00.000Z',\n\n        // Date/time delimiter\n        '0000-01-01A00:00:00.000Z',\n        '0000-01-01U00:00:00.000Z',\n        '0000-01-01Z00:00:00.000Z',\n        '0000-01-01_00:00:00.000Z',\n        '0000-01-01-00:00:00.000Z',\n\n        // Time separators\n        '0000-01-01T00 00 00.000Z',\n        '0000-01-01T00-00-00.000Z',\n        '0000-01-01T00_00_00.000Z',\n        '0000-01-01T00–00–00.000Z',\n        '0000-01-01T00/00/00.000Z',\n        '0000-01-01T00.00.00.000Z',\n\n        // Milliseconds separator\n        '0000-01-01T00:00:00 000Z',\n        '0000-01-01T00:00:00-000Z',\n        '0000-01-01T00:00:00_000Z',\n        '0000-01-01T00:00:00–000Z',\n        '0000-01-01T00:00:00/000Z',\n        '0000-01-01T00:00:00:000Z',\n      ]);\n    });\n\n    test('for invalid year', () => {\n      expectActionIssue(action, baseIssue, [\n        '-01-01T00:00:00.000Z', // missing digits\n        '0-01-01T00:00:00.000Z', // 1 digit\n        '00-01-01T00:00:00.000Z', // 2 digit\n        '000-01-01T00:00:00.000Z', // 3 digits\n        '00000-01-01T00:00:00.000Z', // 5 digits\n      ]);\n    });\n\n    test('for invalid month', () => {\n      expectActionIssue(action, baseIssue, [\n        '0000-01T00:00:00.000Z', // missing digits\n        '0000-1-01T00:00:00.000Z', // 1 digit\n        '0000-010-01T00:00:00.000Z', // 3 digits\n        '0000-00-01T00:00:00.000Z', // 00\n        '0000-13-01T00:00:00.000Z', // 13\n        '0000-99-01T00:00:00.000Z', // 99\n      ]);\n    });\n\n    test('for invalid day', () => {\n      expectActionIssue(action, baseIssue, [\n        '0000-01T00:00:00.000Z', // missing digits\n        '0000-01-1T00:00:00.000Z', // 1 digit\n        '0000-01-010T00:00:00.000Z', // 3 digits\n        '0000-01-00T00:00:00.000Z', // 00\n        '0000-01-32T00:00:00.000Z', // 32\n        '0000-01-99T00:00:00.000Z', // 99\n      ]);\n    });\n\n    test('for invalid hour', () => {\n      expectActionIssue(action, baseIssue, [\n        '0000-01-01T:00:00.000Z', // missing digits\n        '0000-01-01T00:00.000Z', // missing digits\n        '0000-01-01T0:00:00.000Z', // 1 digit\n        '0000-01-01T000:00:00.000Z', // 3 digits\n        '0000-01-01T24:00:00.000Z', // 24\n        '0000-01-01T99:00:00.000Z', // 99\n      ]);\n    });\n\n    test('for invalid minute', () => {\n      expectActionIssue(action, baseIssue, [\n        '0000-01-01T00:00.000Z', // missing digits\n        '0000-01-01T00:0:00.000Z', // 1 digit\n        '0000-01-01T00:000:00.000Z', // 3 digits\n        '0000-01-01T00:60:00.000Z', // 60\n        '0000-01-01T00:99:00.000Z', // 99\n      ]);\n    });\n\n    test('for invalid second', () => {\n      expectActionIssue(action, baseIssue, [\n        '0000-01-01T00:00:.000Z', // missing digits\n        '0000-01-01T00:00.000Z', // missing digits\n        '0000-01-01T00:00:0.000Z', // 1 digit\n        '0000-01-01T00:00:000.000Z', // 3 digits\n        '0000-01-01T00:00:60.000Z', // 60\n        '0000-01-01T00:00:99.000Z', // 99\n      ]);\n    });\n\n    test('for invalid milliseconds', () => {\n      expectActionIssue(action, baseIssue, [\n        '0000-01-01T00:00:00.Z', // 0 digits\n        '0000-01-01T00:00:00.0000000000Z', // 10 digits\n      ]);\n    });\n\n    test('for missing offsets', () => {\n      expectActionIssue(action, baseIssue, [\n        '0000-01-01T00:00:00.000',\n        '0000-01-01T00:00:00.000+',\n        '0000-01-01T00:00:00.000-',\n      ]);\n    });\n\n    test('for invalid hour offset', () => {\n      expectActionIssue(action, baseIssue, [\n        '0000-01-01T00:00:00.000+:00', // missing digits\n        '0000-01-01T00:00:00.000+0:00', // 1 digit\n        '0000-01-01T00:00:00.000+000:00', // 3 digits\n        '0000-01-01T00:00:00.000+24:00', // 24\n        '0000-01-01T00:00:00.000+2400', // 24\n        '0000-01-01T00:00:00.000+24', // 24\n        '0000-01-01T00:00:00.000+99:00', // 99\n        '0000-01-01T00:00:00.000+9900', // 99\n        '0000-01-01T00:00:00.000+99', // 99\n      ]);\n    });\n\n    test('for invalid minute offset', () => {\n      expectActionIssue(action, baseIssue, [\n        '0000-01-01T00:00:00.000+00:', // missing digits\n        '0000-01-01T00:00:00.000+00:0', // 1 digit\n        '0000-01-01T00:00:00.000+000', // 1 digit\n        '0000-01-01T00:00:00.000+00:000', // 3 digits\n        '0000-01-01T00:00:00.000+00000', // 3 digits\n        '0000-01-01T00:00:00.000+00:60', // 60\n        '0000-01-01T00:00:00.000+0060', // 60\n        '0000-01-01T00:00:00.000+00:99', // 99\n        '0000-01-01T00:00:00.000+0099', // 99\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/isoTimestamp/isoTimestamp.ts",
    "content": "import { ISO_TIMESTAMP_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * ISO timestamp issue interface.\n */\nexport interface IsoTimestampIssue<TInput extends string>\n  extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'iso_timestamp';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The ISO timestamp regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * ISO timestamp action interface.\n */\nexport interface IsoTimestampAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<IsoTimestampIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, IsoTimestampIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'iso_timestamp';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof isoTimestamp;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The ISO timestamp regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an [ISO timestamp](https://en.wikipedia.org/wiki/ISO_8601) validation\n * action.\n *\n * Formats:\n * - yyyy-mm-ddThh:mm:ss.sssZ\n * - yyyy-mm-ddThh:mm:ss.sss±hh:mm\n * - yyyy-mm-ddThh:mm:ss.sss±hhmm\n *\n * Hint: To support timestamps with lower or higher accuracy, the millisecond\n * specification can be removed or contain up to 9 digits.\n *\n * Hint: The regex used cannot validate the maximum number of days based on\n * year and month. For example, \"2023-06-31T00:00:00.000Z\" is valid although\n * June has only 30 days.\n *\n * Hint: The regex also allows a space as a separator between the date and time\n * parts instead of the \"T\" character.\n *\n * Hint: The regex also allows a space before the UTC offset (e.g., \" +00:00\")\n * to support PostgreSQL's `timestamptz` output format.\n *\n * @returns An ISO timestamp action.\n */\nexport function isoTimestamp<TInput extends string>(): IsoTimestampAction<\n  TInput,\n  undefined\n>;\n\n/**\n * Creates an [ISO timestamp](https://en.wikipedia.org/wiki/ISO_8601) validation\n * action.\n *\n * Formats:\n * - yyyy-mm-ddThh:mm:ss.sssZ\n * - yyyy-mm-ddThh:mm:ss.sss±hh:mm\n * - yyyy-mm-ddThh:mm:ss.sss±hhmm\n * - yyyy-mm-ddThh:mm:ss.sss±hh\n *\n * Hint: To support timestamps with lower or higher accuracy, the millisecond\n * specification can be removed or contain up to 9 digits.\n *\n * Hint: The regex used cannot validate the maximum number of days based on\n * year and month. For example, \"2023-06-31T00:00:00.000Z\" is valid although\n * June has only 30 days.\n *\n * Hint: The regex also allows a space as a separator between the date and time\n * parts instead of the \"T\" character.\n *\n * Hint: The regex also allows a space before the UTC offset (e.g., \" +00:00\")\n * to support PostgreSQL's `timestamptz` output format.\n *\n * @param message The error message.\n *\n * @returns An ISO timestamp action.\n */\nexport function isoTimestamp<\n  TInput extends string,\n  const TMessage extends ErrorMessage<IsoTimestampIssue<TInput>> | undefined,\n>(message: TMessage): IsoTimestampAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function isoTimestamp(\n  message?: ErrorMessage<IsoTimestampIssue<string>>\n): IsoTimestampAction<\n  string,\n  ErrorMessage<IsoTimestampIssue<string>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'iso_timestamp',\n    reference: isoTimestamp,\n    async: false,\n    expects: null,\n    requirement: ISO_TIMESTAMP_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'timestamp', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/isoWeek/index.ts",
    "content": "export * from './isoWeek.ts';\n"
  },
  {
    "path": "library/src/actions/isoWeek/isoWeek.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { isoWeek, type IsoWeekAction, type IsoWeekIssue } from './isoWeek.ts';\n\ndescribe('isoWeek', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = IsoWeekAction<string, undefined>;\n      expectTypeOf(isoWeek<string>()).toEqualTypeOf<Action>();\n      expectTypeOf(\n        isoWeek<string, undefined>(undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(isoWeek<string, 'message'>('message')).toEqualTypeOf<\n        IsoWeekAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        isoWeek<string, () => string>(() => 'message')\n      ).toEqualTypeOf<IsoWeekAction<string, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = IsoWeekAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<IsoWeekIssue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/isoWeek/isoWeek.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { ISO_WEEK_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue } from '../../vitest/expectActionIssue.ts';\nimport { expectNoActionIssue } from '../../vitest/expectNoActionIssue.ts';\nimport {\n  isoWeek,\n  type IsoWeekIssue as IsoWeek,\n  type IsoWeekAction,\n} from './isoWeek.ts';\n\ndescribe('isoWeek', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<IsoWeekAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'iso_week',\n      reference: isoWeek,\n      expects: null,\n      requirement: ISO_WEEK_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: IsoWeekAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(isoWeek()).toStrictEqual(action);\n      expect(isoWeek(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(isoWeek('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies IsoWeekAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(isoWeek(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies IsoWeekAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = isoWeek();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid ISO date times', () => {\n      expectNoActionIssue(action, ['0000-W01', '2023-W29', '9999-W53']);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = isoWeek('message');\n    const baseIssue: Omit<IsoWeek<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'iso_week',\n      expected: null,\n      message: 'message',\n      requirement: ISO_WEEK_REGEX,\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for blank spaces', () => {\n      expectActionIssue(action, baseIssue, [\n        ' 0000-W01',\n        '0000-W01 ',\n        ' 0000-W01 ',\n      ]);\n    });\n\n    test('for missing separators', () => {\n      expectActionIssue(action, baseIssue, ['0000-01', '0000W01', '000001']);\n    });\n\n    test('for wrong separators', () => {\n      expectActionIssue(action, baseIssue, [\n        '0000- 01',\n        '0000-A01',\n        '0000-Z01',\n        '0000-w01',\n        '0000.W01',\n        '0000–W01',\n        '0000 W01',\n        '0000/W01',\n        '0000_W01',\n      ]);\n    });\n\n    test('for invalid year', () => {\n      expectActionIssue(action, baseIssue, [\n        '-W01', // missing digits\n        '0-W01', // 1 digit\n        '00-W01', // 2 digit\n        '000-W01', // 3 digits\n        '00000-W01', // 5 digits\n      ]);\n    });\n\n    test('for invalid weeks', () => {\n      expectActionIssue(action, baseIssue, [\n        '0000-W', // missing digits\n        '0000-W0', // 1 digit\n        '0000-W000', // 3 digits\n        '0000-W00', // 00\n        '0000-W54', // 54\n        '0000-W99', // 99\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/isoWeek/isoWeek.ts",
    "content": "import { ISO_WEEK_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * ISO week issue interface.\n */\nexport interface IsoWeekIssue<TInput extends string> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'iso_week';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The ISO week regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * ISO week action interface.\n */\nexport interface IsoWeekAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<IsoWeekIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, IsoWeekIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'iso_week';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof isoWeek;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The ISO week regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an [ISO week](https://en.wikipedia.org/wiki/ISO_8601) validation action.\n *\n * Format: yyyy-Www\n *\n * Hint: The regex used cannot validate the maximum number of weeks based on\n * the year. For example, \"2021W53\" is valid although 2021 has only 52 weeks.\n *\n * @returns An ISO week action.\n */\nexport function isoWeek<TInput extends string>(): IsoWeekAction<\n  TInput,\n  undefined\n>;\n\n/**\n * Creates an [ISO week](https://en.wikipedia.org/wiki/ISO_8601) validation action.\n *\n * Format: yyyy-Www\n *\n * Hint: The regex used cannot validate the maximum number of weeks based on\n * the year. For example, \"2021W53\" is valid although 2021 has only 52 weeks.\n *\n * @param message The error message.\n *\n * @returns An ISO week action.\n */\nexport function isoWeek<\n  TInput extends string,\n  const TMessage extends ErrorMessage<IsoWeekIssue<TInput>> | undefined,\n>(message: TMessage): IsoWeekAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function isoWeek(\n  message?: ErrorMessage<IsoWeekIssue<string>>\n): IsoWeekAction<string, ErrorMessage<IsoWeekIssue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'iso_week',\n    reference: isoWeek,\n    async: false,\n    expects: null,\n    requirement: ISO_WEEK_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'week', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/isrc/index.ts",
    "content": "export * from './isrc.ts';\n"
  },
  {
    "path": "library/src/actions/isrc/isrc.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { isrc, type IsrcAction, type IsrcIssue } from './isrc.ts';\n\ndescribe('isrc', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = IsrcAction<string, undefined>;\n      expectTypeOf(isrc<string>()).toEqualTypeOf<Action>();\n      expectTypeOf(isrc<string, undefined>(undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(isrc<string, 'message'>('message')).toEqualTypeOf<\n        IsrcAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(isrc<string, () => string>(() => 'message')).toEqualTypeOf<\n        IsrcAction<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = IsrcAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<IsrcIssue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/isrc/isrc.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { ISRC_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { isrc, type IsrcAction, type IsrcIssue } from './isrc.ts';\n\ndescribe('isrc', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<IsrcAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'isrc',\n      reference: isrc,\n      expects: null,\n      requirement: ISRC_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: IsrcAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(isrc()).toStrictEqual(action);\n      expect(isrc(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(isrc('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies IsrcAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(isrc(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies IsrcAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = isrc();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid ISRC without separators', () => {\n      expectNoActionIssue(action, [\n        'DEU671703268',\n        'FRIDO2512641',\n        'GBBPW0700093',\n        'US2S70465020',\n      ]);\n    });\n\n    test('for valid ISRC with separators', () => {\n      expectNoActionIssue(action, [\n        'DE-U67-17-03268',\n        'FR-IDO-25-12641',\n        'GB-BPW-07-00093',\n        'US-2S7-04-65020',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = isrc('message');\n    const baseIssue: Omit<IsrcIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'isrc',\n      expected: null,\n      message: 'message',\n      requirement: ISRC_REGEX,\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for blank spaces', () => {\n      expectActionIssue(action, baseIssue, [\n        ' DE-U67-17-03268',\n        'DE-U67-17-03268 ',\n        ' DE-U67-17-03268 ',\n      ]);\n    });\n\n    test('for missing separators', () => {\n      expectActionIssue(action, baseIssue, [\n        'DEU67-17-03268',\n        'DE-U6717-03268',\n        'DE-U67-1703268',\n      ]);\n    });\n\n    test('for double separators', () => {\n      expectActionIssue(action, baseIssue, [\n        'DE--U67-17-03268',\n        'DE-U67--17-03268',\n        'DE-U67-17--03268',\n        'DE--U67--17--03268',\n      ]);\n    });\n\n    test('for invalid separators', () => {\n      expectActionIssue(action, baseIssue, [\n        'DE U67 17 03268',\n        'DE/U67/17/03268',\n        'DE_U67_17_03268',\n        'DE–U67–17–03268',\n      ]);\n    });\n\n    test('for invalid fragment length', () => {\n      expectActionIssue(action, baseIssue, [\n        'D-U67-17-03268', // missing country code character\n        'DEU-U67-17-03268', // extra country code character\n        'DE-U6-17-03268', // missing registrant code character\n        'DE-U67x-17-03268', // extra registrant code character\n        'DE-U67-1-03268', // missing year digit\n        'DE-U67-170-03268', // extra year digit\n        'DE-U67-17-0326', // missing designation digit\n        'DE-U67-17-032680', // extra designation digit\n      ]);\n    });\n\n    test('for invalid fragments', () => {\n      expectActionIssue(action, baseIssue, [\n        '0EU671703268', // Country Code-fragment\n        '0E-U67-17-03268', // Country Code-fragment\n        'DEa671703268', // Registrant Code-fragment\n        'DE-a67-17-03268', // Registrant Code-fragment\n        'DEU67A703268', // Year of Reference-fragment\n        'DE-U67-A7-03268', // Year of Reference-fragment\n        'DEU6717A3268', // Designation Code-fragment\n        'DE-U67-17-A3268', // Designation Code-fragment\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/isrc/isrc.ts",
    "content": "import { ISRC_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * ISRC issue interface.\n */\nexport interface IsrcIssue<TInput extends string> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'isrc';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The ISRC regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * ISRC action interface.\n */\nexport interface IsrcAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<IsrcIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, IsrcIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'isrc';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof isrc;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The ISRC regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an [ISRC](https://en.wikipedia.org/wiki/International_Standard_Recording_Code) validation action.\n *\n * Formats:\n * - CCXXXYYNNNNN\n * - CC-XXX-YY-NNNNN\n *\n * @returns An ISRC action.\n *\n * @beta\n */\nexport function isrc<TInput extends string>(): IsrcAction<TInput, undefined>;\n\n/**\n * Creates an [ISRC](https://en.wikipedia.org/wiki/International_Standard_Recording_Code) validation action.\n *\n * @param message The error message.\n *\n * @returns An ISRC action.\n *\n * @beta\n */\nexport function isrc<\n  TInput extends string,\n  const TMessage extends ErrorMessage<IsrcIssue<TInput>> | undefined,\n>(message: TMessage): IsrcAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function isrc(\n  message?: ErrorMessage<IsrcIssue<string>>\n): IsrcAction<string, ErrorMessage<IsrcIssue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'isrc',\n    reference: isrc,\n    async: false,\n    expects: null,\n    requirement: ISRC_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'ISRC', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/jwsCompact/index.ts",
    "content": "export * from './jwsCompact.ts';\n"
  },
  {
    "path": "library/src/actions/jwsCompact/jwsCompact.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  jwsCompact,\n  type JwsCompactAction,\n  type JwsCompactIssue,\n} from './jwsCompact.ts';\n\ndescribe('jwsCompact', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = JwsCompactAction<string, undefined>;\n      expectTypeOf(jwsCompact<string>()).toEqualTypeOf<Action>();\n      expectTypeOf(\n        jwsCompact<string, undefined>(undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(jwsCompact<string, 'message'>('message')).toEqualTypeOf<\n        JwsCompactAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        jwsCompact<string, () => string>(() => 'message')\n      ).toEqualTypeOf<JwsCompactAction<string, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = JwsCompactAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        JwsCompactIssue<string>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/jwsCompact/jwsCompact.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { JWS_COMPACT_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  jwsCompact,\n  type JwsCompactAction,\n  type JwsCompactIssue,\n} from './jwsCompact.ts';\n\ndescribe('jwsCompact', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<JwsCompactAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'jws_compact',\n      reference: jwsCompact,\n      expects: null,\n      requirement: JWS_COMPACT_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: JwsCompactAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(jwsCompact()).toStrictEqual(action);\n      expect(jwsCompact(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(jwsCompact('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies JwsCompactAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(jwsCompact(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies JwsCompactAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = jwsCompact();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid JWS compact strings', () => {\n      expectNoActionIssue(action, [\n        'ab.cd.ef',\n        'abc.def.ghi',\n        'abcd.efgh.ijkl',\n        'abcdef.ghijkl.mnopqr',\n        'ab_cd-.ef-gh_.ij_kl-',\n        'abcdefgh.ijklmnop.qrstuvwx',\n        'abcd.efgh.',\n      ]);\n    });\n\n    test('for empty payload segments', () => {\n      expectNoActionIssue(action, ['abcd..ijkl', 'abcdef..']);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = jwsCompact('message');\n    const baseIssue: Omit<JwsCompactIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'jws_compact',\n      expected: null,\n      message: 'message',\n      requirement: JWS_COMPACT_REGEX,\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for missing segments', () => {\n      expectActionIssue(action, baseIssue, ['abcd.efgh', 'segment.twopart']);\n    });\n\n    test('for additional segments', () => {\n      expectActionIssue(action, baseIssue, [\n        'header.payload.signature.extra',\n        'a.b.c.d',\n      ]);\n    });\n\n    test('for invalid base64url segments', () => {\n      expectActionIssue(action, baseIssue, [\n        'a.a.a',\n        'ab=.cd.ef',\n        'abc==.def.ghi',\n        'abcd.efgh.ijkl==',\n      ]);\n    });\n\n    test('for blank spaces', () => {\n      expectActionIssue(action, baseIssue, [\n        ' abcd.efgh.ijkl',\n        'abcd.efgh.ijkl ',\n        'abcd .efgh.ijkl',\n      ]);\n    });\n\n    test('for invalid characters', () => {\n      expectActionIssue(action, baseIssue, [\n        'abcd.efgh.ij@l',\n        'segment.twopart.si gnature',\n        'segment.twopart.si\\\\u00a9gnature',\n        'segment.twopart.si©gnature',\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/jwsCompact/jwsCompact.ts",
    "content": "import { JWS_COMPACT_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * JWS compact issue interface.\n *\n * @beta\n */\nexport interface JwsCompactIssue<TInput extends string>\n  extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'jws_compact';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The JWS compact regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * JWS compact action interface.\n *\n * @beta\n */\nexport interface JwsCompactAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<JwsCompactIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, JwsCompactIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'jws_compact';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof jwsCompact;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The JWS compact regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a [JWS compact serialization](https://datatracker.ietf.org/doc/html/rfc7515#section-3.1)\n * validation action.\n *\n * Hint: This validation action only checks the three-part compact string shape\n * with unpadded Base64URL-like segments. It does not decode the segments,\n * verify the signature, or validate claims.\n *\n * @returns A JWS compact action.\n *\n * @beta\n */\nexport function jwsCompact<TInput extends string>(): JwsCompactAction<\n  TInput,\n  undefined\n>;\n\n/**\n * Creates a [JWS compact serialization](https://datatracker.ietf.org/doc/html/rfc7515#section-3.1)\n * validation action.\n *\n * Hint: This validation action only checks the three-part compact string shape\n * with unpadded Base64URL-like segments. It does not decode the segments,\n * verify the signature, or validate claims.\n *\n * @param message The error message.\n *\n * @returns A JWS compact action.\n *\n * @beta\n */\nexport function jwsCompact<\n  TInput extends string,\n  const TMessage extends ErrorMessage<JwsCompactIssue<TInput>> | undefined,\n>(message: TMessage): JwsCompactAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function jwsCompact(\n  message?: ErrorMessage<JwsCompactIssue<string>>\n): JwsCompactAction<string, ErrorMessage<JwsCompactIssue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'jws_compact',\n    reference: jwsCompact,\n    async: false,\n    expects: null,\n    requirement: JWS_COMPACT_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'JWS compact', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/length/index.ts",
    "content": "export * from './length.ts';\n"
  },
  {
    "path": "library/src/actions/length/length.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { length, type LengthAction, type LengthIssue } from './length.ts';\n\ndescribe('length', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = LengthAction<string, 10, undefined>;\n      expectTypeOf(length<string, 10>(10)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        length<string, 10, undefined>(10, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(length<string, 10, 'message'>(10, 'message')).toEqualTypeOf<\n        LengthAction<string, 10, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        length<string, 10, () => string>(10, () => 'message')\n      ).toEqualTypeOf<LengthAction<string, 10, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Input = [1, 'two', { value: 'three' }];\n    type Action = LengthAction<Input, 3, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<LengthIssue<Input, 3>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/length/length.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { length, type LengthAction, type LengthIssue } from './length.ts';\n\ndescribe('length', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<LengthAction<string, 5, never>, 'message'> = {\n      kind: 'validation',\n      type: 'length',\n      reference: length,\n      expects: '5',\n      requirement: 5,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: LengthAction<string, 5, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(length(5)).toStrictEqual(action);\n      expect(length(5, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(length(5, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies LengthAction<string, 5, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(length(5, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies LengthAction<string, 5, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = length(3);\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid strings', () => {\n      expectNoActionIssue(action, [\n        '   ',\n        ' \\n\\n',\n        '\\n\\n\\t',\n        'abc',\n        'ABC',\n        '123',\n        'あああ', // 'あ' is 3 bytes but the total length of the string is 3\n        '@#$',\n      ]);\n    });\n\n    test('for valid arrays', () => {\n      expectNoActionIssue(action, [\n        [1, 2, 3],\n        ['foo', 'bar', 'baz'],\n        [1, null, undefined],\n        [[1, 2, 3, 4], [5], [6, 7]],\n        [{ value: 1 }, { value: 2 }, { value: 3 }],\n        ['1', 2, { value: 3 }],\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = length(3, 'message');\n    const baseIssue: Omit<LengthIssue<string, 3>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'length',\n      expected: '3',\n      message: 'message',\n      requirement: 3,\n    };\n\n    test('for invalid strings', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [\n          '',\n          ' ',\n          '  ',\n          '\\n',\n          '\\n\\t',\n          'あ', // 'あ' is 3 bytes\n          'ab',\n          'abcd',\n          '1',\n          '12',\n          '1234',\n          '@',\n          '@#',\n          '@#$%',\n        ],\n        (value) => `${value.length}`\n      );\n    });\n\n    test('for invalid arrays', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [\n          [],\n          [1],\n          ['1', '2'],\n          [1, '2', 3, '4'],\n          [[1, 2, 3]],\n          [[1, 2], ['3']],\n          [{ 1: 'one', 2: 'two', 3: 'three' }],\n          [[1], [2], null, [{ value: 3 }]],\n        ],\n        (value) => `${value.length}`\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/length/length.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\nimport type { LengthInput } from '../types.ts';\n\n/**\n * Length issue interface.\n */\nexport interface LengthIssue<\n  TInput extends LengthInput,\n  TRequirement extends number,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'length';\n  /**\n   * The expected property.\n   */\n  readonly expected: `${TRequirement}`;\n  /**\n   * The received property.\n   */\n  readonly received: `${number}`;\n  /**\n   * The required length.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Length action interface.\n */\nexport interface LengthAction<\n  TInput extends LengthInput,\n  TRequirement extends number,\n  TMessage extends ErrorMessage<LengthIssue<TInput, TRequirement>> | undefined,\n> extends BaseValidation<TInput, TInput, LengthIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'length';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof length;\n  /**\n   * The expected property.\n   */\n  readonly expects: `${TRequirement}`;\n  /**\n   * The required length.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a length validation action.\n *\n * @param requirement The required length.\n *\n * @returns A length action.\n */\nexport function length<\n  TInput extends LengthInput,\n  const TRequirement extends number,\n>(requirement: TRequirement): LengthAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a length validation action.\n *\n * @param requirement The required length.\n * @param message The error message.\n *\n * @returns A length action.\n */\nexport function length<\n  TInput extends LengthInput,\n  const TRequirement extends number,\n  const TMessage extends\n    | ErrorMessage<LengthIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): LengthAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function length(\n  requirement: number,\n  message?: ErrorMessage<LengthIssue<LengthInput, number>>\n): LengthAction<\n  LengthInput,\n  number,\n  ErrorMessage<LengthIssue<LengthInput, number>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'length',\n    reference: length,\n    async: false,\n    expects: `${requirement}`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && dataset.value.length !== this.requirement) {\n        _addIssue(this, 'length', dataset, config, {\n          received: `${dataset.value.length}`,\n        });\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/ltValue/index.ts",
    "content": "export * from './ltValue.ts';\n"
  },
  {
    "path": "library/src/actions/ltValue/ltValue.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { ltValue, type LtValueAction, type LtValueIssue } from './ltValue.ts';\n\ndescribe('ltValue', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = LtValueAction<number, 10, undefined>;\n      expectTypeOf(ltValue<number, 10>(10)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        ltValue<number, 10, undefined>(10, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(ltValue<number, 10, 'message'>(10, 'message')).toEqualTypeOf<\n        LtValueAction<number, 10, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        ltValue<number, 10, () => string>(10, () => 'message')\n      ).toEqualTypeOf<LtValueAction<number, 10, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = LtValueAction<number, 10, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        LtValueIssue<number, 10>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/ltValue/ltValue.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { NumberIssue } from '../../schemas/index.ts';\nimport { _stringify } from '../../utils/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { ltValue, type LtValueAction } from './ltValue.ts';\n\ndescribe('ltValue', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<LtValueAction<number, 5, never>, 'message'> = {\n      kind: 'validation',\n      type: 'lt_value',\n      reference: ltValue,\n      expects: '<5',\n      requirement: 5,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: LtValueAction<number, 5, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(ltValue(5)).toStrictEqual(action);\n      expect(ltValue(5, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(ltValue(5, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies LtValueAction<number, 5, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(ltValue(5, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies LtValueAction<number, 5, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for untyped inputs', () => {\n      const issues: [NumberIssue] = [\n        {\n          kind: 'schema',\n          type: 'number',\n          input: null,\n          expected: 'number',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        ltValue(1)['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({ typed: false, value: null, issues });\n    });\n\n    test('for valid bigints', () => {\n      expectNoActionIssue(ltValue(10n), [-9999n, 0n, 9n]);\n    });\n\n    test('for valid non-bigints', () => {\n      expectNoActionIssue(ltValue(10n), [\n        '-10',\n        '',\n        ' ',\n        '0',\n        '9',\n        ' 9 ',\n        -10,\n        0,\n        9,\n        -Infinity,\n        -10.0,\n        0.0,\n        9.0,\n        9.5,\n        false,\n        true,\n        new Date(-10),\n        new Date(0),\n        new Date(9),\n      ]);\n\n      expectNoActionIssue(ltValue(1n), [\n        '-1',\n        '',\n        ' ',\n        ' 0 ',\n        '0',\n        -1,\n        0.0,\n        0,\n        0.5,\n        -Infinity,\n        false,\n        new Date(-1),\n        new Date(0),\n      ]);\n\n      expectNoActionIssue(ltValue(0n), [\n        '-1',\n        ' -1 ',\n        -0.5,\n        -1,\n        -1.0,\n        -Infinity,\n        new Date(-1),\n      ]);\n    });\n\n    test('for valid booleans', () => {\n      expectNoActionIssue(ltValue(true), [false]);\n    });\n\n    test('for valid non-booleans', () => {\n      expectNoActionIssue(ltValue(true), [\n        '-1',\n        ' 0 ',\n        '0',\n        '0.5',\n        -1,\n        0.0,\n        0,\n        0.5,\n        -Infinity,\n        new Date(-1),\n        new Date(0),\n        -1n,\n        0n,\n      ]);\n\n      expectNoActionIssue(ltValue(false), [\n        '-1',\n        ' -1 ',\n        '-0.5',\n        -0.5,\n        -1,\n        -1.0,\n        -Infinity,\n        new Date(-1),\n        -1n,\n      ]);\n    });\n\n    test('for valid dates', () => {\n      const date = new Date();\n      expectNoActionIssue(ltValue(date), [\n        new Date(0),\n        new Date(+date - 999999),\n        new Date(+date - 1),\n      ]);\n    });\n\n    test('for valid non-dates', () => {\n      const date1 = new Date(10);\n      expectNoActionIssue(ltValue(date1), [\n        '-10',\n        ' 9 ',\n        '9',\n        '9.5',\n        9.5,\n        9,\n        9.0,\n        -Infinity,\n        false,\n        true,\n        -10n,\n        0n,\n        9n,\n      ]);\n\n      const date2 = new Date(1);\n      expectNoActionIssue(ltValue(date2), [\n        '-1',\n        '',\n        ' ',\n        ' 0 ',\n        '0',\n        '0.5',\n        -1,\n        0.0,\n        0,\n        0.5,\n        -Infinity,\n        false,\n        -1n,\n        0n,\n      ]);\n\n      const date3 = new Date(0);\n      expectNoActionIssue(ltValue(date3), [\n        '-1',\n        ' -1 ',\n        '-0.5',\n        -0.5,\n        -1,\n        -1.0,\n        -Infinity,\n        -1n,\n      ]);\n    });\n\n    test('for valid numbers', () => {\n      expectNoActionIssue(ltValue(10), [Number.MIN_VALUE, 0, 9, 9.5]);\n    });\n\n    test('for valid non-numbers', () => {\n      expectNoActionIssue(ltValue(10), [\n        '-10',\n        ' 9 ',\n        '9',\n        '9.5',\n        '',\n        ' ',\n        false,\n        true,\n        new Date(-10),\n        new Date(0),\n        new Date(9),\n        -10n,\n        0n,\n        9n,\n      ]);\n\n      expectNoActionIssue(ltValue(1), [\n        '-1',\n        ' 0 ',\n        '0',\n        '0.5',\n        '',\n        ' ',\n        false,\n        new Date(-1),\n        new Date(0),\n        -1n,\n        0n,\n      ]);\n\n      expectNoActionIssue(ltValue(0), [\n        '-1',\n        ' -1 ',\n        '-0.5',\n        new Date(-1),\n        -1n,\n      ]);\n    });\n\n    test('for valid strings', () => {\n      expectNoActionIssue(ltValue('2024'), ['', '1234', '2023']);\n    });\n\n    test('for valid non-strings', () => {\n      expectNoActionIssue(ltValue('10'), [\n        -10,\n        0,\n        9.5,\n        9,\n        9.0,\n        -Infinity,\n        false,\n        true,\n        new Date(-10),\n        new Date(0),\n        new Date(9),\n        -10n,\n        0n,\n        9n,\n      ]);\n\n      expectNoActionIssue(ltValue('1'), [\n        -1,\n        0,\n        0.5,\n        -Infinity,\n        false,\n        new Date(-1),\n        new Date(0),\n        -1n,\n        0n,\n      ]);\n\n      expectNoActionIssue(ltValue('0'), [\n        -0.5,\n        -1,\n        -1.0,\n        -Infinity,\n        new Date(-1),\n        -1n,\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const baseInfo = {\n      kind: 'validation',\n      type: 'lt_value',\n      message: 'message',\n    } as const;\n\n    const getReceived = (value: unknown): string =>\n      value instanceof Date ? value.toJSON() : _stringify(value);\n\n    test('for invalid bigints', () => {\n      expectActionIssue(\n        ltValue(10n, 'message'),\n        { ...baseInfo, expected: '<10', requirement: 10n },\n        [10n, 11n, 9999n]\n      );\n    });\n\n    test('for invalid non-bigints', () => {\n      expectActionIssue(\n        ltValue(123n, 'message'),\n        { ...baseInfo, expected: '<123', requirement: 123n },\n        [\n          'nan',\n          '122px',\n          '+ 122',\n          '122.0',\n          '123',\n          '124',\n          123,\n          124,\n          124.0,\n          Infinity,\n          NaN,\n          new Date(123),\n          new Date(124),\n        ],\n        getReceived\n      );\n\n      expectActionIssue(\n        ltValue(1n, 'message'),\n        { ...baseInfo, expected: '<1', requirement: 1n },\n        [\n          'nan',\n          '0px',\n          '+ 0',\n          '0.0',\n          '1',\n          1,\n          1.0,\n          2,\n          Infinity,\n          NaN,\n          true,\n          new Date(1),\n          new Date(2),\n        ],\n        getReceived\n      );\n\n      expectActionIssue(\n        ltValue(0n, 'message'),\n        { ...baseInfo, expected: '<0', requirement: 0n },\n        [\n          'nan',\n          '-1px',\n          '- 1',\n          '-1.0',\n          '0',\n          0,\n          0.0,\n          1,\n          1.0,\n          Infinity,\n          NaN,\n          false,\n          true,\n          new Date(0),\n          new Date(1),\n        ],\n        getReceived\n      );\n    });\n\n    test('for invalid booleans', () => {\n      expectActionIssue(\n        ltValue(false, 'message'),\n        { ...baseInfo, expected: '<false', requirement: false },\n        [false, true]\n      );\n\n      expectActionIssue(\n        ltValue(true, 'message'),\n        { ...baseInfo, expected: '<true', requirement: true },\n        [true]\n      );\n    });\n\n    test('for invalid non-booleans', () => {\n      expectActionIssue(\n        ltValue(false, 'message'),\n        { ...baseInfo, expected: '<false', requirement: false },\n        [\n          'nan',\n          '-1px',\n          '- 1',\n          '0',\n          '0.0',\n          0,\n          0.0,\n          1,\n          1.0,\n          Infinity,\n          NaN,\n          new Date(0),\n          new Date(1),\n          0n,\n          1n,\n        ],\n        getReceived\n      );\n\n      expectActionIssue(\n        ltValue(true, 'message'),\n        { ...baseInfo, expected: '<true', requirement: true },\n        [\n          'nan',\n          '0px',\n          '+ 0',\n          '1',\n          '1.0',\n          1,\n          1.0,\n          2,\n          Infinity,\n          NaN,\n          new Date(1),\n          new Date(2),\n          1n,\n          2n,\n        ],\n        getReceived\n      );\n    });\n\n    test('for invalid dates', () => {\n      const date = new Date();\n      expectActionIssue(\n        ltValue<Date, Date, 'message'>(date, 'message'),\n        { ...baseInfo, expected: `<${date.toJSON()}`, requirement: date },\n        [date, new Date(+date + 1), new Date(+date + 999999)],\n        (value) => value.toJSON()\n      );\n    });\n\n    test('for invalid non-dates', () => {\n      const date1 = new Date(123);\n      expectActionIssue(\n        ltValue(date1, 'message'),\n        { ...baseInfo, expected: `<${date1.toJSON()}`, requirement: date1 },\n        [\n          'nan',\n          '122px',\n          '+ 122',\n          '123',\n          '124.0',\n          123,\n          124,\n          124.0,\n          Infinity,\n          NaN,\n          123n,\n          124n,\n        ],\n        getReceived\n      );\n\n      const date2 = new Date(1);\n      expectActionIssue(\n        ltValue(date2, 'message'),\n        { ...baseInfo, expected: `<${date2.toJSON()}`, requirement: date2 },\n        [\n          'nan',\n          '0px',\n          '+ 0',\n          '1',\n          '1.0',\n          1,\n          1.0,\n          2,\n          Infinity,\n          NaN,\n          true,\n          1n,\n          2n,\n        ],\n        getReceived\n      );\n\n      const date3 = new Date(0);\n      expectActionIssue(\n        ltValue(date3, 'message'),\n        { ...baseInfo, expected: `<${date3.toJSON()}`, requirement: date3 },\n        [\n          'nan',\n          '-1px',\n          '- 1',\n          '0',\n          '0.0',\n          0,\n          0.0,\n          1,\n          1.0,\n          Infinity,\n          NaN,\n          false,\n          true,\n          0n,\n          1n,\n        ],\n        getReceived\n      );\n    });\n\n    test('for invalid numbers', () => {\n      expectActionIssue(\n        ltValue(10, 'message'),\n        { ...baseInfo, expected: '<10', requirement: 10 },\n        [10, 11, 9999, Number.MAX_VALUE, NaN]\n      );\n    });\n\n    test('for invalid non-numbers', () => {\n      expectActionIssue(\n        ltValue(123, 'message'),\n        { ...baseInfo, expected: '<123', requirement: 123 },\n        [\n          'nan',\n          '122px',\n          '+ 122',\n          '123',\n          '124',\n          '124.0',\n          new Date(123),\n          new Date(124),\n          123n,\n          124n,\n        ],\n        getReceived\n      );\n\n      expectActionIssue(\n        ltValue(1, 'message'),\n        { ...baseInfo, expected: '<1', requirement: 1 },\n        [\n          'nan',\n          '0px',\n          '+ 0',\n          '1',\n          '1.0',\n          true,\n          new Date(1),\n          new Date(2),\n          1n,\n          2n,\n        ],\n        getReceived\n      );\n\n      expectActionIssue(\n        ltValue(0, 'message'),\n        { ...baseInfo, expected: '<0', requirement: 0 },\n        [\n          'nan',\n          '-1px',\n          '- 1',\n          '0',\n          '0.0',\n          false,\n          true,\n          new Date(0),\n          new Date(1),\n          0n,\n          1n,\n        ],\n        getReceived\n      );\n    });\n\n    test('for invalid strings', () => {\n      expectActionIssue(\n        ltValue('2024', 'message'),\n        { ...baseInfo, expected: '<\"2024\"', requirement: '2024' },\n        ['2024', '2025', '9999', 'XYZ']\n      );\n    });\n\n    test('for invalid non-strings', () => {\n      expectActionIssue(\n        ltValue('123', 'message'),\n        { ...baseInfo, expected: '<\"123\"', requirement: '123' },\n        [\n          123,\n          124,\n          124.0,\n          Infinity,\n          NaN,\n          new Date(123),\n          new Date(124),\n          123n,\n          124n,\n        ],\n        getReceived\n      );\n\n      expectActionIssue(\n        ltValue('1', 'message'),\n        { ...baseInfo, expected: '<\"1\"', requirement: '1' },\n        [1, 1.0, 2, Infinity, NaN, true, new Date(1), new Date(2), 1n, 2n],\n        getReceived\n      );\n\n      expectActionIssue(\n        ltValue('0', 'message'),\n        { ...baseInfo, expected: '<\"0\"', requirement: '0' },\n        [\n          0,\n          0.0,\n          1,\n          1.0,\n          Infinity,\n          NaN,\n          false,\n          true,\n          new Date(0),\n          new Date(1),\n          0n,\n          1n,\n        ],\n        getReceived\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/ltValue/ltValue.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue, _stringify } from '../../utils/index.ts';\nimport type { ValueInput } from '../types.ts';\n\n/**\n * Less than value issue type.\n */\nexport interface LtValueIssue<\n  TInput extends ValueInput,\n  TRequirement extends TInput,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'lt_value';\n  /**\n   * The expected property.\n   */\n  readonly expected: `<${string}`;\n  /**\n   * The less than value.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Less than value action type.\n */\nexport interface LtValueAction<\n  TInput extends ValueInput,\n  TRequirement extends TInput,\n  TMessage extends ErrorMessage<LtValueIssue<TInput, TRequirement>> | undefined,\n> extends BaseValidation<TInput, TInput, LtValueIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'lt_value';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof ltValue;\n  /**\n   * The expected property.\n   */\n  readonly expects: `<${string}`;\n  /**\n   * The less than value.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a less than value validation action.\n *\n * @param requirement The less than value.\n *\n * @returns A less than value action.\n */\nexport function ltValue<\n  TInput extends ValueInput,\n  const TRequirement extends TInput,\n>(requirement: TRequirement): LtValueAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a less than value validation action.\n *\n * @param requirement The less than value.\n * @param message The error message.\n *\n * @returns A less than value action.\n */\nexport function ltValue<\n  TInput extends ValueInput,\n  const TRequirement extends TInput,\n  const TMessage extends\n    | ErrorMessage<LtValueIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): LtValueAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function ltValue(\n  requirement: ValueInput,\n  message?: ErrorMessage<LtValueIssue<ValueInput, ValueInput>>\n): LtValueAction<\n  ValueInput,\n  ValueInput,\n  ErrorMessage<LtValueIssue<ValueInput, ValueInput>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'lt_value',\n    reference: ltValue,\n    async: false,\n    expects: `<${\n      requirement instanceof Date\n        ? requirement.toJSON()\n        : _stringify(requirement)\n    }`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !(dataset.value < this.requirement)) {\n        _addIssue(this, 'value', dataset, config, {\n          received:\n            dataset.value instanceof Date\n              ? dataset.value.toJSON()\n              : _stringify(dataset.value),\n        });\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/mac/index.ts",
    "content": "export * from './mac.ts';\n"
  },
  {
    "path": "library/src/actions/mac/mac.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { mac, type MacAction, type MacIssue } from './mac.ts';\n\ndescribe('mac', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = MacAction<string, undefined>;\n      expectTypeOf(mac<string>()).toEqualTypeOf<Action>();\n      expectTypeOf(mac<string, undefined>(undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(mac<string, 'message'>('message')).toEqualTypeOf<\n        MacAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(mac<string, () => string>(() => 'message')).toEqualTypeOf<\n        MacAction<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = MacAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<MacIssue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/mac/mac.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { MAC_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { mac, type MacAction, type MacIssue } from './mac.ts';\n\ndescribe('mac', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<MacAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'mac',\n      reference: mac,\n      expects: null,\n      requirement: MAC_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: MacAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(mac()).toStrictEqual(action);\n      expect(mac(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(mac('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies MacAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(mac(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies MacAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = mac();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for 48-bit MAC address', () => {\n      expectNoActionIssue(action, [\n        'b6:05:20:67:f9:58',\n        'B6:05:20:67:F9:58',\n        'b6-05-20-67-f9-58',\n        'B6-05-20-67-F9-58',\n        'b605.2067.f958',\n        'B605.2067.F958',\n        '00:00:00:00:00:00',\n        '99:99:99:99:99:99',\n        'aa:aa:aa:aa:aa:aa',\n        'AA:AA:AA:AA:AA:AA',\n        'ff:ff:ff:ff:ff:ff',\n        'FF:FF:FF:FF:FF:FF',\n        '00-00-00-00-00-00',\n        '99-99-99-99-99-99',\n        'aa-aa-aa-aa-aa-aa',\n        'AA-AA-AA-AA-AA-AA',\n        'ff-ff-ff-ff-ff-ff',\n        'FF-FF-FF-FF-FF-FF',\n        '0000.0000.0000',\n        '9999.9999.9999',\n        'aaaa.aaaa.aaaa',\n        'AAAA.AAAA.AAAA',\n        'ffff.ffff.ffff',\n        'FFFF.FFFF.FFFF',\n      ]);\n    });\n\n    test('for 64-bit MAC address', () => {\n      expectNoActionIssue(action, [\n        '00:25:96:FF:FE:12:34:56',\n        '00-1A-2B-3C-4D-5E-6F-70',\n        '0025.96FF.FE12.3456',\n        '0025:96FF:FE12:3456',\n        '00:00:00:00:00:00:00:00',\n        '99:99:99:99:99:99:99:99',\n        'aa:aa:aa:aa:aa:aa:aa:aa',\n        'AA:AA:AA:AA:AA:AA:AA:AA',\n        'ff:ff:ff:ff:ff:ff:ff:ff',\n        'FF:FF:FF:FF:FF:FF:FF:FF',\n        '00-00-00-00-00-00-00-00',\n        '99-99-99-99-99-99-99-99',\n        'aa-aa-aa-aa-aa-aa-aa-aa',\n        'AA-AA-AA-AA-AA-AA-AA-AA',\n        'ff-ff-ff-ff-ff-ff-ff-ff',\n        'FF-FF-FF-FF-FF-FF-FF-FF',\n        '0000.0000.0000.0000',\n        '9999.9999.9999.9999',\n        'aaaa.aaaa.aaaa.aaaa',\n        'AAAA.AAAA.AAAA.AAAA',\n        'ffff.ffff.ffff.ffff',\n        'FFFF.FFFF.FFFF.FFFF',\n        '0000:0000:0000:0000',\n        '9999:9999:9999:9999',\n        'aaaa:aaaa:aaaa:aaaa',\n        'AAAA:AAAA:AAAA:AAAA',\n        'ffff:ffff:ffff:ffff',\n        'FFFF:FFFF:FFFF:FFFF',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = mac('message');\n    const baseIssue: Omit<MacIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'mac',\n      expected: null,\n      message: 'message',\n      requirement: MAC_REGEX,\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for invalid MAC address', () => {\n      expectActionIssue(action, baseIssue, [\n        // intended to test both - mac48 and mac64 parts of the regular expression\n        '00:1G:2B:3C:4D:5E',\n        '00:1A:2B:3C:4D',\n        '00:1A:2B:3C:4D:5E:6F',\n        '00:1A:2B:3C:4D:5E:6F:70:80',\n        '00-1G-2B-3C-4D-5E',\n        '00-1A-2B-3C-4D',\n        '00-1A-2B-3C-4D-5E-6F',\n        '00-1A-2B-3C-4D-5E-6F-70-80',\n        'b605-2067-f958',\n        '00_1A_2B_3C_4D_5E',\n        '001A2B3C4D5E6F',\n        'ZZ:ZZ:ZZ:ZZ:ZZ:ZZ',\n        '00:1A:2B:3C:4D:5E:6F:70:80:90:AB',\n        '001122334455',\n        '00:1A:2B:3C:4D:5E:6F:70:ZZ',\n        'GHIJ:KLNM:OPQR',\n        '00:00:00:00:00:00:00',\n        '00-00-00-00-00-00-00',\n        // intended to test mac48 part of the regular expression\n        '0:0:0:0:0:0',\n        '000:000:000:000:000:000',\n        '00:00:00:00:00',\n        '0-0-0-0-0-0',\n        '000-000-000-000-000-000',\n        '00-00-00-00-00',\n        '000.000.000',\n        '00000.00000.00000',\n        '-10:-10:-10:-10:-10:-10',\n        '100:100:100:100:100:100',\n        'gg:gg:gg:gg:gg:gg',\n        'GG:GG:GG:GG:GG:GG',\n        'zz:zz:zz:zz:zz:zz',\n        '-10--10--10--10--10--10',\n        '100-100-100-100-100-100',\n        'gg-gg-gg-gg-gg-gg',\n        'GG-GG-GG-GG-GG-GG',\n        'zz-zz-zz-zz-zz-zz',\n        'ZZ-ZZ-ZZ-ZZ-ZZ-ZZ',\n        '-1000.-1000.-1000',\n        '10000.10000.10000',\n        'gggg.gggg.gggg',\n        'GGGG.GGGG.GGGG',\n        'zzzz.zzzz.zzzz',\n        'ZZZZ.ZZZZ.ZZZZ',\n        // intended to test mac64 part of the regular expression\n        '0:0:0:0:0:0:0:0',\n        '000:000:000:000:000:000:000:000',\n        '00:00:00:00:00:00:00:00:00',\n        '0-0-0-0-0-0-0-0',\n        '000-000-000-000-000-000-000-000',\n        '00-00-00-00-00-00-00-00-00',\n        '000.000.000.000',\n        '00000.00000.00000.00000',\n        '0000.0000.0000.0000.0000',\n        '000:000:000:000',\n        '00000:00000:00000:00000',\n        '0000:0000:0000',\n        '0000:0000:0000:0000:0000',\n        '-10:-10:-10:-10:-10:-10:-10:-10',\n        '10000:10000:10000:10000:10000:10000:10000:10000',\n        'zzzz:zzzz:zzzz:zzzz:zzzz:zzzz:zzzz:zzzz',\n        'ZZZZ:ZZZZ:ZZZZ:ZZZZ:ZZZZ:ZZZZ:ZZZZ:ZZZZ',\n        'gggg:gggg:gggg:gggg:gggg:gggg:gggg:gggg',\n        'GGGG:GGGG:GGGG:GGGG:GGGG:GGGG:GGGG:GGGG',\n        '-10--10--10--10--10--10--10--10',\n        '10000-10000-10000-10000-10000-10000-10000-10000',\n        'zzzz-zzzz-zzzz-zzzz-zzzz-zzzz-zzzz-zzzz',\n        'ZZZZ-ZZZZ-ZZZZ-ZZZZ-ZZZZ-ZZZZ-ZZZZ-ZZZZ',\n        'gggg-gggg-gggg-gggg-gggg-gggg-gggg-gggg',\n        'GGGG-GGGG-GGGG-GGGG-GGGG-GGGG-GGGG-GGGG',\n        '-1000.-1000.-1000.-1000',\n        '10000.10000.10000.10000',\n        'zzzz.zzzz.zzzz.zzzz',\n        'ZZZZ.ZZZZ.ZZZZ.ZZZZ',\n        'gggg.gggg.gggg.gggg',\n        'GGGG.GGGG.GGGG.GGGG',\n        '-1000:-1000:-1000:-1000',\n        '10000:10000:10000:10000',\n        'zzzz:zzzz:zzzz:zzzz',\n        'ZZZZ:ZZZZ:ZZZZ:ZZZZ',\n        'gggg:gggg:gggg:gggg',\n        'GGGG:GGGG:GGGG:GGGG',\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/mac/mac.ts",
    "content": "import { MAC_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * MAC issue interface.\n */\nexport interface MacIssue<TInput extends string> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'mac';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The MAC regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * MAC action interface.\n */\nexport interface MacAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<MacIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, MacIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'mac';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof mac;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The MAC regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a [MAC address](https://en.wikipedia.org/wiki/MAC_address) validation action.\n *\n * @returns A MAC action.\n */\nexport function mac<TInput extends string>(): MacAction<TInput, undefined>;\n\n/**\n * Creates a [MAC address](https://en.wikipedia.org/wiki/MAC_address) validation action.\n *\n * @param message The error message.\n *\n * @returns A MAC action.\n */\nexport function mac<\n  TInput extends string,\n  const TMessage extends ErrorMessage<MacIssue<TInput>> | undefined,\n>(message: TMessage): MacAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function mac(\n  message?: ErrorMessage<MacIssue<string>>\n): MacAction<string, ErrorMessage<MacIssue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'mac',\n    reference: mac,\n    async: false,\n    expects: null,\n    requirement: MAC_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'MAC', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/mac48/index.ts",
    "content": "export * from './mac48.ts';\n"
  },
  {
    "path": "library/src/actions/mac48/mac48.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { mac48, type Mac48Action, type Mac48Issue } from './mac48.ts';\n\ndescribe('mac48', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = Mac48Action<string, undefined>;\n      expectTypeOf(mac48<string>()).toEqualTypeOf<Action>();\n      expectTypeOf(mac48<string, undefined>(undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(mac48<string, 'message'>('message')).toEqualTypeOf<\n        Mac48Action<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(mac48<string, () => string>(() => 'message')).toEqualTypeOf<\n        Mac48Action<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = Mac48Action<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<Mac48Issue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/mac48/mac48.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { MAC48_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { mac48, type Mac48Action, type Mac48Issue } from './mac48.ts';\n\ndescribe('mac48', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<Mac48Action<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'mac48',\n      reference: mac48,\n      expects: null,\n      requirement: MAC48_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: Mac48Action<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(mac48()).toStrictEqual(action);\n      expect(mac48(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(mac48('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies Mac48Action<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(mac48(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies Mac48Action<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = mac48();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for 48-bit MAC address', () => {\n      expectNoActionIssue(action, [\n        'b6:05:20:67:f9:58',\n        'B6:05:20:67:F9:58',\n        'b6-05-20-67-f9-58',\n        'B6-05-20-67-F9-58',\n        'b605.2067.f958',\n        'B605.2067.F958',\n        '00:00:00:00:00:00',\n        '99:99:99:99:99:99',\n        'aa:aa:aa:aa:aa:aa',\n        'AA:AA:AA:AA:AA:AA',\n        'ff:ff:ff:ff:ff:ff',\n        'FF:FF:FF:FF:FF:FF',\n        '00-00-00-00-00-00',\n        '99-99-99-99-99-99',\n        'aa-aa-aa-aa-aa-aa',\n        'AA-AA-AA-AA-AA-AA',\n        'ff-ff-ff-ff-ff-ff',\n        'FF-FF-FF-FF-FF-FF',\n        '0000.0000.0000',\n        '9999.9999.9999',\n        'aaaa.aaaa.aaaa',\n        'AAAA.AAAA.AAAA',\n        'ffff.ffff.ffff',\n        'FFFF.FFFF.FFFF',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = mac48('message');\n    const baseIssue: Omit<Mac48Issue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'mac48',\n      expected: null,\n      message: 'message',\n      requirement: MAC48_REGEX,\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for 64-bit MAC address', () => {\n      expectActionIssue(action, baseIssue, [\n        '00:25:96:FF:FE:12:34:56',\n        '00-1A-2B-3C-4D-5E-6F-70',\n        '0025.96FF.FE12.3456',\n        '0025:96FF:FE12:3456',\n      ]);\n    });\n\n    test('for invalid 48-bit MAC address', () => {\n      expectActionIssue(action, baseIssue, [\n        '00:1G:2B:3C:4D:5E',\n        '00:1A:2B:3C:4D',\n        '00:1A:2B:3C:4D:5E:6F',\n        '00:1A:2B:3C:4D:5E:6F:70:80',\n        '00-1G-2B-3C-4D-5E',\n        '00-1A-2B-3C-4D',\n        '00-1A-2B-3C-4D-5E-6F',\n        '00-1A-2B-3C-4D-5E-6F-70-80',\n        'b605-2067-f958',\n        '00_1A_2B_3C_4D_5E',\n        '001A2B3C4D5E6F',\n        '00:1A:2B:3C:4D:5E:6F:70:80:90:AB',\n        '001122334455',\n        '00:1A:2B:3C:4D:5E:6F:70:ZZ',\n        'GHIJ:KLNM:OPQR',\n        '00:00:00:00:00:00:00',\n        '00-00-00-00-00-00-00',\n        '0:0:0:0:0:0',\n        '000:000:000:000:000:000',\n        '00:00:00:00:00',\n        '0-0-0-0-0-0',\n        '000-000-000-000-000-000',\n        '00-00-00-00-00',\n        '000.000.000',\n        '00000.00000.00000',\n        '0000.0000',\n        '0000.0000.0000.0000',\n        '-10:-10:-10:-10:-10:-10',\n        '100:100:100:100:100:100',\n        'gg:gg:gg:gg:gg:gg',\n        'GG:GG:GG:GG:GG:GG',\n        'zz:zz:zz:zz:zz:zz',\n        'ZZ:ZZ:ZZ:ZZ:ZZ:ZZ',\n        '-10--10--10--10--10--10',\n        '100-100-100-100-100-100',\n        'gg-gg-gg-gg-gg-gg',\n        'GG-GG-GG-GG-GG-GG',\n        'zz-zz-zz-zz-zz-zz',\n        'ZZ-ZZ-ZZ-ZZ-ZZ-ZZ',\n        '-1000.-1000.-1000',\n        '10000.10000.10000',\n        'gggg.gggg.gggg',\n        'GGGG.GGGG.GGGG',\n        'zzzz.zzzz.zzzz',\n        'ZZZZ.ZZZZ.ZZZZ',\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/mac48/mac48.ts",
    "content": "import { MAC48_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * 48-bit MAC issue interface.\n */\nexport interface Mac48Issue<TInput extends string> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'mac48';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The 48-bit MAC regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * 48-bit MAC action interface.\n */\nexport interface Mac48Action<\n  TInput extends string,\n  TMessage extends ErrorMessage<Mac48Issue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, Mac48Issue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'mac48';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof mac48;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The 48-bit MAC regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a 48-bit [MAC address](https://en.wikipedia.org/wiki/MAC_address) validation action.\n *\n * @returns A 48-bit MAC action.\n */\nexport function mac48<TInput extends string>(): Mac48Action<TInput, undefined>;\n\n/**\n * Creates a 48-bit [MAC address](https://en.wikipedia.org/wiki/MAC_address) validation action.\n *\n * @param message The error message.\n *\n * @returns A 48-bit MAC action.\n */\nexport function mac48<\n  TInput extends string,\n  const TMessage extends ErrorMessage<Mac48Issue<TInput>> | undefined,\n>(message: TMessage): Mac48Action<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function mac48(\n  message?: ErrorMessage<Mac48Issue<string>>\n): Mac48Action<string, ErrorMessage<Mac48Issue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'mac48',\n    reference: mac48,\n    async: false,\n    expects: null,\n    requirement: MAC48_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, '48-bit MAC', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/mac64/index.ts",
    "content": "export * from './mac64.ts';\n"
  },
  {
    "path": "library/src/actions/mac64/mac64.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { mac64, type Mac64Action, type Mac64Issue } from './mac64.ts';\n\ndescribe('mac64', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = Mac64Action<string, undefined>;\n      expectTypeOf(mac64<string>()).toEqualTypeOf<Action>();\n      expectTypeOf(mac64<string, undefined>(undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(mac64<string, 'message'>('message')).toEqualTypeOf<\n        Mac64Action<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(mac64<string, () => string>(() => 'message')).toEqualTypeOf<\n        Mac64Action<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = Mac64Action<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<Mac64Issue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/mac64/mac64.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { MAC64_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { mac64, type Mac64Action, type Mac64Issue } from './mac64.ts';\n\ndescribe('mac64', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<Mac64Action<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'mac64',\n      reference: mac64,\n      expects: null,\n      requirement: MAC64_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: Mac64Action<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(mac64()).toStrictEqual(action);\n      expect(mac64(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(mac64('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies Mac64Action<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(mac64(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies Mac64Action<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = mac64();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for 64-bit MAC address', () => {\n      expectNoActionIssue(action, [\n        '00:25:96:FF:FE:12:34:56',\n        '00-1A-2B-3C-4D-5E-6F-70',\n        '0025.96FF.FE12.3456',\n        '0025:96FF:FE12:3456',\n        '00:00:00:00:00:00:00:00',\n        '99:99:99:99:99:99:99:99',\n        'aa:aa:aa:aa:aa:aa:aa:aa',\n        'AA:AA:AA:AA:AA:AA:AA:AA',\n        'ff:ff:ff:ff:ff:ff:ff:ff',\n        'FF:FF:FF:FF:FF:FF:FF:FF',\n        '00-00-00-00-00-00-00-00',\n        '99-99-99-99-99-99-99-99',\n        'aa-aa-aa-aa-aa-aa-aa-aa',\n        'AA-AA-AA-AA-AA-AA-AA-AA',\n        'ff-ff-ff-ff-ff-ff-ff-ff',\n        'FF-FF-FF-FF-FF-FF-FF-FF',\n        '0000.0000.0000.0000',\n        '9999.9999.9999.9999',\n        'aaaa.aaaa.aaaa.aaaa',\n        'AAAA.AAAA.AAAA.AAAA',\n        'ffff.ffff.ffff.ffff',\n        'FFFF.FFFF.FFFF.FFFF',\n        '0000:0000:0000:0000',\n        '9999:9999:9999:9999',\n        'aaaa:aaaa:aaaa:aaaa',\n        'AAAA:AAAA:AAAA:AAAA',\n        'ffff:ffff:ffff:ffff',\n        'FFFF:FFFF:FFFF:FFFF',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = mac64('message');\n    const baseIssue: Omit<Mac64Issue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'mac64',\n      expected: null,\n      message: 'message',\n      requirement: MAC64_REGEX,\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for 48-bit MAC address', () => {\n      expectActionIssue(action, baseIssue, [\n        'b6:05:20:67:f9:58',\n        'b6-05-20-67-f9-58',\n        'b605.2067.f958',\n        '0000.0000.0000',\n      ]);\n    });\n\n    test('for invalid 64-bit MAC address', () => {\n      expectActionIssue(action, baseIssue, [\n        '00:1G:2B:3C:4D:5E',\n        '00:1A:2B:3C:4D',\n        '00:1A:2B:3C:4D:5E:6F',\n        '00:1A:2B:3C:4D:5E:6F:70:80',\n        '00-1G-2B-3C-4D-5E',\n        '00-1A-2B-3C-4D',\n        '00-1A-2B-3C-4D-5E-6F',\n        '00-1A-2B-3C-4D-5E-6F-70-80',\n        'b605-2067-f958',\n        '00_1A_2B_3C_4D_5E',\n        '001A2B3C4D5E6F',\n        'ZZ:ZZ:ZZ:ZZ:ZZ:ZZ',\n        '00:1A:2B:3C:4D:5E:6F:70:80:90:AB',\n        '001122334455',\n        '00:1A:2B:3C:4D:5E:6F:70:ZZ',\n        'GHIJ:KLNM:OPQR',\n        '0:0:0:0:0:0:0:0',\n        '000:000:000:000:000:000:000:000',\n        '00:00:00:00:00:00:00',\n        '00:00:00:00:00:00:00:00:00',\n        '0-0-0-0-0-0-0-0',\n        '000-000-000-000-000-000-000-000',\n        '00-00-00-00-00-00-00',\n        '00-00-00-00-00-00-00-00-00',\n        '000.000.000.000',\n        '00000.00000.00000.00000',\n        '0000.0000.0000.0000.0000',\n        '000:000:000:000',\n        '00000:00000:00000:00000',\n        '0000:0000:0000',\n        '0000:0000:0000:0000:0000',\n        '-10:-10:-10:-10:-10:-10:-10:-10',\n        '10000:10000:10000:10000:10000:10000:10000:10000',\n        'zzzz:zzzz:zzzz:zzzz:zzzz:zzzz:zzzz:zzzz',\n        'ZZZZ:ZZZZ:ZZZZ:ZZZZ:ZZZZ:ZZZZ:ZZZZ:ZZZZ',\n        'gggg:gggg:gggg:gggg:gggg:gggg:gggg:gggg',\n        'GGGG:GGGG:GGGG:GGGG:GGGG:GGGG:GGGG:GGGG',\n        '-10--10--10--10--10--10--10--10',\n        '10000-10000-10000-10000-10000-10000-10000-10000',\n        'zzzz-zzzz-zzzz-zzzz-zzzz-zzzz-zzzz-zzzz',\n        'ZZZZ-ZZZZ-ZZZZ-ZZZZ-ZZZZ-ZZZZ-ZZZZ-ZZZZ',\n        'gggg-gggg-gggg-gggg-gggg-gggg-gggg-gggg',\n        'GGGG-GGGG-GGGG-GGGG-GGGG-GGGG-GGGG-GGGG',\n        '-1000.-1000.-1000.-1000',\n        '10000.10000.10000.10000',\n        'zzzz.zzzz.zzzz.zzzz',\n        'ZZZZ.ZZZZ.ZZZZ.ZZZZ',\n        'gggg.gggg.gggg.gggg',\n        'GGGG.GGGG.GGGG.GGGG',\n        '-1000:-1000:-1000:-1000',\n        '10000:10000:10000:10000',\n        'zzzz:zzzz:zzzz:zzzz',\n        'ZZZZ:ZZZZ:ZZZZ:ZZZZ',\n        'gggg:gggg:gggg:gggg',\n        'GGGG:GGGG:GGGG:GGGG',\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/mac64/mac64.ts",
    "content": "import { MAC64_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * 64-bit MAC issue interface.\n */\nexport interface Mac64Issue<TInput extends string> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'mac64';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The 64-bit MAC regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * 64-bit MAC action interface.\n */\nexport interface Mac64Action<\n  TInput extends string,\n  TMessage extends ErrorMessage<Mac64Issue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, Mac64Issue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'mac64';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof mac64;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The 64-bit MAC regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a 64-bit [MAC address](https://en.wikipedia.org/wiki/MAC_address) validation action.\n *\n * @returns A 64-bit MAC action.\n */\nexport function mac64<TInput extends string>(): Mac64Action<TInput, undefined>;\n\n/**\n * Creates a 64-bit [MAC address](https://en.wikipedia.org/wiki/MAC_address) validation action.\n *\n * @param message The error message.\n *\n * @returns A 64-bit MAC action.\n */\nexport function mac64<\n  TInput extends string,\n  const TMessage extends ErrorMessage<Mac64Issue<TInput>> | undefined,\n>(message: TMessage): Mac64Action<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function mac64(\n  message?: ErrorMessage<Mac64Issue<string>>\n): Mac64Action<string, ErrorMessage<Mac64Issue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'mac64',\n    reference: mac64,\n    async: false,\n    expects: null,\n    requirement: MAC64_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, '64-bit MAC', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/mapItems/index.ts",
    "content": "export * from './mapItems.ts';\n"
  },
  {
    "path": "library/src/actions/mapItems/mapItems.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { mapItems, type MapItemsAction } from './mapItems.ts';\n\ndescribe('mapItems', () => {\n  test('should return action object', () => {\n    expectTypeOf(\n      mapItems<number[], { item: number }>((item) => ({ item }))\n    ).toEqualTypeOf<MapItemsAction<number[], { item: number }>>();\n  });\n\n  describe('should infer correct types', () => {\n    type Action = MapItemsAction<number[], { item: number }>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<number[]>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<{ item: number }[]>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<never>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/mapItems/mapItems.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { mapItems, type MapItemsAction } from './mapItems.ts';\n\ndescribe('mapItems', () => {\n  const operation = (item: number) => ({ item });\n  const action = mapItems<number[], { item: number }>(operation);\n\n  test('should return action object', () => {\n    expect(action).toStrictEqual({\n      kind: 'transformation',\n      type: 'map_items',\n      reference: mapItems,\n      async: false,\n      operation,\n      '~run': expect.any(Function),\n    } satisfies MapItemsAction<number[], { item: number }>);\n  });\n\n  test('should transform input', () => {\n    expect(\n      action['~run']({ typed: true, value: [-12, 345, 0] }, {})\n    ).toStrictEqual({\n      typed: true,\n      value: [{ item: -12 }, { item: 345 }, { item: 0 }],\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/mapItems/mapItems.ts",
    "content": "import type { BaseTransformation } from '../../types/index.ts';\nimport type { ArrayInput } from '../types.ts';\n\n/**\n * Array action type.\n */\ntype ArrayAction<TInput extends ArrayInput, TOutput> = (\n  item: TInput[number],\n  index: number,\n  array: TInput\n) => TOutput;\n\n/**\n * Map items action interface.\n */\nexport interface MapItemsAction<TInput extends ArrayInput, TOutput>\n  extends BaseTransformation<TInput, TOutput[], never> {\n  /**\n   * The action type.\n   */\n  readonly type: 'map_items';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof mapItems;\n  /**\n   * The map items operation.\n   */\n  readonly operation: ArrayAction<TInput, TOutput>;\n}\n\n/**\n * Creates a map items transformation action.\n *\n * @param operation The map items operation.\n *\n * @returns A map items action.\n */\nexport function mapItems<TInput extends ArrayInput, TOutput>(\n  operation: ArrayAction<TInput, TOutput>\n): MapItemsAction<TInput, TOutput>;\n\n// @__NO_SIDE_EFFECTS__\nexport function mapItems(\n  operation: ArrayAction<unknown[], unknown>\n): MapItemsAction<unknown[], unknown> {\n  return {\n    kind: 'transformation',\n    type: 'map_items',\n    reference: mapItems,\n    async: false,\n    operation,\n    '~run'(dataset) {\n      dataset.value = dataset.value.map(this.operation);\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/maxBytes/index.ts",
    "content": "export * from './maxBytes.ts';\n"
  },
  {
    "path": "library/src/actions/maxBytes/maxBytes.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  maxBytes,\n  type MaxBytesAction,\n  type MaxBytesIssue,\n} from './maxBytes.ts';\n\ndescribe('maxBytes', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = MaxBytesAction<string, 10, undefined>;\n      expectTypeOf(maxBytes<string, 10>(10)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        maxBytes<string, 10, undefined>(10, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        maxBytes<string, 10, 'message'>(10, 'message')\n      ).toEqualTypeOf<MaxBytesAction<string, 10, 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        maxBytes<string, 10, () => string>(10, () => 'message')\n      ).toEqualTypeOf<MaxBytesAction<string, 10, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = MaxBytesAction<string, 10, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        MaxBytesIssue<string, 10>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/maxBytes/maxBytes.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  maxBytes,\n  type MaxBytesAction,\n  type MaxBytesIssue,\n} from './maxBytes.ts';\n\ndescribe('maxBytes', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<MaxBytesAction<string, 5, never>, 'message'> = {\n      kind: 'validation',\n      type: 'max_bytes',\n      reference: maxBytes,\n      expects: '<=5',\n      requirement: 5,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: MaxBytesAction<string, 5, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(maxBytes(5)).toStrictEqual(action);\n      expect(maxBytes(5, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(maxBytes(5, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies MaxBytesAction<string, 5, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(maxBytes(5, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies MaxBytesAction<string, 5, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = maxBytes(5);\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid strings', () => {\n      expectNoActionIssue(action, ['', '1', '1234', '12345']);\n    });\n\n    test('for valid chars', () => {\n      expectNoActionIssue(action, [\n        'あ', // 'あ' is 3 bytes\n        '🤖!', // '🤖' is 4 bytes\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = maxBytes(5, 'message');\n    const baseIssue: Omit<MaxBytesIssue<string, 5>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'max_bytes',\n      expected: '<=5',\n      message: 'message',\n      requirement: 5,\n    };\n\n    const getReceived = (value: string) =>\n      `${new TextEncoder().encode(value).length}`;\n\n    test('for invalid strings', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        ['123456', 'foobarbaz123'],\n        getReceived\n      );\n    });\n\n    test('for invalid chars', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [\n          'あい', // 'あい' is 6 bytes\n        ],\n        getReceived\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/maxBytes/maxBytes.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue, _getByteCount } from '../../utils/index.ts';\n\n/**\n * Max bytes issue interface.\n */\nexport interface MaxBytesIssue<\n  TInput extends string,\n  TRequirement extends number,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'max_bytes';\n  /**\n   * The expected property.\n   */\n  readonly expected: `<=${TRequirement}`;\n  /**\n   * The received property.\n   */\n  readonly received: `${number}`;\n  /**\n   * The maximum bytes.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Max bytes action interface.\n */\nexport interface MaxBytesAction<\n  TInput extends string,\n  TRequirement extends number,\n  TMessage extends\n    | ErrorMessage<MaxBytesIssue<TInput, TRequirement>>\n    | undefined,\n> extends BaseValidation<TInput, TInput, MaxBytesIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'max_bytes';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof maxBytes;\n  /**\n   * The expected property.\n   */\n  readonly expects: `<=${TRequirement}`;\n  /**\n   * The maximum bytes.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a max [bytes](https://en.wikipedia.org/wiki/Byte) validation action.\n *\n * @param requirement The maximum bytes.\n *\n * @returns A max bytes action.\n */\nexport function maxBytes<\n  TInput extends string,\n  const TRequirement extends number,\n>(requirement: TRequirement): MaxBytesAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a max [bytes](https://en.wikipedia.org/wiki/Byte) validation action.\n *\n * @param requirement The maximum bytes.\n * @param message The error message.\n *\n * @returns A max bytes action.\n */\nexport function maxBytes<\n  TInput extends string,\n  const TRequirement extends number,\n  const TMessage extends\n    | ErrorMessage<MaxBytesIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): MaxBytesAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function maxBytes(\n  requirement: number,\n  message?: ErrorMessage<MaxBytesIssue<string, number>>\n): MaxBytesAction<\n  string,\n  number,\n  ErrorMessage<MaxBytesIssue<string, number>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'max_bytes',\n    reference: maxBytes,\n    async: false,\n    expects: `<=${requirement}`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed) {\n        const length = _getByteCount(dataset.value);\n        if (length > this.requirement) {\n          _addIssue(this, 'bytes', dataset, config, {\n            received: `${length}`,\n          });\n        }\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/maxEntries/index.ts",
    "content": "export * from './maxEntries.ts';\n"
  },
  {
    "path": "library/src/actions/maxEntries/maxEntries.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  maxEntries,\n  type MaxEntriesAction,\n  type MaxEntriesIssue,\n} from './maxEntries.ts';\n\ndescribe('maxEntries', () => {\n  type Input = Record<string, number>;\n\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = MaxEntriesAction<Input, 10, undefined>;\n      expectTypeOf(maxEntries<Input, 10>(10)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        maxEntries<Input, 10, undefined>(10, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        maxEntries<Input, 10, 'message'>(10, 'message')\n      ).toEqualTypeOf<MaxEntriesAction<Input, 10, 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        maxEntries<Input, 10, () => string>(10, () => 'message')\n      ).toEqualTypeOf<MaxEntriesAction<Input, 10, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = MaxEntriesAction<Input, 10, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        MaxEntriesIssue<Input, 10>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/maxEntries/maxEntries.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { RecordIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  maxEntries,\n  type MaxEntriesAction,\n  type MaxEntriesIssue,\n} from './maxEntries.ts';\n\ndescribe('maxEntries', () => {\n  type Input = Record<string, number>;\n\n  describe('should return action object', () => {\n    const baseAction: Omit<MaxEntriesAction<Input, 3, never>, 'message'> = {\n      kind: 'validation',\n      type: 'max_entries',\n      reference: maxEntries,\n      expects: '<=3',\n      requirement: 3,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: MaxEntriesAction<Input, 3, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(maxEntries(3)).toStrictEqual(action);\n      expect(maxEntries(3, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(maxEntries(3, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies MaxEntriesAction<Input, 3, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(maxEntries(3, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies MaxEntriesAction<Input, 3, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = maxEntries(3);\n\n    test('for untyped inputs', () => {\n      const issues: [RecordIssue] = [\n        {\n          kind: 'schema',\n          type: 'record',\n          input: null,\n          expected: 'Object',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid objects', () => {\n      expectNoActionIssue(action, [\n        {},\n        { foo: 1 },\n        { foo: 1, bar: 2 },\n        { foo: 1, bar: 2, baz: 3 },\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = maxEntries(3, 'message');\n    const baseIssue: Omit<MaxEntriesIssue<Input, 3>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'max_entries',\n      expected: '<=3',\n      message: 'message',\n      requirement: 3,\n    };\n\n    test('for invalid objects', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [\n          { foo: 1, bar: 2, baz: 3, qux: 4 },\n          { foo: 1, bar: 2, baz: 3, qux: 4, quux: 5 },\n        ],\n        (value) => `${Object.keys(value).length}`\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/maxEntries/maxEntries.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\nimport type { EntriesInput } from '../types.ts';\n\n/**\n * Max entries issue interface.\n *\n * @beta\n */\nexport interface MaxEntriesIssue<\n  TInput extends EntriesInput,\n  TRequirement extends number,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'max_entries';\n  /**\n   * The expected property.\n   */\n  readonly expected: `<=${TRequirement}`;\n  /**\n   * The received property.\n   */\n  readonly received: `${number}`;\n  /**\n   * The maximum entries.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Max entries action interface.\n *\n * @beta\n */\nexport interface MaxEntriesAction<\n  TInput extends EntriesInput,\n  TRequirement extends number,\n  TMessage extends\n    | ErrorMessage<MaxEntriesIssue<TInput, TRequirement>>\n    | undefined,\n> extends BaseValidation<\n    TInput,\n    TInput,\n    MaxEntriesIssue<TInput, TRequirement>\n  > {\n  /**\n   * The action type.\n   */\n  readonly type: 'max_entries';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof maxEntries;\n  /**\n   * The expected property.\n   */\n  readonly expects: `<=${TRequirement}`;\n  /**\n   * The maximum entries.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a max entries validation action.\n *\n * @param requirement The maximum entries.\n *\n * @returns A max entries action.\n *\n * @beta\n */\nexport function maxEntries<\n  TInput extends EntriesInput,\n  const TRequirement extends number,\n>(requirement: TRequirement): MaxEntriesAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a max entries validation action.\n *\n * @param requirement The maximum entries.\n * @param message The error message.\n *\n * @returns A max entries action.\n *\n * @beta\n */\nexport function maxEntries<\n  TInput extends EntriesInput,\n  const TRequirement extends number,\n  const TMessage extends\n    | ErrorMessage<MaxEntriesIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): MaxEntriesAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function maxEntries(\n  requirement: number,\n  message?: ErrorMessage<MaxEntriesIssue<EntriesInput, number>>\n): MaxEntriesAction<\n  EntriesInput,\n  number,\n  ErrorMessage<MaxEntriesIssue<EntriesInput, number>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'max_entries',\n    reference: maxEntries,\n    async: false,\n    expects: `<=${requirement}`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (!dataset.typed) return dataset;\n      const count = Object.keys(dataset.value).length;\n      if (dataset.typed && count > this.requirement) {\n        _addIssue(this, 'entries', dataset, config, {\n          received: `${count}`,\n        });\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/maxGraphemes/index.ts",
    "content": "export * from './maxGraphemes.ts';\n"
  },
  {
    "path": "library/src/actions/maxGraphemes/maxGraphemes.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  maxGraphemes,\n  type MaxGraphemesAction,\n  type MaxGraphemesIssue,\n} from './maxGraphemes.ts';\n\ndescribe('maxGraphemes', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = MaxGraphemesAction<string, 10, undefined>;\n      expectTypeOf(maxGraphemes<string, 10>(10)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        maxGraphemes<string, 10, undefined>(10, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        maxGraphemes<string, 10, 'message'>(10, 'message')\n      ).toEqualTypeOf<MaxGraphemesAction<string, 10, 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        maxGraphemes<string, 10, () => string>(10, () => 'message')\n      ).toEqualTypeOf<MaxGraphemesAction<string, 10, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Input = 'example string';\n    type Action = MaxGraphemesAction<Input, 10, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        MaxGraphemesIssue<Input, 10>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/maxGraphemes/maxGraphemes.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { _getGraphemeCount } from '../../utils/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  maxGraphemes,\n  type MaxGraphemesAction,\n  type MaxGraphemesIssue,\n} from './maxGraphemes.ts';\n\ndescribe('maxGraphemes', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<MaxGraphemesAction<string, 5, never>, 'message'> = {\n      kind: 'validation',\n      type: 'max_graphemes',\n      reference: maxGraphemes,\n      expects: '<=5',\n      requirement: 5,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: MaxGraphemesAction<string, 5, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(maxGraphemes(5)).toStrictEqual(action);\n      expect(maxGraphemes(5, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(maxGraphemes(5, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies MaxGraphemesAction<string, 5, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(maxGraphemes(5, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies MaxGraphemesAction<string, 5, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = maxGraphemes(5);\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid strings', () => {\n      expectNoActionIssue(action, ['', ' ', '1', 'foo', '12345', '12 45']);\n    });\n\n    test('for valid emoji', () => {\n      expectNoActionIssue(action, ['😀', '😀👋🏼', '😀👋🏼🧩👩🏻‍🏫', '😀👋🏼🧩👩🏻‍🏫🫥']);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = maxGraphemes(5, 'message');\n    const baseIssue: Omit<\n      MaxGraphemesIssue<string, 5>,\n      'input' | 'received'\n    > = {\n      kind: 'validation',\n      type: 'max_graphemes',\n      expected: '<=5',\n      message: 'message',\n      requirement: 5,\n    };\n\n    test('for invalid strings', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        ['123456', '12345 ', '123456789', 'foo bar baz'],\n        (value) => `${_getGraphemeCount(value)}`\n      );\n    });\n\n    test('for invalid emoji', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        ['😀👋🏼🧩👩🏻‍🏫🫥🫠', '😀👋🏼🧩👩🏻‍🏫🫥🫠🧑‍💻👻🥎'],\n        (value) => `${_getGraphemeCount(value)}`\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/maxGraphemes/maxGraphemes.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue, _getGraphemeCount } from '../../utils/index.ts';\n\n/**\n * Max graphemes issue interface.\n */\nexport interface MaxGraphemesIssue<\n  TInput extends string,\n  TRequirement extends number,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'max_graphemes';\n  /**\n   * The expected property.\n   */\n  readonly expected: `<=${TRequirement}`;\n  /**\n   * The received property.\n   */\n  readonly received: `${number}`;\n  /**\n   * The maximum graphemes.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Max graphemes action interface.\n */\nexport interface MaxGraphemesAction<\n  TInput extends string,\n  TRequirement extends number,\n  TMessage extends\n    | ErrorMessage<MaxGraphemesIssue<TInput, TRequirement>>\n    | undefined,\n> extends BaseValidation<\n    TInput,\n    TInput,\n    MaxGraphemesIssue<TInput, TRequirement>\n  > {\n  /**\n   * The action type.\n   */\n  readonly type: 'max_graphemes';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof maxGraphemes;\n  /**\n   * The expected property.\n   */\n  readonly expects: `<=${TRequirement}`;\n  /**\n   * The maximum graphemes.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a max graphemes validation action.\n *\n * @param requirement The maximum graphemes.\n *\n * @returns A max graphemes action.\n */\nexport function maxGraphemes<\n  TInput extends string,\n  const TRequirement extends number,\n>(\n  requirement: TRequirement\n): MaxGraphemesAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a max graphemes validation action.\n *\n * @param requirement The maximum graphemes.\n * @param message The error message.\n *\n * @returns A max graphemes action.\n */\nexport function maxGraphemes<\n  TInput extends string,\n  const TRequirement extends number,\n  const TMessage extends\n    | ErrorMessage<MaxGraphemesIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): MaxGraphemesAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function maxGraphemes(\n  requirement: number,\n  message?: ErrorMessage<MaxGraphemesIssue<string, number>>\n): MaxGraphemesAction<\n  string,\n  number,\n  ErrorMessage<MaxGraphemesIssue<string, number>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'max_graphemes',\n    reference: maxGraphemes,\n    async: false,\n    expects: `<=${requirement}`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed) {\n        const count = _getGraphemeCount(dataset.value);\n        if (count > this.requirement) {\n          _addIssue(this, 'graphemes', dataset, config, {\n            received: `${count}`,\n          });\n        }\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/maxLength/index.ts",
    "content": "export * from './maxLength.ts';\n"
  },
  {
    "path": "library/src/actions/maxLength/maxLength.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  maxLength,\n  type MaxLengthAction,\n  type MaxLengthIssue,\n} from './maxLength.ts';\n\ndescribe('maxLength', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = MaxLengthAction<string, 10, undefined>;\n      expectTypeOf(maxLength<string, 10>(10)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        maxLength<string, 10, undefined>(10, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        maxLength<string, 10, 'message'>(10, 'message')\n      ).toEqualTypeOf<MaxLengthAction<string, 10, 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        maxLength<string, 10, () => string>(10, () => 'message')\n      ).toEqualTypeOf<MaxLengthAction<string, 10, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = MaxLengthAction<string, 10, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        MaxLengthIssue<string, 10>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/maxLength/maxLength.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  maxLength,\n  type MaxLengthAction,\n  type MaxLengthIssue,\n} from './maxLength.ts';\n\ndescribe('maxLength', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<MaxLengthAction<string, 5, never>, 'message'> = {\n      kind: 'validation',\n      type: 'max_length',\n      reference: maxLength,\n      expects: '<=5',\n      requirement: 5,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: MaxLengthAction<string, 5, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(maxLength(5)).toStrictEqual(action);\n      expect(maxLength(5, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(maxLength(5, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies MaxLengthAction<string, 5, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(maxLength(5, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies MaxLengthAction<string, 5, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = maxLength(5);\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid strings', () => {\n      expectNoActionIssue(action, ['', 'foo', '12345']);\n    });\n\n    test('for valid arrays', () => {\n      expectNoActionIssue(action, [[], ['foo', 'bar'], [1, 2, 3, 4, 5]]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = maxLength(5, 'message');\n    const baseIssue: Omit<MaxLengthIssue<string, 5>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'max_length',\n      expected: '<=5',\n      message: 'message',\n      requirement: 5,\n    };\n\n    test('for invalid strings', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        ['123456', 'foobarbaz123'],\n        (value) => `${value.length}`\n      );\n    });\n\n    test('for invalid arrays', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [[1, 2, 3, 4, 5, 6], Array(999)],\n        (value) => `${value.length}`\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/maxLength/maxLength.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\nimport type { LengthInput } from '../types.ts';\n\n/**\n * Max length issue interface.\n */\nexport interface MaxLengthIssue<\n  TInput extends LengthInput,\n  TRequirement extends number,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'max_length';\n  /**\n   * The expected property.\n   */\n  readonly expected: `<=${TRequirement}`;\n  /**\n   * The received property.\n   */\n  readonly received: `${number}`;\n  /**\n   * The maximum length.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Max length action interface.\n */\nexport interface MaxLengthAction<\n  TInput extends LengthInput,\n  TRequirement extends number,\n  TMessage extends\n    | ErrorMessage<MaxLengthIssue<TInput, TRequirement>>\n    | undefined,\n> extends BaseValidation<TInput, TInput, MaxLengthIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'max_length';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof maxLength;\n  /**\n   * The expected property.\n   */\n  readonly expects: `<=${TRequirement}`;\n  /**\n   * The maximum length.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a max length validation action.\n *\n * @param requirement The maximum length.\n *\n * @returns A max length action.\n */\nexport function maxLength<\n  TInput extends LengthInput,\n  const TRequirement extends number,\n>(requirement: TRequirement): MaxLengthAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a max length validation action.\n *\n * @param requirement The maximum length.\n * @param message The error message.\n *\n * @returns A max length action.\n */\nexport function maxLength<\n  TInput extends LengthInput,\n  const TRequirement extends number,\n  const TMessage extends\n    | ErrorMessage<MaxLengthIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): MaxLengthAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function maxLength(\n  requirement: number,\n  message?: ErrorMessage<MaxLengthIssue<LengthInput, number>>\n): MaxLengthAction<\n  LengthInput,\n  number,\n  ErrorMessage<MaxLengthIssue<LengthInput, number>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'max_length',\n    reference: maxLength,\n    async: false,\n    expects: `<=${requirement}`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && dataset.value.length > this.requirement) {\n        _addIssue(this, 'length', dataset, config, {\n          received: `${dataset.value.length}`,\n        });\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/maxSize/index.ts",
    "content": "export * from './maxSize.ts';\n"
  },
  {
    "path": "library/src/actions/maxSize/maxSize.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { maxSize, type MaxSizeAction, type MaxSizeIssue } from './maxSize.ts';\n\ndescribe('maxSize', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = MaxSizeAction<Blob, 10, undefined>;\n      expectTypeOf(maxSize<Blob, 10>(10)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        maxSize<Blob, 10, undefined>(10, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(maxSize<Blob, 10, 'message'>(10, 'message')).toEqualTypeOf<\n        MaxSizeAction<Blob, 10, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        maxSize<Blob, 10, () => string>(10, () => 'message')\n      ).toEqualTypeOf<MaxSizeAction<Blob, 10, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = MaxSizeAction<Map<string, number>, 10, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Map<string, number>>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Map<string, number>>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        MaxSizeIssue<Map<string, number>, 10>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/maxSize/maxSize.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { MapIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { maxSize, type MaxSizeAction, type MaxSizeIssue } from './maxSize.ts';\n\ndescribe('maxSize', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<MaxSizeAction<Blob, 5, never>, 'message'> = {\n      kind: 'validation',\n      type: 'max_size',\n      reference: maxSize,\n      expects: '<=5',\n      requirement: 5,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: MaxSizeAction<Blob, 5, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(maxSize(5)).toStrictEqual(action);\n      expect(maxSize(5, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(maxSize(5, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies MaxSizeAction<Blob, 5, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(maxSize(5, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies MaxSizeAction<Blob, 5, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = maxSize(3);\n\n    test('for untyped inputs', () => {\n      const issues: [MapIssue] = [\n        {\n          kind: 'schema',\n          type: 'map',\n          input: null,\n          expected: 'Map',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid maps', () => {\n      expectNoActionIssue(action, [\n        new Map(),\n        new Map([[1, null]]),\n        new Map<string | number, string>([\n          [1, 'one'],\n          ['2', 'two'],\n        ]),\n        new Map<string | number | boolean, string | null>([\n          ['1', 'one'],\n          [2, null],\n          [true, null],\n        ]),\n      ]);\n    });\n\n    test('for valid sets', () => {\n      expectNoActionIssue(action, [\n        new Set(),\n        new Set([1]),\n        new Set([1, '2']),\n        new Set(['1', 2, { value: 3 }]),\n      ]);\n    });\n\n    test('for valid blobs', () => {\n      expectNoActionIssue(action, [\n        new Blob([]),\n        new Blob(['1']),\n        new Blob(['hi'], { type: 'text/plain' }),\n        new Blob([new Uint8Array([72, 101, 121])]), // 'Hey'\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = maxSize(3, 'message');\n    const baseIssue: Omit<\n      MaxSizeIssue<Map<number, string>, 3>,\n      'input' | 'received'\n    > = {\n      kind: 'validation',\n      type: 'max_size',\n      expected: '<=3',\n      message: 'message',\n      requirement: 3,\n    };\n\n    test('for invalid maps', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [\n          new Map([\n            [1, 'one'],\n            [2, 'two'],\n            [3, 'three'],\n            [4, 'four'],\n          ]),\n          new Map<string, unknown>([\n            ['one', 'foo'],\n            ['two', 123],\n            ['three', true],\n            ['four', null],\n            ['five', undefined],\n            ['six', {}],\n            ['seven', []],\n          ]),\n        ],\n        (value) => `${value.size}`\n      );\n    });\n\n    test('for invalid sets', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [\n          new Set([1, 2, 3, 4]),\n          new Set([1, null, '3', true, undefined, [], {}]),\n        ],\n        (value) => `${value.size}`\n      );\n    });\n\n    test('for invalid blobs', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [\n          new Blob(['Hey!'], { type: 'text/plain' }),\n          new Blob(\n            [new Uint8Array([72, 101, 108, 108, 111])], // 'Hello'\n            { type: 'text/plain' }\n          ),\n          new Blob(['foobarbaz123']),\n        ],\n        (value) => `${value.size}`\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/maxSize/maxSize.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\nimport type { SizeInput } from '../types.ts';\n\n/**\n * Max size issue interface.\n */\nexport interface MaxSizeIssue<\n  TInput extends SizeInput,\n  TRequirement extends number,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'max_size';\n  /**\n   * The expected property.\n   */\n  readonly expected: `<=${TRequirement}`;\n  /**\n   * The received property.\n   */\n  readonly received: `${number}`;\n  /**\n   * The maximum size.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Max size action interface.\n */\nexport interface MaxSizeAction<\n  TInput extends SizeInput,\n  TRequirement extends number,\n  TMessage extends ErrorMessage<MaxSizeIssue<TInput, TRequirement>> | undefined,\n> extends BaseValidation<TInput, TInput, MaxSizeIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'max_size';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof maxSize;\n  /**\n   * The expected property.\n   */\n  readonly expects: `<=${TRequirement}`;\n  /**\n   * The maximum size.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a max size validation action.\n *\n * @param requirement The maximum size.\n *\n * @returns A max size action.\n */\nexport function maxSize<\n  TInput extends SizeInput,\n  const TRequirement extends number,\n>(requirement: TRequirement): MaxSizeAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a max size validation action.\n *\n * @param requirement The maximum size.\n * @param message The error message.\n *\n * @returns A max size action.\n */\nexport function maxSize<\n  TInput extends SizeInput,\n  const TRequirement extends number,\n  const TMessage extends\n    | ErrorMessage<MaxSizeIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): MaxSizeAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function maxSize(\n  requirement: number,\n  message?: ErrorMessage<MaxSizeIssue<SizeInput, number>>\n): MaxSizeAction<\n  SizeInput,\n  number,\n  ErrorMessage<MaxSizeIssue<SizeInput, number>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'max_size',\n    reference: maxSize,\n    async: false,\n    expects: `<=${requirement}`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && dataset.value.size > this.requirement) {\n        _addIssue(this, 'size', dataset, config, {\n          received: `${dataset.value.size}`,\n        });\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/maxValue/index.ts",
    "content": "export * from './maxValue.ts';\n"
  },
  {
    "path": "library/src/actions/maxValue/maxValue.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  maxValue,\n  type MaxValueAction,\n  type MaxValueIssue,\n} from './maxValue.ts';\n\ndescribe('maxValue', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = MaxValueAction<number, 10, undefined>;\n      expectTypeOf(maxValue<number, 10>(10)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        maxValue<number, 10, undefined>(10, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        maxValue<number, 10, 'message'>(10, 'message')\n      ).toEqualTypeOf<MaxValueAction<number, 10, 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        maxValue<number, 10, () => string>(10, () => 'message')\n      ).toEqualTypeOf<MaxValueAction<number, 10, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = MaxValueAction<number, 10, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        MaxValueIssue<number, 10>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/maxValue/maxValue.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { NumberIssue } from '../../schemas/index.ts';\nimport { _stringify } from '../../utils/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { maxValue, type MaxValueAction } from './maxValue.ts';\n\ndescribe('maxValue', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<MaxValueAction<number, 5, never>, 'message'> = {\n      kind: 'validation',\n      type: 'max_value',\n      reference: maxValue,\n      expects: '<=5',\n      requirement: 5,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: MaxValueAction<number, 5, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(maxValue(5)).toStrictEqual(action);\n      expect(maxValue(5, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(maxValue(5, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies MaxValueAction<number, 5, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(maxValue(5, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies MaxValueAction<number, 5, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for untyped inputs', () => {\n      const issues: [NumberIssue] = [\n        {\n          kind: 'schema',\n          type: 'number',\n          input: null,\n          expected: 'number',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        maxValue(1)['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({ typed: false, value: null, issues });\n    });\n\n    test('for valid bigints', () => {\n      expectNoActionIssue(maxValue(10n), [-9999n, 0n, 10n]);\n    });\n\n    test('for valid non-bigints', () => {\n      expectNoActionIssue(maxValue(10n), [\n        '-10',\n        '',\n        ' ',\n        '0',\n        '10',\n        ' 10 ',\n        -10,\n        0,\n        10,\n        -Infinity,\n        -10.0,\n        0.0,\n        10.0,\n        false,\n        true,\n        new Date(-10),\n        new Date(0),\n        new Date(10),\n      ]);\n\n      expectNoActionIssue(maxValue(1n), [\n        '-1',\n        '',\n        ' ',\n        '0',\n        ' 0 ',\n        '1',\n        -Infinity,\n        -1,\n        0,\n        1,\n        -1.0,\n        0.0,\n        1.0,\n        false,\n        true,\n        new Date(-1),\n        new Date(0),\n        new Date(1),\n      ]);\n\n      expectNoActionIssue(maxValue(0n), [\n        '-1',\n        ' -1 ',\n        ' ',\n        '0',\n        -Infinity,\n        -1,\n        -0,\n        -1.0,\n        -0.0,\n        false,\n        new Date(-1),\n        new Date(0),\n      ]);\n    });\n\n    test('for valid booleans', () => {\n      expectNoActionIssue(maxValue(true), [true, false]);\n      expectNoActionIssue(maxValue(false), [false]);\n    });\n\n    test('for valid non-booleans', () => {\n      expectNoActionIssue(maxValue(true), [\n        '-1',\n        '-1.0',\n        '',\n        ' ',\n        '0',\n        '0.0',\n        ' 0 ',\n        '1',\n        '1.0',\n        -Infinity,\n        -1,\n        0,\n        0.0,\n        1,\n        new Date(-1),\n        new Date(0),\n        new Date(1),\n        -1n,\n        0n,\n        1n,\n      ]);\n\n      expectNoActionIssue(maxValue(false), [\n        '-1',\n        '-1.0',\n        ' -1 ',\n        ' ',\n        '0',\n        '0.0',\n        -Infinity,\n        -1,\n        -1.0,\n        -0.5,\n        -0,\n        new Date(-1),\n        new Date(0),\n        -1n,\n        0n,\n      ]);\n    });\n\n    test('for valid dates', () => {\n      const date = new Date();\n      expectNoActionIssue(maxValue(date), [\n        new Date(0),\n        new Date(+date - 999999),\n        date,\n      ]);\n    });\n\n    test('for valid non-dates', () => {\n      const date1 = new Date(10);\n      expectNoActionIssue(maxValue(date1), [\n        '-10',\n        '-10.0',\n        '',\n        ' ',\n        '0',\n        '0.0',\n        '10',\n        '10.0',\n        ' 10 ',\n        -10,\n        0,\n        10,\n        -Infinity,\n        -10.0,\n        0.0,\n        10.0,\n        false,\n        true,\n        -10n,\n        0n,\n        10n,\n      ]);\n\n      const date2 = new Date(1);\n      expectNoActionIssue(maxValue(date2), [\n        '-1',\n        '-1.0',\n        '',\n        ' ',\n        '0',\n        '0.0',\n        ' 0 ',\n        '1',\n        '1.0',\n        -Infinity,\n        -1,\n        0,\n        0.0,\n        1,\n        false,\n        true,\n        -1n,\n        0n,\n        1n,\n      ]);\n\n      const date3 = new Date(0);\n      expectNoActionIssue(maxValue(date3), [\n        '-1',\n        '-1.0',\n        ' -1 ',\n        ' ',\n        '0',\n        '0.0',\n        -Infinity,\n        -1,\n        -1.0,\n        -0.5,\n        -0,\n        false,\n        -1n,\n        0n,\n      ]);\n    });\n\n    test('for valid numbers', () => {\n      expectNoActionIssue(maxValue(10), [Number.MIN_VALUE, 0, 10]);\n    });\n\n    test('for valid non-numbers', () => {\n      expectNoActionIssue(maxValue(10), [\n        '-10',\n        '-10.0',\n        '',\n        ' ',\n        '0',\n        '0.0',\n        '10',\n        '10.0',\n        ' 10 ',\n        false,\n        true,\n        new Date(-10),\n        new Date(0),\n        new Date(10),\n        -10n,\n        0n,\n        10n,\n      ]);\n\n      expectNoActionIssue(maxValue(1), [\n        '-1',\n        '-1.0',\n        '',\n        ' ',\n        '0',\n        '0.0',\n        ' 0 ',\n        '1',\n        '1.0',\n        false,\n        true,\n        new Date(-1),\n        new Date(0),\n        new Date(1),\n        -1n,\n        0n,\n        1n,\n      ]);\n\n      expectNoActionIssue(maxValue(0), [\n        '-1',\n        '-1.0',\n        ' -1 ',\n        ' ',\n        '0',\n        '0.0',\n        false,\n        new Date(-1),\n        new Date(0),\n        -1n,\n        0n,\n      ]);\n    });\n\n    test('for valid strings', () => {\n      expectNoActionIssue(maxValue('2024'), ['', '1234', '2024']);\n    });\n\n    test('for valid non-strings', () => {\n      expectNoActionIssue(maxValue('10'), [\n        -10,\n        0,\n        10,\n        -Infinity,\n        -10.0,\n        0.0,\n        10.0,\n        false,\n        true,\n        new Date(-10),\n        new Date(0),\n        new Date(10),\n        -10n,\n        0n,\n        10n,\n      ]);\n\n      expectNoActionIssue(maxValue('1'), [\n        -Infinity,\n        -1,\n        0,\n        0.0,\n        1,\n        false,\n        true,\n        new Date(-1),\n        new Date(0),\n        new Date(1),\n        -1n,\n        0n,\n        1n,\n      ]);\n\n      expectNoActionIssue(maxValue('0'), [\n        -Infinity,\n        -1,\n        -1.0,\n        -0.5,\n        -0,\n        false,\n        new Date(-1),\n        new Date(0),\n        -1n,\n        0n,\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const baseInfo = {\n      kind: 'validation',\n      type: 'max_value',\n      message: 'message',\n    } as const;\n\n    const getReceived = (value: unknown): string =>\n      value instanceof Date ? value.toJSON() : _stringify(value);\n\n    test('for invalid bigints', () => {\n      expectActionIssue(\n        maxValue(10n, 'message'),\n        { ...baseInfo, expected: '<=10', requirement: 10n },\n        [11n, 9999n]\n      );\n    });\n\n    test('for invalid non-bigints', () => {\n      expectActionIssue(\n        maxValue(123n, 'message'),\n        { ...baseInfo, expected: '<=123', requirement: 123n },\n        [\n          'nan',\n          '123px',\n          '+ 123',\n          '123.0',\n          '126',\n          124,\n          124.0,\n          Infinity,\n          NaN,\n          new Date(124),\n        ],\n        getReceived\n      );\n\n      expectActionIssue(\n        maxValue(1n, 'message'),\n        { ...baseInfo, expected: '<=1', requirement: 1n },\n        ['nan', '1px', '+ 1', '1.0', '2', 2, 2.0, Infinity, NaN, new Date(2)],\n        getReceived\n      );\n\n      expectActionIssue(\n        maxValue(0n, 'message'),\n        { ...baseInfo, expected: '<=0', requirement: 0n },\n        [\n          'nan',\n          '0px',\n          '+ 0',\n          '0.0',\n          '1',\n          0.5,\n          1,\n          1.0,\n          Infinity,\n          NaN,\n          true,\n          new Date(1),\n        ],\n        getReceived\n      );\n    });\n\n    test('for invalid booleans', () => {\n      expectActionIssue(\n        maxValue(false, 'message'),\n        { ...baseInfo, expected: '<=false', requirement: false },\n        [true]\n      );\n    });\n\n    test('for invalid non-booleans', () => {\n      expectActionIssue(\n        maxValue(false, 'message'),\n        { ...baseInfo, expected: '<=false', requirement: false },\n        ['nan', '0px', '+ 0', '1', 0.5, 1, 1.0, Infinity, NaN, new Date(1), 1n],\n        getReceived\n      );\n\n      expectActionIssue(\n        maxValue(true, 'message'),\n        { ...baseInfo, expected: '<=true', requirement: true },\n        ['nan', '1px', '+ 1', '2', 2, 2.0, Infinity, NaN, new Date(2), 2n],\n        getReceived\n      );\n    });\n\n    test('for invalid dates', () => {\n      const date = new Date();\n      expectActionIssue(\n        maxValue<Date, Date, 'message'>(date, 'message'),\n        { ...baseInfo, expected: `<=${date.toJSON()}`, requirement: date },\n        [new Date(+date + 1), new Date(+date + 999999)],\n        (value) => value.toJSON()\n      );\n    });\n\n    test('for invalid non-dates', () => {\n      const date1 = new Date(123);\n      expectActionIssue(\n        maxValue(date1, 'message'),\n        { ...baseInfo, expected: `<=${date1.toJSON()}`, requirement: date1 },\n        [\n          'nan',\n          '123px',\n          '+ 123',\n          '123.5',\n          '126',\n          124,\n          124.0,\n          Infinity,\n          NaN,\n          124n,\n        ],\n        getReceived\n      );\n\n      const date2 = new Date(1);\n      expectActionIssue(\n        maxValue(date2, 'message'),\n        { ...baseInfo, expected: `<=${date2.toJSON()}`, requirement: date2 },\n        ['nan', '1px', '+ 1', '2', 2, 2.0, Infinity, NaN, 2n],\n        getReceived\n      );\n\n      const date3 = new Date(0);\n      expectActionIssue(\n        maxValue(date3, 'message'),\n        { ...baseInfo, expected: `<=${date3.toJSON()}`, requirement: date3 },\n        ['nan', '0px', '+ 0', '1', 0.5, 1, 1.0, Infinity, NaN, true, 1n],\n        getReceived\n      );\n    });\n\n    test('for invalid numbers', () => {\n      expectActionIssue(\n        maxValue(10, 'message'),\n        { ...baseInfo, expected: '<=10', requirement: 10 },\n        [11, 9999, Number.MAX_VALUE, NaN]\n      );\n    });\n\n    test('for invalid non-numbers', () => {\n      expectActionIssue(\n        maxValue(123, 'message'),\n        { ...baseInfo, expected: '<=123', requirement: 123 },\n        ['nan', '123px', '+ 123', '126', new Date(124), 124n],\n        getReceived\n      );\n\n      expectActionIssue(\n        maxValue(1, 'message'),\n        { ...baseInfo, expected: '<=1', requirement: 1 },\n        ['nan', '1px', '+ 1', '2', new Date(2), 2n],\n        getReceived\n      );\n\n      expectActionIssue(\n        maxValue(0, 'message'),\n        { ...baseInfo, expected: '<=0', requirement: 0 },\n        ['nan', '0px', '+ 0', '0.5', '1', true, new Date(1), 1n],\n        getReceived\n      );\n    });\n\n    test('for invalid strings', () => {\n      expectActionIssue(\n        maxValue('2024', 'message'),\n        { ...baseInfo, expected: '<=\"2024\"', requirement: '2024' },\n        ['2025', '9999', 'XYZ']\n      );\n    });\n\n    test('for invalid non-strings', () => {\n      expectActionIssue(\n        maxValue('123', 'message'),\n        { ...baseInfo, expected: '<=\"123\"', requirement: '123' },\n        [123.5, 124, 124.0, Infinity, NaN, new Date(124), 124n],\n        getReceived\n      );\n\n      expectActionIssue(\n        maxValue('1', 'message'),\n        { ...baseInfo, expected: '<=\"1\"', requirement: '1' },\n        [2, 2.0, Infinity, NaN, new Date(2), 2n],\n        getReceived\n      );\n\n      expectActionIssue(\n        maxValue('0', 'message'),\n        { ...baseInfo, expected: '<=\"0\"', requirement: '0' },\n        [0.5, 1, 1.0, Infinity, NaN, true, new Date(1), 1n],\n        getReceived\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/maxValue/maxValue.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue, _stringify } from '../../utils/index.ts';\nimport type { ValueInput } from '../types.ts';\n\n/**\n * Max value issue interface.\n */\nexport interface MaxValueIssue<\n  TInput extends ValueInput,\n  TRequirement extends ValueInput,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'max_value';\n  /**\n   * The expected property.\n   */\n  readonly expected: `<=${string}`;\n  /**\n   * The maximum value.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Max value action interface.\n */\nexport interface MaxValueAction<\n  TInput extends ValueInput,\n  TRequirement extends TInput,\n  TMessage extends\n    | ErrorMessage<MaxValueIssue<TInput, TRequirement>>\n    | undefined,\n> extends BaseValidation<TInput, TInput, MaxValueIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'max_value';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof maxValue;\n  /**\n   * The expected property.\n   */\n  readonly expects: `<=${string}`;\n  /**\n   * The maximum value.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a max value validation action.\n *\n * @param requirement The maximum value.\n *\n * @returns A max value action.\n */\nexport function maxValue<\n  TInput extends ValueInput,\n  const TRequirement extends TInput,\n>(requirement: TRequirement): MaxValueAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a max value validation action.\n *\n * @param requirement The maximum value.\n * @param message The error message.\n *\n * @returns A max value action.\n */\nexport function maxValue<\n  TInput extends ValueInput,\n  const TRequirement extends TInput,\n  const TMessage extends\n    | ErrorMessage<MaxValueIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): MaxValueAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function maxValue(\n  requirement: ValueInput,\n  message?: ErrorMessage<MaxValueIssue<ValueInput, ValueInput>>\n): MaxValueAction<\n  ValueInput,\n  ValueInput,\n  ErrorMessage<MaxValueIssue<ValueInput, ValueInput>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'max_value',\n    reference: maxValue,\n    async: false,\n    expects: `<=${\n      requirement instanceof Date\n        ? requirement.toJSON()\n        : _stringify(requirement)\n    }`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !(dataset.value <= this.requirement)) {\n        _addIssue(this, 'value', dataset, config, {\n          received:\n            dataset.value instanceof Date\n              ? dataset.value.toJSON()\n              : _stringify(dataset.value),\n        });\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/maxWords/index.ts",
    "content": "export * from './maxWords.ts';\n"
  },
  {
    "path": "library/src/actions/maxWords/maxWords.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  maxWords,\n  type MaxWordsAction,\n  type MaxWordsIssue,\n} from './maxWords.ts';\n\ndescribe('maxWords', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = MaxWordsAction<string, 'en', 3, undefined>;\n      expectTypeOf(maxWords<string, 'en', 3>('en', 3)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        maxWords<string, 'en', 3, undefined>('en', 3, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        maxWords<string, 'en', 3, 'message'>('en', 3, 'message')\n      ).toEqualTypeOf<MaxWordsAction<string, 'en', 3, 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        maxWords<string, 'en', 3, () => string>('en', 3, () => 'message')\n      ).toEqualTypeOf<MaxWordsAction<string, 'en', 3, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Input = 'foo bar baz';\n    type Action = MaxWordsAction<Input, 'en', 3, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        MaxWordsIssue<Input, 3>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/maxWords/maxWords.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { _getWordCount } from '../../utils/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  maxWords,\n  type MaxWordsAction,\n  type MaxWordsIssue,\n} from './maxWords.ts';\n\ndescribe('maxWords', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<\n      MaxWordsAction<string, 'en', 3, never>,\n      'message'\n    > = {\n      kind: 'validation',\n      type: 'max_words',\n      reference: maxWords,\n      expects: '<=3',\n      locales: 'en',\n      requirement: 3,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: MaxWordsAction<string, 'en', 3, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(maxWords('en', 3)).toStrictEqual(action);\n      expect(maxWords('en', 3, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(maxWords('en', 3, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies MaxWordsAction<string, 'en', 3, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(maxWords('en', 3, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies MaxWordsAction<string, 'en', 3, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = maxWords('en', 3);\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid strings', () => {\n      expectNoActionIssue(action, [\n        '',\n        ' ',\n        'foo',\n        'foo bar',\n        'for bar baz',\n        'Lorem ipsum?',\n        'Lorem ipsum dolor?',\n        'Hi, welcome!',\n        'Hi, welcome home!',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = maxWords('en', 3, 'message');\n    const baseIssue: Omit<MaxWordsIssue<string, 3>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'max_words',\n      expected: '<=3',\n      message: 'message',\n      requirement: 3,\n    };\n\n    test('for invalid strings', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [\n          'for bar baz qux',\n          'Lorem ipsum dolor sit?',\n          'Lorem ipsum dolor sit amet, consectetur adipiscing elit?',\n          'Hi, welcome home! How are you?',\n        ],\n        (value) => `${_getWordCount('en', value)}`\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/maxWords/maxWords.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue, _getWordCount } from '../../utils/index.ts';\n\n/**\n * Max words issue interface.\n */\nexport interface MaxWordsIssue<\n  TInput extends string,\n  TRequirement extends number,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'max_words';\n  /**\n   * The expected property.\n   */\n  readonly expected: `<=${TRequirement}`;\n  /**\n   * The received property.\n   */\n  readonly received: `${number}`;\n  /**\n   * The maximum words.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Max words action interface.\n */\nexport interface MaxWordsAction<\n  TInput extends string,\n  TLocales extends Intl.LocalesArgument,\n  TRequirement extends number,\n  TMessage extends\n    | ErrorMessage<MaxWordsIssue<TInput, TRequirement>>\n    | undefined,\n> extends BaseValidation<TInput, TInput, MaxWordsIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'max_words';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof maxWords;\n  /**\n   * The expected property.\n   */\n  readonly expects: `<=${TRequirement}`;\n  /**\n   * The locales to be used.\n   */\n  readonly locales: TLocales;\n  /**\n   * The maximum words.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a max words validation action.\n *\n * @param locales The locales to be used.\n * @param requirement The maximum words.\n *\n * @returns A max words action.\n */\nexport function maxWords<\n  TInput extends string,\n  TLocales extends Intl.LocalesArgument,\n  const TRequirement extends number,\n>(\n  locales: TLocales,\n  requirement: TRequirement\n): MaxWordsAction<TInput, TLocales, TRequirement, undefined>;\n\n/**\n * Creates a max words validation action.\n *\n * @param locales The locales to be used.\n * @param requirement The maximum words.\n * @param message The error message.\n *\n * @returns A max words action.\n */\nexport function maxWords<\n  TInput extends string,\n  TLocales extends Intl.LocalesArgument,\n  const TRequirement extends number,\n  const TMessage extends\n    | ErrorMessage<MaxWordsIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  locales: TLocales,\n  requirement: TRequirement,\n  message: TMessage\n): MaxWordsAction<TInput, TLocales, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function maxWords(\n  locales: Intl.LocalesArgument,\n  requirement: number,\n  message?: ErrorMessage<MaxWordsIssue<string, number>>\n): MaxWordsAction<\n  string,\n  Intl.LocalesArgument,\n  number,\n  ErrorMessage<MaxWordsIssue<string, number>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'max_words',\n    reference: maxWords,\n    async: false,\n    expects: `<=${requirement}`,\n    locales,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed) {\n        const count = _getWordCount(this.locales, dataset.value);\n        if (count > this.requirement) {\n          _addIssue(this, 'words', dataset, config, {\n            received: `${count}`,\n          });\n        }\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/metadata/index.ts",
    "content": "export * from './metadata.ts';\n"
  },
  {
    "path": "library/src/actions/metadata/metadata.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { metadata, type MetadataAction } from './metadata.ts';\n\ndescribe('metadata', () => {\n  type Action = MetadataAction<string, { key: 'foo' }>;\n\n  test('should return action object', () => {\n    expectTypeOf(\n      metadata<string, { key: 'foo' }>({ key: 'foo' })\n    ).toEqualTypeOf<Action>();\n  });\n\n  describe('should infer correct types', () => {\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<never>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/metadata/metadata.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { metadata, type MetadataAction } from './metadata.ts';\n\ndescribe('metadata', () => {\n  test('should return action object', () => {\n    expect(metadata<string, { key: 'foo' }>({ key: 'foo' })).toStrictEqual({\n      kind: 'metadata',\n      type: 'metadata',\n      reference: metadata,\n      metadata: { key: 'foo' },\n    } satisfies MetadataAction<string, { key: 'foo' }>);\n  });\n});\n"
  },
  {
    "path": "library/src/actions/metadata/metadata.ts",
    "content": "import type { BaseMetadata } from '../../types/index.ts';\n\n/**\n * Metadata action interface.\n */\nexport interface MetadataAction<\n  TInput,\n  TMetadata extends Record<string, unknown>,\n> extends BaseMetadata<TInput> {\n  /**\n   * The action type.\n   */\n  readonly type: 'metadata';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof metadata;\n  /**\n   * The metadata object.\n   */\n  readonly metadata: TMetadata;\n}\n\n/**\n * Creates a custom metadata action.\n *\n * @param metadata_ The metadata object.\n *\n * @returns A metadata action.\n */\n// @__NO_SIDE_EFFECTS__\nexport function metadata<\n  TInput,\n  const TMetadata extends Record<string, unknown>,\n>(metadata_: TMetadata): MetadataAction<TInput, TMetadata> {\n  return {\n    kind: 'metadata',\n    type: 'metadata',\n    reference: metadata,\n    metadata: metadata_,\n  };\n}\n"
  },
  {
    "path": "library/src/actions/mimeType/index.ts",
    "content": "export * from './mimeType.ts';\n"
  },
  {
    "path": "library/src/actions/mimeType/mimeType.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  mimeType,\n  type MimeTypeAction,\n  type MimeTypeIssue,\n} from './mimeType.ts';\n\ndescribe('mimeType', () => {\n  const requirement = ['text/html', 'image/png'] as const;\n  type Requirement = typeof requirement;\n\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = MimeTypeAction<Blob, Requirement, undefined>;\n      expectTypeOf(mimeType(requirement)).toEqualTypeOf<Action>();\n      expectTypeOf(mimeType(requirement, undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(mimeType(requirement, 'message')).toEqualTypeOf<\n        MimeTypeAction<Blob, Requirement, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(mimeType(requirement, () => 'message')).toEqualTypeOf<\n        MimeTypeAction<Blob, Requirement, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = MimeTypeAction<Blob, Requirement, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Blob>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Blob>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        MimeTypeIssue<Blob, Requirement>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/mimeType/mimeType.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { FileIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  mimeType,\n  type MimeTypeAction,\n  type MimeTypeIssue,\n} from './mimeType.ts';\n\ndescribe('mimeType', () => {\n  const requirement = ['text/html', 'image/png'] as const;\n  type Requirement = typeof requirement;\n\n  describe('should return action object', () => {\n    const baseAction: Omit<\n      MimeTypeAction<Blob, Requirement, never>,\n      'message'\n    > = {\n      kind: 'validation',\n      type: 'mime_type',\n      reference: mimeType,\n      expects: '(\"text/html\" | \"image/png\")',\n      requirement,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: MimeTypeAction<Blob, Requirement, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(mimeType(requirement)).toStrictEqual(action);\n      expect(mimeType(requirement, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      const message = 'message';\n      expect(mimeType(requirement, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies MimeTypeAction<Blob, Requirement, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(mimeType(requirement, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies MimeTypeAction<Blob, Requirement, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = mimeType(requirement);\n\n    test('for untyped inputs', () => {\n      const issues: [FileIssue] = [\n        {\n          kind: 'schema',\n          type: 'file',\n          input: null,\n          expected: 'File',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid MIME types', () => {\n      expectNoActionIssue(action, [\n        new Blob(['foo'], { type: 'text/html' }),\n        new Blob(['foo'], { type: 'image/png' }),\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = mimeType(requirement, 'message');\n\n    const baseIssue: Omit<\n      MimeTypeIssue<Blob, never>,\n      'input' | 'received' | 'expected' | 'requirement'\n    > = {\n      kind: 'validation',\n      type: 'mime_type',\n      message: 'message',\n    };\n\n    test('for valid MIME types', () => {\n      expectActionIssue(\n        action,\n        { ...baseIssue, expected: '(\"text/html\" | \"image/png\")', requirement },\n        [\n          new Blob(['foo'], { type: 'text/plain' }),\n          new Blob(['foo'], { type: 'image/jpeg' }),\n        ],\n        (input) => `\"${input.type}\"`\n      );\n    });\n\n    test('for empty requirement', () => {\n      expectActionIssue(\n        mimeType([], 'message'),\n        { ...baseIssue, expected: 'never', requirement: [] },\n        [\n          new Blob(['foo'], { type: 'text/plain' }),\n          new Blob(['foo'], { type: 'image/jpeg' }),\n        ],\n        (input) => `\"${input.type}\"`\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/mimeType/mimeType.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue, _joinExpects } from '../../utils/index.ts';\n\n/**\n * Requirement type.\n */\ntype Requirement = readonly `${string}/${string}`[];\n\n/**\n * MIME type issue interface.\n */\nexport interface MimeTypeIssue<\n  TInput extends Blob,\n  TRequirement extends Requirement,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'mime_type';\n  /**\n   * The expected input.\n   */\n  readonly expected: string;\n  /**\n   * The received input.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The MIME types.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * MIME type action interface.\n */\nexport interface MimeTypeAction<\n  TInput extends Blob,\n  TRequirement extends Requirement,\n  TMessage extends\n    | ErrorMessage<MimeTypeIssue<TInput, TRequirement>>\n    | undefined,\n> extends BaseValidation<TInput, TInput, MimeTypeIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'mime_type';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof mimeType;\n  /**\n   * The expected property.\n   */\n  readonly expects: string;\n  /**\n   * The MIME types.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a [MIME type](https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/MIME_types) validation action.\n *\n * @param requirement The MIME types.\n *\n * @returns A MIME type action.\n */\nexport function mimeType<\n  TInput extends Blob,\n  const TRequirement extends Requirement,\n>(requirement: TRequirement): MimeTypeAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a [MIME type](https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/MIME_types) validation action.\n *\n * @param requirement The MIME types.\n * @param message The error message.\n *\n * @returns A MIME type action.\n */\nexport function mimeType<\n  TInput extends Blob,\n  const TRequirement extends Requirement,\n  const TMessage extends\n    | ErrorMessage<MimeTypeIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): MimeTypeAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function mimeType(\n  requirement: Requirement,\n  message?: ErrorMessage<MimeTypeIssue<Blob, Requirement>>\n): MimeTypeAction<\n  Blob,\n  Requirement,\n  ErrorMessage<MimeTypeIssue<Blob, Requirement>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'mime_type',\n    reference: mimeType,\n    async: false,\n    expects: _joinExpects(\n      requirement.map((option) => `\"${option}\"`),\n      '|'\n    ),\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (\n        dataset.typed &&\n        !this.requirement.includes(dataset.value.type as `${string}/${string}`)\n      ) {\n        _addIssue(this, 'MIME type', dataset, config, {\n          received: `\"${dataset.value.type}\"`,\n        });\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/minBytes/index.ts",
    "content": "export * from './minBytes.ts';\n"
  },
  {
    "path": "library/src/actions/minBytes/minBytes.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  minBytes,\n  type MinBytesAction,\n  type MinBytesIssue,\n} from './minBytes.ts';\n\ndescribe('minBytes', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = MinBytesAction<string, 10, undefined>;\n      expectTypeOf(minBytes<string, 10>(10)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        minBytes<string, 10, undefined>(10, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        minBytes<string, 10, 'message'>(10, 'message')\n      ).toEqualTypeOf<MinBytesAction<string, 10, 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        minBytes<string, 10, () => string>(10, () => 'message')\n      ).toEqualTypeOf<MinBytesAction<string, 10, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = MinBytesAction<string, 10, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        MinBytesIssue<string, 10>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/minBytes/minBytes.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  minBytes,\n  type MinBytesAction,\n  type MinBytesIssue,\n} from './minBytes.ts';\n\ndescribe('minBytes', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<MinBytesAction<string, 5, never>, 'message'> = {\n      kind: 'validation',\n      type: 'min_bytes',\n      reference: minBytes,\n      expects: '>=5',\n      requirement: 5,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: MinBytesAction<string, 5, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(minBytes(5)).toStrictEqual(action);\n      expect(minBytes(5, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(minBytes(5, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies MinBytesAction<string, 5, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(minBytes(5, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies MinBytesAction<string, 5, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = minBytes(5);\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid strings', () => {\n      expectNoActionIssue(action, ['12345', '123456', 'foobarbaz123']);\n    });\n\n    test('for valid chars', () => {\n      expectNoActionIssue(action, [\n        '🤖!', // '🤖' is 4 bytes\n        'あい', // 'あい' is 6 bytes\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = minBytes(5, 'message');\n    const baseIssue: Omit<MinBytesIssue<string, 5>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'min_bytes',\n      expected: '>=5',\n      message: 'message',\n      requirement: 5,\n    };\n\n    const getReceived = (value: string) =>\n      `${new TextEncoder().encode(value).length}`;\n\n    test('for invalid strings', () => {\n      expectActionIssue(action, baseIssue, ['', '1', '1234'], getReceived);\n    });\n\n    test('for invalid chars', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [\n          'あ', // 'あ' is 3 bytes\n          '🤖', // '🤖' is 4 bytes\n        ],\n        getReceived\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/minBytes/minBytes.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue, _getByteCount } from '../../utils/index.ts';\n\n/**\n * Min bytes issue interface.\n */\nexport interface MinBytesIssue<\n  TInput extends string,\n  TRequirement extends number,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'min_bytes';\n  /**\n   * The expected property.\n   */\n  readonly expected: `>=${TRequirement}`;\n  /**\n   * The received property.\n   */\n  readonly received: `${number}`;\n  /**\n   * The minimum bytes.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Min bytes action interface.\n */\nexport interface MinBytesAction<\n  TInput extends string,\n  TRequirement extends number,\n  TMessage extends\n    | ErrorMessage<MinBytesIssue<TInput, TRequirement>>\n    | undefined,\n> extends BaseValidation<TInput, TInput, MinBytesIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'min_bytes';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof minBytes;\n  /**\n   * The expected property.\n   */\n  readonly expects: `>=${TRequirement}`;\n  /**\n   * The minimum bytes.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a min [bytes](https://en.wikipedia.org/wiki/Byte) validation action.\n *\n * @param requirement The minimum bytes.\n *\n * @returns A min bytes action.\n */\nexport function minBytes<\n  TInput extends string,\n  const TRequirement extends number,\n>(requirement: TRequirement): MinBytesAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a min [bytes](https://en.wikipedia.org/wiki/Byte) validation action.\n *\n * @param requirement The minimum bytes.\n * @param message The error message.\n *\n * @returns A min bytes action.\n */\nexport function minBytes<\n  TInput extends string,\n  const TRequirement extends number,\n  const TMessage extends\n    | ErrorMessage<MinBytesIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): MinBytesAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function minBytes(\n  requirement: number,\n  message?: ErrorMessage<MinBytesIssue<string, number>>\n): MinBytesAction<\n  string,\n  number,\n  ErrorMessage<MinBytesIssue<string, number>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'min_bytes',\n    reference: minBytes,\n    async: false,\n    expects: `>=${requirement}`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed) {\n        const length = _getByteCount(dataset.value);\n        if (length < this.requirement) {\n          _addIssue(this, 'bytes', dataset, config, {\n            received: `${length}`,\n          });\n        }\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/minEntries/index.ts",
    "content": "export * from './minEntries.ts';\n"
  },
  {
    "path": "library/src/actions/minEntries/minEntries.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  minEntries,\n  type MinEntriesAction,\n  type MinEntriesIssue,\n} from './minEntries.ts';\n\ndescribe('minEntries', () => {\n  type Input = Record<string, number>;\n\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = MinEntriesAction<Input, 10, undefined>;\n      expectTypeOf(minEntries<Input, 10>(10)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        minEntries<Input, 10, undefined>(10, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        minEntries<Input, 10, 'message'>(10, 'message')\n      ).toEqualTypeOf<MinEntriesAction<Input, 10, 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        minEntries<Input, 10, () => string>(10, () => 'message')\n      ).toEqualTypeOf<MinEntriesAction<Input, 10, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = MinEntriesAction<Input, 10, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        MinEntriesIssue<Input, 10>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/minEntries/minEntries.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { RecordIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  minEntries,\n  type MinEntriesAction,\n  type MinEntriesIssue,\n} from './minEntries.ts';\n\ndescribe('minEntries', () => {\n  type Input = Record<string, number>;\n\n  describe('should return action object', () => {\n    const baseAction: Omit<MinEntriesAction<Input, 2, never>, 'message'> = {\n      kind: 'validation',\n      type: 'min_entries',\n      reference: minEntries,\n      expects: '>=2',\n      requirement: 2,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: MinEntriesAction<Input, 2, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(minEntries(2)).toStrictEqual(action);\n      expect(minEntries(2, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(minEntries(2, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies MinEntriesAction<Input, 2, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(minEntries(2, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies MinEntriesAction<Input, 2, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = minEntries(3);\n\n    test('for untyped inputs', () => {\n      const issues: [RecordIssue] = [\n        {\n          kind: 'schema',\n          type: 'record',\n          input: null,\n          expected: 'Object',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid objects', () => {\n      expectNoActionIssue(action, [\n        { foo: 1, bar: 2, baz: 3 },\n        { foo: 1, bar: 2, baz: 3, qux: 4 },\n        { foo: 1, bar: 2, baz: 3, qux: 4, quux: 5 },\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = minEntries(3, 'message');\n    const baseIssue: Omit<MinEntriesIssue<Input, 3>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'min_entries',\n      expected: '>=3',\n      message: 'message',\n      requirement: 3,\n    };\n\n    test('for invalid objects', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [{}, { foo: 1 }, { foo: 1, bar: 2 }],\n        (value) => `${Object.keys(value).length}`\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/minEntries/minEntries.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\nimport type { EntriesInput } from '../types.ts';\n\n/**\n * Min entries issue interface.\n *\n * @beta\n */\nexport interface MinEntriesIssue<\n  TInput extends EntriesInput,\n  TRequirement extends number,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'min_entries';\n  /**\n   * The expected property.\n   */\n  readonly expected: `>=${TRequirement}`;\n  /**\n   * The received property.\n   */\n  readonly received: `${number}`;\n  /**\n   * The minimum entries.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Min entries action interface.\n *\n * @beta\n */\nexport interface MinEntriesAction<\n  TInput extends EntriesInput,\n  TRequirement extends number,\n  TMessage extends\n    | ErrorMessage<MinEntriesIssue<TInput, TRequirement>>\n    | undefined,\n> extends BaseValidation<\n    TInput,\n    TInput,\n    MinEntriesIssue<TInput, TRequirement>\n  > {\n  /**\n   * The action type.\n   */\n  readonly type: 'min_entries';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof minEntries;\n  /**\n   * The expected property.\n   */\n  readonly expects: `>=${TRequirement}`;\n  /**\n   * The minimum entries.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a min entries validation action.\n *\n * @param requirement The minimum entries.\n *\n * @returns A min entries action.\n *\n * @beta\n */\nexport function minEntries<\n  TInput extends EntriesInput,\n  const TRequirement extends number,\n>(requirement: TRequirement): MinEntriesAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a min entries validation action.\n *\n * @param requirement The minimum entries.\n * @param message The error message.\n *\n * @returns A min entries action.\n *\n * @beta\n */\nexport function minEntries<\n  TInput extends EntriesInput,\n  const TRequirement extends number,\n  const TMessage extends\n    | ErrorMessage<MinEntriesIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): MinEntriesAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function minEntries(\n  requirement: number,\n  message?: ErrorMessage<MinEntriesIssue<EntriesInput, number>>\n): MinEntriesAction<\n  EntriesInput,\n  number,\n  ErrorMessage<MinEntriesIssue<EntriesInput, number>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'min_entries',\n    reference: minEntries,\n    async: false,\n    expects: `>=${requirement}`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (!dataset.typed) return dataset;\n      const count = Object.keys(dataset.value).length;\n      if (dataset.typed && count < this.requirement) {\n        _addIssue(this, 'entries', dataset, config, {\n          received: `${count}`,\n        });\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/minGraphemes/index.ts",
    "content": "export * from './minGraphemes.ts';\n"
  },
  {
    "path": "library/src/actions/minGraphemes/minGraphemes.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  minGraphemes,\n  type MinGraphemesAction,\n  type MinGraphemesIssue,\n} from './minGraphemes.ts';\n\ndescribe('minGraphemes', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = MinGraphemesAction<string, 10, undefined>;\n      expectTypeOf(minGraphemes<string, 10>(10)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        minGraphemes<string, 10, undefined>(10, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        minGraphemes<string, 10, 'message'>(10, 'message')\n      ).toEqualTypeOf<MinGraphemesAction<string, 10, 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        minGraphemes<string, 10, () => string>(10, () => 'message')\n      ).toEqualTypeOf<MinGraphemesAction<string, 10, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Input = 'example string';\n    type Action = MinGraphemesAction<Input, 10, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        MinGraphemesIssue<Input, 10>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/minGraphemes/minGraphemes.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { _getGraphemeCount } from '../../utils/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  minGraphemes,\n  type MinGraphemesAction,\n  type MinGraphemesIssue,\n} from './minGraphemes.ts';\n\ndescribe('minGraphemes', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<MinGraphemesAction<string, 5, never>, 'message'> = {\n      kind: 'validation',\n      type: 'min_graphemes',\n      reference: minGraphemes,\n      expects: '>=5',\n      requirement: 5,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: MinGraphemesAction<string, 5, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(minGraphemes(5)).toStrictEqual(action);\n      expect(minGraphemes(5, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(minGraphemes(5, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies MinGraphemesAction<string, 5, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(minGraphemes(5, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies MinGraphemesAction<string, 5, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = minGraphemes(5);\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid strings', () => {\n      expectNoActionIssue(action, [\n        '12345',\n        '1234 ',\n        '123456',\n        '123456789',\n        'foo bar baz',\n      ]);\n    });\n\n    test('for valid emoji', () => {\n      expectNoActionIssue(action, [\n        '😀👋🏼🧩👩🏻‍🏫🫥',\n        '😀👋🏼🧩👩🏻‍🏫🫥🫠',\n        '😀👋🏼🧩👩🏻‍🏫🫥🫠🧑‍💻👻🥎',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = minGraphemes(5, 'message');\n    const baseIssue: Omit<\n      MinGraphemesIssue<string, 5>,\n      'input' | 'received'\n    > = {\n      kind: 'validation',\n      type: 'min_graphemes',\n      expected: '>=5',\n      message: 'message',\n      requirement: 5,\n    };\n\n    test('for invalid strings', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        ['', ' ', '1', 'foo', '1234', '12 4'],\n        (value) => `${_getGraphemeCount(value)}`\n      );\n    });\n\n    test('for invalid emoji', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        ['😀', '😀👋🏼', '😀👋🏼🧩👩🏻‍🏫'],\n        (value) => `${_getGraphemeCount(value)}`\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/minGraphemes/minGraphemes.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue, _getGraphemeCount } from '../../utils/index.ts';\n\n/**\n * Min graphemes issue interface.\n */\nexport interface MinGraphemesIssue<\n  TInput extends string,\n  TRequirement extends number,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'min_graphemes';\n  /**\n   * The expected property.\n   */\n  readonly expected: `>=${TRequirement}`;\n  /**\n   * The received property.\n   */\n  readonly received: `${number}`;\n  /**\n   * The minimum graphemes.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Min graphemes action interface.\n */\nexport interface MinGraphemesAction<\n  TInput extends string,\n  TRequirement extends number,\n  TMessage extends\n    | ErrorMessage<MinGraphemesIssue<TInput, TRequirement>>\n    | undefined,\n> extends BaseValidation<\n    TInput,\n    TInput,\n    MinGraphemesIssue<TInput, TRequirement>\n  > {\n  /**\n   * The action type.\n   */\n  readonly type: 'min_graphemes';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof minGraphemes;\n  /**\n   * The expected property.\n   */\n  readonly expects: `>=${TRequirement}`;\n  /**\n   * The minimum graphemes.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a min graphemes validation action.\n *\n * @param requirement The minimum graphemes.\n *\n * @returns A min graphemes action.\n */\nexport function minGraphemes<\n  TInput extends string,\n  const TRequirement extends number,\n>(\n  requirement: TRequirement\n): MinGraphemesAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a min graphemes validation action.\n *\n * @param requirement The minimum graphemes.\n * @param message The error message.\n *\n * @returns A min graphemes action.\n */\nexport function minGraphemes<\n  TInput extends string,\n  const TRequirement extends number,\n  const TMessage extends\n    | ErrorMessage<MinGraphemesIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): MinGraphemesAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function minGraphemes(\n  requirement: number,\n  message?: ErrorMessage<MinGraphemesIssue<string, number>>\n): MinGraphemesAction<\n  string,\n  number,\n  ErrorMessage<MinGraphemesIssue<string, number>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'min_graphemes',\n    reference: minGraphemes,\n    async: false,\n    expects: `>=${requirement}`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed) {\n        const count = _getGraphemeCount(dataset.value);\n        if (count < this.requirement) {\n          _addIssue(this, 'graphemes', dataset, config, {\n            received: `${count}`,\n          });\n        }\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/minLength/index.ts",
    "content": "export * from './minLength.ts';\n"
  },
  {
    "path": "library/src/actions/minLength/minLength.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  minLength,\n  type MinLengthAction,\n  type MinLengthIssue,\n} from './minLength.ts';\n\ndescribe('minLength', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = MinLengthAction<string, 10, undefined>;\n      expectTypeOf(minLength<string, 10>(10)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        minLength<string, 10, undefined>(10, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        minLength<string, 10, 'message'>(10, 'message')\n      ).toEqualTypeOf<MinLengthAction<string, 10, 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        minLength<string, 10, () => string>(10, () => 'message')\n      ).toEqualTypeOf<MinLengthAction<string, 10, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = MinLengthAction<string, 10, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        MinLengthIssue<string, 10>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/minLength/minLength.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  minLength,\n  type MinLengthAction,\n  type MinLengthIssue,\n} from './minLength.ts';\n\ndescribe('minLength', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<MinLengthAction<string, 5, never>, 'message'> = {\n      kind: 'validation',\n      type: 'min_length',\n      reference: minLength,\n      expects: '>=5',\n      requirement: 5,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: MinLengthAction<string, 5, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(minLength(5)).toStrictEqual(action);\n      expect(minLength(5, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(minLength(5, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies MinLengthAction<string, 5, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(minLength(5, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies MinLengthAction<string, 5, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = minLength(5);\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid strings', () => {\n      expectNoActionIssue(action, ['12345', '123456', 'foobarbaz123']);\n    });\n\n    test('for valid arrays', () => {\n      expectNoActionIssue(action, [[1, 2, 3, 4, 5], Array(6), Array(999)]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = minLength(5, 'message');\n    const baseIssue: Omit<MinLengthIssue<string, 5>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'min_length',\n      expected: '>=5',\n      message: 'message',\n      requirement: 5,\n    };\n\n    test('for invalid strings', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        ['', 'foo', '1234'],\n        (value) => `${value.length}`\n      );\n    });\n\n    test('for invalid arrays', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [[], ['foo', 'bar'], [1, 2, 3, 4]],\n        (value) => `${value.length}`\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/minLength/minLength.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\nimport type { LengthInput } from '../types.ts';\n\n/**\n * Min length issue interface.\n */\nexport interface MinLengthIssue<\n  TInput extends LengthInput,\n  TRequirement extends number,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'min_length';\n  /**\n   * The expected property.\n   */\n  readonly expected: `>=${TRequirement}`;\n  /**\n   * The received property.\n   */\n  readonly received: `${number}`;\n  /**\n   * The minimum length.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Min length action interface.\n */\nexport interface MinLengthAction<\n  TInput extends LengthInput,\n  TRequirement extends number,\n  TMessage extends\n    | ErrorMessage<MinLengthIssue<TInput, TRequirement>>\n    | undefined,\n> extends BaseValidation<TInput, TInput, MinLengthIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'min_length';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof minLength;\n  /**\n   * The expected property.\n   */\n  readonly expects: `>=${TRequirement}`;\n  /**\n   * The minimum length.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a min length validation action.\n *\n * @param requirement The minimum length.\n *\n * @returns A min length action.\n */\nexport function minLength<\n  TInput extends LengthInput,\n  const TRequirement extends number,\n>(requirement: TRequirement): MinLengthAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a min length validation action.\n *\n * @param requirement The minimum length.\n * @param message The error message.\n *\n * @returns A min length action.\n */\nexport function minLength<\n  TInput extends LengthInput,\n  const TRequirement extends number,\n  const TMessage extends\n    | ErrorMessage<MinLengthIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): MinLengthAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function minLength(\n  requirement: number,\n  message?: ErrorMessage<MinLengthIssue<LengthInput, number>>\n): MinLengthAction<\n  LengthInput,\n  number,\n  ErrorMessage<MinLengthIssue<LengthInput, number>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'min_length',\n    reference: minLength,\n    async: false,\n    expects: `>=${requirement}`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && dataset.value.length < this.requirement) {\n        _addIssue(this, 'length', dataset, config, {\n          received: `${dataset.value.length}`,\n        });\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/minSize/index.ts",
    "content": "export * from './minSize.ts';\n"
  },
  {
    "path": "library/src/actions/minSize/minSize.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { minSize, type MinSizeAction, type MinSizeIssue } from './minSize.ts';\n\ndescribe('minSize', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = MinSizeAction<Blob, 10, undefined>;\n      expectTypeOf(minSize<Blob, 10>(10)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        minSize<Blob, 10, undefined>(10, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(minSize<Blob, 10, 'message'>(10, 'message')).toEqualTypeOf<\n        MinSizeAction<Blob, 10, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        minSize<Blob, 10, () => string>(10, () => 'message')\n      ).toEqualTypeOf<MinSizeAction<Blob, 10, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = MinSizeAction<Map<string, number>, 10, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Map<string, number>>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Map<string, number>>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        MinSizeIssue<Map<string, number>, 10>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/minSize/minSize.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { MapIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { minSize, type MinSizeAction, type MinSizeIssue } from './minSize.ts';\n\ndescribe('minSize', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<MinSizeAction<Blob, 5, never>, 'message'> = {\n      kind: 'validation',\n      type: 'min_size',\n      reference: minSize,\n      expects: '>=5',\n      requirement: 5,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: MinSizeAction<Blob, 5, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(minSize(5)).toStrictEqual(action);\n      expect(minSize(5, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(minSize(5, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies MinSizeAction<Blob, 5, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(minSize(5, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies MinSizeAction<Blob, 5, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = minSize(3);\n\n    test('for untyped inputs', () => {\n      const issues: [MapIssue] = [\n        {\n          kind: 'schema',\n          type: 'map',\n          input: null,\n          expected: 'Map',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid maps', () => {\n      expectNoActionIssue(action, [\n        new Map([\n          [1, 'one'],\n          [2, 'two'],\n          [3, 'three'],\n        ]),\n        new Map<string | number, string>([\n          [1, 'one'],\n          ['2', 'two'],\n          [3, 'three'],\n          [4, 'four'],\n        ]),\n        new Map<string | number | boolean, string | null>([\n          ['1', 'one'],\n          [2, null],\n          [true, null],\n          [4, 'four'],\n          [5, 'five'],\n        ]),\n      ]);\n    });\n\n    test('for valid sets', () => {\n      expectNoActionIssue(action, [\n        new Set([1, 2, 3]),\n        new Set([1, 'two', null, '4']),\n        new Set(['1', 2, 'three', null, { value: '5' }]),\n      ]);\n    });\n\n    test('for valid blobs', () => {\n      expectNoActionIssue(action, [\n        new Blob(['123']),\n        new Blob(['1', '2', '3'], { type: 'text/plain' }),\n        new Blob(\n          [\n            new Uint8Array([72, 101, 108, 108, 111]), // 'Hello'\n            new Blob(['!'], { type: 'text/plain' }),\n          ],\n          { type: 'text/plain' }\n        ),\n        new Blob(['foobarbaz123']),\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = minSize(3, 'message');\n    const baseIssue: Omit<\n      MinSizeIssue<Map<number, string>, 3>,\n      'input' | 'received'\n    > = {\n      kind: 'validation',\n      type: 'min_size',\n      expected: '>=3',\n      message: 'message',\n      requirement: 3,\n    };\n\n    test('for invalid maps', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [\n          new Map(),\n          new Map([[1, 'one']]),\n          new Map([\n            ['one', 1],\n            ['two', 2],\n          ]),\n        ],\n        (value) => `${value.size}`\n      );\n    });\n\n    test('for invalid sets', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [new Set(), new Set([1]), new Set(['one', null])],\n        (value) => `${value.size}`\n      );\n    });\n\n    test('for invalid blobs', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [\n          new Blob([]),\n          new Blob(['1']),\n          new Blob(['hi'], { type: 'text/plain' }),\n          new Blob([new Uint8Array([72, 105])]), // 'Hi'\n        ],\n        (value) => `${value.size}`\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/minSize/minSize.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\nimport type { SizeInput } from '../types.ts';\n\n/**\n * Min size issue interface.\n */\nexport interface MinSizeIssue<\n  TInput extends SizeInput,\n  TRequirement extends number,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'min_size';\n  /**\n   * The expected property.\n   */\n  readonly expected: `>=${TRequirement}`;\n  /**\n   * The received property.\n   */\n  readonly received: `${number}`;\n  /**\n   * The minimum size.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Min size action interface.\n */\nexport interface MinSizeAction<\n  TInput extends SizeInput,\n  TRequirement extends number,\n  TMessage extends ErrorMessage<MinSizeIssue<TInput, TRequirement>> | undefined,\n> extends BaseValidation<TInput, TInput, MinSizeIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'min_size';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof minSize;\n  /**\n   * The expected property.\n   */\n  readonly expects: `>=${TRequirement}`;\n  /**\n   * The minimum size.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a min size validation action.\n *\n * @param requirement The minimum size.\n *\n * @returns A min size action.\n */\nexport function minSize<\n  TInput extends SizeInput,\n  const TRequirement extends number,\n>(requirement: TRequirement): MinSizeAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a min size validation action.\n *\n * @param requirement The minimum size.\n * @param message The error message.\n *\n * @returns A min size action.\n */\nexport function minSize<\n  TInput extends SizeInput,\n  const TRequirement extends number,\n  const TMessage extends\n    | ErrorMessage<MinSizeIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): MinSizeAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function minSize(\n  requirement: number,\n  message?: ErrorMessage<MinSizeIssue<SizeInput, number>>\n): MinSizeAction<\n  SizeInput,\n  number,\n  ErrorMessage<MinSizeIssue<SizeInput, number>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'min_size',\n    reference: minSize,\n    async: false,\n    expects: `>=${requirement}`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && dataset.value.size < this.requirement) {\n        _addIssue(this, 'size', dataset, config, {\n          received: `${dataset.value.size}`,\n        });\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/minValue/index.ts",
    "content": "export * from './minValue.ts';\n"
  },
  {
    "path": "library/src/actions/minValue/minValue.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  minValue,\n  type MinValueAction,\n  type MinValueIssue,\n} from './minValue.ts';\n\ndescribe('minValue', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = MinValueAction<number, 10, undefined>;\n      expectTypeOf(minValue<number, 10>(10)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        minValue<number, 10, undefined>(10, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        minValue<number, 10, 'message'>(10, 'message')\n      ).toEqualTypeOf<MinValueAction<number, 10, 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        minValue<number, 10, () => string>(10, () => 'message')\n      ).toEqualTypeOf<MinValueAction<number, 10, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = MinValueAction<number, 10, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        MinValueIssue<number, 10>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/minValue/minValue.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { NumberIssue } from '../../schemas/index.ts';\nimport { _stringify } from '../../utils/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { minValue, type MinValueAction } from './minValue.ts';\n\ndescribe('minValue', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<MinValueAction<number, 5, never>, 'message'> = {\n      kind: 'validation',\n      type: 'min_value',\n      reference: minValue,\n      expects: '>=5',\n      requirement: 5,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: MinValueAction<number, 5, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(minValue(5)).toStrictEqual(action);\n      expect(minValue(5, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(minValue(5, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies MinValueAction<number, 5, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(minValue(5, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies MinValueAction<number, 5, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for untyped inputs', () => {\n      const issues: [NumberIssue] = [\n        {\n          kind: 'schema',\n          type: 'number',\n          input: null,\n          expected: 'number',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        minValue(1)['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({ typed: false, value: null, issues });\n    });\n\n    test('for valid bigints', () => {\n      expectNoActionIssue(minValue(10n), [10n, 11n, 9999n]);\n    });\n\n    test('for valid non-bigints', () => {\n      expectNoActionIssue(minValue(10n), [\n        '10',\n        '+10',\n        ' 10 ',\n        '15',\n        10,\n        10.0,\n        15,\n        15.0,\n        Infinity,\n        new Date(10),\n        new Date(20),\n      ]);\n\n      expectNoActionIssue(minValue(1n), [\n        '1',\n        '+1',\n        1,\n        Infinity,\n        true,\n        new Date(1),\n      ]);\n\n      expectNoActionIssue(minValue(0n), [\n        '',\n        ' ',\n        '0',\n        '1',\n        0,\n        1,\n        0.0,\n        1.0,\n        Infinity,\n        false,\n        true,\n        new Date(0),\n        new Date(1),\n      ]);\n    });\n\n    test('for valid booleans', () => {\n      expectNoActionIssue(minValue(false), [false, true]);\n      expectNoActionIssue(minValue(true), [true]);\n    });\n\n    test('for valid non-booleans', () => {\n      expectNoActionIssue(minValue(true), [\n        '1',\n        '99',\n        '+1',\n        '+99',\n        '1.0',\n        '99.9',\n        ' 1 ',\n        ' 99 ',\n        1,\n        99,\n        1.0,\n        99.9,\n        Infinity,\n        new Date(1),\n        new Date(99),\n        1n,\n        99n,\n      ]);\n\n      expectNoActionIssue(minValue(false), [\n        '',\n        ' ',\n        '-0',\n        '0',\n        '1',\n        '99',\n        '0.0',\n        '1.0',\n        '99.9',\n        ' 0 ',\n        ' 1 ',\n        ' 99 ',\n        -0,\n        0,\n        1,\n        99,\n        -0.0,\n        0.0,\n        1.0,\n        99.9,\n        Infinity,\n        new Date(0),\n        new Date(1),\n        new Date(99),\n        0n,\n        1n,\n        99n,\n      ]);\n    });\n\n    test('for valid dates', () => {\n      const date = new Date();\n      expectNoActionIssue(minValue(date), [\n        date,\n        new Date(+date + 1),\n        new Date(+date + 999999),\n      ]);\n    });\n\n    test('for valid non-dates', () => {\n      expectNoActionIssue(minValue(new Date(10)), [\n        '+10',\n        '10.0',\n        ' 10 ',\n        '99',\n        '99.99',\n        10,\n        99,\n        10.0,\n        99.99,\n        Infinity,\n        10n,\n        99n,\n      ]);\n\n      expectNoActionIssue(minValue(new Date(1)), [\n        '1',\n        '+1',\n        '1.0',\n        ' 1 ',\n        1,\n        1.0,\n        Infinity,\n        true,\n        1n,\n      ]);\n\n      expectNoActionIssue(minValue(new Date(0)), [\n        '',\n        ' ',\n        '0',\n        '1',\n        '0.0',\n        '1.0',\n        ' 0 ',\n        ' 1 ',\n        0,\n        -0,\n        1,\n        0.0,\n        1.0,\n        Infinity,\n        false,\n        true,\n        0n,\n        1n,\n      ]);\n    });\n\n    test('for valid numbers', () => {\n      expectNoActionIssue(minValue(10), [10, 11, 9999, Number.MAX_VALUE]);\n    });\n\n    test('for valid non-numbers', () => {\n      expectNoActionIssue(minValue(10), [\n        '+10',\n        '10.0',\n        ' 10 ',\n        '99',\n        '99.99',\n        ' 99 ',\n        new Date(10),\n        new Date(99),\n        10n,\n        99n,\n      ]);\n\n      expectNoActionIssue(minValue(1), [\n        '1',\n        '+1',\n        '1.0',\n        ' 1 ',\n        true,\n        new Date(1),\n        1n,\n      ]);\n\n      expectNoActionIssue(minValue(0), [\n        '',\n        ' ',\n        '-0',\n        '0',\n        '1',\n        '+1',\n        '0.0',\n        '1.0',\n        ' 0 ',\n        ' 1 ',\n        false,\n        true,\n        new Date(0),\n        new Date(1),\n        0n,\n        1n,\n      ]);\n    });\n\n    test('for valid strings', () => {\n      expectNoActionIssue(minValue('2024'), ['2024', '2025', '9999', 'XYZ']);\n    });\n\n    test('for valid non-strings', () => {\n      expectNoActionIssue(minValue('10'), [\n        10,\n        10.0,\n        99,\n        99.99,\n        Infinity,\n        new Date(10),\n        new Date(99),\n        10n,\n        99n,\n      ]);\n\n      expectNoActionIssue(minValue('1'), [\n        1,\n        1.0,\n        Infinity,\n        true,\n        new Date(1),\n        1n,\n      ]);\n\n      expectNoActionIssue(minValue('0'), [\n        0,\n        -0,\n        1,\n        0.0,\n        1.0,\n        Infinity,\n        false,\n        true,\n        new Date(0),\n        new Date(1),\n        0n,\n        1n,\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const baseInfo = {\n      kind: 'validation',\n      type: 'min_value',\n      message: 'message',\n    } as const;\n\n    const getReceived = (value: unknown): string =>\n      value instanceof Date ? value.toJSON() : _stringify(value);\n\n    test('for invalid bigints', () => {\n      expectActionIssue(\n        minValue(10n, 'message'),\n        { ...baseInfo, expected: '>=10', requirement: 10n },\n        [-9999n, 0n, 9n]\n      );\n    });\n\n    test('for invalid non-bigints', () => {\n      expectActionIssue(\n        minValue(123n, 'message'),\n        { ...baseInfo, expected: '>=123', requirement: 123n },\n        [\n          'nan',\n          '123px',\n          '+ 123',\n          '-124',\n          '-123',\n          '',\n          ' ',\n          '0.0',\n          '122',\n          ' 122 ',\n          '123.0',\n          -124,\n          -123,\n          0,\n          122,\n          122.5,\n          NaN,\n          false,\n          true,\n          new Date(-124),\n          new Date(-123),\n          new Date(0),\n          new Date(122),\n        ],\n        getReceived\n      );\n\n      expectActionIssue(\n        minValue(1n, 'message'),\n        { ...baseInfo, expected: '>=1', requirement: 1n },\n        [\n          'nan',\n          '1px',\n          '+ 1',\n          '-1',\n          '',\n          ' ',\n          '0',\n          ' 0.5 ',\n          '1.0',\n          -1,\n          0,\n          0.5,\n          NaN,\n          false,\n          new Date(-1),\n          new Date(0),\n        ],\n        getReceived\n      );\n\n      expectActionIssue(\n        minValue(0n, 'message'),\n        { ...baseInfo, expected: '>=0', requirement: 0n },\n        [\n          'nan',\n          '0px',\n          '+ 0',\n          '-0.5',\n          '-1',\n          ' -1 ',\n          '0.0',\n          -1,\n          -0.5,\n          NaN,\n          new Date(-1),\n        ],\n        getReceived\n      );\n    });\n\n    test('for invalid booleans', () => {\n      expectActionIssue(\n        minValue(true, 'message'),\n        { ...baseInfo, expected: '>=true', requirement: true },\n        [false]\n      );\n    });\n\n    test('for invalid non-booleans', () => {\n      expectActionIssue(\n        minValue(false, 'message'),\n        { ...baseInfo, expected: '>=false', requirement: false },\n        [\n          'nan',\n          '0px',\n          '+ 0',\n          '-0.5',\n          '-1',\n          ' -1 ',\n          -1,\n          -0.5,\n          NaN,\n          new Date(-1),\n          -1n,\n        ],\n        getReceived\n      );\n\n      expectActionIssue(\n        minValue(true, 'message'),\n        { ...baseInfo, expected: '>=true', requirement: true },\n        [\n          'nan',\n          '1px',\n          '+ 1',\n          '-2',\n          '-1',\n          '',\n          ' ',\n          '0',\n          ' 0.5 ',\n          -2,\n          -1,\n          0,\n          0.5,\n          NaN,\n          new Date(-2),\n          new Date(-1),\n          new Date(0),\n          -2n,\n          -1n,\n          0n,\n        ],\n        getReceived\n      );\n    });\n\n    test('for invalid dates', () => {\n      const date = new Date();\n      expectActionIssue(\n        minValue<Date, Date, 'message'>(date, 'message'),\n        { ...baseInfo, expected: `>=${date.toJSON()}`, requirement: date },\n        [new Date(0), new Date(+date - 999999), new Date(+date - 1)],\n        (value) => value.toJSON()\n      );\n    });\n\n    test('for invalid non-dates', () => {\n      const date1 = new Date(123);\n      expectActionIssue(\n        minValue(date1, 'message'),\n        { ...baseInfo, expected: `>=${date1.toJSON()}`, requirement: date1 },\n        [\n          'nan',\n          '123px',\n          '+ 123',\n          '-124',\n          '-123',\n          '',\n          ' ',\n          '0.0',\n          '122',\n          ' 122 ',\n          -124,\n          -123,\n          0,\n          122,\n          122.5,\n          NaN,\n          false,\n          true,\n          -124n,\n          -123n,\n          0n,\n          122n,\n        ],\n        getReceived\n      );\n\n      const date2 = new Date(1);\n      expectActionIssue(\n        minValue(date2, 'message'),\n        { ...baseInfo, expected: `>=${date2.toJSON()}`, requirement: date2 },\n        [\n          'nan',\n          '1px',\n          '+ 1',\n          '-1',\n          '',\n          ' ',\n          '0',\n          ' 0.5 ',\n          -1,\n          0,\n          0.5,\n          NaN,\n          false,\n          -1n,\n          0n,\n        ],\n        getReceived\n      );\n\n      const date3 = new Date(0);\n      expectActionIssue(\n        minValue(date3, 'message'),\n        { ...baseInfo, expected: `>=${date3.toJSON()}`, requirement: date3 },\n        ['nan', '0px', '+ 0', '-0.5', '-1', ' -1 ', -1, -0.5, NaN, -1n],\n        getReceived\n      );\n    });\n\n    test('for invalid numbers', () => {\n      expectActionIssue(\n        minValue(10, 'message'),\n        { ...baseInfo, expected: '>=10', requirement: 10 },\n        [Number.MIN_VALUE, 0, 9, NaN]\n      );\n    });\n\n    test('for invalid non-numbers', () => {\n      expectActionIssue(\n        minValue(123, 'message'),\n        { ...baseInfo, expected: '>=123', requirement: 123 },\n        [\n          'nan',\n          '123px',\n          '+ 123',\n          '-124',\n          '-123',\n          '',\n          ' ',\n          '0.0',\n          '122',\n          ' 122 ',\n          false,\n          true,\n          new Date(-124),\n          new Date(-123),\n          new Date(0),\n          new Date(122),\n          -124n,\n          -123n,\n          0n,\n          122n,\n        ],\n        getReceived\n      );\n\n      expectActionIssue(\n        minValue(1, 'message'),\n        { ...baseInfo, expected: '>=1', requirement: 1 },\n        [\n          'nan',\n          '1px',\n          '+ 1',\n          '-1',\n          '',\n          ' ',\n          '0',\n          ' 0.5 ',\n          false,\n          new Date(-1),\n          new Date(0),\n          -1n,\n          0n,\n        ],\n        getReceived\n      );\n\n      expectActionIssue(\n        minValue(0, 'message'),\n        { ...baseInfo, expected: '>=0', requirement: 0 },\n        ['nan', '0px', '+ 0', '-0.5', '-1', ' -1 ', new Date(-1), -1n],\n        getReceived\n      );\n    });\n\n    test('for invalid strings', () => {\n      expectActionIssue(\n        minValue('2024', 'message'),\n        { ...baseInfo, expected: '>=\"2024\"', requirement: '2024' },\n        ['', '1234', '2023']\n      );\n    });\n\n    test('for invalid non-strings', () => {\n      expectActionIssue(\n        minValue('123', 'message'),\n        { ...baseInfo, expected: '>=\"123\"', requirement: '123' },\n        [\n          -124,\n          -123,\n          0,\n          122,\n          122.5,\n          NaN,\n          false,\n          true,\n          new Date(-124),\n          new Date(-123),\n          new Date(0),\n          new Date(122),\n          -124n,\n          -123n,\n          0n,\n          122n,\n        ],\n        getReceived\n      );\n\n      expectActionIssue(\n        minValue('1', 'message'),\n        { ...baseInfo, expected: '>=\"1\"', requirement: '1' },\n        [-1, 0, 0.5, NaN, false, new Date(-1), new Date(0), -1n, 0n],\n        getReceived\n      );\n\n      expectActionIssue(\n        minValue('0', 'message'),\n        { ...baseInfo, expected: '>=\"0\"', requirement: '0' },\n        [-1, -0.5, NaN, new Date(-1), -1n],\n        getReceived\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/minValue/minValue.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue, _stringify } from '../../utils/index.ts';\nimport type { ValueInput } from '../types.ts';\n\n/**\n * Min value issue interface.\n */\nexport interface MinValueIssue<\n  TInput extends ValueInput,\n  TRequirement extends ValueInput,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'min_value';\n  /**\n   * The expected property.\n   */\n  readonly expected: `>=${string}`;\n  /**\n   * The minimum value.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Min value action interface.\n */\nexport interface MinValueAction<\n  TInput extends ValueInput,\n  TRequirement extends TInput,\n  TMessage extends\n    | ErrorMessage<MinValueIssue<TInput, TRequirement>>\n    | undefined,\n> extends BaseValidation<TInput, TInput, MinValueIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'min_value';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof minValue;\n  /**\n   * The expected property.\n   */\n  readonly expects: `>=${string}`;\n  /**\n   * The minimum value.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a min value validation action.\n *\n * @param requirement The minimum value.\n *\n * @returns A min value action.\n */\nexport function minValue<\n  TInput extends ValueInput,\n  const TRequirement extends TInput,\n>(requirement: TRequirement): MinValueAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a min value validation action.\n *\n * @param requirement The minimum value.\n * @param message The error message.\n *\n * @returns A min value action.\n */\nexport function minValue<\n  TInput extends ValueInput,\n  const TRequirement extends TInput,\n  const TMessage extends\n    | ErrorMessage<MinValueIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): MinValueAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function minValue(\n  requirement: ValueInput,\n  message?: ErrorMessage<MinValueIssue<ValueInput, ValueInput>>\n): MinValueAction<\n  ValueInput,\n  ValueInput,\n  ErrorMessage<MinValueIssue<ValueInput, ValueInput>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'min_value',\n    reference: minValue,\n    async: false,\n    expects: `>=${\n      requirement instanceof Date\n        ? requirement.toJSON()\n        : _stringify(requirement)\n    }`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !(dataset.value >= this.requirement)) {\n        _addIssue(this, 'value', dataset, config, {\n          received:\n            dataset.value instanceof Date\n              ? dataset.value.toJSON()\n              : _stringify(dataset.value),\n        });\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/minWords/index.ts",
    "content": "export * from './minWords.ts';\n"
  },
  {
    "path": "library/src/actions/minWords/minWords.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  minWords,\n  type MinWordsAction,\n  type MinWordsIssue,\n} from './minWords.ts';\n\ndescribe('minWords', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = MinWordsAction<string, 'en', 3, undefined>;\n      expectTypeOf(minWords<string, 'en', 3>('en', 3)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        minWords<string, 'en', 3, undefined>('en', 3, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        minWords<string, 'en', 3, 'message'>('en', 3, 'message')\n      ).toEqualTypeOf<MinWordsAction<string, 'en', 3, 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        minWords<string, 'en', 3, () => string>('en', 3, () => 'message')\n      ).toEqualTypeOf<MinWordsAction<string, 'en', 3, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Input = 'foo bar baz';\n    type Action = MinWordsAction<Input, 'en', 3, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        MinWordsIssue<Input, 3>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/minWords/minWords.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { _getWordCount } from '../../utils/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  minWords,\n  type MinWordsAction,\n  type MinWordsIssue,\n} from './minWords.ts';\n\ndescribe('minWords', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<\n      MinWordsAction<string, 'en', 3, never>,\n      'message'\n    > = {\n      kind: 'validation',\n      type: 'min_words',\n      reference: minWords,\n      expects: '>=3',\n      locales: 'en',\n      requirement: 3,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: MinWordsAction<string, 'en', 3, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(minWords('en', 3)).toStrictEqual(action);\n      expect(minWords('en', 3, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(minWords('en', 3, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies MinWordsAction<string, 'en', 3, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(minWords('en', 3, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies MinWordsAction<string, 'en', 3, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = minWords('en', 3);\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid strings', () => {\n      expectNoActionIssue(action, [\n        'for bar baz',\n        'for bar baz qux',\n        'Lorem ipsum dolor?',\n        'Lorem ipsum dolor sit?',\n        'Lorem ipsum dolor sit amet, consectetur adipiscing elit?',\n        'Hi, welcome home!',\n        'Hi, welcome home! How are you?',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = minWords('en', 3, 'message');\n    const baseIssue: Omit<MinWordsIssue<string, 3>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'min_words',\n      expected: '>=3',\n      message: 'message',\n      requirement: 3,\n    };\n\n    test('for invalid strings', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [\n          '',\n          ' ',\n          'foo',\n          'foo bar',\n          'Lorem?',\n          'Lorem ipsum?',\n          'Hi, ...',\n          'Hi, welcome!',\n        ],\n        (value) => `${_getWordCount('en', value)}`\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/minWords/minWords.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue, _getWordCount } from '../../utils/index.ts';\n\n/**\n * Min words issue interface.\n */\nexport interface MinWordsIssue<\n  TInput extends string,\n  TRequirement extends number,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'min_words';\n  /**\n   * The expected property.\n   */\n  readonly expected: `>=${TRequirement}`;\n  /**\n   * The received property.\n   */\n  readonly received: `${number}`;\n  /**\n   * The minimum words.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Min words action interface.\n */\nexport interface MinWordsAction<\n  TInput extends string,\n  TLocales extends Intl.LocalesArgument,\n  TRequirement extends number,\n  TMessage extends\n    | ErrorMessage<MinWordsIssue<TInput, TRequirement>>\n    | undefined,\n> extends BaseValidation<TInput, TInput, MinWordsIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'min_words';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof minWords;\n  /**\n   * The expected property.\n   */\n  readonly expects: `>=${TRequirement}`;\n  /**\n   * The locales to be used.\n   */\n  readonly locales: TLocales;\n  /**\n   * The minimum words.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a min words validation action.\n *\n * @param locales The locales to be used.\n * @param requirement The minimum words.\n *\n * @returns A min words action.\n */\nexport function minWords<\n  TInput extends string,\n  TLocales extends Intl.LocalesArgument,\n  const TRequirement extends number,\n>(\n  locales: TLocales,\n  requirement: TRequirement\n): MinWordsAction<TInput, TLocales, TRequirement, undefined>;\n\n/**\n * Creates a min words validation action.\n *\n * @param locales The locales to be used.\n * @param requirement The minimum words.\n * @param message The error message.\n *\n * @returns A min words action.\n */\nexport function minWords<\n  TInput extends string,\n  TLocales extends Intl.LocalesArgument,\n  const TRequirement extends number,\n  const TMessage extends\n    | ErrorMessage<MinWordsIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  locales: TLocales,\n  requirement: TRequirement,\n  message: TMessage\n): MinWordsAction<TInput, TLocales, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function minWords(\n  locales: Intl.LocalesArgument,\n  requirement: number,\n  message?: ErrorMessage<MinWordsIssue<string, number>>\n): MinWordsAction<\n  string,\n  Intl.LocalesArgument,\n  number,\n  ErrorMessage<MinWordsIssue<string, number>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'min_words',\n    reference: minWords,\n    async: false,\n    expects: `>=${requirement}`,\n    locales,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed) {\n        const count = _getWordCount(this.locales, dataset.value);\n        if (count < this.requirement) {\n          _addIssue(this, 'words', dataset, config, {\n            received: `${count}`,\n          });\n        }\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/multipleOf/index.ts",
    "content": "export * from './multipleOf.ts';\n"
  },
  {
    "path": "library/src/actions/multipleOf/multipleOf.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  multipleOf,\n  type MultipleOfAction,\n  type MultipleOfIssue,\n} from './multipleOf.ts';\n\ndescribe('multipleOf', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = MultipleOfAction<number, 10, undefined>;\n      expectTypeOf(multipleOf<number, 10>(10)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        multipleOf<number, 10, undefined>(10, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        multipleOf<number, 10, 'message'>(10, 'message')\n      ).toEqualTypeOf<MultipleOfAction<number, 10, 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        multipleOf<number, 10, () => string>(10, () => 'message')\n      ).toEqualTypeOf<MultipleOfAction<number, 10, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action1 = MultipleOfAction<number, 10, undefined>;\n    type Action2 = MultipleOfAction<bigint, 10n, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action1>>().toEqualTypeOf<number>();\n      expectTypeOf<InferInput<Action2>>().toEqualTypeOf<bigint>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action1>>().toEqualTypeOf<number>();\n      expectTypeOf<InferOutput<Action2>>().toEqualTypeOf<bigint>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action1>>().toEqualTypeOf<\n        MultipleOfIssue<number, 10>\n      >();\n      expectTypeOf<InferIssue<Action2>>().toEqualTypeOf<\n        MultipleOfIssue<bigint, 10n>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/multipleOf/multipleOf.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { NumberIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { multipleOf, type MultipleOfAction } from './multipleOf.ts';\n\ndescribe('multipleOf', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<MultipleOfAction<number, 5, never>, 'message'> = {\n      kind: 'validation',\n      type: 'multiple_of',\n      reference: multipleOf,\n      expects: '%5',\n      requirement: 5,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: MultipleOfAction<number, 5, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(multipleOf(5)).toStrictEqual(action);\n      expect(multipleOf(5, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(multipleOf(5, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies MultipleOfAction<number, 5, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(multipleOf(5, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies MultipleOfAction<number, 5, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for untyped inputs', () => {\n      const issues: [NumberIssue] = [\n        {\n          kind: 'schema',\n          type: 'number',\n          input: null,\n          expected: 'number',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        multipleOf(5)['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid numbers', () => {\n      expectNoActionIssue(multipleOf(5), [-15, -10, -5, 0, 5, 10, 15]);\n    });\n\n    test('for valid bigints', () => {\n      expectNoActionIssue(multipleOf(5n), [-15n, -10n, -5n, 0n, 5n, 10n, 15n]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const baseIssue = {\n      kind: 'validation',\n      type: 'multiple_of',\n      expected: '%5',\n      message: 'message',\n    } as const;\n\n    test('for invalid numbers', () => {\n      expectActionIssue(\n        multipleOf(5, 'message'),\n        { ...baseIssue, requirement: 5 },\n        [-14, -9, -4, 1, 3, 6, 11]\n      );\n    });\n\n    test('for infinity', () => {\n      expectActionIssue(\n        multipleOf(5, 'message'),\n        { ...baseIssue, requirement: 5 },\n        [-Infinity, Infinity]\n      );\n    });\n\n    test('for NaN', () => {\n      expectActionIssue(\n        multipleOf(5, 'message'),\n        { ...baseIssue, requirement: 5 },\n        [NaN]\n      );\n    });\n\n    test('for invalid bigints', () => {\n      expectActionIssue(\n        multipleOf(5n, 'message'),\n        { ...baseIssue, requirement: 5n },\n        [-14n, -9n, -4n, 1n, 3n, 6n, 11n]\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/multipleOf/multipleOf.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * Input type\n */\ntype Input = number | bigint;\n\n/**\n * Multiple of issue interface.\n */\nexport interface MultipleOfIssue<\n  TInput extends Input,\n  TRequirement extends Input,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'multiple_of';\n  /**\n   * The expected property.\n   */\n  readonly expected: `%${TRequirement}`;\n  /**\n   * The received property.\n   */\n  readonly received: `${TInput}`;\n  /**\n   * The divisor.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Multiple of action interface.\n */\nexport interface MultipleOfAction<\n  TInput extends Input,\n  TRequirement extends Input,\n  TMessage extends\n    | ErrorMessage<MultipleOfIssue<TInput, TRequirement>>\n    | undefined,\n> extends BaseValidation<\n    TInput,\n    TInput,\n    MultipleOfIssue<TInput, TRequirement>\n  > {\n  /**\n   * The action type.\n   */\n  readonly type: 'multiple_of';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof multipleOf;\n  /**\n   * The expected property.\n   */\n  readonly expects: `%${TRequirement}`;\n  /**\n   * The divisor.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a [multiple](https://en.wikipedia.org/wiki/Multiple_(mathematics)) of validation action.\n *\n * @param requirement The divisor.\n *\n * @returns A multiple of action.\n */\nexport function multipleOf<\n  TInput extends number,\n  const TRequirement extends number,\n>(requirement: TRequirement): MultipleOfAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a [multiple](https://en.wikipedia.org/wiki/Multiple_(mathematics)) of validation action.\n *\n * @param requirement The divisor.\n *\n * @returns A multiple of action.\n */\nexport function multipleOf<\n  TInput extends bigint,\n  const TRequirement extends bigint,\n>(requirement: TRequirement): MultipleOfAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a [multiple](https://en.wikipedia.org/wiki/Multiple_(mathematics)) of validation action.\n *\n * @param requirement The divisor.\n * @param message The error message.\n *\n * @returns A multiple of action.\n */\nexport function multipleOf<\n  TInput extends number,\n  const TRequirement extends number,\n  const TMessage extends\n    | ErrorMessage<MultipleOfIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): MultipleOfAction<TInput, TRequirement, TMessage>;\n\n/**\n * Creates a [multiple](https://en.wikipedia.org/wiki/Multiple_(mathematics)) of validation action.\n *\n * @param requirement The divisor.\n * @param message The error message.\n *\n * @returns A multiple of action.\n */\nexport function multipleOf<\n  TInput extends bigint,\n  const TRequirement extends bigint,\n  const TMessage extends\n    | ErrorMessage<MultipleOfIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): MultipleOfAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function multipleOf(\n  requirement: Input,\n  message?: ErrorMessage<MultipleOfIssue<Input, Input>>\n): MultipleOfAction<\n  Input,\n  Input,\n  ErrorMessage<MultipleOfIssue<Input, Input>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'multiple_of',\n    reference: multipleOf,\n    async: false,\n    expects: `%${requirement}`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      // @ts-expect-error\n      if (dataset.typed && dataset.value % this.requirement != 0) {\n        _addIssue(this, 'multiple', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/nanoid/index.ts",
    "content": "export * from './nanoid.ts';\n"
  },
  {
    "path": "library/src/actions/nanoid/nanoid.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { nanoid, type NanoIdAction, type NanoIdIssue } from './nanoid.ts';\n\ndescribe('nanoid', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = NanoIdAction<string, undefined>;\n      expectTypeOf(nanoid<string>()).toEqualTypeOf<Action>();\n      expectTypeOf(\n        nanoid<string, undefined>(undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(nanoid<string, 'message'>('message')).toEqualTypeOf<\n        NanoIdAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(nanoid<string, () => string>(() => 'message')).toEqualTypeOf<\n        NanoIdAction<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = NanoIdAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<NanoIdIssue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/nanoid/nanoid.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { NANO_ID_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { nanoid, type NanoIdAction, type NanoIdIssue } from './nanoid.ts';\n\ndescribe('nanoid', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<NanoIdAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'nanoid',\n      reference: nanoid,\n      expects: null,\n      requirement: NANO_ID_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: NanoIdAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(nanoid()).toStrictEqual(action);\n      expect(nanoid(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(nanoid('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies NanoIdAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(nanoid(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies NanoIdAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = nanoid();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for normal Nano IDs', () => {\n      expectNoActionIssue(action, [\n        'NOi6NWfhDRpgzBYFRR-uE',\n        'D7j9AWMA6anLPDE2_2uHz',\n        'g_Se_MXrTmRJpmcp8cN5m',\n        'Oc0XNYtCgyrX-x2T33z3E',\n        'gGCr-6yBmZkOTJQ1oLAFr',\n      ]);\n    });\n\n    test('for single char', () => {\n      expectNoActionIssue(action, ['a', 'z', 'A', 'Z', '0', '9', '_', '-']);\n    });\n\n    test('for two chars', () => {\n      expectNoActionIssue(action, ['aa', 'zz', 'AZ', '09', '_-', '9A']);\n    });\n\n    test('for long IDs', () => {\n      expectNoActionIssue(action, [\n        '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = nanoid('message');\n    const baseIssue: Omit<NanoIdIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'nanoid',\n      expected: null,\n      message: 'message',\n      requirement: NANO_ID_REGEX,\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for blank spaces', () => {\n      expectActionIssue(action, baseIssue, [\n        ' vM7SGqVFmPS5tw7fII-G',\n        'BImGM 7USGakXaVhydHgO',\n        'LBjowKnkbk95kK3IoUV7 ',\n      ]);\n    });\n\n    test('for special chars', () => {\n      expectActionIssue(action, baseIssue, [\n        '@1o5BK76uGc-mbqeprAvX',\n        '#Lcb2qbTsjS98y9Vf-G15',\n        '$3WZ4tXxsuiDBezXIJKlP',\n        '%gSjBHLFDO67bE-nbgBRi',\n        '&2zYmqr0APdImhdxC69t4',\n        '–gGCr6yBmZkOTJQ1oLAFr',\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/nanoid/nanoid.ts",
    "content": "import { NANO_ID_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * Nano ID issue interface.\n */\nexport interface NanoIdIssue<TInput extends string> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'nanoid';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: string;\n  /**\n   * The Nano ID regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * Nano ID issue type.\n *\n * @deprecated Use `NanoIdIssue` instead.\n */\nexport type NanoIDIssue<TInput extends string> = NanoIdIssue<TInput>;\n\n/**\n * Nano ID action interface.\n */\nexport interface NanoIdAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<NanoIdIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, NanoIdIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'nanoid';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof nanoid;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The Nano ID regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Nano ID action type.\n *\n * @deprecated Use `NanoIdAction` instead.\n */\nexport type NanoIDAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<NanoIdIssue<TInput>> | undefined,\n> = NanoIdAction<TInput, TMessage>;\n\n/**\n * Creates a [Nano ID](https://github.com/ai/nanoid) validation action.\n *\n * @returns A Nano ID action.\n */\nexport function nanoid<TInput extends string>(): NanoIdAction<\n  TInput,\n  undefined\n>;\n\n/**\n * Creates a [Nano ID](https://github.com/ai/nanoid) validation action.\n *\n * @param message The error message.\n *\n * @returns A Nano ID action.\n */\nexport function nanoid<\n  TInput extends string,\n  const TMessage extends ErrorMessage<NanoIdIssue<TInput>> | undefined,\n>(message: TMessage): NanoIdAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function nanoid(\n  message?: ErrorMessage<NanoIdIssue<string>>\n): NanoIdAction<string, ErrorMessage<NanoIdIssue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'nanoid',\n    reference: nanoid,\n    async: false,\n    expects: null,\n    requirement: NANO_ID_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'Nano ID', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/nonEmpty/index.ts",
    "content": "export * from './nonEmpty.ts';\n"
  },
  {
    "path": "library/src/actions/nonEmpty/nonEmpty.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  nonEmpty,\n  type NonEmptyAction,\n  type NonEmptyIssue,\n} from './nonEmpty.ts';\n\ndescribe('nonEmpty', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = NonEmptyAction<string, undefined>;\n      expectTypeOf(nonEmpty<string>()).toEqualTypeOf<Action>();\n      expectTypeOf(\n        nonEmpty<string, undefined>(undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(nonEmpty<string, 'message'>('message')).toEqualTypeOf<\n        NonEmptyAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        nonEmpty<string, () => string>(() => 'message')\n      ).toEqualTypeOf<NonEmptyAction<string, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = NonEmptyAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<NonEmptyIssue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/nonEmpty/nonEmpty.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  nonEmpty,\n  type NonEmptyAction,\n  type NonEmptyIssue,\n} from './nonEmpty.ts';\n\ndescribe('nonEmpty', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<NonEmptyAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'non_empty',\n      reference: nonEmpty,\n      expects: '!0',\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: NonEmptyAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(nonEmpty()).toStrictEqual(action);\n      expect(nonEmpty(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(nonEmpty('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies NonEmptyAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(nonEmpty(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies NonEmptyAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = nonEmpty();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid strings', () => {\n      expectNoActionIssue(action, [' ', '\\n', 'foo', 'foobarbaz123']);\n    });\n\n    test('for valid arrays', () => {\n      expectNoActionIssue(action, [[null], [1, 2, 3, 4, 6], Array(999)]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = nonEmpty('message');\n    const baseIssue: Omit<NonEmptyIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'non_empty',\n      expected: '!0',\n      message: 'message',\n    };\n\n    test('for invalid strings', () => {\n      expectActionIssue(action, baseIssue, [''], () => '0');\n    });\n\n    test('for invalid arrays', () => {\n      expectActionIssue(action, baseIssue, [[]], () => '0');\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/nonEmpty/nonEmpty.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\nimport type { LengthInput } from '../types.ts';\n\n/**\n * Non empty issue interface.\n */\nexport interface NonEmptyIssue<TInput extends LengthInput>\n  extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'non_empty';\n  /**\n   * The expected input.\n   */\n  readonly expected: '!0';\n  /**\n   * The received input.\n   */\n  readonly received: '0';\n}\n\n/**\n * Non empty action interface.\n */\nexport interface NonEmptyAction<\n  TInput extends LengthInput,\n  TMessage extends ErrorMessage<NonEmptyIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, NonEmptyIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'non_empty';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof nonEmpty;\n  /**\n   * The expected property.\n   */\n  readonly expects: '!0';\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a non-empty validation action.\n *\n * @returns A non-empty action.\n */\nexport function nonEmpty<TInput extends LengthInput>(): NonEmptyAction<\n  TInput,\n  undefined\n>;\n\n/**\n * Creates a non-empty validation action.\n *\n * @param message The error message.\n *\n * @returns A non-empty action.\n */\nexport function nonEmpty<\n  TInput extends LengthInput,\n  const TMessage extends ErrorMessage<NonEmptyIssue<TInput>> | undefined,\n>(message: TMessage): NonEmptyAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function nonEmpty(\n  message?: ErrorMessage<NonEmptyIssue<LengthInput>>\n): NonEmptyAction<\n  LengthInput,\n  ErrorMessage<NonEmptyIssue<LengthInput>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'non_empty',\n    reference: nonEmpty,\n    async: false,\n    expects: '!0',\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && dataset.value.length === 0) {\n        _addIssue(this, 'length', dataset, config, {\n          received: '0',\n        });\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/normalize/index.ts",
    "content": "export * from './normalize.ts';\n"
  },
  {
    "path": "library/src/actions/normalize/normalize.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { normalize, type NormalizeAction } from './normalize.ts';\n\ndescribe('normalize', () => {\n  describe('should return action object', () => {\n    test('with undefined form', () => {\n      expectTypeOf(normalize()).toEqualTypeOf<NormalizeAction<undefined>>();\n    });\n\n    test('with defined form', () => {\n      expectTypeOf(normalize('NFKC')).toEqualTypeOf<NormalizeAction<'NFKC'>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = NormalizeAction<undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<never>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/normalize/normalize.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { normalize, type NormalizeAction } from './normalize.ts';\n\ndescribe('normalize', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<NormalizeAction<never>, 'form'> = {\n      kind: 'transformation',\n      type: 'normalize',\n      reference: normalize,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined form', () => {\n      expect(normalize()).toStrictEqual({\n        ...baseAction,\n        form: undefined,\n      } satisfies NormalizeAction<undefined>);\n    });\n\n    test('with defined form', () => {\n      expect(normalize('NFKD')).toStrictEqual({\n        ...baseAction,\n        form: 'NFKD',\n      } satisfies NormalizeAction<'NFKD'>);\n    });\n  });\n\n  describe('should normalize string', () => {\n    test('with undefined form', () => {\n      expect(\n        normalize()['~run']({ typed: true, value: '\\u00F1' }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: 'ñ',\n      });\n      expect(\n        normalize()['~run']({ typed: true, value: '\\u006E\\u0303' }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: 'ñ',\n      });\n    });\n\n    test('with defined form', () => {\n      expect(\n        normalize('NFKD')['~run']({ typed: true, value: '\\uFB00' }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: 'ff',\n      });\n      expect(\n        normalize('NFKD')['~run']({ typed: true, value: '\\u0066\\u0066' }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: 'ff',\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/normalize/normalize.ts",
    "content": "import type { BaseTransformation } from '../../types/index.ts';\n\n/**\n * Normalize form type.\n */\nexport type NormalizeForm = 'NFC' | 'NFD' | 'NFKC' | 'NFKD';\n\n/**\n * Normalize action interface.\n */\nexport interface NormalizeAction<TForm extends NormalizeForm | undefined>\n  extends BaseTransformation<string, string, never> {\n  /**\n   * The action type.\n   */\n  readonly type: 'normalize';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof normalize;\n  /**\n   * The normalization form.\n   */\n  readonly form: TForm;\n}\n\n/**\n * Creates a normalize transformation action.\n *\n * @returns A normalize action.\n */\nexport function normalize(): NormalizeAction<undefined>;\n\n/**\n * Creates a normalize transformation action.\n *\n * @param form The normalization form.\n *\n * @returns A normalize action.\n */\nexport function normalize<TForm extends NormalizeForm | undefined>(\n  form: TForm\n): NormalizeAction<TForm>;\n\n// @__NO_SIDE_EFFECTS__\nexport function normalize(\n  form?: NormalizeForm\n): NormalizeAction<NormalizeForm | undefined> {\n  return {\n    kind: 'transformation',\n    type: 'normalize',\n    reference: normalize,\n    async: false,\n    form,\n    '~run'(dataset) {\n      dataset.value = dataset.value.normalize(this.form);\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/notBytes/index.ts",
    "content": "export * from './notBytes.ts';\n"
  },
  {
    "path": "library/src/actions/notBytes/notBytes.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  notBytes,\n  type NotBytesAction,\n  type NotBytesIssue,\n} from './notBytes.ts';\n\ndescribe('notBytes', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = NotBytesAction<string, 10, undefined>;\n      expectTypeOf(notBytes<string, 10>(10)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        notBytes<string, 10, undefined>(10, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        notBytes<string, 10, 'message'>(10, 'message')\n      ).toEqualTypeOf<NotBytesAction<string, 10, 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        notBytes<string, 10, () => string>(10, () => 'message')\n      ).toEqualTypeOf<NotBytesAction<string, 10, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = NotBytesAction<string, 10, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        NotBytesIssue<string, 10>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/notBytes/notBytes.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  notBytes,\n  type NotBytesAction,\n  type NotBytesIssue,\n} from './notBytes.ts';\n\ndescribe('notBytes', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<NotBytesAction<string, 5, never>, 'message'> = {\n      kind: 'validation',\n      type: 'not_bytes',\n      reference: notBytes,\n      expects: '!5',\n      requirement: 5,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: NotBytesAction<string, 5, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(notBytes(5)).toStrictEqual(action);\n      expect(notBytes(5, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(notBytes(5, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies NotBytesAction<string, 5, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(notBytes(5, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies NotBytesAction<string, 5, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = notBytes(5);\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid strings', () => {\n      expectNoActionIssue(action, ['', '1234', '123456', '123456789']);\n    });\n\n    test('for valid chars', () => {\n      expectNoActionIssue(action, [\n        'あ', // 'あ' is 3 bytes\n        '🤖', // '🤖' is 4 bytes\n        'あい', // 'あい' is 6 bytes\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = notBytes(5, 'message');\n    const baseIssue: Omit<NotBytesIssue<string, 5>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'not_bytes',\n      expected: '!5',\n      message: 'message',\n      requirement: 5,\n    };\n\n    const getReceived = (value: string) =>\n      `${new TextEncoder().encode(value).length}`;\n\n    test('for invalid strings', () => {\n      expectActionIssue(action, baseIssue, ['12345', 'abcde'], getReceived);\n    });\n\n    test('for invalid chars', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [\n          '12あ', // 'あ' is 3 bytes\n          '🤖!', // '🤖' is 4 bytes\n        ],\n        getReceived\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/notBytes/notBytes.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue, _getByteCount } from '../../utils/index.ts';\n\n/**\n * Not bytes issue interface.\n */\nexport interface NotBytesIssue<\n  TInput extends string,\n  TRequirement extends number,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'not_bytes';\n  /**\n   * The expected property.\n   */\n  readonly expected: `!${TRequirement}`;\n  /**\n   * The received property.\n   */\n  readonly received: `${number}`;\n  /**\n   * The not required bytes.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Not bytes action interface.\n */\nexport interface NotBytesAction<\n  TInput extends string,\n  TRequirement extends number,\n  TMessage extends\n    | ErrorMessage<NotBytesIssue<TInput, TRequirement>>\n    | undefined,\n> extends BaseValidation<TInput, TInput, NotBytesIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'not_bytes';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof notBytes;\n  /**\n   * The expected property.\n   */\n  readonly expects: `!${TRequirement}`;\n  /**\n   * The not required bytes.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a not [bytes](https://en.wikipedia.org/wiki/Byte) validation action.\n *\n * @param requirement The not required bytes.\n *\n * @returns A not bytes action.\n */\nexport function notBytes<\n  TInput extends string,\n  const TRequirement extends number,\n>(requirement: TRequirement): NotBytesAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a not [bytes](https://en.wikipedia.org/wiki/Byte) validation action.\n *\n * @param requirement The not required bytes.\n * @param message The error message.\n *\n * @returns A not bytes action.\n */\nexport function notBytes<\n  TInput extends string,\n  const TRequirement extends number,\n  const TMessage extends\n    | ErrorMessage<NotBytesIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): NotBytesAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function notBytes(\n  requirement: number,\n  message?: ErrorMessage<NotBytesIssue<string, number>>\n): NotBytesAction<\n  string,\n  number,\n  ErrorMessage<NotBytesIssue<string, number>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'not_bytes',\n    reference: notBytes,\n    async: false,\n    expects: `!${requirement}`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed) {\n        const length = _getByteCount(dataset.value);\n        if (length === this.requirement) {\n          _addIssue(this, 'bytes', dataset, config, {\n            received: `${length}`,\n          });\n        }\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/notEntries/index.ts",
    "content": "export * from './notEntries.ts';\n"
  },
  {
    "path": "library/src/actions/notEntries/notEntries.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  notEntries,\n  type NotEntriesAction,\n  type NotEntriesIssue,\n} from './notEntries.ts';\n\ndescribe('notEntries', () => {\n  type Input = Record<string, number>;\n\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = NotEntriesAction<Input, 10, undefined>;\n      expectTypeOf(notEntries<Input, 10>(10)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        notEntries<Input, 10, undefined>(10, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        notEntries<Input, 10, 'message'>(10, 'message')\n      ).toEqualTypeOf<NotEntriesAction<Input, 10, 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        notEntries<Input, 10, () => string>(10, () => 'message')\n      ).toEqualTypeOf<NotEntriesAction<Input, 10, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = NotEntriesAction<Input, 10, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        NotEntriesIssue<Input, 10>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/notEntries/notEntries.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { RecordIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  notEntries,\n  type NotEntriesAction,\n  type NotEntriesIssue,\n} from './notEntries.ts';\n\ndescribe('notEntries', () => {\n  type Input = Record<string, number>;\n\n  describe('should return action object', () => {\n    const baseAction: Omit<NotEntriesAction<Input, 3, never>, 'message'> = {\n      kind: 'validation',\n      type: 'not_entries',\n      reference: notEntries,\n      expects: '!3',\n      requirement: 3,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: NotEntriesAction<Input, 3, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(notEntries(3)).toStrictEqual(action);\n      expect(notEntries(3, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(notEntries(3, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies NotEntriesAction<Input, 3, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(notEntries(3, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies NotEntriesAction<Input, 3, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = notEntries(3);\n\n    test('for untyped inputs', () => {\n      const issues: [RecordIssue] = [\n        {\n          kind: 'schema',\n          type: 'record',\n          input: null,\n          expected: 'Object',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid objects', () => {\n      expectNoActionIssue(action, [\n        {},\n        { foo: 1 },\n        { foo: 1, bar: 2 },\n        { foo: 1, bar: 2, baz: 3, qux: 4 },\n        { foo: 1, bar: 2, baz: 3, qux: 4, quux: 5 },\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = notEntries(3, 'message');\n    const baseIssue: Omit<NotEntriesIssue<Input, 3>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'not_entries',\n      expected: '!3',\n      message: 'message',\n      requirement: 3,\n    };\n\n    test('for invalid objects', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [{ foo: 1, bar: 2, baz: 3 }],\n        (value) => `${Object.keys(value).length}`\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/notEntries/notEntries.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\nimport type { EntriesInput } from '../types.ts';\n\n/**\n * Not entries issue interface.\n *\n * @beta\n */\nexport interface NotEntriesIssue<\n  TInput extends EntriesInput,\n  TRequirement extends number,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'not_entries';\n  /**\n   * The expected property.\n   */\n  readonly expected: `!${TRequirement}`;\n  /**\n   * The received property.\n   */\n  readonly received: `${number}`;\n  /**\n   * The not required entries.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Not entries action interface.\n *\n * @beta\n */\nexport interface NotEntriesAction<\n  TInput extends EntriesInput,\n  TRequirement extends number,\n  TMessage extends\n    | ErrorMessage<NotEntriesIssue<TInput, TRequirement>>\n    | undefined,\n> extends BaseValidation<\n    TInput,\n    TInput,\n    NotEntriesIssue<TInput, TRequirement>\n  > {\n  /**\n   * The action type.\n   */\n  readonly type: 'not_entries';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof notEntries;\n  /**\n   * The expected property.\n   */\n  readonly expects: `!${TRequirement}`;\n  /**\n   * The not required entries.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a not entries validation action.\n *\n * @param requirement The not required entries.\n *\n * @returns A not entries action.\n *\n * @beta\n */\nexport function notEntries<\n  TInput extends EntriesInput,\n  const TRequirement extends number,\n>(requirement: TRequirement): NotEntriesAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a not entries validation action.\n *\n * @param requirement The not required entries.\n * @param message The error message.\n *\n * @returns A not entries action.\n *\n * @beta\n */\nexport function notEntries<\n  TInput extends EntriesInput,\n  const TRequirement extends number,\n  const TMessage extends\n    | ErrorMessage<NotEntriesIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): NotEntriesAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function notEntries(\n  requirement: number,\n  message?: ErrorMessage<NotEntriesIssue<EntriesInput, number>>\n): NotEntriesAction<\n  EntriesInput,\n  number,\n  ErrorMessage<NotEntriesIssue<EntriesInput, number>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'not_entries',\n    reference: notEntries,\n    async: false,\n    expects: `!${requirement}`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (!dataset.typed) return dataset;\n      const count = Object.keys(dataset.value).length;\n      if (dataset.typed && count === this.requirement) {\n        _addIssue(this, 'entries', dataset, config, {\n          received: `${count}`,\n        });\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/notGraphemes/index.ts",
    "content": "export * from './notGraphemes.ts';\n"
  },
  {
    "path": "library/src/actions/notGraphemes/notGraphemes.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  notGraphemes,\n  type NotGraphemesAction,\n  type NotGraphemesIssue,\n} from './notGraphemes.ts';\n\ndescribe('notGraphemes', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = NotGraphemesAction<string, 10, undefined>;\n      expectTypeOf(notGraphemes<string, 10>(10)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        notGraphemes<string, 10, undefined>(10, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        notGraphemes<string, 10, 'message'>(10, 'message')\n      ).toEqualTypeOf<NotGraphemesAction<string, 10, 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        notGraphemes<string, 10, () => string>(10, () => 'message')\n      ).toEqualTypeOf<NotGraphemesAction<string, 10, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Input = 'example string';\n    type Action = NotGraphemesAction<Input, 10, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        NotGraphemesIssue<Input, 10>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/notGraphemes/notGraphemes.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { _getGraphemeCount } from '../../utils/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  notGraphemes,\n  type NotGraphemesAction,\n  type NotGraphemesIssue,\n} from './notGraphemes.ts';\n\ndescribe('notGraphemes', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<NotGraphemesAction<string, 5, never>, 'message'> = {\n      kind: 'validation',\n      type: 'not_graphemes',\n      reference: notGraphemes,\n      expects: '!5',\n      requirement: 5,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: NotGraphemesAction<string, 5, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(notGraphemes(5)).toStrictEqual(action);\n      expect(notGraphemes(5, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(notGraphemes(5, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies NotGraphemesAction<string, 5, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(notGraphemes(5, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies NotGraphemesAction<string, 5, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = notGraphemes(5);\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid strings', () => {\n      expectNoActionIssue(action, [\n        '',\n        ' ',\n        '1',\n        '1234',\n        '123 ',\n        '123456',\n        '12 456',\n        '123456789',\n      ]);\n    });\n\n    test('for valid emoji', () => {\n      expectNoActionIssue(action, [\n        '😀',\n        '😀👋🏼🧩👩🏻‍🏫',\n        '😀👋🏼🧩👩🏻‍🏫🫥🫠',\n        '😀👋🏼🧩👩🏻‍🏫🫥🫠🧑‍💻👻🥎',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = notGraphemes(5, 'message');\n    const baseIssue: Omit<\n      NotGraphemesIssue<string, 5>,\n      'input' | 'received'\n    > = {\n      kind: 'validation',\n      type: 'not_graphemes',\n      expected: '!5',\n      message: 'message',\n      requirement: 5,\n    };\n\n    test('for invalid strings', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        ['12345', '12 45', '1234 ', 'hello'],\n        (value) => `${_getGraphemeCount(value)}`\n      );\n    });\n\n    test('for invalid emoji', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        ['😀👋🏼🧩👩🏻‍🏫🫥'],\n        (value) => `${_getGraphemeCount(value)}`\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/notGraphemes/notGraphemes.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue, _getGraphemeCount } from '../../utils/index.ts';\n\n/**\n * Not graphemes issue interface.\n */\nexport interface NotGraphemesIssue<\n  TInput extends string,\n  TRequirement extends number,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'not_graphemes';\n  /**\n   * The expected property.\n   */\n  readonly expected: `!${TRequirement}`;\n  /**\n   * The received property.\n   */\n  readonly received: `${number}`;\n  /**\n   * The not required graphemes.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Not graphemes action interface.\n */\nexport interface NotGraphemesAction<\n  TInput extends string,\n  TRequirement extends number,\n  TMessage extends\n    | ErrorMessage<NotGraphemesIssue<TInput, TRequirement>>\n    | undefined,\n> extends BaseValidation<\n    TInput,\n    TInput,\n    NotGraphemesIssue<TInput, TRequirement>\n  > {\n  /**\n   * The action type.\n   */\n  readonly type: 'not_graphemes';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof notGraphemes;\n  /**\n   * The expected property.\n   */\n  readonly expects: `!${TRequirement}`;\n  /**\n   * The not required graphemes.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a not graphemes validation action.\n *\n * @param requirement The not required graphemes.\n *\n * @returns A not graphemes action.\n */\nexport function notGraphemes<\n  TInput extends string,\n  const TRequirement extends number,\n>(\n  requirement: TRequirement\n): NotGraphemesAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a not graphemes validation action.\n *\n * @param requirement The not required graphemes.\n * @param message The error message.\n *\n * @returns A not graphemes action.\n */\nexport function notGraphemes<\n  TInput extends string,\n  const TRequirement extends number,\n  const TMessage extends\n    | ErrorMessage<NotGraphemesIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): NotGraphemesAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function notGraphemes(\n  requirement: number,\n  message?: ErrorMessage<NotGraphemesIssue<string, number>>\n): NotGraphemesAction<\n  string,\n  number,\n  ErrorMessage<NotGraphemesIssue<string, number>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'not_graphemes',\n    reference: notGraphemes,\n    async: false,\n    expects: `!${requirement}`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed) {\n        const count = _getGraphemeCount(dataset.value);\n        if (count === this.requirement) {\n          _addIssue(this, 'graphemes', dataset, config, {\n            received: `${count}`,\n          });\n        }\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/notLength/index.ts",
    "content": "export * from './notLength.ts';\n"
  },
  {
    "path": "library/src/actions/notLength/notLength.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  notLength,\n  type NotLengthAction,\n  type NotLengthIssue,\n} from './notLength.ts';\n\ndescribe('notLength', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = NotLengthAction<string, 10, undefined>;\n      expectTypeOf(notLength<string, 10>(10)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        notLength<string, 10, undefined>(10, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        notLength<string, 10, 'message'>(10, 'message')\n      ).toEqualTypeOf<NotLengthAction<string, 10, 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        notLength<string, 10, () => string>(10, () => 'message')\n      ).toEqualTypeOf<NotLengthAction<string, 10, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Input = [1, 'two', { value: 'three' }];\n    type Action = NotLengthAction<Input, 3, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        NotLengthIssue<Input, 3>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/notLength/notLength.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  notLength,\n  type NotLengthAction,\n  type NotLengthIssue,\n} from './notLength.ts';\n\ndescribe('notLength', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<NotLengthAction<string, 5, never>, 'message'> = {\n      kind: 'validation',\n      type: 'not_length',\n      reference: notLength,\n      expects: '!5',\n      requirement: 5,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: NotLengthAction<string, 5, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(notLength(5)).toStrictEqual(action);\n      expect(notLength(5, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(notLength(5, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies NotLengthAction<string, 5, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(notLength(5, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies NotLengthAction<string, 5, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = notLength(3);\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid strings', () => {\n      expectNoActionIssue(action, [\n        '',\n        ' ',\n        '  ',\n        '\\n',\n        '\\n\\t',\n        'あ', // 'あ' is 3 bytes\n        'ab',\n        'abcd',\n        '1',\n        '12',\n        '1234',\n        '@',\n        '@#',\n        '@#$%',\n      ]);\n    });\n\n    test('for valid arrays', () => {\n      expectNoActionIssue(action, [\n        [],\n        [1],\n        ['1', '2'],\n        [1, '2', 3, '4'],\n        [[1, 2, 3]],\n        [[1, 2], ['3']],\n        [{ 1: 'one', 2: 'two', 3: 'three' }],\n        [[1], [2], null, [{ value: 3 }]],\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = notLength(3, 'message');\n    const baseIssue: Omit<NotLengthIssue<string, 3>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'not_length',\n      expected: '!3',\n      message: 'message',\n      requirement: 3,\n    };\n\n    test('for invalid strings', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [\n          '   ',\n          ' \\n\\n',\n          '\\n\\n\\t',\n          'abc',\n          'ABC',\n          '123',\n          'あああ', // 'あ' is 3 bytes but the total length of the string is 3\n          '@#$',\n        ],\n        (value) => `${value.length}`\n      );\n    });\n\n    test('for invalid arrays', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [\n          [1, 2, 3],\n          ['foo', 'bar', 'baz'],\n          [1, null, undefined],\n          [[1, 2, 3, 4], [5], [6, 7]],\n          [{ value: 1 }, { value: 2 }, { value: 3 }],\n          ['1', 2, { value: 3 }],\n        ],\n        (value) => `${value.length}`\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/notLength/notLength.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\nimport type { LengthInput } from '../types.ts';\n\n/**\n * Not length issue interface.\n */\nexport interface NotLengthIssue<\n  TInput extends LengthInput,\n  TRequirement extends number,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'not_length';\n  /**\n   * The expected property.\n   */\n  readonly expected: `!${TRequirement}`;\n  /**\n   * The received property.\n   */\n  readonly received: `${TRequirement}`;\n  /**\n   * The not required length.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Not length action interface.\n */\nexport interface NotLengthAction<\n  TInput extends LengthInput,\n  TRequirement extends number,\n  TMessage extends\n    | ErrorMessage<NotLengthIssue<TInput, TRequirement>>\n    | undefined,\n> extends BaseValidation<TInput, TInput, NotLengthIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'not_length';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof notLength;\n  /**\n   * The expected property.\n   */\n  readonly expects: `!${TRequirement}`;\n  /**\n   * The not required length.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a not length validation action.\n *\n * @param requirement The not required length.\n *\n * @returns A not length action.\n */\nexport function notLength<\n  TInput extends LengthInput,\n  const TRequirement extends number,\n>(requirement: TRequirement): NotLengthAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a not length validation action.\n *\n * @param requirement The not required length.\n * @param message The error message.\n *\n * @returns A not length action.\n */\nexport function notLength<\n  TInput extends LengthInput,\n  const TRequirement extends number,\n  const TMessage extends\n    | ErrorMessage<NotLengthIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): NotLengthAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function notLength(\n  requirement: number,\n  message?: ErrorMessage<NotLengthIssue<LengthInput, number>>\n): NotLengthAction<\n  LengthInput,\n  number,\n  ErrorMessage<NotLengthIssue<LengthInput, number>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'not_length',\n    reference: notLength,\n    async: false,\n    expects: `!${requirement}`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && dataset.value.length === this.requirement) {\n        _addIssue(this, 'length', dataset, config, {\n          received: `${dataset.value.length}`,\n        });\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/notSize/index.ts",
    "content": "export * from './notSize.ts';\n"
  },
  {
    "path": "library/src/actions/notSize/notSize.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { notSize, type NotSizeAction, type NotSizeIssue } from './notSize.ts';\n\ndescribe('notSize', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = NotSizeAction<Blob, 10, undefined>;\n      expectTypeOf(notSize<Blob, 10>(10)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        notSize<Blob, 10, undefined>(10, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(notSize<Blob, 10, 'message'>(10, 'message')).toEqualTypeOf<\n        NotSizeAction<Blob, 10, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        notSize<Blob, 10, () => string>(10, () => 'message')\n      ).toEqualTypeOf<NotSizeAction<Blob, 10, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = NotSizeAction<Map<string, number>, 10, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Map<string, number>>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Map<string, number>>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        NotSizeIssue<Map<string, number>, 10>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/notSize/notSize.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { MapIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { notSize, type NotSizeAction, type NotSizeIssue } from './notSize.ts';\n\ndescribe('notSize', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<NotSizeAction<Blob, 5, never>, 'message'> = {\n      kind: 'validation',\n      type: 'not_size',\n      reference: notSize,\n      expects: '!5',\n      requirement: 5,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: NotSizeAction<Blob, 5, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(notSize(5)).toStrictEqual(action);\n      expect(notSize(5, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(notSize(5, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies NotSizeAction<Blob, 5, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(notSize(5, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies NotSizeAction<Blob, 5, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = notSize(3);\n\n    test('for untyped inputs', () => {\n      const issues: [MapIssue] = [\n        {\n          kind: 'schema',\n          type: 'map',\n          input: null,\n          expected: 'Map',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid maps', () => {\n      expectNoActionIssue(action, [\n        new Map(),\n        new Map([[1, 'one']]),\n        new Map([\n          ['one', 1],\n          ['two', null],\n        ]),\n        new Map<string | number, string | null>([\n          [1, 'one'],\n          [2, 'two'],\n          ['3', 'three'],\n          [4, null],\n        ]),\n      ]);\n    });\n\n    test('for valid sets', () => {\n      expectNoActionIssue(action, [\n        new Set(),\n        new Set([1]),\n        new Set(['one', null]),\n        new Set('1234'),\n        new Set([[1, 2, 3, 4], [5, 6], [7], [8, 9]]),\n      ]);\n    });\n\n    test('for valid blobs', () => {\n      expectNoActionIssue(action, [\n        new Blob([]),\n        new Blob(['']),\n        new Blob([' ']),\n        new Blob(['1']),\n        new Blob(['hi'], { type: 'text/plain' }),\n        new Blob([new Uint8Array([72, 105])]), // 'Hi'\n        new Blob(['  \\t\\n']),\n        new Blob([new Uint8Array([104, 105, 33, 33])]), // 'hi!!'\n        new Blob(['🤖']),\n        new Blob(['🤖😍']),\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = notSize(3, 'message');\n    const baseIssue: Omit<\n      NotSizeIssue<Map<number, string>, 3>,\n      'input' | 'received'\n    > = {\n      kind: 'validation',\n      type: 'not_size',\n      expected: '!3',\n      message: 'message',\n      requirement: 3,\n    };\n\n    test('for invalid maps', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [\n          new Map([\n            [1, 'one'],\n            [2, 'two'],\n            [3, 'three'],\n          ]),\n          new Map([\n            [' ', 'space'],\n            ['\\n', 'new-line'],\n            ['\\t', 'tab'],\n          ]),\n          new Map<string, string | number>([\n            ['one', 1],\n            ['two', '2'],\n            ['three', 3],\n          ]),\n          new Map<string | number | boolean, string | null>([\n            ['1', 'one'],\n            [2, null],\n            [true, null],\n          ]),\n        ],\n        (value) => `${value.size}`\n      );\n    });\n\n    test('for invalid sets', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [\n          new Set([1, 2, 3]),\n          new Set('123'),\n          new Set([' ', '\\n', '\\t']),\n          new Set([[1, 2, 3, 4], [5, 6], [7]]),\n          new Set([1, 'two', null]),\n          new Set(['1', { value: '5' }, null]),\n        ],\n        (value) => `${value.size}`\n      );\n    });\n\n    test('for invalid blobs', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [\n          new Blob(['bot']),\n          new Blob(['✨']),\n          new Blob([' \\t\\n']),\n          new Blob(['1', '2', '3'], { type: 'text/plain' }),\n          new Blob(\n            [\n              new Uint8Array([104, 105]), // 'hi'\n              new Blob(['!'], { type: 'text/plain' }),\n            ],\n            { type: 'text/plain' }\n          ),\n        ],\n        (value) => `${value.size}`\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/notSize/notSize.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\nimport type { SizeInput } from '../types.ts';\n\n/**\n * Not size issue interface.\n */\nexport interface NotSizeIssue<\n  TInput extends SizeInput,\n  TRequirement extends number,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'not_size';\n  /**\n   * The expected property.\n   */\n  readonly expected: `!${TRequirement}`;\n  /**\n   * The received property.\n   */\n  readonly received: `${TRequirement}`;\n  /**\n   * The not required size.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Not size action interface.\n */\nexport interface NotSizeAction<\n  TInput extends SizeInput,\n  TRequirement extends number,\n  TMessage extends ErrorMessage<NotSizeIssue<TInput, TRequirement>> | undefined,\n> extends BaseValidation<TInput, TInput, NotSizeIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'not_size';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof notSize;\n  /**\n   * The expected property.\n   */\n  readonly expects: `!${TRequirement}`;\n  /**\n   * The not required size.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a not size validation action.\n *\n * @param requirement The not required size.\n *\n * @returns A not size action.\n */\nexport function notSize<\n  TInput extends SizeInput,\n  const TRequirement extends number,\n>(requirement: TRequirement): NotSizeAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a not size validation action.\n *\n * @param requirement The not required size.\n * @param message The error message.\n *\n * @returns A not size action.\n */\nexport function notSize<\n  TInput extends SizeInput,\n  const TRequirement extends number,\n  const TMessage extends\n    | ErrorMessage<NotSizeIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): NotSizeAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function notSize(\n  requirement: number,\n  message?: ErrorMessage<NotSizeIssue<SizeInput, number>>\n): NotSizeAction<\n  SizeInput,\n  number,\n  ErrorMessage<NotSizeIssue<SizeInput, number>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'not_size',\n    reference: notSize,\n    async: false,\n    expects: `!${requirement}`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && dataset.value.size === this.requirement) {\n        _addIssue(this, 'size', dataset, config, {\n          received: `${dataset.value.size}`,\n        });\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/notValue/index.ts",
    "content": "export * from './notValue.ts';\n"
  },
  {
    "path": "library/src/actions/notValue/notValue.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  notValue,\n  type NotValueAction,\n  type NotValueIssue,\n} from './notValue.ts';\n\ndescribe('notValue', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = NotValueAction<number, 10, undefined>;\n      expectTypeOf(notValue<number, 10>(10)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        notValue<number, 10, undefined>(10, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        notValue<number, 10, 'message'>(10, 'message')\n      ).toEqualTypeOf<NotValueAction<number, 10, 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        notValue<number, 10, () => string>(10, () => 'message')\n      ).toEqualTypeOf<NotValueAction<number, 10, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = NotValueAction<number, 10, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        NotValueIssue<number, 10>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/notValue/notValue.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { NumberIssue } from '../../schemas/index.ts';\nimport { _stringify } from '../../utils/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { notValue, type NotValueAction } from './notValue.ts';\n\ndescribe('notValue', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<NotValueAction<number, 5, never>, 'message'> = {\n      kind: 'validation',\n      type: 'not_value',\n      reference: notValue,\n      expects: '!5',\n      requirement: 5,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: NotValueAction<number, 5, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(notValue(5)).toStrictEqual(action);\n      expect(notValue(5, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(notValue(5, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies NotValueAction<number, 5, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(notValue(5, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies NotValueAction<number, 5, typeof message>);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    test('for untyped inputs', () => {\n      const issues: [NumberIssue] = [\n        {\n          kind: 'schema',\n          type: 'number',\n          input: null,\n          expected: 'number',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        notValue(1)['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid bigints', () => {\n      expectNoActionIssue(notValue(10n), [-123n, 0n, 9n, 11n, 123n]);\n    });\n\n    test('for valid non-bigints', () => {\n      expectNoActionIssue(notValue(10n), [\n        9,\n        11,\n        9.0,\n        11.0,\n        '9',\n        '11',\n        '9.0',\n        '11.0',\n        '',\n        ' ',\n        new Date(9),\n        new Date(11),\n        true,\n        false,\n      ]);\n      expectNoActionIssue(notValue(1n), [\n        0,\n        0.0,\n        '0',\n        ' 0 ',\n        '',\n        ' ',\n        false,\n        new Date(0),\n      ]);\n      expectNoActionIssue(notValue(0n), [\n        1,\n        1.0,\n        '1',\n        ' 1 ',\n        true,\n        new Date(1),\n      ]);\n    });\n\n    test('for valid booleans', () => {\n      expectNoActionIssue(notValue(true), [false]);\n      expectNoActionIssue(notValue(false), [true]);\n    });\n\n    test('for valid non-booleans', () => {\n      expectNoActionIssue(notValue(true), [\n        0n,\n        0,\n        0.0,\n        '0',\n        '0.0',\n        ' 0 ',\n        '',\n        ' ',\n        new Date(0),\n      ]);\n      expectNoActionIssue(notValue(true), [\n        123n,\n        123,\n        123.0,\n        '123',\n        '123.0',\n        'foo',\n        'true',\n        new Date(123),\n      ]);\n      expectNoActionIssue(notValue(false), [\n        1n,\n        1,\n        1.0,\n        '1',\n        '1.0',\n        ' 1 ',\n        new Date(1),\n      ]);\n      expectNoActionIssue(notValue(false), [\n        123n,\n        123,\n        123.0,\n        '123',\n        '123.0',\n        'foo',\n        'false',\n        new Date(123),\n      ]);\n    });\n\n    test('for valid dates', () => {\n      const date = new Date();\n      const nextDate = new Date(+date + 1);\n      expectNoActionIssue(notValue(date), [\n        new Date(+date - 1),\n        nextDate,\n        new Date(+date + 999999),\n        new Date(nextDate.getTime()),\n        new Date(nextDate.toISOString()),\n        new Date(\n          nextDate.getFullYear(),\n          nextDate.getMonth(),\n          nextDate.getDate(),\n          nextDate.getHours(),\n          nextDate.getMinutes(),\n          nextDate.getSeconds(),\n          nextDate.getMilliseconds()\n        ),\n      ]);\n    });\n\n    test('for valid non-dates', () => {\n      expectNoActionIssue(notValue(new Date(10)), [\n        9n,\n        11n,\n        9,\n        11,\n        9.0,\n        11.0,\n        '9',\n        '11',\n        '9.0',\n        '11.0',\n        '',\n        ' ',\n        true,\n        false,\n      ]);\n      expectNoActionIssue(notValue(new Date(1)), [\n        0,\n        0.0,\n        0n,\n        '0',\n        '0.0',\n        ' 0 ',\n        '',\n        ' ',\n        false,\n      ]);\n      expectNoActionIssue(notValue(new Date(0)), [\n        1,\n        1.0,\n        1n,\n        '1',\n        '1.0',\n        ' 1 ',\n        true,\n      ]);\n    });\n\n    test('for valid numbers', () => {\n      expectNoActionIssue(notValue(10), [\n        -Infinity,\n        Number.MIN_VALUE,\n        -10,\n        -9,\n        9,\n        11,\n        9999,\n        Number.MAX_VALUE,\n        Infinity,\n        NaN,\n      ]);\n    });\n\n    test('for valid non-numbers', () => {\n      expectNoActionIssue(notValue(10), [\n        9n,\n        11n,\n        '9',\n        '11',\n        '9.0',\n        '11.0',\n        '',\n        ' ',\n        new Date(9),\n        true,\n        false,\n      ]);\n      expectNoActionIssue(notValue(1), [\n        0n,\n        '0',\n        '0.0',\n        ' 0 ',\n        '',\n        ' ',\n        false,\n        new Date(0),\n      ]);\n      expectNoActionIssue(notValue(0), [\n        1n,\n        '1',\n        '1.0',\n        ' 1 ',\n        true,\n        new Date(1),\n      ]);\n    });\n\n    test('for valid strings', () => {\n      expectNoActionIssue(notValue('2024'), [\n        '202',\n        '024',\n        ' 2024',\n        '2024 ',\n        '02024',\n        '20240',\n        '020240',\n        '2025',\n        '9999',\n        'XYZ',\n      ]);\n    });\n\n    test('for valid non-strings', () => {\n      expectNoActionIssue(notValue('10'), [\n        9n,\n        11n,\n        9,\n        11,\n        9.0,\n        11.0,\n        new Date(9),\n        new Date(11),\n        true,\n        false,\n      ]);\n      expectNoActionIssue(notValue('1'), [0n, 0, 0.0, false, new Date(0)]);\n      expectNoActionIssue(notValue('0'), [1n, 1, 1.0, true, new Date(1)]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const baseInfo = {\n      kind: 'validation',\n      type: 'not_value',\n      message: 'message',\n    } as const;\n\n    const getReceived = (value: unknown): string =>\n      value instanceof Date ? value.toJSON() : _stringify(value);\n\n    test('for invalid bigints', () => {\n      expectActionIssue(\n        notValue(123n, 'message'),\n        { ...baseInfo, expected: '!123', requirement: 123n },\n        [123n, BigInt(123), BigInt('123')]\n      );\n    });\n\n    test('for invalid non-bigints', () => {\n      expectActionIssue(\n        notValue(123n, 'message'),\n        { ...baseInfo, expected: '!123', requirement: 123n },\n        [123, 123.0, '123', ' 123 ', new Date(123)],\n        getReceived\n      );\n      expectActionIssue(\n        notValue(1n, 'message'),\n        { ...baseInfo, expected: '!1', requirement: 1n },\n        [1, 1.0, '1', ' 1 ', true, new Date(1)],\n        getReceived\n      );\n      expectActionIssue(\n        notValue(0n, 'message'),\n        { ...baseInfo, expected: '!0', requirement: 0n },\n        [0, 0.0, '0', ' 0 ', '', ' ', false, new Date(0)],\n        getReceived\n      );\n    });\n\n    test('for invalid booleans', () => {\n      expectActionIssue(\n        notValue(true, 'message'),\n        { ...baseInfo, expected: '!true', requirement: true },\n        [true]\n      );\n      expectActionIssue(\n        notValue(false, 'message'),\n        { ...baseInfo, expected: '!false', requirement: false },\n        [false]\n      );\n    });\n\n    test('for invalid non-booleans', () => {\n      expectActionIssue(\n        notValue(true, 'message'),\n        { ...baseInfo, expected: '!true', requirement: true },\n        [1, 1.0, 1n, '1', '1.0', ' 1 ', new Date(1)],\n        getReceived\n      );\n      expectActionIssue(\n        notValue(false, 'message'),\n        { ...baseInfo, expected: '!false', requirement: false },\n        [0, 0.0, 0n, '0', '0.0', ' 0 ', '', ' ', new Date(0)],\n        getReceived\n      );\n    });\n\n    test('for invalid dates', () => {\n      const date = new Date();\n      expectActionIssue(\n        notValue(date, 'message'),\n        { ...baseInfo, expected: `!${date.toJSON()}`, requirement: date },\n        [\n          date,\n          new Date(date.getTime()),\n          new Date(date.toISOString()),\n          new Date(\n            date.getFullYear(),\n            date.getMonth(),\n            date.getDate(),\n            date.getHours(),\n            date.getMinutes(),\n            date.getSeconds(),\n            date.getMilliseconds()\n          ),\n        ],\n        getReceived\n      );\n    });\n\n    test('for invalid non-dates', () => {\n      const date1 = new Date(123);\n      expectActionIssue(\n        notValue(date1, 'message'),\n        { ...baseInfo, expected: `!${date1.toJSON()}`, requirement: date1 },\n        [123, 123.0, 123n, '123', '123.0', ' 123 '],\n        getReceived\n      );\n      const date2 = new Date(1);\n      expectActionIssue(\n        notValue(date2, 'message'),\n        { ...baseInfo, expected: `!${date2.toJSON()}`, requirement: date2 },\n        [1, 1.0, 1n, '1', '1.0', ' 1 ', true],\n        getReceived\n      );\n      const date3 = new Date(0);\n      expectActionIssue(\n        notValue(date3, 'message'),\n        { ...baseInfo, expected: `!${date3.toJSON()}`, requirement: date3 },\n        [0, 0.0, 0n, '0', '0.0', ' 0 ', '', ' ', false],\n        getReceived\n      );\n    });\n\n    test('for invalid numbers', () => {\n      expectActionIssue(\n        notValue(123, 'message'),\n        { ...baseInfo, expected: '!123', requirement: 123 },\n        [123, 123.0, Number(123)]\n      );\n    });\n\n    test('for invalid non-numbers', () => {\n      expectActionIssue(\n        notValue(123, 'message'),\n        { ...baseInfo, expected: '!123', requirement: 123 },\n        [123n, '123', '123.0', ' 123 ', new Date(123)],\n        getReceived\n      );\n      expectActionIssue(\n        notValue(1, 'message'),\n        { ...baseInfo, expected: '!1', requirement: 1 },\n        [1n, '1', '1.0', ' 1 ', true, new Date(1)],\n        getReceived\n      );\n      expectActionIssue(\n        notValue(0, 'message'),\n        { ...baseInfo, expected: '!0', requirement: 0 },\n        [0n, '0', '0.0', ' 0 ', '', ' ', false, new Date(0)],\n        getReceived\n      );\n    });\n\n    test('for invalid strings', () => {\n      expectActionIssue(\n        notValue('2024', 'message'),\n        { ...baseInfo, expected: '!\"2024\"', requirement: '2024' },\n        ['2024']\n      );\n    });\n\n    test('for invalid non-strings', () => {\n      expectActionIssue(\n        notValue('123', 'message'),\n        { ...baseInfo, expected: '!\"123\"', requirement: '123' },\n        [123, 123.0, 123n, new Date(123)],\n        getReceived\n      );\n      expectActionIssue(\n        notValue('1', 'message'),\n        { ...baseInfo, expected: '!\"1\"', requirement: '1' },\n        [1n, 1, 1.0, true, new Date(1)],\n        getReceived\n      );\n      expectActionIssue(\n        notValue('0', 'message'),\n        { ...baseInfo, expected: '!\"0\"', requirement: '0' },\n        [0n, 0, 0.0, false, new Date(0)],\n        getReceived\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/notValue/notValue.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue, _stringify } from '../../utils/index.ts';\nimport type { ValueInput } from '../types.ts';\n\n/**\n * Not value issue interface.\n */\nexport interface NotValueIssue<\n  TInput extends ValueInput,\n  TRequirement extends TInput,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'not_value';\n  /**\n   * The expected property.\n   */\n  readonly expected: `!${string}`;\n  /**\n   * The not required value.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Not value action interface.\n */\nexport interface NotValueAction<\n  TInput extends ValueInput,\n  TRequirement extends TInput,\n  TMessage extends\n    | ErrorMessage<NotValueIssue<TInput, TRequirement>>\n    | undefined,\n> extends BaseValidation<TInput, TInput, NotValueIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'not_value';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof notValue;\n  /**\n   * The expected property.\n   */\n  readonly expects: `!${string}`;\n  /**\n   * The not required value.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a not value validation action.\n *\n * @param requirement The not required value.\n *\n * @returns A not value action.\n */\nexport function notValue<\n  TInput extends ValueInput,\n  const TRequirement extends TInput,\n>(requirement: TRequirement): NotValueAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a not value validation action.\n *\n * @param requirement The not required value.\n * @param message The error message.\n *\n * @returns A not value action.\n */\nexport function notValue<\n  TInput extends ValueInput,\n  const TRequirement extends TInput,\n  const TMessage extends\n    | ErrorMessage<NotValueIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): NotValueAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function notValue(\n  requirement: ValueInput,\n  message?: ErrorMessage<NotValueIssue<ValueInput, ValueInput>>\n): NotValueAction<\n  ValueInput,\n  ValueInput,\n  ErrorMessage<NotValueIssue<ValueInput, ValueInput>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'not_value',\n    reference: notValue,\n    async: false,\n    expects:\n      requirement instanceof Date\n        ? `!${requirement.toJSON()}`\n        : `!${_stringify(requirement)}`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (\n        dataset.typed &&\n        this.requirement <= dataset.value &&\n        this.requirement >= dataset.value\n      ) {\n        _addIssue(this, 'value', dataset, config, {\n          received:\n            dataset.value instanceof Date\n              ? dataset.value.toJSON()\n              : _stringify(dataset.value),\n        });\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/notValues/index.ts",
    "content": "export * from './notValues.ts';\n"
  },
  {
    "path": "library/src/actions/notValues/notValues.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  notValues,\n  type NotValuesAction,\n  type NotValuesIssue,\n} from './notValues.ts';\n\ndescribe('notValues', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = NotValuesAction<number, [7, 12], undefined>;\n      expectTypeOf(notValues<number, [7, 12]>([7, 12])).toEqualTypeOf<Action>();\n      expectTypeOf(\n        notValues<number, [7, 12], undefined>([7, 12], undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        notValues<number, [7, 12], 'message'>([7, 12], 'message')\n      ).toEqualTypeOf<NotValuesAction<number, [7, 12], 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        notValues<number, [7, 12], () => string>([7, 12], () => 'message')\n      ).toEqualTypeOf<NotValuesAction<number, [7, 12], () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = NotValuesAction<number, [7, 12], undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        NotValuesIssue<number, [7, 12]>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/notValues/notValues.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { NumberIssue } from '../../schemas/index.ts';\nimport { _stringify } from '../../utils/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { notValues, type NotValuesAction } from './notValues.ts';\n\ndescribe('notValues', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<\n      NotValuesAction<number, [1, 3, 5], never>,\n      'message'\n    > = {\n      kind: 'validation',\n      type: 'not_values',\n      reference: notValues,\n      expects: '!(1 | 3 | 5)',\n      requirement: [1, 3, 5],\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: NotValuesAction<number, [1, 3, 5], undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(notValues([1, 3, 5])).toStrictEqual(action);\n      expect(notValues([1, 3, 5], undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(notValues([1, 3, 5], 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies NotValuesAction<number, [1, 3, 5], string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(notValues([1, 3, 5], message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies NotValuesAction<number, [1, 3, 5], typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for untyped inputs', () => {\n      const issues: [NumberIssue] = [\n        {\n          kind: 'schema',\n          type: 'number',\n          input: null,\n          expected: 'number',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        notValues([1, 3, 5])['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid bigints', () => {\n      expectNoActionIssue(notValues([10n, 11n, 12n]), [\n        -123n,\n        0n,\n        9n,\n        13n,\n        123n,\n      ]);\n    });\n\n    test('for valid non-bigints', () => {\n      expectNoActionIssue(notValues([10n, 11n, 12n]), [\n        9,\n        13,\n        9.0,\n        13.0,\n        '9',\n        '13',\n        '9.0',\n        '13.0',\n        '',\n        ' ',\n        new Date(9),\n        new Date(13),\n        true,\n        false,\n      ]);\n      expectNoActionIssue(notValues([1n]), [\n        0,\n        0.0,\n        '0',\n        ' 0 ',\n        '',\n        ' ',\n        false,\n        new Date(0),\n      ]);\n      expectNoActionIssue(notValues([0n]), [\n        1,\n        1.0,\n        '1',\n        ' 1 ',\n        true,\n        new Date(1),\n      ]);\n    });\n\n    test('for valid booleans', () => {\n      expectNoActionIssue(notValues([true]), [false]);\n      expectNoActionIssue(notValues([false]), [true]);\n    });\n\n    test('for valid non-booleans', () => {\n      expectNoActionIssue(notValues([true]), [\n        0n,\n        0,\n        0.0,\n        '0',\n        '0.0',\n        ' 0 ',\n        '',\n        ' ',\n        new Date(0),\n      ]);\n      expectNoActionIssue(notValues([true]), [\n        123n,\n        123,\n        123.0,\n        '123',\n        '123.0',\n        'foo',\n        'true',\n        new Date(123),\n      ]);\n      expectNoActionIssue(notValues([false]), [\n        1n,\n        1,\n        1.0,\n        '1',\n        '1.0',\n        ' 1 ',\n        new Date(1),\n      ]);\n      expectNoActionIssue(notValues([false]), [\n        123n,\n        123,\n        123.0,\n        '123',\n        '123.0',\n        'foo',\n        'false',\n        new Date(123),\n      ]);\n    });\n\n    test('for valid dates', () => {\n      const negDate = new Date(-10);\n      const posDate = new Date(12);\n      const nextPosDate = new Date(+posDate + 1);\n      expectNoActionIssue(notValues([negDate, posDate]), [\n        new Date(0),\n        new Date(+negDate - 1),\n        new Date(+negDate + 1),\n        new Date(+posDate - 1),\n        nextPosDate,\n        new Date(nextPosDate.getTime()),\n        new Date(nextPosDate.toISOString()),\n        new Date(\n          nextPosDate.getFullYear(),\n          nextPosDate.getMonth(),\n          nextPosDate.getDate(),\n          nextPosDate.getHours(),\n          nextPosDate.getMinutes(),\n          nextPosDate.getSeconds(),\n          nextPosDate.getMilliseconds()\n        ),\n      ]);\n\n      expectNoActionIssue(notValues([new Date(0)]), [\n        new Date(-1),\n        new Date(1),\n      ]);\n    });\n\n    test('for valid non-dates', () => {\n      expectNoActionIssue(\n        notValues([new Date(10), new Date(11), new Date(12)]),\n        [\n          9n,\n          13n,\n          9,\n          13,\n          9.0,\n          13.0,\n          '9',\n          '13',\n          '9.0',\n          '13.0',\n          '',\n          ' ',\n          true,\n          false,\n        ]\n      );\n      expectNoActionIssue(notValues([new Date(1)]), [\n        0,\n        0.0,\n        0n,\n        '0',\n        '0.0',\n        ' 0 ',\n        '',\n        ' ',\n        false,\n      ]);\n      expectNoActionIssue(notValues([new Date(0)]), [\n        1,\n        1.0,\n        1n,\n        '1',\n        '1.0',\n        ' 1 ',\n        true,\n      ]);\n    });\n\n    test('for valid numbers', () => {\n      expectNoActionIssue(notValues([10, 11, 12]), [\n        -Infinity,\n        Number.MIN_VALUE,\n        -10,\n        -9,\n        9,\n        13,\n        9999,\n        Number.MAX_VALUE,\n        Infinity,\n        NaN,\n      ]);\n\n      expectNoActionIssue(notValues([0]), [\n        -1,\n        1,\n        -1.0,\n        1.0,\n        -Infinity,\n        Infinity,\n        NaN,\n      ]);\n    });\n\n    test('for valid non-numbers', () => {\n      expectNoActionIssue(notValues([10, 11, 12]), [\n        9n,\n        13n,\n        '9',\n        '13',\n        '9.0',\n        '13.0',\n        '',\n        ' ',\n        new Date(9),\n        new Date(13),\n        true,\n        false,\n      ]);\n      expectNoActionIssue(notValues([1]), [\n        0n,\n        '0',\n        '0.0',\n        ' 0 ',\n        '',\n        ' ',\n        false,\n        new Date(0),\n      ]);\n      expectNoActionIssue(notValues([0]), [\n        1n,\n        '1',\n        '1.0',\n        ' 1 ',\n        true,\n        new Date(1),\n      ]);\n    });\n\n    test('for valid strings', () => {\n      expectNoActionIssue(notValues(['-100', '10']), [\n        ' -100 ',\n        ' 10 ',\n        '-100.0',\n        '10.0',\n        '-1000',\n        '100',\n        '-0100',\n        '010',\n        '-99',\n        '-101',\n        '9',\n        '11',\n        '',\n        ' ',\n        'abc',\n      ]);\n\n      expectNoActionIssue(notValues(['0']), [\n        '',\n        ' ',\n        ' 0 ',\n        '0.0',\n        '-0',\n        'abc',\n      ]);\n    });\n\n    test('for valid non-strings', () => {\n      expectNoActionIssue(notValues(['10', '11', '12']), [\n        9n,\n        13n,\n        9,\n        13,\n        9.0,\n        13.0,\n        new Date(9),\n        new Date(13),\n        true,\n        false,\n      ]);\n      expectNoActionIssue(notValues(['1']), [0n, 0, 0.0, false, new Date(0)]);\n      expectNoActionIssue(notValues(['0']), [1n, 1, 1.0, true, new Date(1)]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const baseInfo = {\n      kind: 'validation',\n      type: 'not_values',\n      message: 'message',\n    } as const;\n\n    const getReceived = (value: unknown): string =>\n      value instanceof Date ? value.toJSON() : _stringify(value);\n\n    test('for invalid bigints', () => {\n      expectActionIssue(\n        notValues([-2n, 0n, 3n], 'message'),\n        {\n          ...baseInfo,\n          expected: '!(-2 | 0 | 3)',\n          requirement: [-2n, 0n, 3n],\n        },\n        [-2n, 0n, 3n, BigInt(3), BigInt('3')]\n      );\n    });\n\n    test('for invalid non-bigints', () => {\n      expectActionIssue(\n        notValues([10n, 11n, 12n], 'message'),\n        {\n          ...baseInfo,\n          expected: '!(10 | 11 | 12)',\n          requirement: [10n, 11n, 12n],\n        },\n        [\n          10,\n          11,\n          12,\n          10.0,\n          11.0,\n          12.0,\n          '10',\n          '11',\n          '12',\n          ' 10 ',\n          ' 11 ',\n          ' 12 ',\n          new Date(10),\n          new Date(11),\n          new Date(12),\n        ],\n        getReceived\n      );\n      expectActionIssue(\n        notValues([1n], 'message'),\n        { ...baseInfo, expected: '!1', requirement: [1n] },\n        [1, 1.0, '1', ' 1 ', true, new Date(1)],\n        getReceived\n      );\n      expectActionIssue(\n        notValues([0n], 'message'),\n        { ...baseInfo, expected: '!0', requirement: [0n] },\n        [0, 0.0, '0', ' 0 ', '', ' ', false, new Date(0)],\n        getReceived\n      );\n    });\n\n    test('for invalid booleans', () => {\n      expectActionIssue(\n        notValues([true], 'message'),\n        { ...baseInfo, expected: '!true', requirement: [true] },\n        [true]\n      );\n      expectActionIssue(\n        notValues([false], 'message'),\n        { ...baseInfo, expected: '!false', requirement: [false] },\n        [false]\n      );\n    });\n\n    test('for invalid non-booleans', () => {\n      expectActionIssue(\n        notValues([true], 'message'),\n        { ...baseInfo, expected: '!true', requirement: [true] },\n        [1, 1.0, 1n, '1', '1.0', new Date(1)],\n        getReceived\n      );\n      expectActionIssue(\n        notValues([false], 'message'),\n        { ...baseInfo, expected: '!false', requirement: [false] },\n        [0, 0.0, 0n, '0', '0.0', '', ' ', new Date(0)],\n        getReceived\n      );\n      expectActionIssue(\n        notValues([false, true], 'message'),\n        {\n          ...baseInfo,\n          expected: '!(false | true)',\n          requirement: [false, true],\n        },\n        [\n          0,\n          1,\n          0.0,\n          1.0,\n          0n,\n          1n,\n          '0',\n          '1',\n          '0.0',\n          '1.0',\n          '',\n          ' ',\n          new Date(0),\n          new Date(1),\n        ],\n        getReceived\n      );\n    });\n\n    test('for invalid dates', () => {\n      const negDate = new Date(-2);\n      const posDate = new Date(3);\n      expectActionIssue(\n        notValues([negDate, posDate], 'message'),\n        {\n          ...baseInfo,\n          expected: `!(${negDate.toJSON()} | ${posDate.toJSON()})`,\n          requirement: [negDate, posDate],\n        },\n        [\n          negDate,\n          posDate,\n          new Date(posDate.getTime()),\n          new Date(posDate.toISOString()),\n          new Date(\n            posDate.getFullYear(),\n            posDate.getMonth(),\n            posDate.getDate(),\n            posDate.getHours(),\n            posDate.getMinutes(),\n            posDate.getSeconds(),\n            posDate.getMilliseconds()\n          ),\n        ],\n        getReceived\n      );\n\n      const zeroDate = new Date(0);\n      expectActionIssue(\n        notValues([zeroDate], 'message'),\n        {\n          ...baseInfo,\n          expected: `!${zeroDate.toJSON()}`,\n          requirement: [zeroDate],\n        },\n        [zeroDate, new Date(0)],\n        getReceived\n      );\n    });\n\n    test('for invalid non-dates', () => {\n      const date1 = new Date(10);\n      const date2 = new Date(11);\n      const date3 = new Date(12);\n      expectActionIssue(\n        notValues([date1, date2, date3], 'message'),\n        {\n          ...baseInfo,\n          expected: `!(${date1.toJSON()} | ${date2.toJSON()} | ${date3.toJSON()})`,\n          requirement: [date1, date2, date3],\n        },\n        [\n          10,\n          11,\n          12,\n          10.0,\n          11.0,\n          12.0,\n          10n,\n          11n,\n          12n,\n          '10',\n          '11',\n          '12',\n          '10.0',\n          '11.0',\n          '12.0',\n          ' 10 ',\n          ' 11 ',\n          ' 12 ',\n        ],\n        getReceived\n      );\n      const date4 = new Date(1);\n      expectActionIssue(\n        notValues([date4], 'message'),\n        { ...baseInfo, expected: `!${date4.toJSON()}`, requirement: [date4] },\n        [1, 1.0, 1n, '1', '1.0', ' 1 ', true],\n        getReceived\n      );\n      const date5 = new Date(0);\n      expectActionIssue(\n        notValues([date5], 'message'),\n        { ...baseInfo, expected: `!${date5.toJSON()}`, requirement: [date5] },\n        [0, 0.0, 0n, '0', '0.0', ' 0 ', '', ' ', false],\n        getReceived\n      );\n    });\n\n    test('for invalid numbers', () => {\n      expectActionIssue(\n        notValues([-2, 3], 'message'),\n        { ...baseInfo, expected: '!(-2 | 3)', requirement: [-2, 3] },\n        [-2, 3, -2.0, 3.0]\n      );\n\n      expectActionIssue(\n        notValues([0], 'message'),\n        { ...baseInfo, expected: '!0', requirement: [0] },\n        [-0, 0.0, 0]\n      );\n    });\n\n    test('for invalid non-numbers', () => {\n      expectActionIssue(\n        notValues([10, 11, 12], 'message'),\n        { ...baseInfo, expected: '!(10 | 11 | 12)', requirement: [10, 11, 12] },\n        [\n          10n,\n          11n,\n          12n,\n          '10',\n          '11',\n          '12',\n          '10.0',\n          '11.0',\n          '12.0',\n          ' 10 ',\n          ' 11 ',\n          ' 12 ',\n          new Date(10),\n          new Date(11),\n          new Date(12),\n        ],\n        getReceived\n      );\n      expectActionIssue(\n        notValues([1], 'message'),\n        { ...baseInfo, expected: '!1', requirement: [1] },\n        [1n, '1', '1.0', ' 1 ', true, new Date(1)],\n        getReceived\n      );\n      expectActionIssue(\n        notValues([0], 'message'),\n        { ...baseInfo, expected: '!0', requirement: [0] },\n        [0n, '0', '0.0', ' 0 ', '', ' ', false, new Date(0)],\n        getReceived\n      );\n    });\n\n    test('for invalid strings', () => {\n      expectActionIssue(\n        notValues(['2024', '2025'], 'message'),\n        {\n          ...baseInfo,\n          expected: '!(\"2024\" | \"2025\")',\n          requirement: ['2024', '2025'],\n        },\n        ['2024', '2025']\n      );\n\n      expectActionIssue(\n        notValues(['0'], 'message'),\n        {\n          ...baseInfo,\n          expected: '!\"0\"',\n          requirement: ['0'],\n        },\n        ['0']\n      );\n    });\n\n    test('for invalid non-strings', () => {\n      expectActionIssue(\n        notValues(['10', '11', '12'], 'message'),\n        {\n          ...baseInfo,\n          expected: '!(\"10\" | \"11\" | \"12\")',\n          requirement: ['10', '11', '12'],\n        },\n        [\n          10n,\n          11n,\n          12n,\n          10,\n          11,\n          12,\n          10.0,\n          11.0,\n          12.0,\n          new Date(10),\n          new Date(11),\n          new Date(12),\n        ],\n        getReceived\n      );\n      expectActionIssue(\n        notValues(['1'], 'message'),\n        { ...baseInfo, expected: '!\"1\"', requirement: ['1'] },\n        [1n, 1, 1.0, true, new Date(1)],\n        getReceived\n      );\n      expectActionIssue(\n        notValues(['0'], 'message'),\n        { ...baseInfo, expected: '!\"0\"', requirement: ['0'] },\n        [0n, 0, 0.0, false, new Date(0)],\n        getReceived\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/notValues/notValues.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue, _joinExpects, _stringify } from '../../utils/index.ts';\nimport type { ValueInput } from '../types.ts';\n\n/**\n * Not values issue type.\n */\nexport interface NotValuesIssue<\n  TInput extends ValueInput,\n  TRequirement extends readonly TInput[],\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'not_values';\n  /**\n   * The expected property.\n   */\n  readonly expected: `!${string}`;\n  /**\n   * The not required values.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Not values action type.\n */\nexport interface NotValuesAction<\n  TInput extends ValueInput,\n  TRequirement extends readonly TInput[],\n  TMessage extends\n    | ErrorMessage<NotValuesIssue<TInput, TRequirement>>\n    | undefined,\n> extends BaseValidation<TInput, TInput, NotValuesIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'not_values';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof notValues;\n  /**\n   * The expected property.\n   */\n  readonly expects: `!${string}`;\n  /**\n   * The not required values.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a not values validation action.\n *\n * @param requirement The not required values.\n *\n * @returns A not values action.\n */\nexport function notValues<\n  TInput extends ValueInput,\n  const TRequirement extends readonly TInput[],\n>(requirement: TRequirement): NotValuesAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a not values validation action.\n *\n * @param requirement The not required values.\n * @param message The error message.\n *\n * @returns A not values action.\n */\nexport function notValues<\n  TInput extends ValueInput,\n  const TRequirement extends readonly TInput[],\n  const TMessage extends\n    | ErrorMessage<NotValuesIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): NotValuesAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function notValues(\n  requirement: readonly ValueInput[],\n  message?: ErrorMessage<NotValuesIssue<ValueInput, readonly ValueInput[]>>\n): NotValuesAction<\n  ValueInput,\n  readonly ValueInput[],\n  ErrorMessage<NotValuesIssue<ValueInput, readonly ValueInput[]>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'not_values',\n    reference: notValues,\n    async: false,\n    expects: `!${_joinExpects(\n      requirement.map((value) =>\n        value instanceof Date ? value.toJSON() : _stringify(value)\n      ),\n      '|'\n    )}`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (\n        dataset.typed &&\n        this.requirement.some(\n          (value) => value <= dataset.value && value >= dataset.value\n        )\n      ) {\n        _addIssue(this, 'value', dataset, config, {\n          received:\n            dataset.value instanceof Date\n              ? dataset.value.toJSON()\n              : _stringify(dataset.value),\n        });\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/notWords/index.ts",
    "content": "export * from './notWords.ts';\n"
  },
  {
    "path": "library/src/actions/notWords/notWords.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  notWords,\n  type NotWordsAction,\n  type NotWordsIssue,\n} from './notWords.ts';\n\ndescribe('notWords', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = NotWordsAction<string, 'en', 3, undefined>;\n      expectTypeOf(notWords<string, 'en', 3>('en', 3)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        notWords<string, 'en', 3, undefined>('en', 3, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        notWords<string, 'en', 3, 'message'>('en', 3, 'message')\n      ).toEqualTypeOf<NotWordsAction<string, 'en', 3, 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        notWords<string, 'en', 3, () => string>('en', 3, () => 'message')\n      ).toEqualTypeOf<NotWordsAction<string, 'en', 3, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Input = 'foo bar baz';\n    type Action = NotWordsAction<Input, 'en', 3, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        NotWordsIssue<Input, 3>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/notWords/notWords.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { _getWordCount } from '../../utils/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  notWords,\n  type NotWordsAction,\n  type NotWordsIssue,\n} from './notWords.ts';\n\ndescribe('notWords', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<\n      NotWordsAction<string, 'en', 3, never>,\n      'message'\n    > = {\n      kind: 'validation',\n      type: 'not_words',\n      reference: notWords,\n      expects: '!3',\n      locales: 'en',\n      requirement: 3,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: NotWordsAction<string, 'en', 3, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(notWords('en', 3)).toStrictEqual(action);\n      expect(notWords('en', 3, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(notWords('en', 3, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies NotWordsAction<string, 'en', 3, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(notWords('en', 3, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies NotWordsAction<string, 'en', 3, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = notWords('en', 3);\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid strings', () => {\n      expectNoActionIssue(action, [\n        '',\n        ' ',\n        'foo',\n        'foo bar',\n        'for bar baz qux',\n        'Lorem ipsum?',\n        'Lorem ipsum dolor sit?',\n        'Lorem ipsum dolor sit amet, consectetur adipiscing elit?',\n        'Hi, welcome!',\n        'Hi, welcome home! How are you?',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = notWords('en', 3, 'message');\n    const baseIssue: Omit<NotWordsIssue<string, 3>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'not_words',\n      expected: '!3',\n      message: 'message',\n      requirement: 3,\n    };\n\n    test('for invalid strings', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        ['foo bar baz', 'Lorem ipsum dolor?', 'Hi, welcome home!'],\n        (value) => `${_getWordCount('en', value)}`\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/notWords/notWords.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue, _getWordCount } from '../../utils/index.ts';\n\n/**\n * Not words issue interface.\n */\nexport interface NotWordsIssue<\n  TInput extends string,\n  TRequirement extends number,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'not_words';\n  /**\n   * The expected property.\n   */\n  readonly expected: `!${TRequirement}`;\n  /**\n   * The received property.\n   */\n  readonly received: `${number}`;\n  /**\n   * The not required words.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Not words action interface.\n */\nexport interface NotWordsAction<\n  TInput extends string,\n  TLocales extends Intl.LocalesArgument,\n  TRequirement extends number,\n  TMessage extends\n    | ErrorMessage<NotWordsIssue<TInput, TRequirement>>\n    | undefined,\n> extends BaseValidation<TInput, TInput, NotWordsIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'not_words';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof notWords;\n  /**\n   * The expected property.\n   */\n  readonly expects: `!${TRequirement}`;\n  /**\n   * The locales to be used.\n   */\n  readonly locales: TLocales;\n  /**\n   * The not required words.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a not words validation action.\n *\n * @param locales The locales to be used.\n * @param requirement The not required words.\n *\n * @returns A not words action.\n */\nexport function notWords<\n  TInput extends string,\n  TLocales extends Intl.LocalesArgument,\n  const TRequirement extends number,\n>(\n  locales: TLocales,\n  requirement: TRequirement\n): NotWordsAction<TInput, TLocales, TRequirement, undefined>;\n\n/**\n * Creates a not words validation action.\n *\n * @param locales The locales to be used.\n * @param requirement The not required words.\n * @param message The error message.\n *\n * @returns A not words action.\n */\nexport function notWords<\n  TInput extends string,\n  TLocales extends Intl.LocalesArgument,\n  const TRequirement extends number,\n  const TMessage extends\n    | ErrorMessage<NotWordsIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  locales: TLocales,\n  requirement: TRequirement,\n  message: TMessage\n): NotWordsAction<TInput, TLocales, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function notWords(\n  locales: Intl.LocalesArgument,\n  requirement: number,\n  message?: ErrorMessage<NotWordsIssue<string, number>>\n): NotWordsAction<\n  string,\n  Intl.LocalesArgument,\n  number,\n  ErrorMessage<NotWordsIssue<string, number>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'not_words',\n    reference: notWords,\n    async: false,\n    expects: `!${requirement}`,\n    locales,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed) {\n        const count = _getWordCount(this.locales, dataset.value);\n        if (count === this.requirement) {\n          _addIssue(this, 'words', dataset, config, {\n            received: `${count}`,\n          });\n        }\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/octal/index.ts",
    "content": "export * from './octal.ts';\n"
  },
  {
    "path": "library/src/actions/octal/octal.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { octal, type OctalAction, type OctalIssue } from './octal.ts';\n\ndescribe('octal', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = OctalAction<string, undefined>;\n      expectTypeOf(octal<string>()).toEqualTypeOf<Action>();\n      expectTypeOf(octal<string, undefined>(undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(octal<string, 'message'>('message')).toEqualTypeOf<\n        OctalAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(octal<string, () => string>(() => 'message')).toEqualTypeOf<\n        OctalAction<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = OctalAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<OctalIssue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/octal/octal.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { OCTAL_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { octal, type OctalAction, type OctalIssue } from './octal.ts';\n\ndescribe('octal', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<OctalAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'octal',\n      reference: octal,\n      expects: null,\n      requirement: OCTAL_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: OctalAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(octal()).toStrictEqual(action);\n      expect(octal(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(octal('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies OctalAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(octal(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies OctalAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = octal();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for octal chars', () => {\n      expectNoActionIssue(action, ['0', '1', '2', '3', '4', '5', '6', '7']);\n    });\n\n    test('for two chars', () => {\n      expectNoActionIssue(action, ['00', '12', '77']);\n    });\n\n    test('for multiple chars', () => {\n      expectNoActionIssue(action, [\n        '000000000000000',\n        '777777777777',\n        '01234567',\n        '1234567',\n      ]);\n    });\n\n    test('for 0o prefix', () => {\n      expectNoActionIssue(action, [\n        '0o000000000000000',\n        '0o777777777777',\n        '0o01234567',\n        '0o1234567',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = octal('message');\n    const baseIssue: Omit<OctalIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'octal',\n      expected: null,\n      message: 'message',\n      requirement: OCTAL_REGEX,\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for blank spaces', () => {\n      expectActionIssue(action, baseIssue, [' 1', '1 ', ' 1 ', '1 2']);\n    });\n\n    test('for number signs', () => {\n      expectActionIssue(action, baseIssue, ['+1', '-1', '+123', '-123']);\n    });\n\n    test('for float numbers', () => {\n      expectActionIssue(action, baseIssue, ['0.1', '123.456']);\n    });\n\n    test('for exponential numbers', () => {\n      expectActionIssue(action, baseIssue, ['1e-3', '1e+3']);\n    });\n\n    test('for invalid digits', () => {\n      expectActionIssue(action, baseIssue, [\n        '8',\n        '9',\n        '012345678',\n        '012384567',\n        '901234567',\n      ]);\n    });\n\n    test('for invalid letters', () => {\n      expectActionIssue(action, baseIssue, [\n        'a',\n        'A',\n        'b',\n        'B',\n        'y',\n        'Y',\n        'z',\n        'Z',\n        '012345abc67',\n        '012345ABC68789',\n        '01234568789abc',\n        '012345abc68789ABC',\n        'xyz01234568789abc',\n        'XYZ012345abc68789',\n        '123456789abcdefghijklmnopqrstuvwxyz',\n        '123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',\n      ]);\n    });\n\n    test('for only prefix', () => {\n      expectActionIssue(action, baseIssue, ['0o', '0O']);\n    });\n\n    test('for invalid prefix', () => {\n      expectActionIssue(action, baseIssue, [\n        '0h01234567',\n        '0H01234567',\n        '0x01234567',\n        '0X01234567',\n      ]);\n    });\n\n    test('for special chars', () => {\n      expectActionIssue(action, baseIssue, [\n        '-',\n        '-1',\n        '+',\n        '+1',\n        '#',\n        '#1',\n        '$',\n        '$1',\n        '%',\n        '1%',\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/octal/octal.ts",
    "content": "import { OCTAL_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * Octal issue interface.\n */\nexport interface OctalIssue<TInput extends string> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'octal';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The octal regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * Octal action interface.\n */\nexport interface OctalAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<OctalIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, OctalIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'octal';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof octal;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The octal regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an [octal](https://en.wikipedia.org/wiki/Octal) validation action.\n *\n * @returns An octal action.\n */\nexport function octal<TInput extends string>(): OctalAction<TInput, undefined>;\n\n/**\n * Creates an [octal](https://en.wikipedia.org/wiki/Octal) validation action.\n *\n * @param message The error message.\n *\n * @returns An octal action.\n */\nexport function octal<\n  TInput extends string,\n  const TMessage extends ErrorMessage<OctalIssue<TInput>> | undefined,\n>(message: TMessage): OctalAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function octal(\n  message?: ErrorMessage<OctalIssue<string>>\n): OctalAction<string, ErrorMessage<OctalIssue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'octal',\n    reference: octal,\n    async: false,\n    expects: null,\n    requirement: OCTAL_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'octal', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/parseBoolean/index.ts",
    "content": "export * from './parseBoolean.ts';\n"
  },
  {
    "path": "library/src/actions/parseBoolean/parseBoolean.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  parseBoolean,\n  type ParseBooleanAction,\n  type ParseBooleanConfig,\n  type ParseBooleanIssue,\n} from './parseBoolean.ts';\n\ndescribe('parseBoolean', () => {\n  describe('should return action object', () => {\n    const config: ParseBooleanConfig = {\n      truthy: ['yep'],\n      falsy: ['nope'],\n    };\n\n    test('with undefined config and undefined message', () => {\n      type Action = ParseBooleanAction<unknown, undefined, undefined>;\n      expectTypeOf(parseBoolean()).toEqualTypeOf<Action>();\n      expectTypeOf(parseBoolean(undefined)).toEqualTypeOf<Action>();\n      expectTypeOf(parseBoolean(undefined, undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with undefined config and string message', () => {\n      expectTypeOf(parseBoolean(undefined, 'message')).toEqualTypeOf<\n        ParseBooleanAction<unknown, undefined, 'message'>\n      >();\n    });\n\n    test('with undefined config and function message', () => {\n      expectTypeOf(parseBoolean(undefined, () => 'message')).toEqualTypeOf<\n        ParseBooleanAction<unknown, undefined, () => string>\n      >();\n    });\n\n    test('with config and undefined message', () => {\n      type Action = ParseBooleanAction<unknown, ParseBooleanConfig, undefined>;\n      expectTypeOf(parseBoolean(config)).toEqualTypeOf<Action>();\n      expectTypeOf(parseBoolean(config, undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with config and string message', () => {\n      expectTypeOf(parseBoolean(config, 'message')).toEqualTypeOf<\n        ParseBooleanAction<unknown, ParseBooleanConfig, 'message'>\n      >();\n    });\n\n    test('with config and function message', () => {\n      expectTypeOf(parseBoolean(config, () => 'message')).toEqualTypeOf<\n        ParseBooleanAction<unknown, ParseBooleanConfig, () => string>\n      >();\n    });\n\n    test('with mixed-type config', () => {\n      const mixedConfig: ParseBooleanConfig = {\n        truthy: [1, true, 'yes'],\n        falsy: [0, false, null],\n      };\n      type Action = ParseBooleanAction<unknown, ParseBooleanConfig, undefined>;\n      expectTypeOf(parseBoolean(mixedConfig)).toEqualTypeOf<Action>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Input = 'foo';\n    type Action = ParseBooleanAction<Input, ParseBooleanConfig, 'message'>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<boolean>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        ParseBooleanIssue<Input>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/parseBoolean/parseBoolean.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  parseBoolean,\n  type ParseBooleanAction,\n  type ParseBooleanConfig,\n  type ParseBooleanIssue,\n} from './parseBoolean.ts';\n\ndescribe('parseBoolean', () => {\n  const defaultExpected =\n    '(true | 1 | \"true\" | \"1\" | \"yes\" | \"y\" | \"on\" | \"enabled\" | false | 0 | \"false\" | \"0\" | \"no\" | \"n\" | \"off\" | \"disabled\")';\n\n  describe('should return action object', () => {\n    const config: ParseBooleanConfig = {\n      truthy: ['yep'],\n      falsy: ['nope'],\n    };\n    const baseAction: Omit<\n      ParseBooleanAction<unknown, never, never>,\n      'message' | 'config' | 'expects'\n    > = {\n      kind: 'transformation',\n      type: 'parse_boolean',\n      reference: parseBoolean,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined config and undefined message', () => {\n      const action: ParseBooleanAction<unknown, undefined, undefined> = {\n        ...baseAction,\n        expects: defaultExpected,\n        config: undefined,\n        message: undefined,\n      };\n      expect(parseBoolean()).toStrictEqual(action);\n      expect(parseBoolean(undefined)).toStrictEqual(action);\n      expect(parseBoolean(undefined, undefined)).toStrictEqual(action);\n    });\n\n    test('with undefined config and string message', () => {\n      expect(parseBoolean(undefined, 'message')).toStrictEqual({\n        ...baseAction,\n        expects: defaultExpected,\n        config: undefined,\n        message: 'message',\n      } satisfies ParseBooleanAction<unknown, undefined, 'message'>);\n    });\n\n    test('with undefined config and function message', () => {\n      const message = () => 'message';\n      expect(parseBoolean(undefined, message)).toStrictEqual({\n        ...baseAction,\n        expects: defaultExpected,\n        config: undefined,\n        message,\n      } satisfies ParseBooleanAction<unknown, undefined, () => string>);\n    });\n\n    test('with config and undefined message', () => {\n      const action: ParseBooleanAction<unknown, typeof config, undefined> = {\n        ...baseAction,\n        expects: '(\"yep\" | \"nope\")',\n        config,\n        message: undefined,\n      };\n      expect(parseBoolean(config)).toStrictEqual(action);\n      expect(parseBoolean(config, undefined)).toStrictEqual(action);\n    });\n\n    test('with config and string message', () => {\n      expect(parseBoolean(config, 'message')).toStrictEqual({\n        ...baseAction,\n        expects: '(\"yep\" | \"nope\")',\n        config,\n        message: 'message',\n      } satisfies ParseBooleanAction<unknown, typeof config, 'message'>);\n    });\n\n    test('with config and function message', () => {\n      const message = () => 'message';\n      expect(parseBoolean(config, message)).toStrictEqual({\n        ...baseAction,\n        expects: '(\"yep\" | \"nope\")',\n        config,\n        message,\n      } satisfies ParseBooleanAction<unknown, typeof config, () => string>);\n    });\n  });\n\n  describe('should handle default config', () => {\n    const action = parseBoolean();\n\n    describe('for truthy values', () => {\n      test('for \"true\"', () => {\n        expect(\n          action['~run']({ typed: true, value: 'true' }, {})\n        ).toStrictEqual({\n          typed: true,\n          value: true,\n        });\n      });\n\n      test('for \"1\"', () => {\n        expect(action['~run']({ typed: true, value: '1' }, {})).toStrictEqual({\n          typed: true,\n          value: true,\n        });\n      });\n\n      test('for \"yes\"', () => {\n        expect(action['~run']({ typed: true, value: 'yes' }, {})).toStrictEqual(\n          {\n            typed: true,\n            value: true,\n          }\n        );\n      });\n\n      test('for \"y\"', () => {\n        expect(action['~run']({ typed: true, value: 'y' }, {})).toStrictEqual({\n          typed: true,\n          value: true,\n        });\n      });\n\n      test('for \"on\"', () => {\n        expect(action['~run']({ typed: true, value: 'on' }, {})).toStrictEqual({\n          typed: true,\n          value: true,\n        });\n      });\n\n      test('for \"enabled\"', () => {\n        expect(\n          action['~run']({ typed: true, value: 'enabled' }, {})\n        ).toStrictEqual({\n          typed: true,\n          value: true,\n        });\n      });\n\n      test('for \"TRUE\"', () => {\n        expect(\n          action['~run']({ typed: true, value: 'TRUE' }, {})\n        ).toStrictEqual({\n          typed: true,\n          value: true,\n        });\n      });\n\n      test('for boolean true', () => {\n        expect(action['~run']({ typed: true, value: true }, {})).toStrictEqual({\n          typed: true,\n          value: true,\n        });\n      });\n\n      test('for number 1', () => {\n        expect(action['~run']({ typed: true, value: 1 }, {})).toStrictEqual({\n          typed: true,\n          value: true,\n        });\n      });\n    });\n\n    describe('for falsy values', () => {\n      test('for \"false\"', () => {\n        expect(\n          action['~run']({ typed: true, value: 'false' }, {})\n        ).toStrictEqual({\n          typed: true,\n          value: false,\n        });\n      });\n\n      test('for \"0\"', () => {\n        expect(action['~run']({ typed: true, value: '0' }, {})).toStrictEqual({\n          typed: true,\n          value: false,\n        });\n      });\n\n      test('for \"no\"', () => {\n        expect(action['~run']({ typed: true, value: 'no' }, {})).toStrictEqual({\n          typed: true,\n          value: false,\n        });\n      });\n\n      test('for \"n\"', () => {\n        expect(action['~run']({ typed: true, value: 'n' }, {})).toStrictEqual({\n          typed: true,\n          value: false,\n        });\n      });\n\n      test('for \"off\"', () => {\n        expect(action['~run']({ typed: true, value: 'off' }, {})).toStrictEqual(\n          {\n            typed: true,\n            value: false,\n          }\n        );\n      });\n\n      test('for \"disabled\"', () => {\n        expect(\n          action['~run']({ typed: true, value: 'disabled' }, {})\n        ).toStrictEqual({\n          typed: true,\n          value: false,\n        });\n      });\n\n      test('for \"FALSE\"', () => {\n        expect(\n          action['~run']({ typed: true, value: 'FALSE' }, {})\n        ).toStrictEqual({\n          typed: true,\n          value: false,\n        });\n      });\n\n      test('for boolean false', () => {\n        expect(action['~run']({ typed: true, value: false }, {})).toStrictEqual(\n          {\n            typed: true,\n            value: false,\n          }\n        );\n      });\n\n      test('for number 0', () => {\n        expect(action['~run']({ typed: true, value: 0 }, {})).toStrictEqual({\n          typed: true,\n          value: false,\n        });\n      });\n    });\n  });\n\n  describe('should handle custom config with `truthy` only', () => {\n    describe('for lowercase `truthy` values', () => {\n      const action = parseBoolean({\n        truthy: ['yep'],\n      });\n\n      test('for \"yep\"', () => {\n        expect(action['~run']({ typed: true, value: 'yep' }, {})).toStrictEqual(\n          {\n            typed: true,\n            value: true,\n          }\n        );\n      });\n\n      test('for \"YEP\"', () => {\n        expect(action['~run']({ typed: true, value: 'YEP' }, {})).toStrictEqual(\n          {\n            typed: true,\n            value: true,\n          }\n        );\n      });\n\n      test('for \"false\"', () => {\n        expect(\n          action['~run']({ typed: true, value: 'false' }, {})\n        ).toStrictEqual({\n          typed: true,\n          value: false,\n        });\n      });\n    });\n\n    describe('for uppercase `truthy` values', () => {\n      const action = parseBoolean({\n        truthy: ['YEP'],\n      });\n\n      test('for \"yep\"', () => {\n        expect(action['~run']({ typed: true, value: 'yep' }, {})).toStrictEqual(\n          {\n            typed: true,\n            value: true,\n          }\n        );\n      });\n\n      test('for \"YEP\"', () => {\n        expect(action['~run']({ typed: true, value: 'YEP' }, {})).toStrictEqual(\n          {\n            typed: true,\n            value: true,\n          }\n        );\n      });\n    });\n  });\n\n  describe('should handle custom config with `falsy` only', () => {\n    describe('for lowercase `falsy` values', () => {\n      const action = parseBoolean({\n        falsy: ['nope'],\n      });\n\n      test('for \"nope\"', () => {\n        expect(\n          action['~run']({ typed: true, value: 'nope' }, {})\n        ).toStrictEqual({\n          typed: true,\n          value: false,\n        });\n      });\n\n      test('for \"NOPE\"', () => {\n        expect(\n          action['~run']({ typed: true, value: 'NOPE' }, {})\n        ).toStrictEqual({\n          typed: true,\n          value: false,\n        });\n      });\n\n      test('for \"true\"', () => {\n        expect(\n          action['~run']({ typed: true, value: 'true' }, {})\n        ).toStrictEqual({\n          typed: true,\n          value: true,\n        });\n      });\n    });\n\n    describe('for uppercase `falsy` values', () => {\n      const action = parseBoolean({\n        falsy: ['NOPE'],\n      });\n\n      test('for \"nope\"', () => {\n        expect(\n          action['~run']({ typed: true, value: 'nope' }, {})\n        ).toStrictEqual({\n          typed: true,\n          value: false,\n        });\n      });\n\n      test('for \"NOPE\"', () => {\n        expect(\n          action['~run']({ typed: true, value: 'NOPE' }, {})\n        ).toStrictEqual({\n          typed: true,\n          value: false,\n        });\n      });\n    });\n  });\n\n  describe('should handle custom config all together', () => {\n    const action = parseBoolean({\n      truthy: ['YEP'],\n      falsy: ['NOPE'],\n    });\n\n    test('for \"YEP\"', () => {\n      expect(action['~run']({ typed: true, value: 'YEP' }, {})).toStrictEqual({\n        typed: true,\n        value: true,\n      });\n    });\n\n    test('for \"NOPE\"', () => {\n      expect(action['~run']({ typed: true, value: 'NOPE' }, {})).toStrictEqual({\n        typed: true,\n        value: false,\n      });\n    });\n  });\n\n  describe('should handle custom non-string config', () => {\n    const action = parseBoolean({\n      truthy: [1, true],\n      falsy: [0, false, null],\n    });\n\n    test('for number 1', () => {\n      expect(action['~run']({ typed: true, value: 1 }, {})).toStrictEqual({\n        typed: true,\n        value: true,\n      });\n    });\n\n    test('for boolean true', () => {\n      expect(action['~run']({ typed: true, value: true }, {})).toStrictEqual({\n        typed: true,\n        value: true,\n      });\n    });\n\n    test('for number 0', () => {\n      expect(action['~run']({ typed: true, value: 0 }, {})).toStrictEqual({\n        typed: true,\n        value: false,\n      });\n    });\n\n    test('for boolean false', () => {\n      expect(action['~run']({ typed: true, value: false }, {})).toStrictEqual({\n        typed: true,\n        value: false,\n      });\n    });\n\n    test('for null', () => {\n      expect(action['~run']({ typed: true, value: null }, {})).toStrictEqual({\n        typed: true,\n        value: false,\n      });\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    describe('for default config', () => {\n      const action = parseBoolean();\n\n      const baseIssue: Omit<\n        ParseBooleanIssue<string>,\n        'input' | 'received' | 'message'\n      > = {\n        kind: 'transformation',\n        type: 'parse_boolean',\n        expected: defaultExpected,\n        requirement: undefined,\n        path: undefined,\n        issues: undefined,\n        lang: undefined,\n        abortEarly: undefined,\n        abortPipeEarly: undefined,\n      };\n\n      test('for invalid input as Symbol', () => {\n        const value = Symbol();\n\n        expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n          typed: false,\n          value,\n          issues: [\n            {\n              ...baseIssue,\n              input: value,\n              received: 'symbol',\n              message: `Invalid boolean: Expected ${defaultExpected} but received symbol`,\n            },\n          ],\n        });\n      });\n\n      test('for invalid input as string', () => {\n        const value = 'something';\n\n        expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n          typed: false,\n          value,\n          issues: [\n            {\n              ...baseIssue,\n              input: value,\n              received: '\"something\"',\n              message: `Invalid boolean: Expected ${defaultExpected} but received \"something\"`,\n            },\n          ],\n        });\n      });\n\n      test('for invalid input as number', () => {\n        const value = 123;\n\n        expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n          typed: false,\n          value,\n          issues: [\n            {\n              ...baseIssue,\n              input: value,\n              received: '123',\n              message: `Invalid boolean: Expected ${defaultExpected} but received 123`,\n            },\n          ],\n        });\n      });\n    });\n\n    describe('for custom config truthy only', () => {\n      const action = parseBoolean({\n        truthy: ['yep'],\n      });\n\n      const baseIssue: Omit<\n        ParseBooleanIssue<string>,\n        'input' | 'received' | 'message'\n      > = {\n        kind: 'transformation',\n        type: 'parse_boolean',\n        expected:\n          '(\"yep\" | false | 0 | \"false\" | \"0\" | \"no\" | \"n\" | \"off\" | \"disabled\")',\n        requirement: undefined,\n        path: undefined,\n        issues: undefined,\n        lang: undefined,\n        abortEarly: undefined,\n        abortPipeEarly: undefined,\n      };\n\n      test('for invalid input as string', () => {\n        const value = 'enabled';\n\n        expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n          typed: false,\n          value,\n          issues: [\n            {\n              ...baseIssue,\n              input: value,\n              received: '\"enabled\"',\n              message: `Invalid boolean: Expected ${baseIssue.expected} but received \"enabled\"`,\n            },\n          ],\n        });\n      });\n    });\n\n    describe('for custom config falsy only', () => {\n      const action = parseBoolean({\n        falsy: ['nope'],\n      });\n\n      const baseIssue: Omit<\n        ParseBooleanIssue<string>,\n        'input' | 'received' | 'message'\n      > = {\n        kind: 'transformation',\n        type: 'parse_boolean',\n        expected:\n          '(true | 1 | \"true\" | \"1\" | \"yes\" | \"y\" | \"on\" | \"enabled\" | \"nope\")',\n        requirement: undefined,\n        path: undefined,\n        issues: undefined,\n        lang: undefined,\n        abortEarly: undefined,\n        abortPipeEarly: undefined,\n      };\n\n      test('for invalid input as string', () => {\n        const value = 'disabled';\n\n        expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n          typed: false,\n          value,\n          issues: [\n            {\n              ...baseIssue,\n              input: value,\n              received: '\"disabled\"',\n              message: `Invalid boolean: Expected ${baseIssue.expected} but received \"disabled\"`,\n            },\n          ],\n        });\n      });\n    });\n\n    describe('for custom config all together', () => {\n      const action = parseBoolean({\n        truthy: ['YEP'],\n        falsy: ['NOPE'],\n      });\n\n      const baseIssue: Omit<\n        ParseBooleanIssue<string>,\n        'input' | 'received' | 'message'\n      > = {\n        kind: 'transformation',\n        type: 'parse_boolean',\n        expected: '(\"YEP\" | \"NOPE\")',\n        requirement: undefined,\n        path: undefined,\n        issues: undefined,\n        lang: undefined,\n        abortEarly: undefined,\n        abortPipeEarly: undefined,\n      };\n\n      test('for invalid input as string \"something\"', () => {\n        const value = 'something';\n\n        expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n          typed: false,\n          value,\n          issues: [\n            {\n              ...baseIssue,\n              input: value,\n              received: '\"something\"',\n              message: `Invalid boolean: Expected ${baseIssue.expected} but received \"something\"`,\n            },\n          ],\n        });\n      });\n    });\n\n    describe('with custom message', () => {\n      test('with string message', () => {\n        const action = parseBoolean(undefined, 'custom message');\n        const value = 'something';\n\n        expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n          typed: false,\n          value,\n          issues: [\n            {\n              kind: 'transformation',\n              type: 'parse_boolean',\n              expected: defaultExpected,\n              input: value,\n              received: '\"something\"',\n              message: 'custom message',\n              requirement: undefined,\n              path: undefined,\n              issues: undefined,\n              lang: undefined,\n              abortEarly: undefined,\n              abortPipeEarly: undefined,\n            },\n          ],\n        });\n      });\n\n      test('with function message', () => {\n        const message = () => 'custom message';\n        const action = parseBoolean(undefined, message);\n        const value = 'something';\n\n        expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n          typed: false,\n          value,\n          issues: [\n            {\n              kind: 'transformation',\n              type: 'parse_boolean',\n              expected: defaultExpected,\n              input: value,\n              received: '\"something\"',\n              message: 'custom message',\n              requirement: undefined,\n              path: undefined,\n              issues: undefined,\n              lang: undefined,\n              abortEarly: undefined,\n              abortPipeEarly: undefined,\n            },\n          ],\n        });\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/parseBoolean/parseBoolean.ts",
    "content": "import type {\n  BaseIssue,\n  BaseTransformation,\n  ErrorMessage,\n  MaybeReadonly,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _joinExpects, _stringify } from '../../utils/index.ts';\n\nconst TRUTHY = [true, 1, 'true', '1', 'yes', 'y', 'on', 'enabled'];\nconst FALSY = [false, 0, 'false', '0', 'no', 'n', 'off', 'disabled'];\n\n/**\n * Parse boolean config interface.\n *\n * @beta\n */\nexport interface ParseBooleanConfig {\n  /**\n   * The truthy values.\n   */\n  truthy?: MaybeReadonly<unknown[]> | undefined;\n  /**\n   * The falsy values.\n   */\n  falsy?: MaybeReadonly<unknown[]> | undefined;\n}\n\n/**\n * Parse boolean issue interface.\n *\n * @beta\n */\nexport interface ParseBooleanIssue<TInput> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'transformation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'parse_boolean';\n  /**\n   * The expected property.\n   */\n  readonly expected: string;\n}\n\n/**\n * Parse boolean action interface.\n *\n * @beta\n */\nexport interface ParseBooleanAction<\n  TInput,\n  TConfig extends ParseBooleanConfig | undefined,\n  TMessage extends\n    | ErrorMessage<ParseBooleanIssue<TInput>>\n    | undefined = undefined,\n> extends BaseTransformation<TInput, boolean, ParseBooleanIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'parse_boolean';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof parseBoolean;\n  /**\n   * The expected property.\n   */\n  readonly expects: string;\n  /**\n   * The parse boolean config.\n   */\n  readonly config: TConfig;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a parse boolean transformation action.\n *\n * @returns A parse boolean action.\n *\n * @beta\n */\nexport function parseBoolean<TInput>(): ParseBooleanAction<\n  TInput,\n  undefined,\n  undefined\n>;\n\n/**\n * Creates a parse boolean transformation action.\n *\n * @param config The parse boolean config.\n *\n * @returns A parse boolean action.\n *\n * @beta\n */\nexport function parseBoolean<\n  TInput,\n  const TConfig extends ParseBooleanConfig | undefined,\n>(config: TConfig): ParseBooleanAction<TInput, TConfig, undefined>;\n\n/**\n * Creates a parse boolean transformation action.\n *\n * @param config The parse boolean config.\n * @param message The error message.\n *\n * @returns A parse boolean action.\n *\n * @beta\n */\nexport function parseBoolean<\n  TInput,\n  const TConfig extends ParseBooleanConfig | undefined,\n  const TMessage extends ErrorMessage<ParseBooleanIssue<TInput>> | undefined,\n>(\n  config: TConfig,\n  message: TMessage\n): ParseBooleanAction<TInput, TConfig, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function parseBoolean(\n  config?: ParseBooleanConfig,\n  message?: ErrorMessage<ParseBooleanIssue<unknown>>\n): ParseBooleanAction<\n  unknown,\n  ParseBooleanConfig | undefined,\n  ErrorMessage<ParseBooleanIssue<unknown>> | undefined\n> {\n  const normalize = (v: unknown) =>\n    typeof v === 'string' ? v.toLowerCase() : v;\n  const truthyRaw = config?.truthy ?? TRUTHY;\n  const falsyRaw = config?.falsy ?? FALSY;\n  const truthy = config?.truthy ? config.truthy.map(normalize) : TRUTHY;\n  const falsy = config?.falsy ? config.falsy.map(normalize) : FALSY;\n  return {\n    kind: 'transformation',\n    type: 'parse_boolean',\n    reference: parseBoolean,\n    expects: _joinExpects([...truthyRaw, ...falsyRaw].map(_stringify), '|'),\n    config,\n    message,\n    async: false,\n    '~run'(dataset, config) {\n      const input = normalize(dataset.value);\n      if (truthy.includes(input)) {\n        dataset.value = true;\n      } else if (falsy.includes(input)) {\n        dataset.value = false;\n      } else {\n        _addIssue(this, 'boolean', dataset, config);\n        // @ts-expect-error\n        dataset.typed = false;\n      }\n      return dataset as OutputDataset<boolean, ParseBooleanIssue<unknown>>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/parseJson/index.ts",
    "content": "export * from './parseJson.ts';\n"
  },
  {
    "path": "library/src/actions/parseJson/parseJson.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  parseJson,\n  type ParseJsonAction,\n  type ParseJsonConfig,\n  type ParseJsonIssue,\n} from './parseJson.ts';\n\ndescribe('parseJson', () => {\n  describe('should return action object', () => {\n    const config: ParseJsonConfig = {\n      reviver: (key, value) => value,\n    };\n\n    test('with undefined config and undefined message', () => {\n      type Action = ParseJsonAction<string, undefined, undefined>;\n      expectTypeOf(parseJson()).toEqualTypeOf<Action>();\n      expectTypeOf(parseJson(undefined)).toEqualTypeOf<Action>();\n      expectTypeOf(parseJson(undefined, undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with undefined config and string message', () => {\n      expectTypeOf(parseJson(undefined, 'message')).toEqualTypeOf<\n        ParseJsonAction<string, undefined, 'message'>\n      >();\n    });\n\n    test('with undefined config and function message', () => {\n      expectTypeOf(parseJson(undefined, () => 'message')).toEqualTypeOf<\n        ParseJsonAction<string, undefined, () => string>\n      >();\n    });\n\n    test('with config and undefined message', () => {\n      type Action = ParseJsonAction<string, ParseJsonConfig, undefined>;\n      expectTypeOf(parseJson(config)).toEqualTypeOf<Action>();\n      expectTypeOf(parseJson(config, undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with config and string message', () => {\n      expectTypeOf(parseJson(config, 'message')).toEqualTypeOf<\n        ParseJsonAction<string, ParseJsonConfig, 'message'>\n      >();\n    });\n\n    test('with config and function message', () => {\n      expectTypeOf(parseJson(config, () => 'message')).toEqualTypeOf<\n        ParseJsonAction<string, ParseJsonConfig, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Input = 'foo';\n    type Action = ParseJsonAction<Input, ParseJsonConfig, 'message'>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toBeUnknown();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<ParseJsonIssue<Input>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/parseJson/parseJson.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  parseJson,\n  type ParseJsonAction,\n  type ParseJsonConfig,\n  type ParseJsonIssue,\n} from './parseJson.ts';\n\ndescribe('parseJson', () => {\n  describe('should return action object', () => {\n    const config: ParseJsonConfig = {\n      reviver: (key, value) => value,\n    };\n    const baseAction: Omit<\n      ParseJsonAction<string, never, never>,\n      'message' | 'config'\n    > = {\n      kind: 'transformation',\n      type: 'parse_json',\n      reference: parseJson,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined config and undefined message', () => {\n      const action: ParseJsonAction<string, undefined, undefined> = {\n        ...baseAction,\n        config: undefined,\n        message: undefined,\n      };\n      expect(parseJson()).toStrictEqual(action);\n      expect(parseJson(undefined)).toStrictEqual(action);\n      expect(parseJson(undefined, undefined)).toStrictEqual(action);\n    });\n\n    test('with undefined config and string message', () => {\n      expect(parseJson(undefined, 'message')).toStrictEqual({\n        ...baseAction,\n        config: undefined,\n        message: 'message',\n      } satisfies ParseJsonAction<string, undefined, 'message'>);\n    });\n\n    test('with undefined config and function message', () => {\n      const message = () => 'message';\n      expect(parseJson(undefined, message)).toStrictEqual({\n        ...baseAction,\n        config: undefined,\n        message,\n      } satisfies ParseJsonAction<string, undefined, () => string>);\n    });\n\n    test('with config and undefined message', () => {\n      const action: ParseJsonAction<string, typeof config, undefined> = {\n        ...baseAction,\n        config,\n        message: undefined,\n      };\n      expect(parseJson(config)).toStrictEqual(action);\n      expect(parseJson(config, undefined)).toStrictEqual(action);\n    });\n\n    test('with config and string message', () => {\n      expect(parseJson(config, 'message')).toStrictEqual({\n        ...baseAction,\n        config,\n        message: 'message',\n      } satisfies ParseJsonAction<string, typeof config, 'message'>);\n    });\n\n    test('with config and function message', () => {\n      const message = () => 'message';\n      expect(parseJson(config, message)).toStrictEqual({\n        ...baseAction,\n        config,\n        message,\n      } satisfies ParseJsonAction<string, typeof config, () => string>);\n    });\n  });\n\n  describe('should convert JSON string into JSON data', () => {\n    const input = '{\"foo\":\"bar\"}';\n\n    test('without config', () => {\n      expect(\n        parseJson()['~run']({ typed: true, value: input }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { foo: 'bar' },\n      });\n    });\n\n    test('with reviver', () => {\n      expect(\n        parseJson({\n          reviver: (key, value) =>\n            typeof value === 'string' ? value.toUpperCase() : value,\n        })['~run']({ typed: true, value: input }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { foo: 'BAR' },\n      });\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = parseJson(undefined, 'message');\n    const baseIssue: Omit<ParseJsonIssue<string>, 'input' | 'received'> = {\n      kind: 'transformation',\n      type: 'parse_json',\n      expected: null,\n      message: 'message',\n      requirement: undefined,\n      path: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    test('for normal text', () => {\n      const input = 'foo';\n      expect(action['~run']({ typed: true, value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseIssue,\n            input,\n            received: `\"Unexpected token 'o', \"foo\" is not valid JSON\"`,\n          } satisfies ParseJsonIssue<string>,\n        ],\n      });\n    });\n\n    test('for invalid JSON string', () => {\n      const input = '{\"foo\":20n}';\n      expect(action['~run']({ typed: true, value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseIssue,\n            input,\n            received: expect.toBeOneOf([\n              `\"Expected ',' or '}' after property value in JSON at position 9\"`,\n              `\"Expected ',' or '}' after property value in JSON at position 9 (line 1 column 10)\"`,\n            ]),\n          } satisfies ParseJsonIssue<string>,\n        ],\n      });\n    });\n  });\n\n  describe('should throw non-Error exceptions', () => {\n    test('for non-Error thrown by reviver', () => {\n      const action = parseJson({\n        reviver: () => {\n          throw 'custom string error';\n        },\n      });\n      expect(() => action['~run']({ typed: true, value: '{}' }, {})).toThrow(\n        'custom string error'\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/parseJson/parseJson.ts",
    "content": "import type {\n  BaseIssue,\n  BaseTransformation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * Parse JSON config interface.\n *\n * @beta\n */\nexport interface ParseJsonConfig {\n  /**\n   * The JSON reviver function.\n   */\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  reviver?: (this: any, key: string, value: any) => any;\n}\n\n/**\n * Parse JSON issue interface.\n *\n * @beta\n */\nexport interface ParseJsonIssue<TInput extends string>\n  extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'transformation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'parse_json';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n}\n\n/**\n * Parse JSON action interface.\n *\n * @beta\n */\nexport interface ParseJsonAction<\n  TInput extends string,\n  TConfig extends ParseJsonConfig | undefined,\n  TMessage extends ErrorMessage<ParseJsonIssue<TInput>> | undefined,\n> extends BaseTransformation<TInput, unknown, ParseJsonIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'parse_json';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof parseJson;\n  /**\n   * The action config.\n   */\n  readonly config: TConfig;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a parse JSON transformation action.\n *\n * @returns A parse JSON action.\n *\n * @beta\n */\nexport function parseJson<TInput extends string>(): ParseJsonAction<\n  TInput,\n  undefined,\n  undefined\n>;\n\n/**\n * Creates a parse JSON transformation action.\n *\n * @param config The action config.\n *\n * @returns A parse JSON action.\n *\n * @beta\n */\nexport function parseJson<\n  TInput extends string,\n  const TConfig extends ParseJsonConfig | undefined,\n>(config: TConfig): ParseJsonAction<TInput, TConfig, undefined>;\n\n/**\n * Creates a parse JSON transformation action.\n *\n * @param config The action config.\n * @param message The error message.\n *\n * @returns A parse JSON action.\n *\n * @beta\n */\nexport function parseJson<\n  TInput extends string,\n  const TConfig extends ParseJsonConfig | undefined,\n  const TMessage extends ErrorMessage<ParseJsonIssue<TInput>> | undefined,\n>(\n  config: TConfig,\n  message: TMessage\n): ParseJsonAction<TInput, TConfig, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function parseJson(\n  config?: ParseJsonConfig,\n  message?: ErrorMessage<ParseJsonIssue<string>>\n): ParseJsonAction<\n  string,\n  ParseJsonConfig | undefined,\n  ErrorMessage<ParseJsonIssue<string>> | undefined\n> {\n  return {\n    kind: 'transformation',\n    type: 'parse_json',\n    reference: parseJson,\n    config,\n    message,\n    async: false,\n    '~run'(dataset, config) {\n      try {\n        dataset.value = JSON.parse(dataset.value, this.config?.reviver);\n      } catch (error) {\n        if (error instanceof Error) {\n          _addIssue(this, 'JSON', dataset, config, {\n            received: `\"${error.message}\"`,\n          });\n          // @ts-expect-error\n          dataset.typed = false;\n        } else {\n          throw error;\n        }\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/partialCheck/index.ts",
    "content": "export * from './partialCheck.ts';\nexport * from './partialCheckAsync.ts';\nexport type { PartialCheckIssue } from './types.ts';\n"
  },
  {
    "path": "library/src/actions/partialCheck/partialCheck.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { partialCheck, type PartialCheckAction } from './partialCheck.ts';\nimport type { DeepPickN, PartialCheckIssue } from './types.ts';\n\ndescribe('partialCheck', () => {\n  // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n  type Input = { nested: { key1: number; key2: string; key3: boolean } };\n  const paths = [['nested', 'key2']] as const;\n  type PathList = typeof paths;\n  type Selection = DeepPickN<Input, PathList>;\n  const requirement = (input: Selection) => input.nested.key2.includes('foo');\n\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = PartialCheckAction<Input, PathList, Selection, undefined>;\n      expectTypeOf(\n        partialCheck<Input, PathList, Selection>(paths, requirement)\n      ).toEqualTypeOf<Action>();\n      expectTypeOf(\n        partialCheck<Input, PathList, Selection, undefined>(\n          paths,\n          requirement,\n          undefined\n        )\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        partialCheck<Input, PathList, Selection, 'message'>(\n          paths,\n          requirement,\n          'message'\n        )\n      ).toEqualTypeOf<\n        PartialCheckAction<Input, PathList, Selection, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        partialCheck<Input, PathList, Selection, () => string>(\n          paths,\n          requirement,\n          () => 'message'\n        )\n      ).toEqualTypeOf<\n        PartialCheckAction<Input, PathList, Selection, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = PartialCheckAction<Input, PathList, Selection, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        PartialCheckIssue<Selection>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/partialCheck/partialCheck.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type {\n  NumberIssue,\n  ObjectIssue,\n  StringIssue,\n} from '../../schemas/index.ts';\nimport type {\n  FailureDataset,\n  PartialDataset,\n  SuccessDataset,\n} from '../../types/index.ts';\nimport type { MinLengthIssue } from '../minLength/index.ts';\nimport { partialCheck, type PartialCheckAction } from './partialCheck.ts';\nimport type { DeepPickN, PartialCheckIssue } from './types.ts';\n\ndescribe('partialCheck', () => {\n  describe('should return action object', () => {\n    // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n    type Input = { nested: { key1: number; key2: string; key3: boolean } };\n    const paths = [['nested', 'key2']] as const;\n    type PathList = typeof paths;\n    type Selection = DeepPickN<Input, PathList>;\n    const requirement = (input: Selection) => input.nested.key2.includes('foo');\n    const baseAction: Omit<\n      PartialCheckAction<Input, PathList, Selection, never>,\n      'message'\n    > = {\n      kind: 'validation',\n      type: 'partial_check',\n      reference: partialCheck,\n      expects: null,\n      paths,\n      requirement,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: PartialCheckAction<Input, PathList, Selection, undefined> =\n        {\n          ...baseAction,\n          message: undefined,\n        };\n      expect(\n        partialCheck<Input, PathList, Selection>(paths, requirement)\n      ).toStrictEqual(action);\n      expect(\n        partialCheck<Input, PathList, Selection, undefined>(\n          paths,\n          requirement,\n          undefined\n        )\n      ).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      const message = 'message';\n      expect(\n        partialCheck<Input, PathList, Selection, 'message'>(\n          paths,\n          requirement,\n          message\n        )\n      ).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies PartialCheckAction<Input, PathList, Selection, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(\n        partialCheck<Input, PathList, Selection, typeof message>(\n          paths,\n          requirement,\n          message\n        )\n      ).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies PartialCheckAction<\n        Input,\n        PathList,\n        Selection,\n        typeof message\n      >);\n    });\n  });\n\n  // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n  type Input = {\n    nested: { key: string };\n    tuple: [number, { key: string }, number];\n    other: string;\n  };\n  type PathList = [['nested', 'key'], ['tuple', 1, 'key']];\n  type Selection = DeepPickN<Input, PathList>;\n  const requirement = (input: Selection) =>\n    input.nested.key === input.tuple[1].key;\n  const action = partialCheck<Input, PathList, Selection, 'message'>(\n    [\n      ['nested', 'key'],\n      ['tuple', 1, 'key'],\n    ],\n    requirement,\n    'message'\n  );\n\n  const baseInfo = {\n    message: 'message',\n    requirement: undefined,\n    path: undefined,\n    issues: undefined,\n    lang: undefined,\n    abortEarly: undefined,\n    abortPipeEarly: undefined,\n  };\n\n  describe('should return same dataset', () => {\n    test('if root is untyped', () => {\n      const dataset: FailureDataset<ObjectIssue> = {\n        typed: false,\n        value: null,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object',\n            input: null,\n            expected: 'Object',\n            received: 'null',\n            path: undefined,\n          },\n        ],\n      };\n      expect(action['~run'](dataset, {})).toStrictEqual(dataset);\n    });\n\n    test('if part of path is untyped', () => {\n      const input = {\n        nested: null,\n        tuple: [123, { key: 'foo' }, 456],\n        other: 'bar',\n      };\n      const dataset: FailureDataset<ObjectIssue> = {\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object',\n            input: null,\n            expected: 'Object',\n            received: 'null',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: input.nested,\n              },\n            ],\n          },\n        ],\n      };\n      expect(action['~run'](dataset, {})).toStrictEqual(dataset);\n    });\n\n    test('if entire path is untyped', () => {\n      const input = {\n        nested: { key: null },\n        tuple: [123, { key: 'foo' }, 456],\n        other: 'bar',\n      };\n      const dataset: FailureDataset<StringIssue> = {\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: null,\n            expected: 'string',\n            received: 'null',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: input.nested,\n              },\n              {\n                type: 'object',\n                origin: 'value',\n                input: input.nested,\n                key: 'key',\n                value: input.nested.key,\n              },\n            ],\n          },\n        ],\n      };\n      expect(action['~run'](dataset, {})).toStrictEqual(dataset);\n    });\n\n    test('if validation returns true', () => {\n      const dataset: SuccessDataset<Input> = {\n        typed: true,\n        value: {\n          nested: { key: 'foo' },\n          tuple: [123, { key: 'foo' }, 456],\n          other: 'bar',\n        },\n      };\n      expect(action['~run'](dataset, {})).toStrictEqual(dataset);\n    });\n  });\n\n  describe('should add issue to dataset', () => {\n    test('if there are no previous issues', () => {\n      const input: Input = {\n        nested: { key: 'foo' },\n        tuple: [123, { key: 'baz' }, 456],\n        other: 'bar',\n      };\n      const dataset: SuccessDataset<Input> = {\n        typed: true,\n        value: input,\n      };\n      expect(action['~run'](dataset, {})).toStrictEqual({\n        ...dataset,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'validation',\n            type: 'partial_check',\n            input,\n            expected: null,\n            received: 'Object',\n            requirement,\n          },\n        ],\n      } satisfies PartialDataset<Input, PartialCheckIssue<Selection>>);\n    });\n\n    test('if there are previous issues but the dataset is typed', () => {\n      const input: Input = {\n        nested: { key: 'foo' },\n        tuple: [123, { key: 'baz' }, 456],\n        other: 'bar',\n      };\n      const firstIssue: MinLengthIssue<string, 5> = {\n        ...baseInfo,\n        kind: 'validation',\n        type: 'min_length',\n        input: 'foo',\n        expected: '>=5',\n        received: '3',\n        requirement: 5,\n        path: [\n          {\n            type: 'object',\n            origin: 'value',\n            input,\n            key: 'nested',\n            value: input.nested,\n          },\n          {\n            type: 'object',\n            origin: 'value',\n            input: input.nested,\n            key: 'key',\n            value: input.nested.key,\n          },\n        ],\n      };\n      const dataset: PartialDataset<Input, MinLengthIssue<string, 5>> = {\n        typed: true,\n        value: input,\n        issues: [firstIssue],\n      };\n      expect(action['~run'](dataset, {})).toStrictEqual({\n        ...dataset,\n        issues: [\n          firstIssue,\n          {\n            ...baseInfo,\n            kind: 'validation',\n            type: 'partial_check',\n            input: input,\n            expected: null,\n            received: 'Object',\n            requirement,\n          },\n        ],\n      } satisfies PartialDataset<\n        Input,\n        MinLengthIssue<string, 5> | PartialCheckIssue<Selection>\n      >);\n    });\n\n    test('if there are previous issues but only with unrelated paths', () => {\n      const input: {\n        nested: { key: string };\n        tuple: [number, { key: string }, null];\n        other: null;\n      } = {\n        nested: { key: 'foo' },\n        tuple: [123, { key: 'baz' }, null],\n        other: null,\n      };\n      const firstIssue: NumberIssue = {\n        ...baseInfo,\n        kind: 'schema',\n        type: 'number',\n        input: null,\n        expected: 'number',\n        received: 'null',\n        path: [\n          {\n            type: 'object',\n            origin: 'value',\n            input,\n            key: 'tuple',\n            value: input.tuple,\n          },\n          {\n            type: 'array',\n            origin: 'value',\n            input: input.tuple,\n            key: 2,\n            value: input.tuple[2],\n          },\n        ],\n      };\n      const secondIssue: StringIssue = {\n        ...baseInfo,\n        kind: 'schema',\n        type: 'string',\n        input: null,\n        expected: 'string',\n        received: 'null',\n        path: [\n          {\n            type: 'object',\n            origin: 'value',\n            input,\n            key: 'other',\n            value: input.other,\n          },\n        ],\n      };\n      const dataset: FailureDataset<NumberIssue | StringIssue> = {\n        typed: false,\n        value: input,\n        issues: [firstIssue, secondIssue],\n      };\n      expect(action['~run'](dataset, {})).toStrictEqual({\n        ...dataset,\n        issues: [\n          firstIssue,\n          secondIssue,\n          {\n            ...baseInfo,\n            kind: 'validation',\n            type: 'partial_check',\n            input: input,\n            expected: null,\n            received: 'Object',\n            requirement,\n          },\n        ],\n      } satisfies FailureDataset<\n        NumberIssue | StringIssue | PartialCheckIssue<Selection>\n      >);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/partialCheck/partialCheck.ts",
    "content": "import type { BaseValidation, ErrorMessage } from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\nimport type {\n  DeepPickN,\n  PartialCheckIssue,\n  PartialInput,\n  Paths,\n  RequiredPaths,\n  ValidPaths,\n} from './types.ts';\nimport { _isPartiallyTyped } from './utils/index.ts';\n\n/**\n * Partial check action interface.\n */\nexport interface PartialCheckAction<\n  TInput extends PartialInput,\n  TPaths extends Paths,\n  TSelection extends DeepPickN<TInput, TPaths>,\n  TMessage extends ErrorMessage<PartialCheckIssue<TSelection>> | undefined,\n> extends BaseValidation<TInput, TInput, PartialCheckIssue<TSelection>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'partial_check';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof partialCheck;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The selected paths.\n   */\n  readonly paths: TPaths;\n  /**\n   * The validation function.\n   */\n  readonly requirement: (input: TSelection) => boolean;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a partial check validation action.\n *\n * @param paths The selected paths.\n * @param requirement The validation function.\n *\n * @returns A partial check action.\n */\nexport function partialCheck<\n  TInput extends PartialInput,\n  const TPaths extends RequiredPaths,\n  const TSelection extends DeepPickN<TInput, TPaths>,\n>(\n  paths: ValidPaths<TInput, TPaths>,\n  requirement: (input: TSelection) => boolean\n): PartialCheckAction<TInput, TPaths, TSelection, undefined>;\n\n/**\n * Creates a partial check validation action.\n *\n * @param paths The selected paths.\n * @param requirement The validation function.\n * @param message The error message.\n *\n * @returns A partial check action.\n */\nexport function partialCheck<\n  TInput extends PartialInput,\n  const TPaths extends RequiredPaths,\n  const TSelection extends DeepPickN<TInput, TPaths>,\n  const TMessage extends\n    | ErrorMessage<PartialCheckIssue<TSelection>>\n    | undefined,\n>(\n  paths: ValidPaths<TInput, TPaths>,\n  requirement: (input: TSelection) => boolean,\n  message: TMessage\n): PartialCheckAction<TInput, TPaths, TSelection, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function partialCheck(\n  paths: Paths,\n  requirement: (input: PartialInput) => boolean,\n  message?: ErrorMessage<PartialCheckIssue<PartialInput>>\n): PartialCheckAction<\n  PartialInput,\n  Paths,\n  PartialInput,\n  ErrorMessage<PartialCheckIssue<PartialInput>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'partial_check',\n    reference: partialCheck,\n    async: false,\n    expects: null,\n    paths,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (\n        (dataset.typed || _isPartiallyTyped(dataset, paths)) &&\n        // @ts-expect-error\n        !this.requirement(dataset.value)\n      ) {\n        _addIssue(this, 'input', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/partialCheck/partialCheckAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  type PartialCheckActionAsync,\n  partialCheckAsync,\n} from './partialCheckAsync.ts';\nimport type { DeepPickN, PartialCheckIssue } from './types.ts';\n\ndescribe('partialCheckAsync', () => {\n  // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n  type Input = { nested: { key1: number; key2: string; key3: boolean } };\n  const paths = [['nested', 'key2']] as const;\n  type PathList = typeof paths;\n  type Selection = DeepPickN<Input, PathList>;\n  const requirement = async (input: Selection) =>\n    input.nested.key2.includes('foo');\n\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = PartialCheckActionAsync<\n        Input,\n        PathList,\n        Selection,\n        undefined\n      >;\n      expectTypeOf(\n        partialCheckAsync<Input, PathList, Selection>(paths, requirement)\n      ).toEqualTypeOf<Action>();\n      expectTypeOf(\n        partialCheckAsync<Input, PathList, Selection, undefined>(\n          paths,\n          requirement,\n          undefined\n        )\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        partialCheckAsync<Input, PathList, Selection, 'message'>(\n          paths,\n          requirement,\n          'message'\n        )\n      ).toEqualTypeOf<\n        PartialCheckActionAsync<Input, PathList, Selection, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        partialCheckAsync<Input, PathList, Selection, () => string>(\n          paths,\n          requirement,\n          () => 'message'\n        )\n      ).toEqualTypeOf<\n        PartialCheckActionAsync<Input, PathList, Selection, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = PartialCheckActionAsync<\n      Input,\n      PathList,\n      Selection,\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        PartialCheckIssue<Selection>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/partialCheck/partialCheckAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type {\n  NumberIssue,\n  ObjectIssue,\n  StringIssue,\n} from '../../schemas/index.ts';\nimport type {\n  FailureDataset,\n  PartialDataset,\n  SuccessDataset,\n} from '../../types/index.ts';\nimport type { MinLengthIssue } from '../minLength/index.ts';\nimport {\n  type PartialCheckActionAsync,\n  partialCheckAsync,\n} from './partialCheckAsync.ts';\nimport type { DeepPickN, PartialCheckIssue } from './types.ts';\n\ndescribe('partialCheckAsync', () => {\n  describe('should return action object', () => {\n    // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n    type Input = { nested: { key1: number; key2: string; key3: boolean } };\n    const paths = [['nested', 'key2']] as const;\n    type PathList = typeof paths;\n    type Selection = DeepPickN<Input, PathList>;\n    const requirement = async (input: Selection) =>\n      input.nested.key2.includes('foo');\n    const baseAction: Omit<\n      PartialCheckActionAsync<Input, PathList, Selection, never>,\n      'message'\n    > = {\n      kind: 'validation',\n      type: 'partial_check',\n      reference: partialCheckAsync,\n      expects: null,\n      paths,\n      requirement,\n      async: true,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: PartialCheckActionAsync<\n        Input,\n        PathList,\n        Selection,\n        undefined\n      > = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(\n        partialCheckAsync<Input, PathList, Selection>(paths, requirement)\n      ).toStrictEqual(action);\n      expect(\n        partialCheckAsync<Input, PathList, Selection, undefined>(\n          paths,\n          requirement,\n          undefined\n        )\n      ).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      const message = 'message';\n      expect(\n        partialCheckAsync<Input, PathList, Selection, 'message'>(\n          paths,\n          requirement,\n          message\n        )\n      ).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies PartialCheckActionAsync<\n        Input,\n        PathList,\n        Selection,\n        'message'\n      >);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(\n        partialCheckAsync<Input, PathList, Selection, typeof message>(\n          paths,\n          requirement,\n          message\n        )\n      ).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies PartialCheckActionAsync<\n        Input,\n        PathList,\n        Selection,\n        typeof message\n      >);\n    });\n  });\n\n  // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n  type Input = {\n    nested: { key: string };\n    tuple: [number, { key: string }, number];\n    other: string;\n  };\n  type PathList = [['nested', 'key'], ['tuple', 1, 'key']];\n  type Selection = DeepPickN<Input, PathList>;\n  const requirement = async (input: Selection) =>\n    input.nested.key === input.tuple[1].key;\n  const action = partialCheckAsync<Input, PathList, Selection, 'message'>(\n    [\n      ['nested', 'key'],\n      ['tuple', 1, 'key'],\n    ],\n    requirement,\n    'message'\n  );\n\n  const baseInfo = {\n    message: 'message',\n    requirement: undefined,\n    path: undefined,\n    issues: undefined,\n    lang: undefined,\n    abortEarly: undefined,\n    abortPipeEarly: undefined,\n  };\n\n  describe('should return same dataset', () => {\n    test('if root is untyped', async () => {\n      const dataset: FailureDataset<ObjectIssue> = {\n        typed: false,\n        value: null,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object',\n            input: null,\n            expected: 'Object',\n            received: 'null',\n            path: undefined,\n          },\n        ],\n      };\n      expect(await action['~run'](dataset, {})).toStrictEqual(dataset);\n    });\n\n    test('if part of path is untyped', async () => {\n      const input = {\n        nested: null,\n        tuple: [123, { key: 'foo' }, 456],\n        other: 'bar',\n      };\n      const dataset: FailureDataset<ObjectIssue> = {\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object',\n            input: null,\n            expected: 'Object',\n            received: 'null',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: input.nested,\n              },\n            ],\n          },\n        ],\n      };\n      expect(await action['~run'](dataset, {})).toStrictEqual(dataset);\n    });\n\n    test('if entire path is untyped', async () => {\n      const input = {\n        nested: { key: null },\n        tuple: [123, { key: 'foo' }, 456],\n        other: 'bar',\n      };\n      const dataset: FailureDataset<StringIssue> = {\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: null,\n            expected: 'string',\n            received: 'null',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: input.nested,\n              },\n              {\n                type: 'object',\n                origin: 'value',\n                input: input.nested,\n                key: 'key',\n                value: input.nested.key,\n              },\n            ],\n          },\n        ],\n      };\n      expect(await action['~run'](dataset, {})).toStrictEqual(dataset);\n    });\n\n    test('if validation returns true', async () => {\n      const dataset: SuccessDataset<Input> = {\n        typed: true,\n        value: {\n          nested: { key: 'foo' },\n          tuple: [123, { key: 'foo' }, 456],\n          other: 'bar',\n        },\n      };\n      expect(await action['~run'](dataset, {})).toStrictEqual(dataset);\n    });\n  });\n\n  describe('should add issue to dataset', () => {\n    test('if there are no previous issues', async () => {\n      const input: Input = {\n        nested: { key: 'foo' },\n        tuple: [123, { key: 'baz' }, 456],\n        other: 'bar',\n      };\n      const dataset: SuccessDataset<Input> = {\n        typed: true,\n        value: input,\n      };\n      expect(await action['~run'](dataset, {})).toStrictEqual({\n        ...dataset,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'validation',\n            type: 'partial_check',\n            input,\n            expected: null,\n            received: 'Object',\n            requirement,\n          },\n        ],\n      } satisfies PartialDataset<Input, PartialCheckIssue<Selection>>);\n    });\n\n    test('if there are previous issues but the dataset is typed', async () => {\n      const input: Input = {\n        nested: { key: 'foo' },\n        tuple: [123, { key: 'baz' }, 456],\n        other: 'bar',\n      };\n      const firstIssue: MinLengthIssue<string, 5> = {\n        ...baseInfo,\n        kind: 'validation',\n        type: 'min_length',\n        input: 'foo',\n        expected: '>=5',\n        received: '3',\n        requirement: 5,\n        path: [\n          {\n            type: 'object',\n            origin: 'value',\n            input,\n            key: 'nested',\n            value: input.nested,\n          },\n          {\n            type: 'object',\n            origin: 'value',\n            input: input.nested,\n            key: 'key',\n            value: input.nested.key,\n          },\n        ],\n      };\n      const dataset: PartialDataset<Input, MinLengthIssue<string, 5>> = {\n        typed: true,\n        value: input,\n        issues: [firstIssue],\n      };\n      expect(await action['~run'](dataset, {})).toStrictEqual({\n        ...dataset,\n        issues: [\n          firstIssue,\n          {\n            ...baseInfo,\n            kind: 'validation',\n            type: 'partial_check',\n            input: input,\n            expected: null,\n            received: 'Object',\n            requirement,\n          },\n        ],\n      } satisfies PartialDataset<\n        Input,\n        MinLengthIssue<string, 5> | PartialCheckIssue<Selection>\n      >);\n    });\n\n    test('if there are previous issues but only with unrelated paths', async () => {\n      const input: {\n        nested: { key: string };\n        tuple: [number, { key: string }, null];\n        other: null;\n      } = {\n        nested: { key: 'foo' },\n        tuple: [123, { key: 'baz' }, null],\n        other: null,\n      };\n      const firstIssue: NumberIssue = {\n        ...baseInfo,\n        kind: 'schema',\n        type: 'number',\n        input: null,\n        expected: 'number',\n        received: 'null',\n        path: [\n          {\n            type: 'object',\n            origin: 'value',\n            input,\n            key: 'tuple',\n            value: input.tuple,\n          },\n          {\n            type: 'array',\n            origin: 'value',\n            input: input.tuple,\n            key: 2,\n            value: input.tuple[2],\n          },\n        ],\n      };\n      const secondIssue: StringIssue = {\n        ...baseInfo,\n        kind: 'schema',\n        type: 'string',\n        input: null,\n        expected: 'string',\n        received: 'null',\n        path: [\n          {\n            type: 'object',\n            origin: 'value',\n            input,\n            key: 'other',\n            value: input.other,\n          },\n        ],\n      };\n      const dataset: FailureDataset<NumberIssue | StringIssue> = {\n        typed: false,\n        value: input,\n        issues: [firstIssue, secondIssue],\n      };\n      expect(await action['~run'](dataset, {})).toStrictEqual({\n        ...dataset,\n        issues: [\n          firstIssue,\n          secondIssue,\n          {\n            ...baseInfo,\n            kind: 'validation',\n            type: 'partial_check',\n            input: input,\n            expected: null,\n            received: 'Object',\n            requirement,\n          },\n        ],\n      } satisfies FailureDataset<\n        NumberIssue | StringIssue | PartialCheckIssue<Selection>\n      >);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/partialCheck/partialCheckAsync.ts",
    "content": "import type {\n  BaseValidationAsync,\n  ErrorMessage,\n  MaybePromise,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\nimport type {\n  DeepPickN,\n  PartialCheckIssue,\n  PartialInput,\n  Paths,\n  RequiredPaths,\n  ValidPaths,\n} from './types.ts';\nimport { _isPartiallyTyped } from './utils/index.ts';\n\n/**\n * Partial check action async interface.\n */\nexport interface PartialCheckActionAsync<\n  TInput extends PartialInput,\n  TPaths extends Paths,\n  TSelection extends DeepPickN<TInput, TPaths>,\n  TMessage extends ErrorMessage<PartialCheckIssue<TSelection>> | undefined,\n> extends BaseValidationAsync<TInput, TInput, PartialCheckIssue<TSelection>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'partial_check';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof partialCheckAsync;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The selected paths.\n   */\n  readonly paths: TPaths;\n  /**\n   * The validation function.\n   */\n  readonly requirement: (input: TSelection) => MaybePromise<boolean>;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a partial check validation action.\n *\n * @param paths The selected paths.\n * @param requirement The validation function.\n *\n * @returns A partial check action.\n */\nexport function partialCheckAsync<\n  TInput extends PartialInput,\n  const TPaths extends RequiredPaths,\n  const TSelection extends DeepPickN<TInput, TPaths>,\n>(\n  paths: ValidPaths<TInput, TPaths>,\n  requirement: (input: TSelection) => MaybePromise<boolean>\n): PartialCheckActionAsync<TInput, TPaths, TSelection, undefined>;\n\n/**\n * Creates a partial check validation action.\n *\n * @param paths The selected paths.\n * @param requirement The validation function.\n * @param message The error message.\n *\n * @returns A partial check action.\n */\nexport function partialCheckAsync<\n  TInput extends PartialInput,\n  const TPaths extends RequiredPaths,\n  const TSelection extends DeepPickN<TInput, TPaths>,\n  const TMessage extends\n    | ErrorMessage<PartialCheckIssue<TSelection>>\n    | undefined,\n>(\n  paths: ValidPaths<TInput, TPaths>,\n  requirement: (input: TSelection) => MaybePromise<boolean>,\n  message: TMessage\n): PartialCheckActionAsync<TInput, TPaths, TSelection, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function partialCheckAsync(\n  paths: Paths,\n  requirement: (input: PartialInput) => MaybePromise<boolean>,\n  message?: ErrorMessage<PartialCheckIssue<PartialInput>>\n): PartialCheckActionAsync<\n  PartialInput,\n  Paths,\n  PartialInput,\n  ErrorMessage<PartialCheckIssue<PartialInput>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'partial_check',\n    reference: partialCheckAsync,\n    async: true,\n    expects: null,\n    paths,\n    requirement,\n    message,\n    async '~run'(dataset, config) {\n      if (\n        (dataset.typed || _isPartiallyTyped(dataset, paths)) &&\n        // @ts-expect-error\n        !(await this.requirement(dataset.value))\n      ) {\n        _addIssue(this, 'input', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/partialCheck/types.ts",
    "content": "import type {\n  BaseIssue,\n  IsAny,\n  IsNever,\n  MaybePromise,\n} from '../../types/index.ts';\n\n/**\n * Partial input type.\n */\nexport type PartialInput = Record<string, unknown> | ArrayLike<unknown>;\n\n/**\n * Partial check issue interface.\n */\nexport interface PartialCheckIssue<TInput extends PartialInput>\n  extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'partial_check';\n  /**\n   * The expected input.\n   */\n  readonly expected: null;\n  /**\n   * The validation function.\n   */\n  readonly requirement: (input: TInput) => MaybePromise<boolean>;\n}\n\n/**\n * Extracts the exact keys of a tuple, array or object.\n */\ntype KeyOf<TValue> =\n  IsAny<TValue> extends true\n    ? never\n    : TValue extends readonly unknown[]\n      ? number extends TValue['length']\n        ? '$' // For arrays we use '$' as a wildcard\n        : {\n            [TKey in keyof TValue]: TKey extends `${infer TIndex extends number}`\n              ? TIndex\n              : never;\n          }[number]\n      : TValue extends Record<string, unknown>\n        ? keyof TValue & (string | number)\n        : never;\n\n/**\n * Path type.\n */\ntype Path = readonly (string | number)[];\n\n/**\n * Required path type.\n */\ntype RequiredPath = readonly [string | number, ...Path];\n\n/**\n * Paths type.\n */\nexport type Paths = readonly RequiredPath[];\n\n/**\n * Required paths type.\n */\nexport type RequiredPaths = readonly [RequiredPath, ...RequiredPath[]];\n\n/**\n * Lazily evaluate only the first valid path segment based on the given value.\n */\ntype LazyPath<\n  TValue,\n  TPathToCheck extends Path,\n  TValidPath extends Path = readonly [],\n> =\n  // If path to check is empty, return last valid path\n  TPathToCheck extends readonly []\n    ? TValidPath\n    : // If first key of path to check is valid, continue with next key\n      TPathToCheck extends readonly [\n          infer TFirstKey extends KeyOf<TValue>,\n          ...infer TPathRest extends Path,\n        ]\n      ? LazyPath<\n          TFirstKey extends keyof TValue\n            ? TValue[TFirstKey]\n            : TFirstKey extends '$'\n              ? TValue extends readonly unknown[]\n                ? TValue[number]\n                : never\n              : never,\n          TPathRest,\n          readonly [...TValidPath, TFirstKey]\n        >\n      : // If current value has valid keys, return them\n        IsNever<KeyOf<TValue>> extends false\n        ? readonly [...TValidPath, KeyOf<TValue>]\n        : // Otherwise, return only last valid path\n          TValidPath;\n\n/**\n * Returns the path if valid, otherwise the first possible valid path based on\n * the given value.\n */\ntype ValidPath<TValue, TPath extends RequiredPath> =\n  TPath extends LazyPath<TValue, TPath> ? TPath : LazyPath<TValue, TPath>;\n\n/**\n * Returns a valid path for any given path based on the given value.\n */\nexport type ValidPaths<TValue, TPaths extends RequiredPaths> = {\n  [TKey in keyof TPaths]: ValidPath<TValue, TPaths[TKey]>;\n};\n\n/**\n * Deeply picks specific keys.\n *\n * Hint: If this type is ever exported and accessible from the outside, it must\n * be wrapped in `UnionToIntersect` to avoid invalid results.\n */\ntype DeepPick<TValue, TPath extends Path> = TPath extends readonly [\n  infer TFirstKey extends string | number,\n  ...infer TPathRest extends Path,\n]\n  ? TValue extends readonly unknown[]\n    ? number extends TValue['length']\n      ? TPathRest extends readonly []\n        ? TValue\n        : DeepPick<TValue[number], TPathRest>[]\n      : {\n          [TKey in keyof TValue]: TKey extends `${TFirstKey}`\n            ? TPathRest extends readonly []\n              ? TValue[TKey]\n              : DeepPick<TValue[TKey], TPathRest>\n            : unknown;\n        }\n    : {\n        [TKey in keyof TValue as TKey extends TFirstKey\n          ? TKey\n          : never]: TPathRest extends readonly []\n          ? TValue[TKey]\n          : DeepPick<TValue[TKey], TPathRest>;\n      }\n  : never;\n\n/**\n * Deeply merges two types.\n */\ntype DeepMerge<TValue1, TValue2> = TValue1 extends readonly unknown[]\n  ? TValue2 extends readonly unknown[]\n    ? number extends TValue1['length'] | TValue2['length']\n      ? DeepMerge<TValue1[number], TValue2[number]>[]\n      : {\n          [TKey in keyof TValue1]: TKey extends keyof TValue2\n            ? unknown extends TValue1[TKey]\n              ? TValue2[TKey]\n              : TValue1[TKey]\n            : never;\n        }\n    : never\n  : TValue1 extends Record<string, unknown>\n    ? TValue2 extends Record<string, unknown>\n      ? {\n          [TKey in keyof (TValue1 & TValue2)]: TKey extends keyof TValue1\n            ? TKey extends keyof TValue2\n              ? DeepMerge<TValue1[TKey], TValue2[TKey]>\n              : TValue1[TKey]\n            : TKey extends keyof TValue2\n              ? TValue2[TKey]\n              : never;\n        }\n      : never\n    : TValue1 & TValue2;\n\n/**\n * Deeply picks N specific keys.\n */\nexport type DeepPickN<TInput, TPaths extends Paths> = TPaths extends readonly [\n  infer TFirstPath extends Path,\n  ...infer TRestPaths extends Paths,\n]\n  ? TRestPaths extends readonly []\n    ? DeepPick<TInput, TFirstPath>\n    : DeepMerge<DeepPick<TInput, TFirstPath>, DeepPickN<TInput, TRestPaths>>\n  : TInput;\n"
  },
  {
    "path": "library/src/actions/partialCheck/utils/_isPartiallyTyped/_isPartiallyTyped.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type {\n  NumberIssue,\n  ObjectIssue,\n  StringIssue,\n} from '../../../../schemas/index.ts';\nimport type {\n  FailureDataset,\n  SuccessDataset,\n} from '../../../../types/index.ts';\nimport { _isPartiallyTyped } from './_isPartiallyTyped.ts';\n\ndescribe('_isPartiallyTyped', () => {\n  // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n  type Input = {\n    nested: { key1: string; key2: string };\n    tuple: [number, { key1: string; key2: string }, number];\n    array: { key1: string; key2: string }[];\n    other: string;\n  };\n  const paths = [\n    ['nested', 'key2'],\n    ['tuple', 1, 'key2'],\n    ['array', '$', 'key2'],\n  ] as const;\n\n  const baseInfo = {\n    message: 'message',\n    requirement: undefined,\n    path: undefined,\n    issues: undefined,\n    lang: undefined,\n    abortEarly: undefined,\n    abortPipeEarly: undefined,\n  };\n\n  describe('should return false', () => {\n    test('if issue has no path', () => {\n      const dataset: FailureDataset<ObjectIssue> = {\n        typed: false,\n        value: null,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object',\n            input: null,\n            expected: 'Object',\n            received: 'null',\n            path: undefined,\n          },\n        ],\n      };\n      expect(_isPartiallyTyped(dataset, paths)).toBe(false);\n    });\n\n    test('if part of path matches path of issue', () => {\n      const input = {\n        nested: null,\n        tuple: [123, { key1: 'foo', key2: 'bar' }, 456],\n        array: [{ key1: 'foo', key2: 'bar' }],\n        other: 'foo',\n      };\n      const dataset: FailureDataset<ObjectIssue> = {\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object',\n            input: null,\n            expected: 'Object',\n            received: 'null',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: input.nested,\n              },\n            ],\n          },\n        ],\n      };\n      expect(_isPartiallyTyped(dataset, paths)).toBe(false);\n    });\n\n    test('if entire path matches path of issue', () => {\n      const input = {\n        nested: { key1: 'foo', key2: null },\n        tuple: [123, { key1: 'foo', key2: 'bar' }, 456],\n        array: [{ key1: 'foo', key2: 'bar' }],\n        other: 'foo',\n      };\n      const dataset: FailureDataset<StringIssue> = {\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: null,\n            expected: 'string',\n            received: 'null',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: input.nested,\n              },\n              {\n                type: 'object',\n                origin: 'value',\n                input: input.nested,\n                key: 'key2',\n                value: input.nested.key2,\n              },\n            ],\n          },\n        ],\n      };\n      expect(_isPartiallyTyped(dataset, paths)).toBe(false);\n    });\n\n    test('if array wildcard of path matches path of issue', () => {\n      const input = {\n        nested: { key1: 'foo', key2: 'bar' },\n        tuple: [123, { key1: 'foo', key2: 'bar' }, 456],\n        array: [{ key1: 'foo', key2: 'bar' }, null],\n        other: 'foo',\n      };\n      const dataset: FailureDataset<ObjectIssue> = {\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object',\n            input: null,\n            expected: 'Object',\n            received: 'null',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'array',\n                value: input.array,\n              },\n              {\n                type: 'array',\n                origin: 'value',\n                input: input.array,\n                key: 1,\n                value: input.array[1],\n              },\n            ],\n          },\n        ],\n      };\n      expect(_isPartiallyTyped(dataset, paths)).toBe(false);\n    });\n  });\n\n  describe('should return true', () => {\n    test('if there are no issues', () => {\n      const input: Input = {\n        nested: { key1: 'foo', key2: 'bar' },\n        tuple: [123, { key1: 'foo', key2: 'bar' }, 456],\n        array: [{ key1: 'foo', key2: 'bar' }],\n        other: 'foo',\n      };\n      const dataset: SuccessDataset<Input> = {\n        typed: true,\n        value: input,\n      };\n      expect(_isPartiallyTyped(dataset, paths)).toBe(true);\n    });\n\n    test('if only unselected paths are untyped', () => {\n      const input = {\n        nested: { key: 'foo' },\n        tuple: [123, { key: 'baz' }, null],\n        array: [{ key: 'foo' }, { key: 'bar' }],\n        other: null,\n      };\n      const dataset: FailureDataset<NumberIssue | StringIssue> = {\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: null,\n            expected: 'number',\n            received: 'null',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'tuple',\n                value: input.tuple,\n              },\n              {\n                type: 'array',\n                origin: 'value',\n                input: input.tuple,\n                key: 2,\n                value: input.tuple[2],\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: null,\n            expected: 'string',\n            received: 'null',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'other',\n                value: input.other,\n              },\n            ],\n          },\n        ],\n      };\n      expect(_isPartiallyTyped(dataset, paths)).toBe(true);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/partialCheck/utils/_isPartiallyTyped/_isPartiallyTyped.ts",
    "content": "import type { BaseIssue, OutputDataset } from '../../../../types/index.ts';\nimport type { Paths } from '../../types.ts';\n\n/**\n * Checks if a dataset is partially typed.\n *\n * @param dataset The dataset to check.\n * @param paths The paths to check.\n *\n * @returns Whether it is partially typed.\n *\n * @internal\n */\n// @__NO_SIDE_EFFECTS__\nexport function _isPartiallyTyped(\n  dataset: OutputDataset<unknown, BaseIssue<unknown>>,\n  paths: Paths\n): boolean {\n  // If issues exist, check if a specified path matches path of a schema issue\n  if (dataset.issues) {\n    for (const path of paths) {\n      for (const issue of dataset.issues) {\n        // Hint: We also mark the data as untyped if there are validation\n        // issues, since the data could potentially be untyped if a pipeline\n        // contains a transformation action.\n\n        // Create typed variable\n        let typed = false;\n\n        // Calculate bound of match check\n        const bound = Math.min(path.length, issue.path?.length ?? 0);\n\n        // Mark data as typed if any path items of same index do not match\n        for (let index = 0; index < bound; index++) {\n          if (\n            // @ts-expect-error\n            path[index] !== issue.path[index].key &&\n            // @ts-expect-error\n            (path[index] !== '$' || issue.path[index].type !== 'array')\n          ) {\n            typed = true;\n            break;\n          }\n        }\n\n        // Return false if untyped\n        if (!typed) {\n          return false;\n        }\n      }\n    }\n  }\n\n  // Return true if typed\n  return true;\n}\n"
  },
  {
    "path": "library/src/actions/partialCheck/utils/_isPartiallyTyped/index.ts",
    "content": "export * from './_isPartiallyTyped.ts';\n"
  },
  {
    "path": "library/src/actions/partialCheck/utils/index.ts",
    "content": "export * from './_isPartiallyTyped/index.ts';\n"
  },
  {
    "path": "library/src/actions/rawCheck/index.ts",
    "content": "export * from './rawCheck.ts';\nexport * from './rawCheckAsync.ts';\nexport * from './types.ts';\n"
  },
  {
    "path": "library/src/actions/rawCheck/rawCheck.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { rawCheck, type RawCheckAction } from './rawCheck.ts';\nimport type { RawCheckIssue } from './types.ts';\n\ndescribe('rawCheck', () => {\n  test('should return action object', () => {\n    expectTypeOf(\n      rawCheck<string>(\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        () => {}\n      )\n    ).toEqualTypeOf<RawCheckAction<string>>();\n  });\n\n  describe('should infer correct types', () => {\n    type Input = ['foo', 123, true];\n    type Action = RawCheckAction<Input>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<RawCheckIssue<Input>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/rawCheck/rawCheck.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { rawCheck, type RawCheckAction } from './rawCheck.ts';\nimport type { RawCheckIssue } from './types.ts';\n\ndescribe('rawCheck', () => {\n  const action = rawCheck<number>(({ dataset, addIssue }) => {\n    if (dataset.typed && dataset.value <= 0) {\n      addIssue({ message: 'message' });\n    }\n  });\n\n  test('should return action object', () => {\n    expect(action).toStrictEqual({\n      kind: 'validation',\n      type: 'raw_check',\n      reference: rawCheck,\n      expects: null,\n      async: false,\n      '~run': expect.any(Function),\n    } satisfies RawCheckAction<number>);\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid inputs', () => {\n      expectNoActionIssue(action, [1, 12345, Infinity]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const baseIssue: Omit<RawCheckIssue<number>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'raw_check',\n      expected: null,\n      message: 'message',\n    };\n\n    test('for invalid inputs', () => {\n      expectActionIssue(action, baseIssue, [0, -1, -12345, -Infinity]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/rawCheck/rawCheck.ts",
    "content": "import type { BaseValidation } from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\nimport type { RawCheckContext, RawCheckIssue } from './types.ts';\n\n/**\n * Raw check action interface.\n */\nexport interface RawCheckAction<TInput>\n  extends BaseValidation<TInput, TInput, RawCheckIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'raw_check';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof rawCheck;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n}\n\n/**\n * Creates a raw check validation action.\n *\n * @param action The validation action.\n *\n * @returns A raw check action.\n */\n// @__NO_SIDE_EFFECTS__\nexport function rawCheck<TInput>(\n  action: (context: RawCheckContext<TInput>) => void\n): RawCheckAction<TInput> {\n  return {\n    kind: 'validation',\n    type: 'raw_check',\n    reference: rawCheck,\n    async: false,\n    expects: null,\n    '~run'(dataset, config) {\n      action({\n        dataset,\n        config,\n        addIssue: (info) =>\n          _addIssue(this, info?.label ?? 'input', dataset, config, info),\n      });\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/rawCheck/rawCheckAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { type RawCheckActionAsync, rawCheckAsync } from './rawCheckAsync.ts';\nimport type { RawCheckIssue } from './types.ts';\n\ndescribe('rawCheckAsync', () => {\n  test('should return action object', () => {\n    expectTypeOf(\n      rawCheckAsync<string>(\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        async () => {}\n      )\n    ).toEqualTypeOf<RawCheckActionAsync<string>>();\n  });\n\n  describe('should infer correct types', () => {\n    type Input = ['foo', 123, true];\n    type Action = RawCheckActionAsync<Input>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<RawCheckIssue<Input>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/rawCheck/rawCheckAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport {\n  expectActionIssueAsync,\n  expectNoActionIssueAsync,\n} from '../../vitest/index.ts';\nimport { type RawCheckActionAsync, rawCheckAsync } from './rawCheckAsync.ts';\nimport type { RawCheckIssue } from './types.ts';\n\ndescribe('rawCheckAsync', () => {\n  const action = rawCheckAsync<number>(async ({ dataset, addIssue }) => {\n    if (dataset.typed && dataset.value <= 0) {\n      addIssue({ message: 'message' });\n    }\n  });\n\n  test('should return action object', () => {\n    expect(action).toStrictEqual({\n      kind: 'validation',\n      type: 'raw_check',\n      reference: rawCheckAsync,\n      expects: null,\n      async: true,\n      '~run': expect.any(Function),\n    } satisfies RawCheckActionAsync<number>);\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for untyped inputs', async () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        await action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid inputs', async () => {\n      await expectNoActionIssueAsync(action, [1, 12345, Infinity]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const baseIssue: Omit<RawCheckIssue<number>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'raw_check',\n      expected: null,\n      message: 'message',\n    };\n\n    test('for invalid inputs', async () => {\n      await expectActionIssueAsync(action, baseIssue, [\n        0,\n        -1,\n        -12345,\n        -Infinity,\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/rawCheck/rawCheckAsync.ts",
    "content": "import type { BaseValidationAsync, MaybePromise } from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\nimport type { RawCheckContext, RawCheckIssue } from './types.ts';\n\n/**\n * Raw check action async interface.\n */\nexport interface RawCheckActionAsync<TInput>\n  extends BaseValidationAsync<TInput, TInput, RawCheckIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'raw_check';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof rawCheckAsync;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n}\n\n/**\n * Creates a raw check validation action.\n *\n * @param action The validation action.\n *\n * @returns A raw check action.\n */\n// @__NO_SIDE_EFFECTS__\nexport function rawCheckAsync<TInput>(\n  action: (context: RawCheckContext<TInput>) => MaybePromise<void>\n): RawCheckActionAsync<TInput> {\n  return {\n    kind: 'validation',\n    type: 'raw_check',\n    reference: rawCheckAsync,\n    async: true,\n    expects: null,\n    async '~run'(dataset, config) {\n      await action({\n        dataset,\n        config,\n        addIssue: (info) =>\n          _addIssue(this, info?.label ?? 'input', dataset, config, info),\n      });\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/rawCheck/types.ts",
    "content": "import type {\n  BaseIssue,\n  Config,\n  ErrorMessage,\n  IssuePathItem,\n  OutputDataset,\n} from '../../types/index.ts';\n\n/**\n * Raw check issue interface.\n */\nexport interface RawCheckIssue<TInput> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'raw_check';\n}\n\n/**\n * Raw check issue info interface.\n */\nexport interface RawCheckIssueInfo<TInput> {\n  label?: string | undefined;\n  input?: unknown | undefined;\n  expected?: string | undefined;\n  received?: string | undefined;\n  message?: ErrorMessage<RawCheckIssue<TInput>> | undefined;\n  path?: [IssuePathItem, ...IssuePathItem[]] | undefined;\n}\n\n/**\n * Raw check add issue type.\n */\nexport type RawCheckAddIssue<TInput> = (\n  info?: RawCheckIssueInfo<TInput>\n) => void;\n\n/**\n * Raw check context interface.\n */\nexport interface RawCheckContext<TInput> {\n  readonly dataset: OutputDataset<TInput, BaseIssue<unknown>>;\n  readonly config: Config<RawCheckIssue<TInput>>;\n  readonly addIssue: RawCheckAddIssue<TInput>;\n}\n"
  },
  {
    "path": "library/src/actions/rawTransform/index.ts",
    "content": "export * from './rawTransform.ts';\nexport * from './rawTransformAsync.ts';\nexport * from './types.ts';\n"
  },
  {
    "path": "library/src/actions/rawTransform/rawTransform.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { rawTransform, type RawTransformAction } from './rawTransform.ts';\nimport type { RawTransformIssue } from './types.ts';\n\ndescribe('rawTransform', () => {\n  test('should return action object', () => {\n    expectTypeOf(\n      rawTransform<string, number>(({ dataset }) => dataset.value.length)\n    ).toEqualTypeOf<RawTransformAction<string, number>>();\n  });\n\n  describe('should infer correct types', () => {\n    type Action = RawTransformAction<string, number>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        RawTransformIssue<string>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/rawTransform/rawTransform.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { rawTransform, type RawTransformAction } from './rawTransform.ts';\n\ndescribe('rawTransform', () => {\n  const action = rawTransform<string, number>(\n    ({ dataset, addIssue, NEVER }) => {\n      const length = dataset.value.length;\n      if (length < 3) {\n        addIssue({ message: 'message' });\n        return NEVER;\n      }\n      return length;\n    }\n  );\n\n  test('should return action object', () => {\n    expect(action).toStrictEqual({\n      kind: 'transformation',\n      type: 'raw_transform',\n      reference: rawTransform,\n      async: false,\n      '~run': expect.any(Function),\n    } satisfies RawTransformAction<string, number>);\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for valid inputs', () => {\n      expect(action['~run']({ typed: true, value: 'foo' }, {})).toStrictEqual({\n        typed: true,\n        value: 3,\n      });\n      expect(\n        action['~run']({ typed: true, value: '123456789' }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: 9,\n      });\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    test('for invalid inputs', () => {\n      expect(action['~run']({ typed: true, value: 'fo' }, {})).toStrictEqual({\n        typed: false,\n        value: 'fo',\n        issues: [\n          {\n            kind: 'transformation',\n            type: 'raw_transform',\n            expected: null,\n            message: 'message',\n            input: 'fo',\n            received: '\"fo\"',\n            requirement: undefined,\n            path: undefined,\n            issues: undefined,\n            lang: undefined,\n            abortEarly: undefined,\n            abortPipeEarly: undefined,\n          },\n        ],\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/rawTransform/rawTransform.ts",
    "content": "import type {\n  BaseIssue,\n  BaseTransformation,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\nimport type { RawTransformContext, RawTransformIssue } from './types.ts';\n\n/**\n * Raw transform action interface.\n */\nexport interface RawTransformAction<TInput, TOutput>\n  extends BaseTransformation<TInput, TOutput, RawTransformIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'raw_transform';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof rawTransform;\n}\n\n/**\n * Creates a raw transformation action.\n *\n * @param action The transformation action.\n *\n * @returns A raw transform action.\n */\n// @__NO_SIDE_EFFECTS__\nexport function rawTransform<TInput, TOutput>(\n  action: (context: RawTransformContext<TInput>) => TOutput\n): RawTransformAction<TInput, TOutput> {\n  return {\n    kind: 'transformation',\n    type: 'raw_transform',\n    reference: rawTransform,\n    async: false,\n    '~run'(dataset, config) {\n      // Execute action and get its output\n      const output = action({\n        dataset,\n        config,\n        addIssue: (info) =>\n          _addIssue(this, info?.label ?? 'input', dataset, config, info),\n        NEVER: null as never,\n      });\n\n      // Update dataset depending on issues\n      if (dataset.issues) {\n        // @ts-expect-error\n        dataset.typed = false;\n      } else {\n        // @ts-expect-error\n        dataset.value = output;\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        TOutput,\n        BaseIssue<unknown> | RawTransformIssue<TInput>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/rawTransform/rawTransformAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  type RawTransformActionAsync,\n  rawTransformAsync,\n} from './rawTransformAsync.ts';\nimport type { RawTransformIssue } from './types.ts';\n\ndescribe('rawTransformAsync', () => {\n  test('should return action object', () => {\n    expectTypeOf(\n      rawTransformAsync<string, number>(\n        async ({ dataset }) => dataset.value.length\n      )\n    ).toEqualTypeOf<RawTransformActionAsync<string, number>>();\n  });\n\n  describe('should infer correct types', () => {\n    type Action = RawTransformActionAsync<string, number>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        RawTransformIssue<string>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/rawTransform/rawTransformAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  type RawTransformActionAsync,\n  rawTransformAsync,\n} from './rawTransformAsync.ts';\n\ndescribe('rawTransformAsync', () => {\n  const action = rawTransformAsync<string, number>(\n    async ({ dataset, addIssue, NEVER }) => {\n      const length = dataset.value.length;\n      if (length < 3) {\n        addIssue({ message: 'message' });\n        return NEVER;\n      }\n      return length;\n    }\n  );\n\n  test('should return action object', () => {\n    expect(action).toStrictEqual({\n      kind: 'transformation',\n      type: 'raw_transform',\n      reference: rawTransformAsync,\n      async: true,\n      '~run': expect.any(Function),\n    } satisfies RawTransformActionAsync<string, number>);\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for valid inputs', async () => {\n      expect(\n        await action['~run']({ typed: true, value: 'foo' }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: 3,\n      });\n      expect(\n        await action['~run']({ typed: true, value: '123456789' }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: 9,\n      });\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    test('for invalid inputs', async () => {\n      expect(\n        await action['~run']({ typed: true, value: 'fo' }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: 'fo',\n        issues: [\n          {\n            kind: 'transformation',\n            type: 'raw_transform',\n            expected: null,\n            message: 'message',\n            input: 'fo',\n            received: '\"fo\"',\n            requirement: undefined,\n            path: undefined,\n            issues: undefined,\n            lang: undefined,\n            abortEarly: undefined,\n            abortPipeEarly: undefined,\n          },\n        ],\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/rawTransform/rawTransformAsync.ts",
    "content": "import type {\n  BaseIssue,\n  BaseTransformationAsync,\n  MaybePromise,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\nimport type { RawTransformContext, RawTransformIssue } from './types.ts';\n\n/**\n * Raw transform action async interface.\n */\nexport interface RawTransformActionAsync<TInput, TOutput>\n  extends BaseTransformationAsync<TInput, TOutput, RawTransformIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'raw_transform';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof rawTransformAsync;\n}\n\n/**\n * Creates a raw transformation action.\n *\n * @param action The transformation action.\n *\n * @returns A raw transform action.\n */\n// @__NO_SIDE_EFFECTS__\nexport function rawTransformAsync<TInput, TOutput>(\n  action: (context: RawTransformContext<TInput>) => MaybePromise<TOutput>\n): RawTransformActionAsync<TInput, TOutput> {\n  return {\n    kind: 'transformation',\n    type: 'raw_transform',\n    reference: rawTransformAsync,\n    async: true,\n    async '~run'(dataset, config) {\n      // Execute action and get its output\n      const output = await action({\n        dataset,\n        config,\n        addIssue: (info) =>\n          _addIssue(this, info?.label ?? 'input', dataset, config, info),\n        NEVER: null as never,\n      });\n\n      // Update dataset depending on issues\n      if (dataset.issues) {\n        // @ts-expect-error\n        dataset.typed = false;\n      } else {\n        // @ts-expect-error\n        dataset.value = output;\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        TOutput,\n        BaseIssue<unknown> | RawTransformIssue<TInput>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/rawTransform/types.ts",
    "content": "import type {\n  BaseIssue,\n  Config,\n  ErrorMessage,\n  IssuePathItem,\n  SuccessDataset,\n} from '../../types/index.ts';\n\n/**\n * Raw transform issue interface.\n */\nexport interface RawTransformIssue<TInput> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'transformation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'raw_transform';\n}\n\n/**\n * Raw transform issue info interface.\n */\nexport interface RawTransformIssueInfo<TInput> {\n  label?: string | undefined;\n  input?: unknown | undefined;\n  expected?: string | undefined;\n  received?: string | undefined;\n  message?: ErrorMessage<RawTransformIssue<TInput>> | undefined;\n  path?: [IssuePathItem, ...IssuePathItem[]] | undefined;\n}\n\n/**\n * Raw transform add issue type.\n */\nexport type RawTransformAddIssue<TInput> = (\n  info?: RawTransformIssueInfo<TInput>\n) => void;\n\n/**\n * Raw transform context interface.\n */\nexport interface RawTransformContext<TInput> {\n  readonly dataset: SuccessDataset<TInput>;\n  readonly config: Config<RawTransformIssue<TInput>>;\n  readonly addIssue: RawTransformAddIssue<TInput>;\n  readonly NEVER: never;\n}\n"
  },
  {
    "path": "library/src/actions/readonly/index.ts",
    "content": "export * from './readonly.ts';\n"
  },
  {
    "path": "library/src/actions/readonly/readonly.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { readonly, type ReadonlyAction } from './readonly.ts';\n\ndescribe('readonly', () => {\n  test('should return action object', () => {\n    // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n    type Input = { key: string };\n    type Action = ReadonlyAction<Input>;\n    expectTypeOf(readonly<Input>()).toEqualTypeOf<Action>();\n  });\n\n  describe('should infer correct types', () => {\n    // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n    type Input1 = { for: string; bar: number };\n    type Action1 = ReadonlyAction<Input1>;\n    type Input2 = [string, number];\n    type Action2 = ReadonlyAction<Input2>;\n    type Input3 = Map<string, number>;\n    type Action3 = ReadonlyAction<Input3>;\n    type Input4 = Set<string>;\n    type Action4 = ReadonlyAction<Input4>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action1>>().toEqualTypeOf<Input1>();\n      expectTypeOf<InferInput<Action2>>().toEqualTypeOf<Input2>();\n      expectTypeOf<InferInput<Action3>>().toEqualTypeOf<Input3>();\n      expectTypeOf<InferInput<Action4>>().toEqualTypeOf<Input4>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action1>>().toEqualTypeOf<{\n        readonly for: string;\n        readonly bar: number;\n      }>();\n      expectTypeOf<InferOutput<Action2>>().toEqualTypeOf<\n        readonly [string, number]\n      >();\n      expectTypeOf<InferOutput<Action3>>().toEqualTypeOf<\n        ReadonlyMap<string, number>\n      >();\n      expectTypeOf<InferOutput<Action4>>().toEqualTypeOf<ReadonlySet<string>>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action1>>().toEqualTypeOf<never>();\n      expectTypeOf<InferIssue<Action2>>().toEqualTypeOf<never>();\n      expectTypeOf<InferIssue<Action3>>().toEqualTypeOf<never>();\n      expectTypeOf<InferIssue<Action4>>().toEqualTypeOf<never>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/readonly/readonly.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { readonly, type ReadonlyAction } from './readonly.ts';\n\ndescribe('readonly', () => {\n  test('should return action object', () => {\n    expect(readonly()).toStrictEqual({\n      kind: 'transformation',\n      type: 'readonly',\n      reference: readonly,\n      async: false,\n      '~run': expect.any(Function),\n    } satisfies ReadonlyAction<{ key: string }>);\n  });\n\n  test('should return same dataset', () => {\n    const dataset = { typed: true, value: { key: 'foo' } } as const;\n    expect(readonly()['~run'](dataset, {})).toStrictEqual(dataset);\n  });\n});\n"
  },
  {
    "path": "library/src/actions/readonly/readonly.ts",
    "content": "import type { BaseTransformation, SuccessDataset } from '../../types/index.ts';\n\n/**\n * Readonly output type.\n */\ntype ReadonlyOutput<TInput> =\n  TInput extends Map<infer TKey, infer TValue>\n    ? ReadonlyMap<TKey, TValue>\n    : TInput extends Set<infer TValue>\n      ? ReadonlySet<TValue>\n      : Readonly<TInput>;\n\n/**\n * Readonly action interface.\n */\nexport interface ReadonlyAction<TInput>\n  extends BaseTransformation<TInput, ReadonlyOutput<TInput>, never> {\n  /**\n   * The action type.\n   */\n  readonly type: 'readonly';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof readonly;\n}\n\n/**\n * Creates a readonly transformation action.\n *\n * @returns A readonly action.\n */\nexport function readonly<TInput>(): ReadonlyAction<TInput>;\n\n// @__NO_SIDE_EFFECTS__\nexport function readonly(): ReadonlyAction<unknown> {\n  return {\n    kind: 'transformation',\n    type: 'readonly',\n    reference: readonly,\n    async: false,\n    '~run'(dataset) {\n      return dataset as SuccessDataset<Readonly<unknown>>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/reduceItems/index.ts",
    "content": "export * from './reduceItems.ts';\n"
  },
  {
    "path": "library/src/actions/reduceItems/reduceItems.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { reduceItems, type ReduceItemsAction } from './reduceItems.ts';\n\ndescribe('reduceItems', () => {\n  test('should return action object', () => {\n    expectTypeOf(\n      reduceItems<number[], number>((output, item) => output + item, 0)\n    ).toEqualTypeOf<ReduceItemsAction<number[], number>>();\n  });\n\n  describe('should infer correct types', () => {\n    type Action = ReduceItemsAction<number[], number>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<number[]>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<never>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/reduceItems/reduceItems.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { reduceItems, type ReduceItemsAction } from './reduceItems.ts';\n\ndescribe('reduceItems', () => {\n  const operation = (output: number, item: number) => output + item;\n  const initial = 0;\n  const action = reduceItems<number[], number>(operation, initial);\n\n  test('should return action object', () => {\n    expect(action).toStrictEqual({\n      kind: 'transformation',\n      type: 'reduce_items',\n      reference: reduceItems,\n      async: false,\n      operation,\n      initial,\n      '~run': expect.any(Function),\n    } satisfies ReduceItemsAction<number[], number>);\n  });\n\n  test('should transform input', () => {\n    expect(\n      action['~run']({ typed: true, value: [9, -12, 345, 0, 999] }, {})\n    ).toStrictEqual({\n      typed: true,\n      value: 1341,\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/reduceItems/reduceItems.ts",
    "content": "import type { BaseTransformation, SuccessDataset } from '../../types/index.ts';\nimport type { ArrayInput } from '../types.ts';\n\n/**\n * Array action type.\n */\ntype ArrayAction<TInput extends ArrayInput, TOutput> = (\n  output: TOutput,\n  item: TInput[number],\n  index: number,\n  array: TInput\n) => TOutput;\n\n/**\n * Reduce items action interface.\n */\nexport interface ReduceItemsAction<TInput extends ArrayInput, TOutput>\n  extends BaseTransformation<TInput, TOutput, never> {\n  /**\n   * The action type.\n   */\n  readonly type: 'reduce_items';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof reduceItems;\n  /**\n   * The reduce items operation.\n   */\n  readonly operation: ArrayAction<TInput, TOutput>;\n  /**\n   * The initial value.\n   */\n  readonly initial: TOutput;\n}\n\n/**\n * Creates a reduce items transformation action.\n *\n * @param operation The reduce items operation.\n * @param initial The initial value.\n *\n * @returns A reduce items action.\n */\nexport function reduceItems<TInput extends ArrayInput, TOutput>(\n  operation: ArrayAction<TInput, TOutput>,\n  initial: TOutput\n): ReduceItemsAction<TInput, TOutput>;\n\n// @__NO_SIDE_EFFECTS__\nexport function reduceItems(\n  operation: ArrayAction<unknown[], unknown>,\n  initial: unknown\n): ReduceItemsAction<unknown[], unknown> {\n  return {\n    kind: 'transformation',\n    type: 'reduce_items',\n    reference: reduceItems,\n    async: false,\n    operation,\n    initial,\n    '~run'(dataset) {\n      // @ts-expect-error\n      dataset.value = dataset.value.reduce(this.operation, this.initial);\n      return dataset as SuccessDataset<unknown>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/regex/index.ts",
    "content": "export * from './regex.ts';\n"
  },
  {
    "path": "library/src/actions/regex/regex.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { regex, type RegexAction, type RegexIssue } from './regex.ts';\n\ndescribe('regex', () => {\n  describe('should return action object', () => {\n    const requirement = /^ID-\\d{3}$/u;\n\n    test('with undefined message', () => {\n      type Action = RegexAction<string, undefined>;\n      expectTypeOf(regex(requirement)).toEqualTypeOf<Action>();\n      expectTypeOf(regex(requirement, undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(regex(requirement, 'message')).toEqualTypeOf<\n        RegexAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(regex(requirement, () => 'message')).toEqualTypeOf<\n        RegexAction<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = RegexAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<RegexIssue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/regex/regex.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { regex, type RegexAction, type RegexIssue } from './regex.ts';\n\ndescribe('regex', () => {\n  const requirement = /^ID-\\d{3}$/u;\n\n  describe('should return action object', () => {\n    const baseAction: Omit<RegexAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'regex',\n      reference: regex,\n      expects: `${requirement}`,\n      requirement,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: RegexAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(regex(requirement)).toStrictEqual(action);\n      expect(regex(requirement, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(regex(requirement, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies RegexAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(regex(requirement, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies RegexAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = regex(requirement);\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for matching strings', () => {\n      expectNoActionIssue(action, ['ID-000', 'ID-123', 'ID-999']);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = regex(requirement, 'message');\n\n    const baseIssue: Omit<RegexIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'regex',\n      expected: `${requirement}`,\n      requirement,\n      message: 'message',\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for blank spaces', () => {\n      expectActionIssue(action, baseIssue, [' ID-000', 'ID-000 ', ' ID-000 ']);\n    });\n\n    test('for missing separator', () => {\n      expectActionIssue(action, baseIssue, ['ID000']);\n    });\n\n    test('for invalid separators', () => {\n      expectActionIssue(action, baseIssue, [\n        'ID 000',\n        'ID:000',\n        'ID–000',\n        'ID_000',\n        'ID/000',\n        'ID.000',\n      ]);\n    });\n\n    test('for invalid prefix', () => {\n      expectActionIssue(action, baseIssue, [\n        'id-000',\n        'D-000',\n        'I-000',\n        'AD-000',\n        'IA-000',\n      ]);\n    });\n\n    test('for invalid number', () => {\n      expectActionIssue(action, baseIssue, [\n        'ID-0', // 1 digit\n        'ID-00', // 2 digits\n        'ID-0000', // 4 digits\n        'ID-00000', // 5 digits\n        'ID-A00', // letter\n        'ID-0A0', // letter\n        'ID-00A', // letter\n        'ID-a00', // letter\n        'ID-0a0', // letter\n        'ID-00a', // letter\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/regex/regex.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * Regex issue interface.\n */\nexport interface RegexIssue<TInput extends string> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'regex';\n  /**\n   * The expected input.\n   */\n  readonly expected: string;\n  /**\n   * The received input.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The regex pattern.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * Regex action interface.\n */\nexport interface RegexAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<RegexIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, RegexIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'regex';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof regex;\n  /**\n   * The expected property.\n   */\n  readonly expects: string;\n  /**\n   * The regex pattern.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a [regex](https://en.wikipedia.org/wiki/Regular_expression) validation action.\n *\n * Hint: Be careful with the global flag `g` in your regex pattern, as it can lead to unexpected results. See [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test#using_test_on_a_regex_with_the_global_flag) for more information.\n *\n * @param requirement The regex pattern.\n *\n * @returns A regex action.\n */\nexport function regex<TInput extends string>(\n  requirement: RegExp\n): RegexAction<TInput, undefined>;\n\n/**\n * Creates a [regex](https://en.wikipedia.org/wiki/Regular_expression) validation action.\n *\n * Hint: Be careful with the global flag `g` in your regex pattern, as it can lead to unexpected results. See [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test#using_test_on_a_regex_with_the_global_flag) for more information.\n *\n * @param requirement The regex pattern.\n * @param message The error message.\n *\n * @returns A regex action.\n */\nexport function regex<\n  TInput extends string,\n  const TMessage extends ErrorMessage<RegexIssue<TInput>> | undefined,\n>(requirement: RegExp, message: TMessage): RegexAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function regex(\n  requirement: RegExp,\n  message?: ErrorMessage<RegexIssue<string>>\n): RegexAction<string, ErrorMessage<RegexIssue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'regex',\n    reference: regex,\n    async: false,\n    expects: `${requirement}`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'format', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/returns/index.ts",
    "content": "export * from './returns.ts';\nexport * from './returnsAsync.ts';\n"
  },
  {
    "path": "library/src/actions/returns/returns.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport { number } from '../../schemas/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { returns, type ReturnsAction } from './returns.ts';\n\ndescribe('returns', () => {\n  type Input = (arg1: string, arg2: number, ...rest: boolean[]) => unknown;\n  const schema = number();\n  type Schema = typeof schema;\n  type Action = ReturnsAction<Input, Schema>;\n\n  test('should return action object', () => {\n    expectTypeOf(returns<Input, Schema>(schema)).toEqualTypeOf<Action>();\n  });\n\n  describe('should infer correct types', () => {\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<\n        (arg1: string, arg2: number, ...rest: boolean[]) => number\n      >();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<never>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/returns/returns.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { number } from '../../schemas/index.ts';\nimport { returns, type ReturnsAction } from './returns.ts';\n\ndescribe('returns', () => {\n  type Input = (arg1: unknown) => unknown;\n  const schema = number();\n  type Schema = typeof schema;\n  const action = returns(schema);\n\n  test('should return action object', () => {\n    expect(action).toStrictEqual({\n      kind: 'transformation',\n      type: 'returns',\n      reference: returns,\n      async: false,\n      schema,\n      '~run': expect.any(Function),\n    } satisfies ReturnsAction<Input, Schema>);\n  });\n\n  const func = (arg1: unknown) => arg1;\n  const dataset = action['~run']({ typed: true, value: func }, {});\n\n  test('should return new function', () => {\n    expect(dataset).toStrictEqual({\n      typed: true,\n      value: expect.any(Function),\n    });\n    expect(dataset.value).not.toBe(func);\n  });\n\n  test('should not throw error for valid returns', () => {\n    if (dataset.typed) {\n      expect(() => dataset.value(123)).not.toThrowError();\n      expect(dataset.value(123)).toBe(123);\n    }\n  });\n\n  test('should throw error for invalid returns', () => {\n    if (dataset.typed) {\n      expect(() => dataset.value('123')).toThrowError();\n      expect(() => dataset.value(123n)).toThrowError();\n      expect(() => dataset.value(null)).toThrowError();\n    }\n  });\n});\n"
  },
  {
    "path": "library/src/actions/returns/returns.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseTransformation,\n  InferOutput,\n} from '../../types/index.ts';\nimport { ValiError } from '../../utils/index.ts';\n\n/**\n * Returns action type.\n */\nexport interface ReturnsAction<\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  TInput extends (...args: any[]) => unknown,\n  TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n> extends BaseTransformation<\n    TInput,\n    (...args: Parameters<TInput>) => InferOutput<TSchema>,\n    never\n  > {\n  /**\n   * The action type.\n   */\n  readonly type: 'returns';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof returns;\n  /**\n   * The arguments schema.\n   */\n  readonly schema: TSchema;\n}\n\n/**\n * Creates a function return transformation action.\n *\n * @param schema The arguments schema.\n *\n * @returns An returns action.\n */\nexport function returns<\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  TInput extends (...args: any[]) => unknown,\n  TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n>(schema: TSchema): ReturnsAction<TInput, TSchema>;\n\n// @__NO_SIDE_EFFECTS__\nexport function returns(\n  schema: BaseSchema<unknown, unknown, BaseIssue<unknown>>\n): ReturnsAction<\n  (...args: unknown[]) => unknown,\n  BaseSchema<unknown, unknown, BaseIssue<unknown>>\n> {\n  return {\n    kind: 'transformation',\n    type: 'returns',\n    reference: returns,\n    async: false,\n    schema,\n    '~run'(dataset, config) {\n      const func = dataset.value;\n      dataset.value = (...args_) => {\n        const returnsDataset = this.schema['~run'](\n          { value: func(...args_) },\n          config\n        );\n        if (returnsDataset.issues) {\n          throw new ValiError(returnsDataset.issues);\n        }\n        return returnsDataset.value;\n      };\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/returns/returnsAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport { pipeAsync } from '../../methods/index.ts';\nimport { number } from '../../schemas/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { minValue } from '../minValue/index.ts';\nimport { type ReturnsActionAsync, returnsAsync } from './returnsAsync.ts';\n\ndescribe('returnsAsync', () => {\n  type Input = (\n    arg1: string,\n    arg2: number,\n    ...rest: boolean[]\n  ) => Promise<unknown>;\n  const schema = pipeAsync(number(), minValue(0));\n  type Schema = typeof schema;\n  type Action = ReturnsActionAsync<Input, Schema>;\n\n  test('should return action object', () => {\n    expectTypeOf(returnsAsync<Input, Schema>(schema)).toEqualTypeOf<Action>();\n  });\n\n  describe('should infer correct types', () => {\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<\n        (arg1: string, arg2: number, ...rest: boolean[]) => Promise<number>\n      >();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<never>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/returns/returnsAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { pipeAsync } from '../../methods/index.ts';\nimport { number } from '../../schemas/index.ts';\nimport { minValue } from '../minValue/index.ts';\nimport { type ReturnsActionAsync, returnsAsync } from './returnsAsync.ts';\n\ndescribe('returnsAsync', () => {\n  type Input = (arg1: unknown) => Promise<unknown>;\n  const schema = pipeAsync(number(), minValue(0));\n  type Schema = typeof schema;\n  const action = returnsAsync(schema);\n\n  test('should return action object', () => {\n    expect(action).toStrictEqual({\n      kind: 'transformation',\n      type: 'returns',\n      reference: returnsAsync,\n      async: false,\n      schema,\n      '~run': expect.any(Function),\n    } satisfies ReturnsActionAsync<Input, Schema>);\n  });\n\n  const func = async (arg1: unknown) => arg1;\n  const dataset = action['~run']({ typed: true, value: func }, {});\n\n  test('should return new function', () => {\n    expect(dataset).toStrictEqual({\n      typed: true,\n      value: expect.any(Function),\n    });\n    expect(dataset.value).not.toBe(func);\n  });\n\n  test('should not throw error for valid returnsAsync', async () => {\n    if (dataset.typed) {\n      await expect(dataset.value(123)).resolves.not.toThrowError();\n      expect(await dataset.value(123)).toBe(123);\n    }\n  });\n\n  test('should throw error for invalid returnsAsync', async () => {\n    if (dataset.typed) {\n      await expect(dataset.value(-123)).rejects.toThrowError();\n      await expect(dataset.value('123')).rejects.toThrowError();\n      await expect(dataset.value(123n)).rejects.toThrowError();\n      await expect(dataset.value(null)).rejects.toThrowError();\n    }\n  });\n});\n"
  },
  {
    "path": "library/src/actions/returns/returnsAsync.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  BaseTransformation,\n  InferOutput,\n  SuccessDataset,\n} from '../../types/index.ts';\nimport { ValiError } from '../../utils/index.ts';\n\n/**\n * Returns action async type.\n */\nexport interface ReturnsActionAsync<\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  TInput extends (...args: any[]) => unknown,\n  TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n> extends BaseTransformation<\n    TInput,\n    (...args: Parameters<TInput>) => Promise<Awaited<InferOutput<TSchema>>>,\n    never\n  > {\n  /**\n   * The action type.\n   */\n  readonly type: 'returns';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof returnsAsync;\n  /**\n   * The arguments schema.\n   */\n  readonly schema: TSchema;\n}\n\n/**\n * Creates a function arguments transformation action.\n *\n * @param schema The arguments schema.\n *\n * @returns An returns action.\n */\nexport function returnsAsync<\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  TInput extends (...args: any[]) => unknown,\n  TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(schema: TSchema): ReturnsActionAsync<TInput, TSchema>;\n\n// @__NO_SIDE_EFFECTS__\nexport function returnsAsync(\n  schema:\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n): ReturnsActionAsync<\n  (...args: unknown[]) => unknown,\n  | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n  | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n> {\n  return {\n    kind: 'transformation',\n    type: 'returns',\n    reference: returnsAsync,\n    async: false,\n    schema,\n    '~run'(dataset, config) {\n      const func = dataset.value;\n      dataset.value = async (...args_) => {\n        const returnsDataset = await this.schema['~run'](\n          { value: await func(...args_) },\n          config\n        );\n        if (returnsDataset.issues) {\n          throw new ValiError(returnsDataset.issues);\n        }\n        return returnsDataset.value;\n      };\n      return dataset as SuccessDataset<\n        (...args: unknown[]) => Promise<unknown>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/rfcEmail/index.ts",
    "content": "export * from './rfcEmail.ts';\n"
  },
  {
    "path": "library/src/actions/rfcEmail/rfcEmail.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type {} from '../email/email.ts';\nimport {\n  rfcEmail,\n  type RfcEmailAction,\n  type RfcEmailIssue,\n} from './rfcEmail.ts';\n\ndescribe('rfcEmail', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = RfcEmailAction<string, undefined>;\n      expectTypeOf(rfcEmail()).toEqualTypeOf<Action>();\n      expectTypeOf(rfcEmail(undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(rfcEmail('message')).toEqualTypeOf<\n        RfcEmailAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(rfcEmail(() => 'message')).toEqualTypeOf<\n        RfcEmailAction<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = RfcEmailAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<RfcEmailIssue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/rfcEmail/rfcEmail.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { RFC_EMAIL_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  rfcEmail,\n  type RfcEmailAction,\n  type RfcEmailIssue,\n} from './rfcEmail.ts';\n\ndescribe('rfcEmail', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<RfcEmailAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'rfc_email',\n      reference: rfcEmail,\n      expects: null,\n      requirement: RFC_EMAIL_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: RfcEmailAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(rfcEmail()).toStrictEqual(action);\n      expect(rfcEmail(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(rfcEmail('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies RfcEmailAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(rfcEmail(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies RfcEmailAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = rfcEmail();\n\n    // General tests\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for simple email', () => {\n      expectNoActionIssue(action, ['email@example.com']);\n    });\n\n    test('for very short email', () => {\n      expectNoActionIssue(action, ['a@b.cd']);\n    });\n\n    // Start of local part\n\n    test('for underscore in beginning of local part', () => {\n      expectNoActionIssue(action, ['_email@example.com']);\n    });\n\n    test('for hyphen in beginning of local part', () => {\n      expectNoActionIssue(action, ['-email@example.com']);\n    });\n\n    test('for plus in beginning of local part', () => {\n      expectNoActionIssue(action, ['+email@example.com']);\n    });\n\n    test('for dot in beginning of local part', () => {\n      expectNoActionIssue(action, ['.email@example.com']);\n    });\n\n    // End of local part\n\n    test('for underscore in end of local part', () => {\n      expectNoActionIssue(action, ['email_@example.com']);\n    });\n\n    test('for hyphen in end of local part', () => {\n      expectNoActionIssue(action, ['email-@example.com']);\n    });\n\n    test('for plus in end of local part', () => {\n      expectNoActionIssue(action, ['email+@example.com']);\n    });\n\n    test('for dot in end of local part', () => {\n      expectNoActionIssue(action, ['email.@example.com']);\n    });\n\n    // Middle of local part\n\n    test('for dot in local part', () => {\n      expectNoActionIssue(action, ['firstname.lastname@example.com']);\n    });\n\n    test('for two following dots in local part', () => {\n      expectNoActionIssue(action, ['email..email@example.com']);\n    });\n\n    test('for underscore in local part', () => {\n      expectNoActionIssue(action, ['firstname_lastname@example.com']);\n    });\n\n    test('for hyphen in local part', () => {\n      expectNoActionIssue(action, ['firstname-lastname@example.com']);\n    });\n\n    test('for plus in local part', () => {\n      expectNoActionIssue(action, ['firstname+lastname@example.com']);\n    });\n\n    // Special local parts\n\n    test('for numerical local part', () => {\n      expectNoActionIssue(action, ['1234567890@example.com']);\n    });\n\n    test('for underscore local part', () => {\n      expectNoActionIssue(action, ['_______@example.com']);\n    });\n\n    test('for special chars in local part', () => {\n      expectNoActionIssue(action, ['#$&%@example.com']);\n    });\n\n    // Domain part variations\n\n    test('for hyphen in domain part', () => {\n      expectNoActionIssue(action, ['email@example-domain.com']);\n    });\n\n    test('for domain with subdomain', () => {\n      expectNoActionIssue(action, ['email@subdomain.example.com']);\n    });\n\n    test('for subdomain and hyphen in domain', () => {\n      expectNoActionIssue(action, ['email@subdomain.example-domain.com']);\n    });\n\n    test('for long top level domain', () => {\n      expectNoActionIssue(action, ['email@example.technology']);\n    });\n\n    test('for country code TLD', () => {\n      expectNoActionIssue(action, ['email@example.co.uk']);\n    });\n\n    test('for subdomain and country code TLD', () => {\n      expectNoActionIssue(action, ['email@subdomain.example.co.uk']);\n    });\n\n    test('for numerical domain', () => {\n      expectNoActionIssue(action, ['email@123.com']);\n    });\n\n    test('for punycode domain', () => {\n      expectNoActionIssue(action, ['email@xn--exmple-cua.com']);\n    });\n\n    test('for punycode TLD', () => {\n      expectNoActionIssue(action, ['email@example.xn--6frz82g']);\n    });\n\n    test('for numerical TLD', () => {\n      expectNoActionIssue(action, ['email@example.123']);\n    });\n\n    test('for single char TLD', () => {\n      expectNoActionIssue(action, ['email@example.a']);\n    });\n\n    test('for missing TLD', () => {\n      expectNoActionIssue(action, ['email@example']);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = rfcEmail('message');\n    const baseIssue: Omit<RfcEmailIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'rfc_email',\n      expected: null,\n      message: 'message',\n      requirement: RFC_EMAIL_REGEX,\n    };\n\n    // General tests\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for simple strings', () => {\n      expectActionIssue(action, baseIssue, ['email', 'emailexamplecom']);\n    });\n\n    test('for email with spaces', () => {\n      expectActionIssue(action, baseIssue, [\n        ' email@example.com',\n        'e mail@example.com',\n        'email @example.com',\n        'email@ example.com',\n        'email@exa mple.com',\n        'email@example. com',\n        'email@example.com ',\n      ]);\n    });\n\n    // Missing parts\n\n    test('for missing local part', () => {\n      expectActionIssue(action, baseIssue, ['@example.com']);\n    });\n\n    test('for missing @ symbol', () => {\n      expectActionIssue(action, baseIssue, [\n        'example.com',\n        'email.example.com',\n      ]);\n    });\n\n    test('for missing domain part', () => {\n      expectActionIssue(action, baseIssue, ['email@']);\n    });\n\n    test('for missing domain name', () => {\n      expectActionIssue(action, baseIssue, ['email@.com']);\n    });\n\n    // Invalid repeated chars\n\n    test('for two following @ symbols', () => {\n      expectActionIssue(action, baseIssue, ['email@@example.com']);\n    });\n\n    test('for dot in end of domain name', () => {\n      expectActionIssue(action, baseIssue, ['email@example..com']);\n    });\n\n    // Beginning and end of domain part\n\n    test('for underscore in beginning of domain part', () => {\n      expectActionIssue(action, baseIssue, ['email@_example.com']);\n    });\n\n    test('for hypen in beginning of domain part', () => {\n      expectActionIssue(action, baseIssue, ['email@-example.com']);\n    });\n\n    test('for plus in beginning of domain part', () => {\n      expectActionIssue(action, baseIssue, ['email@+example.com']);\n    });\n\n    test('for dot in beginning of domain part', () => {\n      expectActionIssue(action, baseIssue, ['email@.example.com']);\n    });\n\n    test('for underscore in end of domain name', () => {\n      expectActionIssue(action, baseIssue, ['email@example_.com']);\n    });\n\n    test('for hypen in end of domain name', () => {\n      expectActionIssue(action, baseIssue, ['email@example-.com']);\n    });\n\n    test('for plus in end of domain name', () => {\n      expectActionIssue(action, baseIssue, ['email@example+.com']);\n    });\n\n    // Other special cases\n\n    test('for repeated domain part', () => {\n      expectActionIssue(action, baseIssue, ['email@example@example.com']);\n    });\n\n    test('for special chars in domain part', () => {\n      expectActionIssue(action, baseIssue, [\n        'email@#$&%.com',\n        'email@example.#$&%',\n      ]);\n    });\n\n    test('for non ASCII chars', () => {\n      expectActionIssue(action, baseIssue, [\n        'あいうえお@example.com',\n        'email@あいうえお.com',\n        'email@example.あいう',\n      ]);\n    });\n\n    test('for email username', () => {\n      expectActionIssue(action, baseIssue, [\n        'Joe Smith <email@example.com>',\n        'email@example.com (Joe Smith)',\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/rfcEmail/rfcEmail.ts",
    "content": "import { RFC_EMAIL_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * RFC email issue interface.\n */\nexport interface RfcEmailIssue<TInput extends string>\n  extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'rfc_email';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The RFC email regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * RFC email action interface.\n */\nexport interface RfcEmailAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<RfcEmailIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, RfcEmailIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'rfc_email';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof rfcEmail;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The RFC email regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a [RFC email](https://datatracker.ietf.org/doc/html/rfc5322#section-3.4.1)\n * validation action.\n *\n * Hint: This validation action intentionally validates the entire RFC 5322\n * specification. If you are interested in an action that only covers common\n * email addresses, please use the `email` action instead.\n *\n * @returns A RFC email action.\n */\nexport function rfcEmail<TInput extends string>(): RfcEmailAction<\n  TInput,\n  undefined\n>;\n\n/**\n * Creates a [RFC email](https://datatracker.ietf.org/doc/html/rfc5322#section-3.4.1)\n * validation action.\n *\n * Hint: This validation action intentionally validates the entire RFC 5322\n * specification. If you are interested in an action that only covers common\n * email addresses, please use the `email` action instead.\n *\n * @param message The error message.\n *\n * @returns A RFC email action.\n */\nexport function rfcEmail<\n  TInput extends string,\n  const TMessage extends ErrorMessage<RfcEmailIssue<TInput>> | undefined,\n>(message: TMessage): RfcEmailAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function rfcEmail(\n  message?: ErrorMessage<RfcEmailIssue<string>>\n): RfcEmailAction<string, ErrorMessage<RfcEmailIssue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'rfc_email',\n    reference: rfcEmail,\n    expects: null,\n    async: false,\n    requirement: RFC_EMAIL_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'email', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/safeInteger/index.ts",
    "content": "export * from './safeInteger.ts';\n"
  },
  {
    "path": "library/src/actions/safeInteger/safeInteger.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  safeInteger,\n  type SafeIntegerAction,\n  type SafeIntegerIssue,\n} from './safeInteger.ts';\n\ndescribe('safeInteger', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = SafeIntegerAction<number, undefined>;\n      expectTypeOf(safeInteger()).toEqualTypeOf<Action>();\n      expectTypeOf(safeInteger(undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(safeInteger('message')).toEqualTypeOf<\n        SafeIntegerAction<number, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(safeInteger(() => 'message')).toEqualTypeOf<\n        SafeIntegerAction<number, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = SafeIntegerAction<number, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        SafeIntegerIssue<number>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/safeInteger/safeInteger.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { NumberIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  safeInteger,\n  type SafeIntegerAction,\n  type SafeIntegerIssue,\n} from './safeInteger.ts';\n\ndescribe('safeInteger', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<SafeIntegerAction<number, never>, 'message'> = {\n      kind: 'validation',\n      type: 'safe_integer',\n      reference: safeInteger,\n      expects: null,\n      requirement: expect.any(Function),\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: SafeIntegerAction<number, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(safeInteger()).toStrictEqual(action);\n      expect(safeInteger(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(safeInteger('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies SafeIntegerAction<number, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(safeInteger(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies SafeIntegerAction<number, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = safeInteger();\n\n    test('for untyped inputs', () => {\n      const issues: [NumberIssue] = [\n        {\n          kind: 'schema',\n          type: 'number',\n          input: null,\n          expected: 'number',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for safe integer numbers', () => {\n      expectNoActionIssue(action, [\n        0,\n        123456789,\n        -123456789,\n        Number.MAX_SAFE_INTEGER,\n        Number.MIN_SAFE_INTEGER,\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = safeInteger('message');\n    const baseIssue: Omit<SafeIntegerIssue<number>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'safe_integer',\n      expected: null,\n      message: 'message',\n      requirement: expect.any(Function),\n    };\n\n    test('for unsafe integer numbers', () => {\n      expectActionIssue(action, baseIssue, [\n        Number.MAX_VALUE,\n        Number.MIN_VALUE,\n        Number.MAX_SAFE_INTEGER + 1,\n        Number.MIN_SAFE_INTEGER - 1,\n      ]);\n    });\n\n    test('for floating point numbers', () => {\n      expectActionIssue(action, baseIssue, [0.1, 12.34, -1 / 3, Math.PI]);\n    });\n\n    test('for infinite numbers', () => {\n      expectActionIssue(action, baseIssue, [Infinity, -Infinity]);\n    });\n\n    test('for not a number', () => {\n      expectActionIssue(action, baseIssue, [NaN]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/safeInteger/safeInteger.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * Safe integer issue interface.\n */\nexport interface SafeIntegerIssue<TInput extends number>\n  extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'safe_integer';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `${number}`;\n  /**\n   * The validation function.\n   */\n  readonly requirement: (input: number) => boolean;\n}\n\n/**\n * Safe integer action interface.\n */\nexport interface SafeIntegerAction<\n  TInput extends number,\n  TMessage extends ErrorMessage<SafeIntegerIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, SafeIntegerIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'safe_integer';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof safeInteger;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The validation function.\n   */\n  readonly requirement: (input: number) => boolean;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a safe integer validation action.\n *\n * @returns A safe integer action.\n */\nexport function safeInteger<TInput extends number>(): SafeIntegerAction<\n  TInput,\n  undefined\n>;\n\n/**\n * Creates a safe integer validation action.\n *\n * @param message The error message.\n *\n * @returns A safe integer action.\n */\nexport function safeInteger<\n  TInput extends number,\n  const TMessage extends ErrorMessage<SafeIntegerIssue<TInput>> | undefined,\n>(message: TMessage): SafeIntegerAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function safeInteger(\n  message?: ErrorMessage<SafeIntegerIssue<number>>\n): SafeIntegerAction<\n  number,\n  ErrorMessage<SafeIntegerIssue<number>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'safe_integer',\n    reference: safeInteger,\n    async: false,\n    expects: null,\n    requirement: Number.isSafeInteger,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement(dataset.value)) {\n        _addIssue(this, 'safe integer', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/size/index.ts",
    "content": "export * from './size.ts';\n"
  },
  {
    "path": "library/src/actions/size/size.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { size, type SizeAction, type SizeIssue } from './size.ts';\n\ndescribe('size', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = SizeAction<Blob, 10, undefined>;\n      expectTypeOf(size<Blob, 10>(10)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        size<Blob, 10, undefined>(10, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(size<Blob, 10, 'message'>(10, 'message')).toEqualTypeOf<\n        SizeAction<Blob, 10, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        size<Blob, 10, () => string>(10, () => 'message')\n      ).toEqualTypeOf<SizeAction<Blob, 10, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = SizeAction<Map<string, number>, 10, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Map<string, number>>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Map<string, number>>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        SizeIssue<Map<string, number>, 10>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/size/size.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { MapIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { size, type SizeAction, type SizeIssue } from './size.ts';\n\ndescribe('size', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<SizeAction<Blob, 5, never>, 'message'> = {\n      kind: 'validation',\n      type: 'size',\n      reference: size,\n      expects: '5',\n      requirement: 5,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: SizeAction<Blob, 5, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(size(5)).toStrictEqual(action);\n      expect(size(5, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(size(5, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies SizeAction<Blob, 5, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(size(5, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies SizeAction<Blob, 5, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = size(3);\n\n    test('for untyped inputs', () => {\n      const issues: [MapIssue] = [\n        {\n          kind: 'schema',\n          type: 'map',\n          input: null,\n          expected: 'Map',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid maps', () => {\n      expectNoActionIssue(action, [\n        new Map([\n          [1, 'one'],\n          [2, 'two'],\n          [3, 'three'],\n        ]),\n        new Map([\n          [' ', 'space'],\n          ['\\n', 'new-line'],\n          ['\\t', 'tab'],\n        ]),\n        new Map<string, string | number>([\n          ['one', 1],\n          ['two', '2'],\n          ['three', 3],\n        ]),\n        new Map<string | number | boolean, string | null>([\n          ['1', 'one'],\n          [2, null],\n          [true, null],\n        ]),\n      ]);\n    });\n\n    test('for valid sets', () => {\n      expectNoActionIssue(action, [\n        new Set([1, 2, 3]),\n        new Set('123'),\n        new Set([' ', '\\n', '\\t']),\n        new Set([[1, 2, 3, 4], [5, 6], [7]]),\n        new Set([1, 'two', null]),\n        new Set(['1', { value: '5' }, null]),\n      ]);\n    });\n\n    test('for valid blobs', () => {\n      expectNoActionIssue(action, [\n        new Blob(['bot']),\n        new Blob(['✨']),\n        new Blob([' \\t\\n']),\n        new Blob(['1', '2', '3'], { type: 'text/plain' }),\n        new Blob(\n          [\n            new Uint8Array([104, 105]), // 'hi'\n            new Blob(['!'], { type: 'text/plain' }),\n          ],\n          { type: 'text/plain' }\n        ),\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = size(3, 'message');\n    const baseIssue: Omit<\n      SizeIssue<Map<number, string>, 3>,\n      'input' | 'received'\n    > = {\n      kind: 'validation',\n      type: 'size',\n      expected: '3',\n      message: 'message',\n      requirement: 3,\n    };\n\n    test('for invalid maps', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [\n          new Map(),\n          new Map([[1, 'one']]),\n          new Map([\n            ['one', 1],\n            ['two', null],\n          ]),\n          new Map<string | number, string | null>([\n            [1, 'one'],\n            [2, 'two'],\n            ['3', 'three'],\n            [4, null],\n          ]),\n        ],\n        (value) => `${value.size}`\n      );\n    });\n\n    test('for invalid sets', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [\n          new Set(),\n          new Set([1]),\n          new Set(['one', null]),\n          new Set('1234'),\n          new Set([[1, 2, 3, 4], [5, 6], [7], [8, 9]]),\n        ],\n        (value) => `${value.size}`\n      );\n    });\n\n    test('for invalid blobs', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [\n          new Blob([]),\n          new Blob(['']),\n          new Blob([' ']),\n          new Blob(['1']),\n          new Blob(['hi'], { type: 'text/plain' }),\n          new Blob([new Uint8Array([72, 105])]), // 'Hi'\n          new Blob(['  \\t\\n']),\n          new Blob([new Uint8Array([104, 105, 33, 33])]), // 'hi!!'\n          new Blob(['🤖']),\n          new Blob(['🤖😍']),\n        ],\n        (value) => `${value.size}`\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/size/size.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\nimport type { SizeInput } from '../types.ts';\n\n/**\n * Size issue interface.\n */\nexport interface SizeIssue<\n  TInput extends SizeInput,\n  TRequirement extends number,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'size';\n  /**\n   * The expected property.\n   */\n  readonly expected: `${TRequirement}`;\n  /**\n   * The received property.\n   */\n  readonly received: `${number}`;\n  /**\n   * The required size.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Size action interface.\n */\nexport interface SizeAction<\n  TInput extends SizeInput,\n  TRequirement extends number,\n  TMessage extends ErrorMessage<SizeIssue<TInput, TRequirement>> | undefined,\n> extends BaseValidation<TInput, TInput, SizeIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'size';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof size;\n  /**\n   * The expected property.\n   */\n  readonly expects: `${TRequirement}`;\n  /**\n   * The required size.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a size validation action.\n *\n * @param requirement The required size.\n *\n * @returns A size action.\n */\nexport function size<\n  TInput extends SizeInput,\n  const TRequirement extends number,\n>(requirement: TRequirement): SizeAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a size validation action.\n *\n * @param requirement The required size.\n * @param message The error message.\n *\n * @returns A size action.\n */\nexport function size<\n  TInput extends SizeInput,\n  const TRequirement extends number,\n  const TMessage extends\n    | ErrorMessage<SizeIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): SizeAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function size(\n  requirement: number,\n  message?: ErrorMessage<SizeIssue<SizeInput, number>>\n): SizeAction<\n  SizeInput,\n  number,\n  ErrorMessage<SizeIssue<SizeInput, number>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'size',\n    reference: size,\n    async: false,\n    expects: `${requirement}`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && dataset.value.size !== this.requirement) {\n        _addIssue(this, 'size', dataset, config, {\n          received: `${dataset.value.size}`,\n        });\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/slug/index.ts",
    "content": "export * from './slug.ts';\n"
  },
  {
    "path": "library/src/actions/slug/slug.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { slug, type SlugAction, type SlugIssue } from './slug.ts';\n\ndescribe('slug', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = SlugAction<string, undefined>;\n      expectTypeOf(slug()).toEqualTypeOf<Action>();\n      expectTypeOf(slug(undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(slug('message')).toEqualTypeOf<\n        SlugAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(slug(() => 'message')).toEqualTypeOf<\n        SlugAction<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = SlugAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<SlugIssue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/slug/slug.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { SLUG_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { slug, type SlugAction, type SlugIssue } from './slug.ts';\n\ndescribe('slug', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<SlugAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'slug',\n      reference: slug,\n      expects: null,\n      requirement: SLUG_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: SlugAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(slug()).toStrictEqual(action);\n      expect(slug(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(slug('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies SlugAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(slug(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies SlugAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = slug();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid single word', () => {\n      expectNoActionIssue(action, [\n        'a',\n        'z',\n        '0',\n        '9',\n        'az',\n        '09',\n        '120',\n        'abc129',\n        '968foo',\n        'foo135bar',\n        '357ace642',\n        'collection',\n      ]);\n    });\n\n    test('for valid separated words', () => {\n      expectNoActionIssue(action, [\n        'a-a',\n        'a_a',\n        'z-z',\n        'z_z',\n        '0-0',\n        '0_0',\n        '9-9',\n        '9_9',\n        'az-az',\n        'az_az',\n        '09-09',\n        '09_09',\n        '120-120',\n        '120_120',\n        'abc129-abc129',\n        'abc129_abc129',\n        '968foo-968foo',\n        '968foo_968foo',\n        'foo135bar-foo135bar',\n        'foo135bar_foo135bar',\n        '357ace642-357ace642',\n        '357ace642_357ace642',\n        'this-that-other-outre-collection',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = slug('message');\n    const baseIssue: Omit<SlugIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'slug',\n      expected: null,\n      message: 'message',\n      requirement: SLUG_REGEX,\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for strings with invalid chars', () => {\n      expectActionIssue(action, baseIssue, [\n        // rfc3986 valid characters\n        'A',\n        'Z',\n        '.',\n        '~',\n        // rfc3986 reserved characters\n        ':',\n        '/',\n        '?',\n        '#',\n        '[',\n        ']',\n        '@',\n        '!',\n        '$',\n        '&',\n        \"'\",\n        '(',\n        ')',\n        '*',\n        '+',\n        ',',\n        ';',\n        '=',\n        // characters that occupy more than one byte\n        'é',\n        '❤️',\n        // URL-encoded\n        '%40', // '@'\n        '%20', // ' '\n        '%2F%C3%A9', // 'é'\n        // strings containing at least one invalid character\n        'helloWorld',\n        'café',\n        // regex specific tests\n        'a-A',\n        'a-Z',\n        'a-.',\n        'a-~',\n        'a-:',\n        'a-/',\n        'a-?',\n        'a-#',\n        'a-[',\n        'a-]',\n        'a-@',\n        'a-!',\n        'a-$',\n        'a-&',\n        \"a-'\",\n        'a-(',\n        'a-)',\n        'a-*',\n        'a-+',\n        'a-,',\n        'a-;',\n        'a-=',\n        'a-é',\n        'a-❤️',\n        'a-%40',\n        'a-%20',\n        'a-%2F%C3%A9',\n      ]);\n    });\n\n    test('for invalid separators', () => {\n      expectActionIssue(action, baseIssue, [\n        'hello world',\n        'hello+world',\n        'hello%20world',\n        // consecutive valid separator characters\n        'hello--world',\n        'hello__world',\n        'hello-_world',\n        'hello_-world',\n      ]);\n    });\n\n    test('for separators at start or end', () => {\n      expectActionIssue(action, baseIssue, [\n        '-hello',\n        '_hello',\n        '-123',\n        '_123',\n        'hello-',\n        'hello_',\n        '123-',\n        '123_',\n        '-hello-',\n        '_hello_',\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/slug/slug.ts",
    "content": "import { SLUG_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * Slug issue type.\n */\nexport interface SlugIssue<TInput extends string> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'slug';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The slug regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * Slug action type.\n */\nexport interface SlugAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<SlugIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, SlugIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'slug';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof slug;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The slug regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a [slug](https://en.wikipedia.org/wiki/Clean_URL#Slug) validation action.\n *\n * @returns A slug action.\n */\nexport function slug<TInput extends string>(): SlugAction<TInput, undefined>;\n\n/**\n * Creates a [slug](https://en.wikipedia.org/wiki/Clean_URL#Slug) validation action.\n *\n * @param message The error message.\n *\n * @returns A slug action.\n */\nexport function slug<\n  TInput extends string,\n  const TMessage extends ErrorMessage<SlugIssue<TInput>> | undefined,\n>(message: TMessage): SlugAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function slug(\n  message?: ErrorMessage<SlugIssue<string>>\n): SlugAction<string, ErrorMessage<SlugIssue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'slug',\n    reference: slug,\n    async: false,\n    expects: null,\n    requirement: SLUG_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'slug', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/someItem/index.ts",
    "content": "export * from './someItem.ts';\n"
  },
  {
    "path": "library/src/actions/someItem/someItem.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  someItem,\n  type SomeItemAction,\n  type SomeItemIssue,\n} from './someItem.ts';\n\ndescribe('someItem', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = SomeItemAction<string[], undefined>;\n      expectTypeOf(\n        someItem<string[]>((item: string) => Boolean(item))\n      ).toEqualTypeOf<Action>();\n      expectTypeOf(\n        someItem<string[], undefined>(\n          (item: string) => Boolean(item),\n          undefined\n        )\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        someItem<string[], 'message'>(\n          (item: string) => Boolean(item),\n          'message'\n        )\n      ).toEqualTypeOf<SomeItemAction<string[], 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        someItem<string[], () => string>(\n          (item: string) => Boolean(item),\n          () => 'message'\n        )\n      ).toEqualTypeOf<SomeItemAction<string[], () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Input = ['foo', 123, true];\n    type Action = SomeItemAction<Input, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<SomeItemIssue<Input>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/someItem/someItem.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { ArrayIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  someItem,\n  type SomeItemAction,\n  type SomeItemIssue,\n} from './someItem.ts';\n\ndescribe('someItem', () => {\n  describe('should return action object', () => {\n    const requirement = (item: string) => item.startsWith('DE');\n    const baseAction: Omit<SomeItemAction<string[], never>, 'message'> = {\n      kind: 'validation',\n      type: 'some_item',\n      reference: someItem,\n      expects: null,\n      requirement,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: SomeItemAction<string[], undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(someItem<string[]>(requirement)).toStrictEqual(action);\n      expect(\n        someItem<string[], undefined>(requirement, undefined)\n      ).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      const message = 'message';\n      expect(someItem<string[], 'message'>(requirement, message)).toStrictEqual(\n        {\n          ...baseAction,\n          message,\n        } satisfies SomeItemAction<string[], 'message'>\n      );\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(\n        someItem<string[], typeof message>(requirement, message)\n      ).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies SomeItemAction<string[], typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = someItem<number[]>((item: number) => item > 9);\n\n    test('for untyped inputs', () => {\n      const issues: [ArrayIssue] = [\n        {\n          kind: 'schema',\n          type: 'array',\n          input: null,\n          expected: 'Array',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid typed inputs', () => {\n      expectNoActionIssue(action, [\n        [10],\n        [-1, 10],\n        [10, 11, 12],\n        [1, 2, 3, 4, 99, 6],\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const requirement = (item: number) => item > 9;\n    const action = someItem<number[], 'message'>(requirement, 'message');\n\n    const baseIssue: Omit<SomeItemIssue<number[]>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'some_item',\n      expected: null,\n      message: 'message',\n      requirement,\n    };\n\n    test('for empty array', () => {\n      expectActionIssue(action, baseIssue, [[]]);\n    });\n\n    test('for invalid typed inputs', () => {\n      expectActionIssue(action, baseIssue, [\n        [9],\n        [7, 8, 9],\n        [-1, 0, 1, 2, 3, 4],\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/someItem/someItem.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\nimport type { ArrayInput, ArrayRequirement } from '../types.ts';\n\n/**\n * Some item issue interface.\n */\nexport interface SomeItemIssue<TInput extends ArrayInput>\n  extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'some_item';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The validation function.\n   */\n  readonly requirement: ArrayRequirement<TInput>;\n}\n\n/**\n * Some item action interface.\n */\nexport interface SomeItemAction<\n  TInput extends ArrayInput,\n  TMessage extends ErrorMessage<SomeItemIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, SomeItemIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'some_item';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof someItem;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The validation function.\n   */\n  readonly requirement: ArrayRequirement<TInput>;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a some item validation action.\n *\n * @param requirement The validation function.\n *\n * @returns A some item action.\n */\nexport function someItem<TInput extends ArrayInput>(\n  requirement: ArrayRequirement<TInput>\n): SomeItemAction<TInput, undefined>;\n\n/**\n * Creates a some item validation action.\n *\n * @param requirement The validation function.\n * @param message The error message.\n *\n * @returns A some item action.\n */\nexport function someItem<\n  TInput extends ArrayInput,\n  const TMessage extends ErrorMessage<SomeItemIssue<TInput>> | undefined,\n>(\n  requirement: ArrayRequirement<TInput>,\n  message: TMessage\n): SomeItemAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function someItem(\n  requirement: ArrayRequirement<unknown[]>,\n  message?: ErrorMessage<SomeItemIssue<unknown[]>>\n): SomeItemAction<\n  unknown[],\n  ErrorMessage<SomeItemIssue<unknown[]>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'some_item',\n    reference: someItem,\n    async: false,\n    expects: null,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !dataset.value.some(this.requirement)) {\n        _addIssue(this, 'item', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/sortItems/index.ts",
    "content": "export * from './sortItems.ts';\n"
  },
  {
    "path": "library/src/actions/sortItems/sortItems.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { sortItems, type SortItemsAction } from './sortItems.ts';\n\ndescribe('sortItems', () => {\n  test('should return action object', () => {\n    expectTypeOf(\n      sortItems<number[]>((itemA, itemB) =>\n        itemA > itemB ? 1 : itemA < itemB ? -1 : 0\n      )\n    ).toEqualTypeOf<SortItemsAction<number[]>>();\n  });\n\n  describe('should infer correct types', () => {\n    type Input = (string | number)[];\n    type Action = SortItemsAction<Input>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<never>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/sortItems/sortItems.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { sortItems, type SortItemsAction } from './sortItems.ts';\n\ndescribe('sortItems', () => {\n  const operation = (itemA: number, itemB: number) =>\n    itemA > itemB ? 1 : itemA < itemB ? -1 : 0;\n  const action = sortItems<number[]>(operation);\n\n  test('should return action object', () => {\n    expect(action).toStrictEqual({\n      kind: 'transformation',\n      type: 'sort_items',\n      reference: sortItems,\n      async: false,\n      operation,\n      '~run': expect.any(Function),\n    } satisfies SortItemsAction<number[]>);\n  });\n\n  test('should transform input', () => {\n    expect(\n      action['~run']({ typed: true, value: [9, -12, 345, 0, 999] }, {})\n    ).toStrictEqual({\n      typed: true,\n      value: [-12, 0, 9, 345, 999],\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/sortItems/sortItems.ts",
    "content": "import type { BaseTransformation } from '../../types/index.ts';\nimport type { ArrayInput } from '../types.ts';\n\n/**\n * Array action type.\n */\ntype ArrayAction<TInput extends ArrayInput> = (\n  itemA: TInput[number],\n  itemB: TInput[number]\n) => number;\n\n/**\n * Sort items action interface.\n */\nexport interface SortItemsAction<TInput extends ArrayInput>\n  extends BaseTransformation<TInput, TInput, never> {\n  /**\n   * The action type.\n   */\n  readonly type: 'sort_items';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof sortItems;\n  /**\n   * The sort items operation.\n   */\n  readonly operation: ArrayAction<TInput> | undefined;\n}\n\n/**\n * Creates a sort items transformation action.\n *\n * @param operation The sort items operation.\n *\n * @returns A sort items action.\n */\nexport function sortItems<TInput extends ArrayInput>(\n  operation?: ArrayAction<TInput>\n): SortItemsAction<TInput>;\n\n// @__NO_SIDE_EFFECTS__\nexport function sortItems(\n  operation?: ArrayAction<unknown[]>\n): SortItemsAction<unknown[]> {\n  return {\n    kind: 'transformation',\n    type: 'sort_items',\n    reference: sortItems,\n    async: false,\n    operation,\n    '~run'(dataset) {\n      dataset.value = dataset.value.sort(this.operation);\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/startsWith/index.ts",
    "content": "export * from './startsWith.ts';\n"
  },
  {
    "path": "library/src/actions/startsWith/startsWith.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  startsWith,\n  type StartsWithAction,\n  type StartsWithIssue,\n} from './startsWith.ts';\n\ndescribe('startsWith', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = StartsWithAction<string, 'foo', undefined>;\n      expectTypeOf(startsWith<string, 'foo'>('foo')).toEqualTypeOf<Action>();\n      expectTypeOf(\n        startsWith<string, 'foo', undefined>('foo', undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        startsWith<string, 'foo', 'message'>('foo', 'message')\n      ).toEqualTypeOf<StartsWithAction<string, 'foo', 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        startsWith<string, 'foo', () => string>('foo', () => 'message')\n      ).toEqualTypeOf<StartsWithAction<string, 'foo', () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = StartsWithAction<string, 'foo', undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        StartsWithIssue<string, 'foo'>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/startsWith/startsWith.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport {\n  startsWith,\n  type StartsWithAction,\n  type StartsWithIssue,\n} from './startsWith.ts';\n\ndescribe('startsWith', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<\n      StartsWithAction<string, 'abc', never>,\n      'message'\n    > = {\n      kind: 'validation',\n      type: 'starts_with',\n      reference: startsWith,\n      expects: '\"abc\"',\n      requirement: 'abc',\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: StartsWithAction<string, 'abc', undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(startsWith('abc')).toStrictEqual(action);\n      expect(startsWith('abc', undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(startsWith('abc', 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies StartsWithAction<string, 'abc', string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(startsWith('abc', message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies StartsWithAction<string, 'abc', typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = startsWith('abc');\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid inputs', () => {\n      expectNoActionIssue(action, ['abc', 'abcdef', 'abc123', 'abc123def']);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = startsWith('abc', 'message');\n    const baseIssue: Omit<\n      StartsWithIssue<string, 'abc'>,\n      'input' | 'received'\n    > = {\n      kind: 'validation',\n      type: 'starts_with',\n      expected: '\"abc\"',\n      message: 'message',\n      requirement: 'abc',\n    };\n\n    test('for invalid inputs', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [\n          '',\n          'a',\n          'ab',\n          ' abc',\n          'Abc',\n          'a123',\n          'ab123',\n          'abdef',\n          'aabc',\n          'zabc',\n          'zabcdef',\n        ],\n        (value) => `\"${value.slice(0, 'abc'.length)}\"`\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/startsWith/startsWith.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * Starts with issue interface.\n */\nexport interface StartsWithIssue<\n  TInput extends string,\n  TRequirement extends string,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'starts_with';\n  /**\n   * The expected property.\n   */\n  readonly expected: `\"${TRequirement}\"`;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The start string.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Starts with action interface.\n */\nexport interface StartsWithAction<\n  TInput extends string,\n  TRequirement extends string,\n  TMessage extends\n    | ErrorMessage<StartsWithIssue<TInput, TRequirement>>\n    | undefined,\n> extends BaseValidation<\n    TInput,\n    TInput,\n    StartsWithIssue<TInput, TRequirement>\n  > {\n  /**\n   * The action type.\n   */\n  readonly type: 'starts_with';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof startsWith;\n  /**\n   * The expected property.\n   */\n  readonly expects: `\"${TRequirement}\"`;\n  /**\n   * The start string.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a starts with validation action.\n *\n * @param requirement The start string.\n *\n * @returns A starts with action.\n */\nexport function startsWith<\n  TInput extends string,\n  const TRequirement extends string,\n>(requirement: TRequirement): StartsWithAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a starts with validation action.\n *\n * @param requirement The start string.\n * @param message The error message.\n *\n * @returns A starts with action.\n */\nexport function startsWith<\n  TInput extends string,\n  const TRequirement extends string,\n  const TMessage extends\n    | ErrorMessage<StartsWithIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): StartsWithAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function startsWith(\n  requirement: string,\n  message?: ErrorMessage<StartsWithIssue<string, string>>\n): StartsWithAction<\n  string,\n  string,\n  ErrorMessage<StartsWithIssue<string, string>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'starts_with',\n    reference: startsWith,\n    async: false,\n    expects: `\"${requirement}\"`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !dataset.value.startsWith(this.requirement)) {\n        _addIssue(this, 'start', dataset, config, {\n          received: `\"${dataset.value.slice(0, this.requirement.length)}\"`,\n        });\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/stringifyJson/index.ts",
    "content": "export * from './stringifyJson.ts';\n"
  },
  {
    "path": "library/src/actions/stringifyJson/stringifyJson.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  stringifyJson,\n  type StringifyJsonAction,\n  type StringifyJsonConfig,\n  type StringifyJsonIssue,\n} from './stringifyJson.ts';\n\ndescribe('stringifyJson', () => {\n  describe('should return action object', () => {\n    const config: StringifyJsonConfig = {\n      replacer: (key, value) => value,\n    };\n\n    test('with undefined config and undefined message', () => {\n      type Action = StringifyJsonAction<unknown, undefined, undefined>;\n      expectTypeOf(stringifyJson()).toEqualTypeOf<Action>();\n      expectTypeOf(stringifyJson(undefined)).toEqualTypeOf<Action>();\n      expectTypeOf(stringifyJson(undefined, undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with undefined config and string message', () => {\n      expectTypeOf(stringifyJson(undefined, 'message')).toEqualTypeOf<\n        StringifyJsonAction<unknown, undefined, 'message'>\n      >();\n    });\n\n    test('with undefined config and function message', () => {\n      expectTypeOf(stringifyJson(undefined, () => 'message')).toEqualTypeOf<\n        StringifyJsonAction<unknown, undefined, () => string>\n      >();\n    });\n\n    test('with config and undefined message', () => {\n      type Action = StringifyJsonAction<\n        unknown,\n        StringifyJsonConfig,\n        undefined\n      >;\n      expectTypeOf(stringifyJson(config)).toEqualTypeOf<Action>();\n      expectTypeOf(stringifyJson(config, undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with config and string message', () => {\n      expectTypeOf(stringifyJson(config, 'message')).toEqualTypeOf<\n        StringifyJsonAction<unknown, StringifyJsonConfig, 'message'>\n      >();\n    });\n\n    test('with config and function message', () => {\n      expectTypeOf(stringifyJson(config, () => 'message')).toEqualTypeOf<\n        StringifyJsonAction<unknown, StringifyJsonConfig, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n    type Input = { foo: string };\n    type Action = StringifyJsonAction<Input, undefined, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        StringifyJsonIssue<Input>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/stringifyJson/stringifyJson.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  stringifyJson,\n  type StringifyJsonAction,\n  type StringifyJsonConfig,\n  type StringifyJsonIssue,\n} from './stringifyJson.ts';\n\ndescribe('stringifyJson', () => {\n  describe('should return action object', () => {\n    const config: StringifyJsonConfig = {\n      replacer: (key, value) => value,\n    };\n    const baseAction: Omit<\n      StringifyJsonAction<unknown, never, never>,\n      'message' | 'config'\n    > = {\n      kind: 'transformation',\n      type: 'stringify_json',\n      reference: stringifyJson,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined config and undefined message', () => {\n      const action: StringifyJsonAction<unknown, undefined, undefined> = {\n        ...baseAction,\n        config: undefined,\n        message: undefined,\n      };\n      expect(stringifyJson()).toStrictEqual(action);\n      expect(stringifyJson(undefined)).toStrictEqual(action);\n      expect(stringifyJson(undefined, undefined)).toStrictEqual(action);\n    });\n\n    test('with undefined config and string message', () => {\n      expect(stringifyJson(undefined, 'message')).toStrictEqual({\n        ...baseAction,\n        config: undefined,\n        message: 'message',\n      } satisfies StringifyJsonAction<unknown, undefined, 'message'>);\n    });\n\n    test('with undefined config and function message', () => {\n      const message = () => 'message';\n      expect(stringifyJson(undefined, message)).toStrictEqual({\n        ...baseAction,\n        config: undefined,\n        message,\n      } satisfies StringifyJsonAction<unknown, undefined, () => string>);\n    });\n\n    test('with config and undefined message', () => {\n      const action: StringifyJsonAction<\n        unknown,\n        StringifyJsonConfig,\n        undefined\n      > = {\n        ...baseAction,\n        config,\n        message: undefined,\n      };\n      expect(stringifyJson(config)).toStrictEqual(action);\n      expect(stringifyJson(config, undefined)).toStrictEqual(action);\n    });\n\n    test('with config and string message', () => {\n      expect(stringifyJson(config, 'message')).toStrictEqual({\n        ...baseAction,\n        config,\n        message: 'message',\n      } satisfies StringifyJsonAction<unknown, StringifyJsonConfig, 'message'>);\n    });\n\n    test('with config and function message', () => {\n      const message = () => 'message';\n      expect(stringifyJson(config, message)).toStrictEqual({\n        ...baseAction,\n        config,\n        message,\n      } satisfies StringifyJsonAction<\n        unknown,\n        StringifyJsonConfig,\n        () => string\n      >);\n    });\n  });\n\n  describe('should convert JSON date into JSON string', () => {\n    test('without config', () => {\n      expect(\n        stringifyJson()['~run']({ typed: true, value: { foo: 'bar' } }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: '{\"foo\":\"bar\"}',\n      });\n    });\n\n    test('with replacer', () => {\n      expect(\n        stringifyJson({\n          replacer: (key, value) =>\n            typeof value === 'string' ? value.toUpperCase() : value,\n        })['~run']({ typed: true, value: { foo: 'bar' } }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: '{\"foo\":\"BAR\"}',\n      });\n    });\n\n    test('with space', () => {\n      expect(\n        stringifyJson({ space: 2 })['~run'](\n          { typed: true, value: { foo: 'bar' } },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: '{\\n  \"foo\": \"bar\"\\n}',\n      });\n    });\n\n    test('for nested undefined', () => {\n      expect(\n        stringifyJson()['~run']({ typed: true, value: { foo: undefined } }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: '{}',\n      });\n    });\n\n    test('for nested function', () => {\n      expect(\n        stringifyJson()['~run']({ typed: true, value: { foo: () => null } }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: '{}',\n      });\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = stringifyJson(undefined, 'message');\n    const baseIssue: Omit<StringifyJsonIssue<unknown>, 'input' | 'received'> = {\n      kind: 'transformation',\n      type: 'stringify_json',\n      expected: null,\n      message: 'message',\n      requirement: undefined,\n      path: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    test('for undefined input', () => {\n      const input = undefined;\n      expect(action['~run']({ typed: true, value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseIssue,\n            input,\n            received: 'undefined',\n          },\n        ],\n      });\n    });\n\n    test('for bigint input', () => {\n      const input = 123n;\n      expect(action['~run']({ typed: true, value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseIssue,\n            input,\n            received: '\"Do not know how to serialize a BigInt\"',\n          },\n        ],\n      });\n    });\n\n    test('for nested bigint', () => {\n      const input = { foo: 123n };\n      expect(action['~run']({ typed: true, value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseIssue,\n            input,\n            received: '\"Do not know how to serialize a BigInt\"',\n          },\n        ],\n      });\n    });\n\n    test('for function input', () => {\n      const input = () => null;\n      expect(action['~run']({ typed: true, value: input }, {})).toStrictEqual({\n        typed: false,\n        value: undefined,\n        issues: [\n          {\n            ...baseIssue,\n            input,\n            received: 'Function',\n          },\n        ],\n      });\n    });\n\n    test('for circular dependency', () => {\n      const input = { foo: null as unknown };\n      input.foo = input;\n      expect(action['~run']({ typed: true, value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseIssue,\n            input,\n            received: `\"Converting circular structure to JSON\\n    --> starting at object with constructor 'Object'\\n    --- property 'foo' closes the circle\"`,\n          },\n        ],\n      });\n    });\n  });\n\n  describe('should throw non-Error exceptions', () => {\n    test('for non-Error thrown by replacer', () => {\n      const action = stringifyJson({\n        replacer: () => {\n          throw 'custom string error';\n        },\n      });\n      expect(() =>\n        action['~run']({ typed: true, value: { foo: 'bar' } }, {})\n      ).toThrow('custom string error');\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/stringifyJson/stringifyJson.ts",
    "content": "import type {\n  BaseIssue,\n  BaseTransformation,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * Stringify JSON config interface.\n *\n * @beta\n */\nexport interface StringifyJsonConfig {\n  /**\n   * The JSON replacer function or array.\n   */\n  replacer?: // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  ((this: any, key: string, value: any) => any) | (number | string)[];\n  /**\n   * The JSON space option.\n   */\n  space?: string | number;\n}\n\n/**\n * Stringify JSON issue interface.\n *\n * @beta\n */\nexport interface StringifyJsonIssue<TInput> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'transformation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'stringify_json';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n}\n\n/**\n * Stringify JSON action interface.\n *\n * @beta\n */\nexport interface StringifyJsonAction<\n  TInput,\n  TConfig extends StringifyJsonConfig | undefined,\n  TMessage extends ErrorMessage<StringifyJsonIssue<TInput>> | undefined,\n> extends BaseTransformation<TInput, string, StringifyJsonIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'stringify_json';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof stringifyJson;\n  /**\n   * The action config.\n   */\n  readonly config: TConfig;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a stringify JSON transformation action.\n *\n * @returns A stringify JSON action.\n *\n * @beta\n */\nexport function stringifyJson<TInput>(): StringifyJsonAction<\n  TInput,\n  undefined,\n  undefined\n>;\n\n/**\n * Creates a stringify JSON transformation action.\n *\n * @param config The action config.\n *\n * @returns A stringify JSON action.\n *\n * @beta\n */\nexport function stringifyJson<\n  TInput,\n  const TConfig extends StringifyJsonConfig | undefined,\n>(config: TConfig): StringifyJsonAction<TInput, TConfig, undefined>;\n\n/**\n * Creates a stringify JSON transformation action.\n *\n * @param config The action config.\n * @param message The error message.\n *\n * @returns A stringify JSON action.\n *\n * @beta\n */\nexport function stringifyJson<\n  TInput,\n  const TConfig extends StringifyJsonConfig | undefined,\n  const TMessage extends ErrorMessage<StringifyJsonIssue<TInput>> | undefined,\n>(\n  config: TConfig,\n  message: TMessage\n): StringifyJsonAction<TInput, TConfig, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function stringifyJson(\n  config?: StringifyJsonConfig,\n  message?: ErrorMessage<StringifyJsonIssue<unknown>>\n): StringifyJsonAction<\n  unknown,\n  StringifyJsonConfig | undefined,\n  ErrorMessage<StringifyJsonIssue<unknown>> | undefined\n> {\n  return {\n    kind: 'transformation',\n    type: 'stringify_json',\n    reference: stringifyJson,\n    message,\n    config,\n    async: false,\n    '~run'(dataset, config) {\n      try {\n        const output = JSON.stringify(\n          dataset.value,\n          // @ts-expect-error\n          this.config?.replacer,\n          this.config?.space\n        );\n        if (output === undefined) {\n          _addIssue(this, 'JSON', dataset, config);\n          // @ts-expect-error\n          dataset.typed = false;\n        }\n        dataset.value = output;\n      } catch (error) {\n        if (error instanceof Error) {\n          _addIssue(this, 'JSON', dataset, config, {\n            received: `\"${error.message}\"`,\n          });\n          // @ts-expect-error\n          dataset.typed = false;\n        } else {\n          throw error;\n        }\n      }\n      return dataset as OutputDataset<string, StringifyJsonIssue<unknown>>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/title/index.ts",
    "content": "export * from './title.ts';\n"
  },
  {
    "path": "library/src/actions/title/title.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { title, type TitleAction } from './title.ts';\n\ndescribe('title', () => {\n  type Action = TitleAction<string, 'text'>;\n\n  test('should return action object', () => {\n    expectTypeOf(title<string, 'text'>('text')).toEqualTypeOf<Action>();\n  });\n\n  describe('should infer correct types', () => {\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<never>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/title/title.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { title, type TitleAction } from './title.ts';\n\ndescribe('title', () => {\n  test('should return action object', () => {\n    expect(title<string, 'text'>('text')).toStrictEqual({\n      kind: 'metadata',\n      type: 'title',\n      reference: title,\n      title: 'text',\n    } satisfies TitleAction<string, 'text'>);\n  });\n});\n"
  },
  {
    "path": "library/src/actions/title/title.ts",
    "content": "import type { BaseMetadata } from '../../types/index.ts';\n\n/**\n * Title action interface.\n */\nexport interface TitleAction<TInput, TTitle extends string>\n  extends BaseMetadata<TInput> {\n  /**\n   * The action type.\n   */\n  readonly type: 'title';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof title;\n  /**\n   * The title text.\n   */\n  readonly title: TTitle;\n}\n\n/**\n * Creates a title metadata action.\n *\n * @param title_ The title text.\n *\n * @returns A title action.\n */\n// @__NO_SIDE_EFFECTS__\nexport function title<TInput, TTitle extends string>(\n  title_: TTitle\n): TitleAction<TInput, TTitle> {\n  return {\n    kind: 'metadata',\n    type: 'title',\n    reference: title,\n    title: title_,\n  };\n}\n"
  },
  {
    "path": "library/src/actions/toBigint/index.ts",
    "content": "export * from './toBigint.ts';\n"
  },
  {
    "path": "library/src/actions/toBigint/toBigint.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  toBigint,\n  type ToBigintAction,\n  type ToBigintIssue,\n} from './toBigint.ts';\n\ndescribe('toBigint', () => {\n  describe('should return action object', () => {\n    test('without message', () => {\n      expectTypeOf(toBigint<bigint>()).toEqualTypeOf<\n        ToBigintAction<bigint, undefined>\n      >();\n    });\n\n    test('with message', () => {\n      expectTypeOf(toBigint<bigint, 'message'>('message')).toEqualTypeOf<\n        ToBigintAction<bigint, 'message'>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = ToBigintAction<'123', undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<'123'>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<bigint>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<ToBigintIssue<'123'>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/toBigint/toBigint.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  toBigint,\n  type ToBigintAction,\n  type ToBigintIssue,\n} from './toBigint.ts';\n\ndescribe('toBigint', () => {\n  describe('should return action object', () => {\n    test('without message', () => {\n      expect(toBigint()).toStrictEqual({\n        kind: 'transformation',\n        type: 'to_bigint',\n        reference: toBigint,\n        async: false,\n        message: undefined,\n        '~run': expect.any(Function),\n      } satisfies ToBigintAction<bigint, undefined>);\n    });\n\n    test('with message', () => {\n      expect(toBigint('message')).toStrictEqual({\n        kind: 'transformation',\n        type: 'to_bigint',\n        reference: toBigint,\n        async: false,\n        message: 'message',\n        '~run': expect.any(Function),\n      } satisfies ToBigintAction<bigint, string>);\n    });\n  });\n\n  describe('should transform to bigint', () => {\n    const action = toBigint();\n\n    test('for string', () => {\n      expect(action['~run']({ typed: true, value: '123' }, {})).toStrictEqual({\n        typed: true,\n        value: 123n,\n      });\n    });\n\n    test('for number', () => {\n      expect(action['~run']({ typed: true, value: 123 }, {})).toStrictEqual({\n        typed: true,\n        value: 123n,\n      });\n    });\n\n    test('for bigint', () => {\n      expect(action['~run']({ typed: true, value: 123n }, {})).toStrictEqual({\n        typed: true,\n        value: 123n,\n      });\n    });\n\n    test('for boolean', () => {\n      expect(action['~run']({ typed: true, value: true }, {})).toStrictEqual({\n        typed: true,\n        value: 1n,\n      });\n    });\n  });\n  describe('should return dataset with issues', () => {\n    const action = toBigint();\n    const baseIssue: Omit<\n      ToBigintIssue<number>,\n      'input' | 'received' | 'message'\n    > = {\n      kind: 'transformation',\n      type: 'to_bigint',\n      expected: null,\n      requirement: undefined,\n      path: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    // Primitive types\n\n    test('for null', () => {\n      const value = null;\n      expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n        typed: false,\n        value,\n        issues: [\n          {\n            ...baseIssue,\n            input: value,\n            received: 'null',\n            message: 'Invalid bigint: Received null',\n          },\n        ],\n      });\n    });\n\n    test('for numbers', () => {\n      const value = 123.45;\n      expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n        typed: false,\n        value,\n        issues: [\n          {\n            ...baseIssue,\n            input: value,\n            received: '123.45',\n            message: 'Invalid bigint: Received 123.45',\n          },\n        ],\n      });\n    });\n\n    test('for NaN', () => {\n      const value = NaN;\n      expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n        typed: false,\n        value,\n        issues: [\n          {\n            ...baseIssue,\n            input: value,\n            received: 'NaN',\n            message: 'Invalid bigint: Received NaN',\n          },\n        ],\n      });\n    });\n\n    test('for Infinity', () => {\n      const value = Infinity;\n      expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n        typed: false,\n        value,\n        issues: [\n          {\n            ...baseIssue,\n            input: value,\n            received: 'Infinity',\n            message: 'Invalid bigint: Received Infinity',\n          },\n        ],\n      });\n    });\n\n    test('for undefined', () => {\n      const value = undefined;\n      expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n        typed: false,\n        value,\n        issues: [\n          {\n            ...baseIssue,\n            input: value,\n            received: 'undefined',\n            message: 'Invalid bigint: Received undefined',\n          },\n        ],\n      });\n    });\n\n    test('for symbols', () => {\n      const value = Symbol();\n      expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n        typed: false,\n        value,\n        issues: [\n          {\n            ...baseIssue,\n            input: value,\n            received: 'symbol',\n            message: 'Invalid bigint: Received symbol',\n          },\n        ],\n      });\n    });\n\n    // Invalid strings\n\n    test('for decimal strings', () => {\n      const value = '123.45';\n      expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n        typed: false,\n        value,\n        issues: [\n          {\n            ...baseIssue,\n            input: value,\n            received: '\"123.45\"',\n            message: 'Invalid bigint: Received \"123.45\"',\n          },\n        ],\n      });\n    });\n\n    test('for invalid strings', () => {\n      const value = 'abc';\n      expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n        typed: false,\n        value,\n        issues: [\n          {\n            ...baseIssue,\n            input: value,\n            received: '\"abc\"',\n            message: 'Invalid bigint: Received \"abc\"',\n          },\n        ],\n      });\n    });\n\n    // Complex types\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      const value = () => {};\n      expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n        typed: false,\n        value,\n        issues: [\n          {\n            ...baseIssue,\n            input: value,\n            received: 'Function',\n            message: 'Invalid bigint: Received Function',\n          },\n        ],\n      });\n    });\n\n    test('for objects', () => {\n      const value = {};\n      expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n        typed: false,\n        value,\n        issues: [\n          {\n            ...baseIssue,\n            input: value,\n            received: 'Object',\n            message: 'Invalid bigint: Received Object',\n          },\n        ],\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/toBigint/toBigint.ts",
    "content": "import type {\n  BaseIssue,\n  BaseTransformation,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * To bigint issue interface.\n */\nexport interface ToBigintIssue<TInput> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'transformation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'to_bigint';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n}\n\n/**\n * To bigint action interface.\n */\nexport interface ToBigintAction<\n  TInput,\n  TMessage extends ErrorMessage<ToBigintIssue<TInput>> | undefined,\n> extends BaseTransformation<TInput, bigint, ToBigintIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'to_bigint';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof toBigint;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a to bigint transformation action.\n *\n * @returns A to bigint action.\n *\n * @beta\n */\nexport function toBigint<TInput>(): ToBigintAction<TInput, undefined>;\n\n/**\n * Creates a to bigint transformation action.\n *\n * @param message The error message.\n *\n * @returns A to bigint action.\n *\n * @beta\n */\nexport function toBigint<\n  TInput,\n  const TMessage extends ErrorMessage<ToBigintIssue<TInput>> | undefined,\n>(message: TMessage): ToBigintAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function toBigint(\n  message?: ErrorMessage<ToBigintIssue<unknown>>\n): ToBigintAction<unknown, ErrorMessage<ToBigintIssue<unknown>> | undefined> {\n  return {\n    kind: 'transformation',\n    type: 'to_bigint',\n    reference: toBigint,\n    async: false,\n    message,\n    '~run'(dataset, config) {\n      try {\n        // @ts-expect-error\n        dataset.value = BigInt(dataset.value);\n      } catch {\n        _addIssue(this, 'bigint', dataset, config);\n        // @ts-expect-error\n        dataset.typed = false;\n      }\n      return dataset as OutputDataset<bigint, ToBigintIssue<unknown>>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/toBoolean/index.ts",
    "content": "export * from './toBoolean.ts';\n"
  },
  {
    "path": "library/src/actions/toBoolean/toBoolean.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { toBoolean, type ToBooleanAction } from './toBoolean.ts';\n\ndescribe('toBoolean', () => {\n  test('should return action object', () => {\n    expectTypeOf(toBoolean<'foo'>()).toEqualTypeOf<ToBooleanAction<'foo'>>();\n  });\n\n  describe('should infer correct types', () => {\n    type Action = ToBooleanAction<'foo'>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<'foo'>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<boolean>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<never>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/toBoolean/toBoolean.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { toBoolean, type ToBooleanAction } from './toBoolean.ts';\n\ndescribe('toBoolean', () => {\n  test('should return action object', () => {\n    expect(toBoolean()).toStrictEqual({\n      kind: 'transformation',\n      type: 'to_boolean',\n      reference: toBoolean,\n      async: false,\n      '~run': expect.any(Function),\n    } satisfies ToBooleanAction<unknown>);\n  });\n\n  describe('should transform to boolean', () => {\n    const action = toBoolean();\n\n    // Falsy values\n\n    test('for empty strings', () => {\n      expect(action['~run']({ typed: true, value: '' }, {})).toStrictEqual({\n        typed: true,\n        value: false,\n      });\n    });\n\n    test('for zeros', () => {\n      expect(action['~run']({ typed: true, value: 0 }, {})).toStrictEqual({\n        typed: true,\n        value: false,\n      });\n      expect(action['~run']({ typed: true, value: -0 }, {})).toStrictEqual({\n        typed: true,\n        value: false,\n      });\n      expect(action['~run']({ typed: true, value: 0n }, {})).toStrictEqual({\n        typed: true,\n        value: false,\n      });\n    });\n\n    test('for NaN numbers', () => {\n      expect(action['~run']({ typed: true, value: NaN }, {})).toStrictEqual({\n        typed: true,\n        value: false,\n      });\n    });\n\n    test('for false booleans', () => {\n      expect(action['~run']({ typed: true, value: false }, {})).toStrictEqual({\n        typed: true,\n        value: false,\n      });\n    });\n\n    test('for null', () => {\n      expect(action['~run']({ typed: true, value: null }, {})).toStrictEqual({\n        typed: true,\n        value: false,\n      });\n    });\n\n    test('for undefined', () => {\n      expect(\n        action['~run']({ typed: true, value: undefined }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: false,\n      });\n    });\n\n    // Truthy values\n\n    test('for non-empty strings', () => {\n      expect(action['~run']({ typed: true, value: 'foo' }, {})).toStrictEqual({\n        typed: true,\n        value: true,\n      });\n      expect(action['~run']({ typed: true, value: '0' }, {})).toStrictEqual({\n        typed: true,\n        value: true,\n      });\n      expect(action['~run']({ typed: true, value: 'false' }, {})).toStrictEqual(\n        {\n          typed: true,\n          value: true,\n        }\n      );\n    });\n\n    test('for non-zero numbers', () => {\n      expect(action['~run']({ typed: true, value: 1 }, {})).toStrictEqual({\n        typed: true,\n        value: true,\n      });\n      expect(action['~run']({ typed: true, value: -1 }, {})).toStrictEqual({\n        typed: true,\n        value: true,\n      });\n      expect(\n        action['~run']({ typed: true, value: Infinity }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: true,\n      });\n      expect(\n        action['~run']({ typed: true, value: -Infinity }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: true,\n      });\n    });\n\n    test('for non-zero bigints', () => {\n      expect(action['~run']({ typed: true, value: 1n }, {})).toStrictEqual({\n        typed: true,\n        value: true,\n      });\n      expect(action['~run']({ typed: true, value: -1n }, {})).toStrictEqual({\n        typed: true,\n        value: true,\n      });\n    });\n\n    test('for true booleans', () => {\n      expect(action['~run']({ typed: true, value: true }, {})).toStrictEqual({\n        typed: true,\n        value: true,\n      });\n    });\n\n    test('for symbols', () => {\n      expect(\n        action['~run']({ typed: true, value: Symbol() }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: true,\n      });\n      expect(\n        action['~run']({ typed: true, value: Symbol('foo') }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: true,\n      });\n    });\n\n    test('for arrays', () => {\n      expect(action['~run']({ typed: true, value: [] }, {})).toStrictEqual({\n        typed: true,\n        value: true,\n      });\n      expect(action['~run']({ typed: true, value: [0] }, {})).toStrictEqual({\n        typed: true,\n        value: true,\n      });\n      expect(action['~run']({ typed: true, value: ['foo'] }, {})).toStrictEqual(\n        {\n          typed: true,\n          value: true,\n        }\n      );\n    });\n\n    test('for functions', () => {\n      expect(\n        action['~run'](\n          {\n            typed: true,\n            // eslint-disable-next-line @typescript-eslint/no-empty-function\n            value: () => {},\n          },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: true,\n      });\n      expect(\n        action['~run'](\n          {\n            typed: true,\n            value:\n              // eslint-disable-next-line @typescript-eslint/no-empty-function\n              function () {},\n          },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: true,\n      });\n    });\n\n    test('for objects', () => {\n      expect(action['~run']({ typed: true, value: {} }, {})).toStrictEqual({\n        typed: true,\n        value: true,\n      });\n      expect(\n        action['~run']({ typed: true, value: { key: 'value' } }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: true,\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/toBoolean/toBoolean.ts",
    "content": "import type { BaseTransformation, SuccessDataset } from '../../types/index.ts';\n\n/**\n * To boolean action interface.\n */\nexport interface ToBooleanAction<TInput>\n  extends BaseTransformation<TInput, boolean, never> {\n  /**\n   * The action type.\n   */\n  readonly type: 'to_boolean';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof toBoolean;\n}\n\n/**\n * Creates a to boolean transformation action.\n *\n * @returns A to boolean action.\n *\n * @beta\n */\n// @__NO_SIDE_EFFECTS__\nexport function toBoolean<TInput>(): ToBooleanAction<TInput> {\n  return {\n    kind: 'transformation',\n    type: 'to_boolean',\n    reference: toBoolean,\n    async: false,\n    '~run'(dataset) {\n      // @ts-expect-error\n      dataset.value = Boolean(dataset.value);\n      return dataset as SuccessDataset<boolean>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/toDate/index.ts",
    "content": "export * from './toDate.ts';\n"
  },
  {
    "path": "library/src/actions/toDate/toDate.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { toDate, type ToDateAction, type ToDateIssue } from './toDate.ts';\n\ndescribe('toDate', () => {\n  test('should return action object', () => {\n    expectTypeOf(toDate<'123'>()).toEqualTypeOf<\n      ToDateAction<'123', undefined>\n    >();\n  });\n\n  describe('should infer correct types', () => {\n    type Action = ToDateAction<'123', undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<'123'>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Date>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<ToDateIssue<'123'>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/toDate/toDate.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { toDate, type ToDateAction, type ToDateIssue } from './toDate.ts';\n\ndescribe('toDate', () => {\n  describe('should return action object', () => {\n    test('without message', () => {\n      expect(toDate()).toStrictEqual({\n        kind: 'transformation',\n        type: 'to_date',\n        reference: toDate,\n        async: false,\n        message: undefined,\n        '~run': expect.any(Function),\n      } satisfies ToDateAction<string, undefined>);\n    });\n\n    test('with message', () => {\n      expect(toDate('message')).toStrictEqual({\n        kind: 'transformation',\n        type: 'to_date',\n        reference: toDate,\n        async: false,\n        message: 'message',\n        '~run': expect.any(Function),\n      } satisfies ToDateAction<string, string>);\n    });\n  });\n\n  describe('should transform to date', () => {\n    const action = toDate();\n\n    test('for string', () => {\n      expect(\n        action['~run']({ typed: true, value: '2024-05-06' }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: expect.any(Date),\n      });\n    });\n\n    test('for number', () => {\n      expect(\n        action['~run']({ typed: true, value: 1714924800000 }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: expect.any(Date),\n      });\n    });\n\n    test('for date', () => {\n      const date = new Date();\n      expect(action['~run']({ typed: true, value: date }, {})).toStrictEqual({\n        typed: true,\n        value: date,\n      });\n    });\n  });\n  describe('should return dataset with issues', () => {\n    const action = toDate();\n    const invalidDate = new Date('invalid');\n    const baseIssue: Omit<\n      ToDateIssue<number>,\n      'input' | 'received' | 'message'\n    > = {\n      kind: 'transformation',\n      type: 'to_date',\n      expected: null,\n      requirement: undefined,\n      path: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    // Primitive types\n\n    test('for bigints', () => {\n      const value = 123n;\n      expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n        typed: false,\n        value,\n        issues: [\n          {\n            ...baseIssue,\n            input: value,\n            received: '123',\n            message: 'Invalid date: Received 123',\n          },\n        ],\n      });\n    });\n\n    test('for symbols', () => {\n      const value = Symbol();\n      expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n        typed: false,\n        value,\n        issues: [\n          {\n            ...baseIssue,\n            input: value,\n            received: 'symbol',\n            message: 'Invalid date: Received symbol',\n          },\n        ],\n      });\n    });\n\n    // Invalid strings\n\n    test('for invalid date strings', () => {\n      const value = 'invalid';\n      expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n        typed: false,\n        value: invalidDate,\n        issues: [\n          {\n            ...baseIssue,\n            input: invalidDate,\n            received: '\"Invalid Date\"',\n            message: 'Invalid date: Received \"Invalid Date\"',\n          },\n        ],\n      });\n    });\n\n    // Complex types\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      const value = () => {};\n      expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n        typed: false,\n        value: invalidDate,\n        issues: [\n          {\n            ...baseIssue,\n            input: invalidDate,\n            received: '\"Invalid Date\"',\n            message: 'Invalid date: Received \"Invalid Date\"',\n          },\n        ],\n      });\n    });\n\n    test('for objects', () => {\n      const value = {};\n      expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n        typed: false,\n        value: invalidDate,\n        issues: [\n          {\n            ...baseIssue,\n            input: invalidDate,\n            received: '\"Invalid Date\"',\n            message: 'Invalid date: Received \"Invalid Date\"',\n          },\n        ],\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/toDate/toDate.ts",
    "content": "import type {\n  BaseIssue,\n  BaseTransformation,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * To date issue interface.\n */\nexport interface ToDateIssue<TInput> extends BaseIssue<TInput | Date> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'transformation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'to_date';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n}\n\n/**\n * To date action interface.\n */\nexport interface ToDateAction<\n  TInput,\n  TMessage extends ErrorMessage<ToDateIssue<TInput>> | undefined,\n> extends BaseTransformation<TInput, Date, ToDateIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'to_date';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof toDate;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a to date transformation action.\n *\n * @returns A to date action.\n *\n * @beta\n */\nexport function toDate<TInput>(): ToDateAction<TInput, undefined>;\n\n/**\n * Creates a to date transformation action.\n *\n * @param message The error message.\n *\n * @returns A to date action.\n *\n * @beta\n */\nexport function toDate<\n  TInput,\n  const TMessage extends ErrorMessage<ToDateIssue<TInput>> | undefined,\n>(message: TMessage): ToDateAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function toDate(\n  message?: ErrorMessage<ToDateIssue<unknown>>\n): ToDateAction<unknown, ErrorMessage<ToDateIssue<unknown>> | undefined> {\n  return {\n    kind: 'transformation',\n    type: 'to_date',\n    reference: toDate,\n    async: false,\n    message,\n    '~run'(dataset, config) {\n      try {\n        // @ts-expect-error\n        dataset.value = new Date(dataset.value);\n        // @ts-expect-error\n        if (isNaN(dataset.value)) {\n          _addIssue(this, 'date', dataset, config, {\n            received: '\"Invalid Date\"',\n          });\n          // @ts-expect-error\n          dataset.typed = false;\n        }\n      } catch {\n        _addIssue(this, 'date', dataset, config);\n        // @ts-expect-error\n        dataset.typed = false;\n      }\n      return dataset as OutputDataset<Date, ToDateIssue<unknown>>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/toLowerCase/index.ts",
    "content": "export * from './toLowerCase.ts';\n"
  },
  {
    "path": "library/src/actions/toLowerCase/toLowerCase.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { toLowerCase, type ToLowerCaseAction } from './toLowerCase.ts';\n\ndescribe('toLowerCase', () => {\n  test('should return action object', () => {\n    expectTypeOf(toLowerCase()).toEqualTypeOf<ToLowerCaseAction>();\n  });\n\n  describe('should infer correct types', () => {\n    test('of input', () => {\n      expectTypeOf<InferInput<ToLowerCaseAction>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<ToLowerCaseAction>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<ToLowerCaseAction>>().toEqualTypeOf<never>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/toLowerCase/toLowerCase.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { toLowerCase, type ToLowerCaseAction } from './toLowerCase.ts';\n\ndescribe('toLowerCase', () => {\n  test('should return action object', () => {\n    expect(toLowerCase()).toStrictEqual({\n      kind: 'transformation',\n      type: 'to_lower_case',\n      reference: toLowerCase,\n      async: false,\n      '~run': expect.any(Function),\n    } satisfies ToLowerCaseAction);\n  });\n\n  describe('should lower case string', () => {\n    const action = toLowerCase();\n\n    test('for string', () => {\n      expect(\n        action['~run']({ typed: true, value: ' TeSt123 ' }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: ' test123 ',\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/toLowerCase/toLowerCase.ts",
    "content": "import type { BaseTransformation } from '../../types/index.ts';\n\n/**\n * To lower case action interface.\n */\nexport interface ToLowerCaseAction\n  extends BaseTransformation<string, string, never> {\n  /**\n   * The action type.\n   */\n  readonly type: 'to_lower_case';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof toLowerCase;\n}\n\n/**\n * Creates a to lower case transformation action.\n *\n * @returns A to lower case action.\n */\n// @__NO_SIDE_EFFECTS__\nexport function toLowerCase(): ToLowerCaseAction {\n  return {\n    kind: 'transformation',\n    type: 'to_lower_case',\n    reference: toLowerCase,\n    async: false,\n    '~run'(dataset) {\n      dataset.value = dataset.value.toLowerCase();\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/toMaxValue/index.ts",
    "content": "export * from './toMaxValue.ts';\n"
  },
  {
    "path": "library/src/actions/toMaxValue/toMaxValue.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/infer.ts';\nimport { toMaxValue, type ToMaxValueAction } from './toMaxValue.ts';\n\ndescribe('toMaxValue', () => {\n  test('should return action object', () => {\n    expectTypeOf(toMaxValue<number, 10>(10)).toEqualTypeOf<\n      ToMaxValueAction<number, 10>\n    >();\n  });\n\n  describe('should infer correct types', () => {\n    type Action = ToMaxValueAction<number, 10>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<never>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/toMaxValue/toMaxValue.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { toMaxValue, type ToMaxValueAction } from './toMaxValue.ts';\n\ndescribe('toMaxValue', () => {\n  const action = toMaxValue<number, 10>(10);\n\n  test('should return action object', () => {\n    expect(action).toStrictEqual({\n      kind: 'transformation',\n      type: 'to_max_value',\n      reference: toMaxValue,\n      requirement: 10,\n      async: false,\n      '~run': expect.any(Function),\n    } satisfies ToMaxValueAction<number, 10>);\n  });\n\n  test('should transform to max value', () => {\n    const outputDataset = { typed: true, value: 10 };\n    expect(action['~run']({ typed: true, value: 10 }, {})).toStrictEqual(\n      outputDataset\n    );\n    expect(action['~run']({ typed: true, value: 11 }, {})).toStrictEqual(\n      outputDataset\n    );\n    expect(\n      action['~run']({ typed: true, value: Number.MAX_VALUE }, {})\n    ).toStrictEqual(outputDataset);\n  });\n\n  test('should not transform value', () => {\n    expect(\n      action['~run']({ typed: true, value: Number.MIN_VALUE }, {})\n    ).toStrictEqual({\n      typed: true,\n      value: Number.MIN_VALUE,\n    });\n    expect(action['~run']({ typed: true, value: 0 }, {})).toStrictEqual({\n      typed: true,\n      value: 0,\n    });\n    expect(action['~run']({ typed: true, value: 9 }, {})).toStrictEqual({\n      typed: true,\n      value: 9,\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/toMaxValue/toMaxValue.ts",
    "content": "import type { BaseTransformation } from '../../types/index.ts';\nimport type { ValueInput } from '../types.ts';\n\n/**\n * To max value action interface.\n */\nexport interface ToMaxValueAction<\n  TInput extends ValueInput,\n  TRequirement extends TInput,\n> extends BaseTransformation<TInput, TInput, never> {\n  /**\n   * The action type.\n   */\n  readonly type: 'to_max_value';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof toMaxValue;\n  /**\n   * The maximum value.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Creates a to max value transformation action.\n *\n * @param requirement The maximum value.\n *\n * @returns A to max value action.\n */\n// @__NO_SIDE_EFFECTS__\nexport function toMaxValue<\n  TInput extends ValueInput,\n  const TRequirement extends TInput,\n>(requirement: TRequirement): ToMaxValueAction<TInput, TRequirement> {\n  return {\n    kind: 'transformation',\n    type: 'to_max_value',\n    reference: toMaxValue,\n    async: false,\n    requirement,\n    '~run'(dataset) {\n      dataset.value =\n        dataset.value > this.requirement ? this.requirement : dataset.value;\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/toMinValue/index.ts",
    "content": "export * from './toMinValue.ts';\n"
  },
  {
    "path": "library/src/actions/toMinValue/toMinValue.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/infer.ts';\nimport { toMinValue, type ToMinValueAction } from './toMinValue.ts';\n\ndescribe('toMinValue', () => {\n  test('should return action object', () => {\n    expectTypeOf(toMinValue<number, 10>(10)).toEqualTypeOf<\n      ToMinValueAction<number, 10>\n    >();\n  });\n\n  describe('should infer correct types', () => {\n    type Action = ToMinValueAction<number, 10>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<never>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/toMinValue/toMinValue.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { toMinValue, type ToMinValueAction } from './toMinValue.ts';\n\ndescribe('toMinValue', () => {\n  const action = toMinValue<number, 10>(10);\n\n  test('should return action object', () => {\n    expect(action).toStrictEqual({\n      kind: 'transformation',\n      type: 'to_min_value',\n      reference: toMinValue,\n      requirement: 10,\n      async: false,\n      '~run': expect.any(Function),\n    } satisfies ToMinValueAction<number, 10>);\n  });\n\n  test('should transform to min value', () => {\n    const outputDataset = { typed: true, value: 10 };\n    expect(action['~run']({ typed: true, value: 9 }, {})).toStrictEqual(\n      outputDataset\n    );\n    expect(action['~run']({ typed: true, value: 0 }, {})).toStrictEqual(\n      outputDataset\n    );\n    expect(\n      action['~run']({ typed: true, value: Number.MIN_VALUE }, {})\n    ).toStrictEqual(outputDataset);\n  });\n\n  test('should not transform value', () => {\n    expect(action['~run']({ typed: true, value: 10 }, {})).toStrictEqual({\n      typed: true,\n      value: 10,\n    });\n    expect(action['~run']({ typed: true, value: 11 }, {})).toStrictEqual({\n      typed: true,\n      value: 11,\n    });\n    expect(\n      action['~run']({ typed: true, value: Number.MAX_VALUE }, {})\n    ).toStrictEqual({\n      typed: true,\n      value: Number.MAX_VALUE,\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/toMinValue/toMinValue.ts",
    "content": "import type { BaseTransformation } from '../../types/index.ts';\nimport type { ValueInput } from '../types.ts';\n\n/**\n * To min value action interface.\n */\nexport interface ToMinValueAction<\n  TInput extends ValueInput,\n  TRequirement extends TInput,\n> extends BaseTransformation<TInput, TInput, never> {\n  /**\n   * The action type.\n   */\n  readonly type: 'to_min_value';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof toMinValue;\n  /**\n   * The minimum value.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Creates a to min value transformation action.\n *\n * @param requirement The minimum value.\n *\n * @returns A to min value action.\n */\n// @__NO_SIDE_EFFECTS__\nexport function toMinValue<\n  TInput extends ValueInput,\n  const TRequirement extends TInput,\n>(requirement: TRequirement): ToMinValueAction<TInput, TRequirement> {\n  return {\n    kind: 'transformation',\n    type: 'to_min_value',\n    reference: toMinValue,\n    async: false,\n    requirement,\n    '~run'(dataset) {\n      dataset.value =\n        dataset.value < this.requirement ? this.requirement : dataset.value;\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/toNumber/index.ts",
    "content": "export * from './toNumber.ts';\n"
  },
  {
    "path": "library/src/actions/toNumber/toNumber.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  toNumber,\n  type ToNumberAction,\n  type ToNumberIssue,\n} from './toNumber.ts';\n\ndescribe('toNumber', () => {\n  test('should return action object', () => {\n    expectTypeOf(toNumber<'123'>()).toEqualTypeOf<\n      ToNumberAction<'123', undefined>\n    >();\n  });\n\n  describe('should infer correct types', () => {\n    type Action = ToNumberAction<'123', undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<'123'>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<ToNumberIssue<'123'>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/toNumber/toNumber.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  toNumber,\n  type ToNumberAction,\n  type ToNumberIssue,\n} from './toNumber.ts';\n\ndescribe('toNumber', () => {\n  describe('should return action object', () => {\n    test('without message', () => {\n      expect(toNumber()).toStrictEqual({\n        kind: 'transformation',\n        type: 'to_number',\n        reference: toNumber,\n        async: false,\n        message: undefined,\n        '~run': expect.any(Function),\n      } satisfies ToNumberAction<unknown, undefined>);\n    });\n\n    test('with message', () => {\n      expect(toNumber('message')).toStrictEqual({\n        kind: 'transformation',\n        type: 'to_number',\n        reference: toNumber,\n        async: false,\n        message: 'message',\n        '~run': expect.any(Function),\n      } satisfies ToNumberAction<unknown, string>);\n    });\n  });\n\n  describe('should transform to number', () => {\n    const action = toNumber();\n\n    test('for string', () => {\n      expect(action['~run']({ typed: true, value: '123' }, {})).toStrictEqual({\n        typed: true,\n        value: 123,\n      });\n    });\n\n    test('for number', () => {\n      expect(action['~run']({ typed: true, value: 123 }, {})).toStrictEqual({\n        typed: true,\n        value: 123,\n      });\n    });\n\n    test('for bigint', () => {\n      expect(action['~run']({ typed: true, value: 123n }, {})).toStrictEqual({\n        typed: true,\n        value: 123,\n      });\n    });\n\n    test('for boolean', () => {\n      expect(action['~run']({ typed: true, value: true }, {})).toStrictEqual({\n        typed: true,\n        value: 1,\n      });\n    });\n\n    test('for null', () => {\n      expect(action['~run']({ typed: true, value: null }, {})).toStrictEqual({\n        typed: true,\n        value: 0,\n      });\n    });\n  });\n  describe('should return dataset with issues', () => {\n    const action = toNumber();\n    const baseIssue: Omit<\n      ToNumberIssue<number>,\n      'input' | 'received' | 'message'\n    > = {\n      kind: 'transformation',\n      type: 'to_number',\n      expected: null,\n      requirement: undefined,\n      path: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    // Primitive types\n\n    test('for undefined', () => {\n      const value = undefined;\n      expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n        typed: false,\n        value: NaN,\n        issues: [\n          {\n            ...baseIssue,\n            input: NaN,\n            received: 'NaN',\n            message: 'Invalid number: Received NaN',\n          },\n        ],\n      });\n    });\n\n    test('for symbols', () => {\n      const value = Symbol();\n      expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n        typed: false,\n        value,\n        issues: [\n          {\n            ...baseIssue,\n            input: value,\n            received: 'symbol',\n            message: 'Invalid number: Received symbol',\n          },\n        ],\n      });\n    });\n\n    // Invalid strings\n\n    test('for invalid strings', () => {\n      const value = 'abc';\n      expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n        typed: false,\n        value: NaN,\n        issues: [\n          {\n            ...baseIssue,\n            input: NaN,\n            received: 'NaN',\n            message: 'Invalid number: Received NaN',\n          },\n        ],\n      });\n    });\n\n    test('for partially numeric strings', () => {\n      const value = '123abc';\n      expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n        typed: false,\n        value: NaN,\n        issues: [\n          {\n            ...baseIssue,\n            input: NaN,\n            received: 'NaN',\n            message: 'Invalid number: Received NaN',\n          },\n        ],\n      });\n    });\n\n    // Complex types\n\n    test('for arrays with multiple elements', () => {\n      const value = [1, 2];\n      expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n        typed: false,\n        value: NaN,\n        issues: [\n          {\n            ...baseIssue,\n            input: NaN,\n            received: 'NaN',\n            message: 'Invalid number: Received NaN',\n          },\n        ],\n      });\n    });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      const value = () => {};\n      expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n        typed: false,\n        value: NaN,\n        issues: [\n          {\n            ...baseIssue,\n            input: NaN,\n            received: 'NaN',\n            message: 'Invalid number: Received NaN',\n          },\n        ],\n      });\n    });\n\n    test('for objects', () => {\n      const value = {};\n      expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n        typed: false,\n        value: NaN,\n        issues: [\n          {\n            ...baseIssue,\n            input: NaN,\n            received: 'NaN',\n            message: 'Invalid number: Received NaN',\n          },\n        ],\n      });\n    });\n\n    test('for invalid dates', () => {\n      const value = new Date('invalid');\n      expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n        typed: false,\n        value: NaN,\n        issues: [\n          {\n            ...baseIssue,\n            input: NaN,\n            received: 'NaN',\n            message: 'Invalid number: Received NaN',\n          },\n        ],\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/toNumber/toNumber.ts",
    "content": "import type {\n  BaseIssue,\n  BaseTransformation,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * To number issue interface.\n */\nexport interface ToNumberIssue<TInput> extends BaseIssue<TInput | number> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'transformation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'to_number';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n}\n\n/**\n * To number action interface.\n */\nexport interface ToNumberAction<\n  TInput,\n  TMessage extends ErrorMessage<ToNumberIssue<TInput>> | undefined,\n> extends BaseTransformation<TInput, number, ToNumberIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'to_number';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof toNumber;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a to number transformation action.\n *\n * @returns A to number action.\n *\n * @beta\n */\nexport function toNumber<TInput>(): ToNumberAction<TInput, undefined>;\n\n/**\n * Creates a to number transformation action.\n *\n * @param message The error message.\n *\n * @returns A to number action.\n *\n * @beta\n */\nexport function toNumber<\n  TInput,\n  const TMessage extends ErrorMessage<ToNumberIssue<TInput>> | undefined,\n>(message: TMessage): ToNumberAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function toNumber(\n  message?: ErrorMessage<ToNumberIssue<unknown>>\n): ToNumberAction<unknown, ErrorMessage<ToNumberIssue<unknown>> | undefined> {\n  return {\n    kind: 'transformation',\n    type: 'to_number',\n    reference: toNumber,\n    async: false,\n    message,\n    '~run'(dataset, config) {\n      try {\n        dataset.value = Number(dataset.value);\n        // @ts-expect-error\n        if (isNaN(dataset.value)) {\n          _addIssue(this, 'number', dataset, config);\n          // @ts-expect-error\n          dataset.typed = false;\n        }\n      } catch {\n        _addIssue(this, 'number', dataset, config);\n        // @ts-expect-error\n        dataset.typed = false;\n      }\n      return dataset as OutputDataset<number, ToNumberIssue<unknown>>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/toString/index.ts",
    "content": "export * from './toString.ts';\n"
  },
  {
    "path": "library/src/actions/toString/toString.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  toString,\n  type ToStringAction,\n  type ToStringIssue,\n} from './toString.ts';\n\ndescribe('toString', () => {\n  test('should return action object', () => {\n    expectTypeOf(toString<'foo'>()).toEqualTypeOf<\n      ToStringAction<'foo', undefined>\n    >();\n  });\n\n  describe('should infer correct types', () => {\n    type Action = ToStringAction<'foo', undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<'foo'>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<ToStringIssue<'foo'>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/toString/toString.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  toString,\n  type ToStringAction,\n  type ToStringIssue,\n} from './toString.ts';\n\ndescribe('toString', () => {\n  describe('should return action object', () => {\n    test('without message', () => {\n      expect(toString()).toStrictEqual({\n        kind: 'transformation',\n        type: 'to_string',\n        reference: toString,\n        async: false,\n        message: undefined,\n        '~run': expect.any(Function),\n      } satisfies ToStringAction<unknown, undefined>);\n    });\n\n    test('with message', () => {\n      expect(toString('message')).toStrictEqual({\n        kind: 'transformation',\n        type: 'to_string',\n        reference: toString,\n        async: false,\n        message: 'message',\n        '~run': expect.any(Function),\n      } satisfies ToStringAction<unknown, string>);\n    });\n  });\n\n  describe('should transform to string', () => {\n    const action = toString();\n\n    test('for string', () => {\n      expect(action['~run']({ typed: true, value: 'foo' }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n      });\n    });\n\n    test('for number', () => {\n      expect(action['~run']({ typed: true, value: 123 }, {})).toStrictEqual({\n        typed: true,\n        value: '123',\n      });\n    });\n\n    test('for bigint', () => {\n      expect(action['~run']({ typed: true, value: 123n }, {})).toStrictEqual({\n        typed: true,\n        value: '123',\n      });\n    });\n\n    test('for boolean', () => {\n      expect(action['~run']({ typed: true, value: true }, {})).toStrictEqual({\n        typed: true,\n        value: 'true',\n      });\n    });\n\n    test('for null', () => {\n      expect(action['~run']({ typed: true, value: null }, {})).toStrictEqual({\n        typed: true,\n        value: 'null',\n      });\n    });\n\n    test('for undefined', () => {\n      expect(\n        action['~run']({ typed: true, value: undefined }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: 'undefined',\n      });\n    });\n\n    test('for symbol', () => {\n      expect(\n        action['~run']({ typed: true, value: Symbol('foo') }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: 'Symbol(foo)',\n      });\n    });\n  });\n  describe('should return dataset with issues', () => {\n    const action = toString();\n    const baseIssue: Omit<\n      ToStringIssue<number>,\n      'input' | 'received' | 'message'\n    > = {\n      kind: 'transformation',\n      type: 'to_string',\n      expected: null,\n      requirement: undefined,\n      path: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    test('for objects with faulty toString', () => {\n      const faultyToString = {\n        toString() {\n          throw new Error('oops');\n        },\n      };\n      expect(\n        action['~run']({ typed: true, value: faultyToString }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: faultyToString,\n        issues: [\n          {\n            ...baseIssue,\n            input: faultyToString,\n            received: 'Object',\n            message: 'Invalid string: Received Object',\n          },\n        ],\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/toString/toString.ts",
    "content": "import type {\n  BaseIssue,\n  BaseTransformation,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * To string issue interface.\n */\nexport interface ToStringIssue<TInput> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'transformation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'to_string';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n}\n\n/**\n * To string action interface.\n */\nexport interface ToStringAction<\n  TInput,\n  TMessage extends ErrorMessage<ToStringIssue<TInput>> | undefined,\n> extends BaseTransformation<TInput, string, ToStringIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'to_string';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof toString;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a to string transformation action.\n *\n * @returns A to string action.\n *\n * @beta\n */\nexport function toString<TInput>(): ToStringAction<TInput, undefined>;\n\n/**\n * Creates a to string transformation action.\n *\n * @param message The error message.\n *\n * @returns A to string action.\n *\n * @beta\n */\nexport function toString<\n  TInput,\n  const TMessage extends ErrorMessage<ToStringIssue<TInput>> | undefined,\n>(message: TMessage): ToStringAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function toString(\n  message?: ErrorMessage<ToStringIssue<unknown>>\n): ToStringAction<unknown, ErrorMessage<ToStringIssue<unknown>> | undefined> {\n  return {\n    kind: 'transformation',\n    type: 'to_string',\n    reference: toString,\n    async: false,\n    message,\n    '~run'(dataset, config) {\n      try {\n        dataset.value = String(dataset.value);\n      } catch {\n        _addIssue(this, 'string', dataset, config);\n        // @ts-expect-error\n        dataset.typed = false;\n      }\n      return dataset as OutputDataset<string, ToStringIssue<unknown>>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/toUpperCase/index.ts",
    "content": "export * from './toUpperCase.ts';\n"
  },
  {
    "path": "library/src/actions/toUpperCase/toUpperCase.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { toUpperCase, type ToUpperCaseAction } from './toUpperCase.ts';\n\ndescribe('toUpperCase', () => {\n  test('should return action object', () => {\n    expectTypeOf(toUpperCase()).toEqualTypeOf<ToUpperCaseAction>();\n  });\n\n  describe('should infer correct types', () => {\n    test('of input', () => {\n      expectTypeOf<InferInput<ToUpperCaseAction>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<ToUpperCaseAction>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<ToUpperCaseAction>>().toEqualTypeOf<never>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/toUpperCase/toUpperCase.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { toUpperCase, type ToUpperCaseAction } from './toUpperCase.ts';\n\ndescribe('toUpperCase', () => {\n  test('should return action object', () => {\n    expect(toUpperCase()).toStrictEqual({\n      kind: 'transformation',\n      type: 'to_upper_case',\n      reference: toUpperCase,\n      async: false,\n      '~run': expect.any(Function),\n    } satisfies ToUpperCaseAction);\n  });\n\n  describe('should upper case string', () => {\n    const action = toUpperCase();\n\n    test('for string', () => {\n      expect(\n        action['~run']({ typed: true, value: ' TeSt123 ' }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: ' TEST123 ',\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/toUpperCase/toUpperCase.ts",
    "content": "import type { BaseTransformation } from '../../types/index.ts';\n\n/**\n * To upper case action interface.\n */\nexport interface ToUpperCaseAction\n  extends BaseTransformation<string, string, never> {\n  /**\n   * The action type.\n   */\n  readonly type: 'to_upper_case';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof toUpperCase;\n}\n\n/**\n * Creates a to upper case transformation action.\n *\n * @returns A to upper case action.\n */\n// @__NO_SIDE_EFFECTS__\nexport function toUpperCase(): ToUpperCaseAction {\n  return {\n    kind: 'transformation',\n    type: 'to_upper_case',\n    reference: toUpperCase,\n    async: false,\n    '~run'(dataset) {\n      dataset.value = dataset.value.toUpperCase();\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/transform/index.ts",
    "content": "export * from './transform.ts';\nexport * from './transformAsync.ts';\n"
  },
  {
    "path": "library/src/actions/transform/transform.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { transform, type TransformAction } from './transform.ts';\n\ndescribe('transform', () => {\n  type Action = TransformAction<string, number>;\n\n  test('should return action object', () => {\n    expectTypeOf(\n      transform((value: string) => value.length)\n    ).toEqualTypeOf<Action>();\n  });\n\n  describe('should infer correct types', () => {\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<never>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/transform/transform.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { transform, type TransformAction } from './transform.ts';\n\ndescribe('transform', () => {\n  test('should return action object', () => {\n    const operation = (input: string) => input.length;\n    const action = transform(operation);\n    expect(action).toStrictEqual({\n      kind: 'transformation',\n      type: 'transform',\n      reference: transform,\n      async: false,\n      operation,\n      '~run': expect.any(Function),\n    } satisfies TransformAction<string, number>);\n  });\n\n  describe('should transform input', () => {\n    test('to length of string', () => {\n      const action = transform((input: string) => input.length);\n      expect(\n        action['~run']({ typed: true, value: '123456' }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: 6,\n      });\n    });\n\n    test('to object with new key', () => {\n      const action = transform((input: { key1: string }) => ({\n        ...input,\n        key2: 123,\n      }));\n      expect(\n        action['~run']({ typed: true, value: { key1: 'foo' } }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key1: 'foo', key2: 123 },\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/transform/transform.ts",
    "content": "import type { BaseTransformation, SuccessDataset } from '../../types/index.ts';\n\n/**\n * Transform action interface.\n */\nexport interface TransformAction<TInput, TOutput>\n  extends BaseTransformation<TInput, TOutput, never> {\n  /**\n   * The action type.\n   */\n  readonly type: 'transform';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof transform;\n  /**\n   * The transformation operation.\n   */\n  readonly operation: (input: TInput) => TOutput;\n}\n\n/**\n * Creates a custom transformation action.\n *\n * @param operation The transformation operation.\n *\n * @returns A transform action.\n */\n// @__NO_SIDE_EFFECTS__\nexport function transform<TInput, TOutput>(\n  operation: (input: TInput) => TOutput\n): TransformAction<TInput, TOutput> {\n  return {\n    kind: 'transformation',\n    type: 'transform',\n    reference: transform,\n    async: false,\n    operation,\n    '~run'(dataset) {\n      // @ts-expect-error\n      dataset.value = this.operation(dataset.value);\n      // @ts-expect-error\n      return dataset as SuccessDataset<TOutput>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/transform/transformAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { type TransformActionAsync, transformAsync } from './transformAsync.ts';\n\ndescribe('transformAsync', () => {\n  type Action = TransformActionAsync<string, number>;\n\n  test('should return action object', () => {\n    expectTypeOf(\n      transformAsync(async (value: string) => value.length)\n    ).toEqualTypeOf<Action>();\n  });\n\n  describe('should infer correct types', () => {\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<never>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/transform/transformAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { type TransformActionAsync, transformAsync } from './transformAsync.ts';\n\ndescribe('transformAsync', () => {\n  test('should return action object', () => {\n    const operation = async (input: string) => input.length;\n    const action = transformAsync(operation);\n    expect(action).toStrictEqual({\n      kind: 'transformation',\n      type: 'transform',\n      reference: transformAsync,\n      async: true,\n      operation,\n      '~run': expect.any(Function),\n    } satisfies TransformActionAsync<string, number>);\n  });\n\n  describe('should transform input', () => {\n    test('to length of string', async () => {\n      const action = transformAsync(async (input: string) => input.length);\n      expect(\n        await action['~run']({ typed: true, value: '123456' }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: 6,\n      });\n    });\n\n    test('to object with new key', async () => {\n      const action = transformAsync(async (input: { key1: string }) => ({\n        ...input,\n        key2: 123,\n      }));\n      expect(\n        await action['~run']({ typed: true, value: { key1: 'foo' } }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key1: 'foo', key2: 123 },\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/transform/transformAsync.ts",
    "content": "import type {\n  BaseTransformationAsync,\n  SuccessDataset,\n} from '../../types/index.ts';\n\n/**\n * Transform action async interface.\n */\nexport interface TransformActionAsync<TInput, TOutput>\n  extends BaseTransformationAsync<TInput, TOutput, never> {\n  /**\n   * The action type.\n   */\n  readonly type: 'transform';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof transformAsync;\n  /**\n   * The transformation operation.\n   */\n  readonly operation: (input: TInput) => Promise<TOutput>;\n}\n\n/**\n * Creates a custom transformation action.\n *\n * @param operation The transformation operation.\n *\n * @returns A transform action.\n */\n// @__NO_SIDE_EFFECTS__\nexport function transformAsync<TInput, TOutput>(\n  operation: (input: TInput) => Promise<TOutput>\n): TransformActionAsync<TInput, TOutput> {\n  return {\n    kind: 'transformation',\n    type: 'transform',\n    reference: transformAsync,\n    async: true,\n    operation,\n    async '~run'(dataset) {\n      // @ts-expect-error\n      dataset.value = await this.operation(dataset.value);\n      // @ts-expect-error\n      return dataset as SuccessDataset<TOutput>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/trim/index.ts",
    "content": "export * from './trim.ts';\n"
  },
  {
    "path": "library/src/actions/trim/trim.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { trim, type TrimAction } from './trim.ts';\n\ndescribe('trim', () => {\n  test('should return action object', () => {\n    expectTypeOf(trim()).toEqualTypeOf<TrimAction>();\n  });\n\n  describe('should infer correct types', () => {\n    test('of input', () => {\n      expectTypeOf<InferInput<TrimAction>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<TrimAction>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<TrimAction>>().toEqualTypeOf<never>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/trim/trim.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { trim, type TrimAction } from './trim.ts';\n\ndescribe('trim', () => {\n  test('should return action object', () => {\n    expect(trim()).toStrictEqual({\n      kind: 'transformation',\n      type: 'trim',\n      reference: trim,\n      async: false,\n      '~run': expect.any(Function),\n    } satisfies TrimAction);\n  });\n\n  describe('should trim string', () => {\n    const action = trim();\n\n    test('for empty string', () => {\n      expect(action['~run']({ typed: true, value: '' }, {})).toStrictEqual({\n        typed: true,\n        value: '',\n      });\n      expect(action['~run']({ typed: true, value: ' ' }, {})).toStrictEqual({\n        typed: true,\n        value: '',\n      });\n    });\n\n    test('with blanks at start', () => {\n      expect(action['~run']({ typed: true, value: '  foo' }, {})).toStrictEqual(\n        {\n          typed: true,\n          value: 'foo',\n        }\n      );\n    });\n\n    test('with blanks at end', () => {\n      expect(action['~run']({ typed: true, value: 'foo  ' }, {})).toStrictEqual(\n        {\n          typed: true,\n          value: 'foo',\n        }\n      );\n    });\n\n    test('with blanks at start and end', () => {\n      expect(\n        action['~run']({ typed: true, value: '  foo  ' }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: 'foo',\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/trim/trim.ts",
    "content": "import type { BaseTransformation } from '../../types/index.ts';\n\n/**\n * Trim action interface.\n */\nexport interface TrimAction extends BaseTransformation<string, string, never> {\n  /**\n   * The action type.\n   */\n  readonly type: 'trim';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof trim;\n}\n\n/**\n * Creates a trim transformation action.\n *\n * @returns A trim action.\n */\n// @__NO_SIDE_EFFECTS__\nexport function trim(): TrimAction {\n  return {\n    kind: 'transformation',\n    type: 'trim',\n    reference: trim,\n    async: false,\n    '~run'(dataset) {\n      dataset.value = dataset.value.trim();\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/trimEnd/index.ts",
    "content": "export * from './trimEnd.ts';\n"
  },
  {
    "path": "library/src/actions/trimEnd/trimEnd.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { trimEnd, type TrimEndAction } from './trimEnd.ts';\n\ndescribe('trim', () => {\n  test('should return action object', () => {\n    expectTypeOf(trimEnd()).toEqualTypeOf<TrimEndAction>();\n  });\n\n  describe('should infer correct types', () => {\n    test('of input', () => {\n      expectTypeOf<InferInput<TrimEndAction>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<TrimEndAction>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<TrimEndAction>>().toEqualTypeOf<never>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/trimEnd/trimEnd.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { trimEnd, type TrimEndAction } from './trimEnd.ts';\n\ndescribe('trimEnd', () => {\n  test('should return action object', () => {\n    expect(trimEnd()).toStrictEqual({\n      kind: 'transformation',\n      type: 'trim_end',\n      reference: trimEnd,\n      async: false,\n      '~run': expect.any(Function),\n    } satisfies TrimEndAction);\n  });\n\n  describe('should trim end of string', () => {\n    const action = trimEnd();\n\n    test('for empty string', () => {\n      expect(action['~run']({ typed: true, value: '' }, {})).toStrictEqual({\n        typed: true,\n        value: '',\n      });\n      expect(action['~run']({ typed: true, value: ' ' }, {})).toStrictEqual({\n        typed: true,\n        value: '',\n      });\n    });\n\n    test('with blanks at end', () => {\n      expect(action['~run']({ typed: true, value: 'foo  ' }, {})).toStrictEqual(\n        {\n          typed: true,\n          value: 'foo',\n        }\n      );\n    });\n  });\n\n  test('should not trim start of string', () => {\n    expect(\n      trimEnd()['~run']({ typed: true, value: '  foo' }, {})\n    ).toStrictEqual({\n      typed: true,\n      value: '  foo',\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/trimEnd/trimEnd.ts",
    "content": "import type { BaseTransformation } from '../../types/index.ts';\n\n/**\n * Trim end action interface.\n */\nexport interface TrimEndAction\n  extends BaseTransformation<string, string, never> {\n  /**\n   * The action type.\n   */\n  readonly type: 'trim_end';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof trimEnd;\n}\n\n/**\n * Creates a trim end transformation action.\n *\n * @returns A trim end action.\n */\n// @__NO_SIDE_EFFECTS__\nexport function trimEnd(): TrimEndAction {\n  return {\n    kind: 'transformation',\n    type: 'trim_end',\n    reference: trimEnd,\n    async: false,\n    '~run'(dataset) {\n      dataset.value = dataset.value.trimEnd();\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/trimStart/index.ts",
    "content": "export * from './trimStart.ts';\n"
  },
  {
    "path": "library/src/actions/trimStart/trimStart.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { trimStart, type TrimStartAction } from './trimStart.ts';\n\ndescribe('trim', () => {\n  test('should return action object', () => {\n    expectTypeOf(trimStart()).toEqualTypeOf<TrimStartAction>();\n  });\n\n  describe('should infer correct types', () => {\n    test('of input', () => {\n      expectTypeOf<InferInput<TrimStartAction>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<TrimStartAction>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<TrimStartAction>>().toEqualTypeOf<never>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/trimStart/trimStart.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { trimStart, type TrimStartAction } from './trimStart.ts';\n\ndescribe('trimStart', () => {\n  test('should return action object', () => {\n    expect(trimStart()).toStrictEqual({\n      kind: 'transformation',\n      type: 'trim_start',\n      reference: trimStart,\n      async: false,\n      '~run': expect.any(Function),\n    } satisfies TrimStartAction);\n  });\n\n  describe('should trim start of string', () => {\n    const action = trimStart();\n\n    test('for empty string', () => {\n      expect(action['~run']({ typed: true, value: '' }, {})).toStrictEqual({\n        typed: true,\n        value: '',\n      });\n      expect(action['~run']({ typed: true, value: ' ' }, {})).toStrictEqual({\n        typed: true,\n        value: '',\n      });\n    });\n\n    test('with blanks at start', () => {\n      expect(action['~run']({ typed: true, value: '  foo' }, {})).toStrictEqual(\n        {\n          typed: true,\n          value: 'foo',\n        }\n      );\n    });\n  });\n\n  test('should not trim end of string', () => {\n    expect(\n      trimStart()['~run']({ typed: true, value: 'foo  ' }, {})\n    ).toStrictEqual({ typed: true, value: 'foo  ' });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/trimStart/trimStart.ts",
    "content": "import type { BaseTransformation } from '../../types/index.ts';\n\n/**\n * Trim start action interface.\n */\nexport interface TrimStartAction\n  extends BaseTransformation<string, string, never> {\n  /**\n   * The action type.\n   */\n  readonly type: 'trim_start';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof trimStart;\n}\n\n/**\n * Creates a trim start transformation action.\n *\n * @returns A trim start action.\n */\n// @__NO_SIDE_EFFECTS__\nexport function trimStart(): TrimStartAction {\n  return {\n    kind: 'transformation',\n    type: 'trim_start',\n    reference: trimStart,\n    async: false,\n    '~run'(dataset) {\n      dataset.value = dataset.value.trimStart();\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/types.ts",
    "content": "import type { MaybePromise, MaybeReadonly } from '../types/index.ts';\n\n/**\n * Array input type.\n */\nexport type ArrayInput = MaybeReadonly<unknown[]>;\n\n/**\n * Array requirement type.\n */\nexport type ArrayRequirement<TInput extends ArrayInput> = (\n  item: TInput[number],\n  index: number,\n  array: TInput\n) => boolean;\n\n/**\n * Array requirement async type.\n */\nexport type ArrayRequirementAsync<TInput extends ArrayInput> = (\n  item: TInput[number],\n  index: number,\n  array: TInput\n) => MaybePromise<boolean>;\n\n/**\n * Content input type.\n */\nexport type ContentInput = string | MaybeReadonly<unknown[]>;\n\n/**\n * Content requirement type.\n */\nexport type ContentRequirement<TInput extends ContentInput> =\n  TInput extends readonly unknown[] ? TInput[number] : TInput;\n\n/**\n * Entries input type.\n */\nexport type EntriesInput = Record<string | number, unknown>;\n\n/**\n * Length input type.\n */\nexport type LengthInput = string | ArrayLike<unknown>;\n\n/**\n * Size input type.\n */\nexport type SizeInput = Blob | Map<unknown, unknown> | Set<unknown>;\n\n/**\n * Value input type.\n */\nexport type ValueInput = string | number | bigint | boolean | Date;\n"
  },
  {
    "path": "library/src/actions/ulid/index.ts",
    "content": "export * from './ulid.ts';\n"
  },
  {
    "path": "library/src/actions/ulid/ulid.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { ulid, type UlidAction, type UlidIssue } from './ulid.ts';\n\ndescribe('ulid', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = UlidAction<string, undefined>;\n      expectTypeOf(ulid<string>()).toEqualTypeOf<Action>();\n      expectTypeOf(ulid<string, undefined>(undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(ulid<string, 'message'>('message')).toEqualTypeOf<\n        UlidAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(ulid<string, () => string>(() => 'message')).toEqualTypeOf<\n        UlidAction<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = UlidAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<UlidIssue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/ulid/ulid.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { ULID_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { ulid, type UlidAction, type UlidIssue } from './ulid.ts';\n\ndescribe('ulid', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<UlidAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'ulid',\n      reference: ulid,\n      expects: null,\n      requirement: ULID_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: UlidAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(ulid()).toStrictEqual(action);\n      expect(ulid(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(ulid('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies UlidAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(ulid(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies UlidAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = ulid();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid ULIDs', () => {\n      expectNoActionIssue(action, [\n        '01ARZ3NDEKTSV4RRFFQ69G5FAV',\n        '01bx5zzkbkactav9wevgemmvry',\n        '0123456789abcdefghjkmnpqrs',\n        'ABCDEFGHJKMNPQRSTVWXYZ0123',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = ulid('message');\n    const baseIssue: Omit<UlidIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'ulid',\n      expected: null,\n      message: 'message',\n      requirement: ULID_REGEX,\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for blank spaces', () => {\n      expectActionIssue(action, baseIssue, [\n        ' 01ARZ3NDEKTSV4RRFFQ69G5FAV',\n        '01ARZ3NDEKTSV4RRFFQ69G5FAV ',\n        ' 01ARZ3NDEKTSV4RRFFQ69G5FAV ',\n      ]);\n    });\n\n    test('for too short ULIDs', () => {\n      expectActionIssue(action, baseIssue, [\n        '01ARZ3NDEKTSV4RRFFQ69G5FA',\n        '01bx5zzkbkactav9',\n      ]);\n    });\n\n    test('for too long ULIDs', () => {\n      expectActionIssue(action, baseIssue, [\n        '01ARZ3NDEKTSV4RRFFQ69G5FAV1',\n        '01bx5zzkbkactav9wevgemmvry123456789',\n      ]);\n    });\n\n    test('for invalid letters', () => {\n      expectActionIssue(action, baseIssue, [\n        '01ARZ3NDIKTSV4RRFFQ69G5FAV',\n        '01bx5zikbkactav9wevgemmvry',\n        'L1ARZ3NDEKTSV4RRFFQ69G5FAV',\n        'l1bx5zzkbkactav9wevgemmvry',\n        '01ARZ3NDEKTSV4RRFFQ69G5OAV',\n        '01bx5zzkbkactav9wevgemmory',\n        '01ARZ3NDEKTSV4RRFFQ69G5FAU',\n        '01bx5zzkbkactav9wevgemmvru',\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/ulid/ulid.ts",
    "content": "import { ULID_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * ULID issue interface.\n */\nexport interface UlidIssue<TInput extends string> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'ulid';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The ULID regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * ULID action interface.\n */\nexport interface UlidAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<UlidIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, UlidIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'ulid';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof ulid;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The ULID regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an [ULID](https://github.com/ulid/spec) validation action.\n *\n * @returns An ULID action.\n */\nexport function ulid<TInput extends string>(): UlidAction<TInput, undefined>;\n\n/**\n * Creates an [ULID](https://github.com/ulid/spec) validation action.\n *\n * @param message The error message.\n *\n * @returns An ULID action.\n */\nexport function ulid<\n  TInput extends string,\n  const TMessage extends ErrorMessage<UlidIssue<TInput>> | undefined,\n>(message: TMessage): UlidAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function ulid(\n  message?: ErrorMessage<UlidIssue<string>>\n): UlidAction<string, ErrorMessage<UlidIssue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'ulid',\n    reference: ulid,\n    async: false,\n    expects: null,\n    requirement: ULID_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'ULID', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/url/index.ts",
    "content": "export * from './url.ts';\n"
  },
  {
    "path": "library/src/actions/url/url.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { url, type UrlAction, type UrlIssue } from './url.ts';\n\ndescribe('url', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = UrlAction<string, undefined>;\n      expectTypeOf(url()).toEqualTypeOf<Action>();\n      expectTypeOf(url(undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(url('message')).toEqualTypeOf<\n        UrlAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(url(() => 'message')).toEqualTypeOf<\n        UrlAction<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = UrlAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<UrlIssue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/url/url.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { url, type UrlAction, type UrlIssue } from './url.ts';\n\ndescribe('url', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<UrlAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'url',\n      reference: url,\n      expects: null,\n      requirement: expect.any(Function),\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: UrlAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(url()).toStrictEqual(action);\n      expect(url(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(url('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies UrlAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(url(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies UrlAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = url();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for a HTTP URL', () => {\n      expectNoActionIssue(action, [\n        'http://example.com',\n        'http://www.example.com/path',\n        'http://subdomain1.subdomain2.example.com/path1/path2?param1=value1&param2=value2',\n      ]);\n    });\n\n    test('for a HTTPS URL', () => {\n      expectNoActionIssue(action, [\n        'https://example.com',\n        'https://www.example.com/path',\n        'https://subdomain1.subdomain2.example.com/path1/path2?param1=value1&param2=value2',\n      ]);\n    });\n\n    test('for a FTP URL', () => {\n      expectNoActionIssue(action, [\n        'ftp://example.com',\n        'ftp://www.example.com/path',\n        'ftp://subdomain1.subdomain2.example.com/path1/path2?param1=value1&param2=value2',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = url('message');\n    const baseIssue: Omit<UrlIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'url',\n      expected: null,\n      message: 'message',\n      requirement: expect.any(Function),\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for URL without schema', () => {\n      expectActionIssue(action, baseIssue, [\n        'example.com',\n        'www.example.com/path',\n        'subdomain1.subdomain2.example.com/path1/path2?param1=value1&param2=value2',\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/url/url.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * URL issue interface.\n */\nexport interface UrlIssue<TInput extends string> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'url';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The validation function.\n   */\n  readonly requirement: (input: string) => boolean;\n}\n\n/**\n * URL action interface.\n */\nexport interface UrlAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<UrlIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, UrlIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'url';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof url;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The validation function.\n   */\n  readonly requirement: (input: string) => boolean;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an [URL](https://en.wikipedia.org/wiki/URL) validation action.\n *\n * Hint: The value is passed to the URL constructor to check if it is valid.\n * This check is not perfect. For example, values like \"abc:1234\" are accepted.\n *\n * @returns An URL action.\n */\nexport function url<TInput extends string>(): UrlAction<TInput, undefined>;\n\n/**\n * Creates an [URL](https://en.wikipedia.org/wiki/URL) validation action.\n *\n * Hint: The value is passed to the URL constructor to check if it is valid.\n * This check is not perfect. For example, values like \"abc:1234\" are accepted.\n *\n * @param message The error message.\n *\n * @returns An URL action.\n */\nexport function url<\n  TInput extends string,\n  const TMessage extends ErrorMessage<UrlIssue<TInput>> | undefined,\n>(message: TMessage): UrlAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function url(\n  message?: ErrorMessage<UrlIssue<string>> | undefined\n): UrlAction<string, ErrorMessage<UrlIssue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'url',\n    reference: url,\n    async: false,\n    expects: null,\n    requirement(input) {\n      try {\n        new URL(input);\n        return true;\n      } catch {\n        return false;\n      }\n    },\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement(dataset.value)) {\n        _addIssue(this, 'URL', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/uuid/index.ts",
    "content": "export * from './uuid.ts';\n"
  },
  {
    "path": "library/src/actions/uuid/uuid.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { uuid, type UuidAction, type UuidIssue } from './uuid.ts';\n\ndescribe('uuid', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = UuidAction<string, undefined>;\n      expectTypeOf(uuid<string>()).toEqualTypeOf<Action>();\n      expectTypeOf(uuid<string, undefined>(undefined)).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(uuid<string, 'message'>('message')).toEqualTypeOf<\n        UuidAction<string, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(uuid<string, () => string>(() => 'message')).toEqualTypeOf<\n        UuidAction<string, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = UuidAction<string, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<UuidIssue<string>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/uuid/uuid.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { UUID_REGEX } from '../../regex.ts';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { uuid, type UuidAction, type UuidIssue } from './uuid.ts';\n\ndescribe('uuid', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<UuidAction<string, never>, 'message'> = {\n      kind: 'validation',\n      type: 'uuid',\n      reference: uuid,\n      expects: null,\n      requirement: UUID_REGEX,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: UuidAction<string, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(uuid()).toStrictEqual(action);\n      expect(uuid(undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(uuid('message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies UuidAction<string, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(uuid(message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies UuidAction<string, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = uuid();\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid UUID v1', () => {\n      expectNoActionIssue(action, [\n        'a6021db4-0b07-11ef-9262-0242ac120002',\n        'bf576dbe-0b07-11ef-9262-0242ac120002',\n        'bf576fda-0b07-11ef-9262-0242ac120002',\n        'bf577106-0b07-11ef-9262-0242ac120002',\n        'bf57721e-0b07-11ef-9262-0242ac120002',\n      ]);\n    });\n\n    test('for valid UUID v4', () => {\n      expectNoActionIssue(action, [\n        'c1e12793-2e77-4611-874d-a4f9cc727e1e',\n        '95d9d16b-feba-495d-ab7b-07e4212ff3d0',\n        'c4322ec9-5c1f-4865-b0b1-52298acc5a8e',\n        '6f66b7d5-8400-4e48-99f9-ae94ba418069',\n        '779c2294-cb0a-4347-9587-61d4509d32db',\n      ]);\n    });\n\n    test('for valid UUID v7', () => {\n      expectNoActionIssue(action, [\n        '018f4f48-1658-7538-8aa9-e3b64526bb43',\n        '018f4f48-9a53-72b6-8ee6-91c47cd95f6f',\n        '018f4f48-b0a1-75bc-ab3f-11081dfb40b8',\n        '018f4f48-cecc-7bfc-b0bc-a77fe4d77d66',\n        '018f4f48-e99c-7008-adbe-e3b7e7497ed8',\n      ]);\n    });\n\n    test('for special nil UUID', () => {\n      expectNoActionIssue(action, ['00000000-0000-0000-0000-000000000000']);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = uuid('message');\n    const baseIssue: Omit<UuidIssue<string>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'uuid',\n      expected: null,\n      message: 'message',\n      requirement: UUID_REGEX,\n    };\n\n    test('for empty strings', () => {\n      expectActionIssue(action, baseIssue, ['', ' ', '\\n']);\n    });\n\n    test('for blank spaces', () => {\n      expectActionIssue(action, baseIssue, [\n        ' c1e12793-2e77-4611-874d-a4f9cc727e1e',\n        'c1e12793-2e77-4611-874d-a4f9cc727e1e ',\n        ' c1e12793-2e77-4611-874d-a4f9cc727e1e ',\n      ]);\n    });\n\n    test('for too short UUIDs', () => {\n      expectActionIssue(action, baseIssue, [\n        'e05717b-1020-4f83-8dce-f33dcac6c101',\n        'e057f17b-100-4f83-8dce-f33dcac6c101',\n        'e057f17b-1020-f83-8dce-f33dcac6c101',\n        'e057f17b-1020-4f83-8de-f33dcac6c101',\n        'e057f17b-1020-4f83-8dce-f3dcac6c101',\n      ]);\n    });\n\n    test('for too long UUIDs', () => {\n      expectActionIssue(action, baseIssue, [\n        'e057f147b-1020-4f83-8dce-f33dcac6c101',\n        'e057f17b-10220-4f83-8dce-f33dcac6c101',\n        'e057f17b-1020-4f873-8dce-f33dcac6c101',\n        'e057f17b-1020-4f83-8dc2e-f33dcac6c101',\n        'e057f17b-1020-4f83-8dce-f33d3cac6c101',\n      ]);\n    });\n\n    test('for invalid hyphenated UUIDs', () => {\n      expectActionIssue(action, baseIssue, [\n        'a6021db4-0b07-11ef-9262-0242ac120002-',\n        '95d9d16b-feba-495d-ab7b--07e4212ff3d0',\n        '95d9d16b--feba-495d-ab7b-07e4212ff3d0',\n        '95d9d16b--feba--495d--ab7b--07e4212ff3d0',\n      ]);\n    });\n\n    test('for invalid placed hyphens', () => {\n      expectActionIssue(action, baseIssue, [\n        'a6021db4-0b07-11ef-9262-0242ac120002-0',\n        '95d9d16b-feba-495d-ab7b-07e4212ff3d-0',\n        'c1e1279-32e77-4611-874d-a4f9cc727e1e',\n      ]);\n    });\n\n    test('for invalid letters', () => {\n      expectActionIssue(action, baseIssue, [\n        'd8600862-9dea-4g51-b261-ff899d608069',\n        'd8600862-9dea-4d51-b261-hf899d608069',\n        'd8600862-9dea-4d51-k261-ff899d608069',\n        'd8600862-9dea-4d51-b261-zf899d608069',\n        'd8600862-9dta-4d51-b261-ff899d608069',\n        'd8600862-9dex-4d51-b261-ff899d608069',\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/uuid/uuid.ts",
    "content": "import { UUID_REGEX } from '../../regex.ts';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue } from '../../utils/index.ts';\n\n/**\n * UUID issue interface.\n */\nexport interface UuidIssue<TInput extends string> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'uuid';\n  /**\n   * The expected property.\n   */\n  readonly expected: null;\n  /**\n   * The received property.\n   */\n  readonly received: `\"${string}\"`;\n  /**\n   * The UUID regex.\n   */\n  readonly requirement: RegExp;\n}\n\n/**\n * UUID action interface.\n */\nexport interface UuidAction<\n  TInput extends string,\n  TMessage extends ErrorMessage<UuidIssue<TInput>> | undefined,\n> extends BaseValidation<TInput, TInput, UuidIssue<TInput>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'uuid';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof uuid;\n  /**\n   * The expected property.\n   */\n  readonly expects: null;\n  /**\n   * The UUID regex.\n   */\n  readonly requirement: RegExp;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) validation action.\n *\n * @returns An UUID action.\n */\nexport function uuid<TInput extends string>(): UuidAction<TInput, undefined>;\n\n/**\n * Creates an [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) validation action.\n *\n * @param message The error message.\n *\n * @returns An UUID action.\n */\nexport function uuid<\n  TInput extends string,\n  const TMessage extends ErrorMessage<UuidIssue<TInput>> | undefined,\n>(message: TMessage): UuidAction<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function uuid(\n  message?: ErrorMessage<UuidIssue<string>>\n): UuidAction<string, ErrorMessage<UuidIssue<string>> | undefined> {\n  return {\n    kind: 'validation',\n    type: 'uuid',\n    reference: uuid,\n    async: false,\n    expects: null,\n    requirement: UUID_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        _addIssue(this, 'UUID', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/value/index.ts",
    "content": "export * from './value.ts';\n"
  },
  {
    "path": "library/src/actions/value/value.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { value, type ValueAction, type ValueIssue } from './value.ts';\n\ndescribe('value', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = ValueAction<number, 10, undefined>;\n      expectTypeOf(value<number, 10>(10)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        value<number, 10, undefined>(10, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(value<number, 10, 'message'>(10, 'message')).toEqualTypeOf<\n        ValueAction<number, 10, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        value<number, 10, () => string>(10, () => 'message')\n      ).toEqualTypeOf<ValueAction<number, 10, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = ValueAction<number, 10, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        ValueIssue<number, 10>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/value/value.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { NumberIssue } from '../../schemas/index.ts';\nimport { _stringify } from '../../utils/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { value, type ValueAction } from './value.ts';\n\ndescribe('value', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<ValueAction<number, 5, never>, 'message'> = {\n      kind: 'validation',\n      type: 'value',\n      reference: value,\n      expects: '5',\n      requirement: 5,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: ValueAction<number, 5, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(value(5)).toStrictEqual(action);\n      expect(value(5, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(value(5, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies ValueAction<number, 5, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(value(5, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies ValueAction<number, 5, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for untyped inputs', () => {\n      const issues: [NumberIssue] = [\n        {\n          kind: 'schema',\n          type: 'number',\n          input: null,\n          expected: 'number',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        value(1)['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid bigints', () => {\n      expectNoActionIssue(value(123n), [123n, BigInt(123), BigInt('123')]);\n    });\n\n    test('for valid non-bigints', () => {\n      expectNoActionIssue(value(123n), [\n        123,\n        123.0,\n        '123',\n        ' 123 ',\n        new Date(123),\n      ]);\n      expectNoActionIssue(value(1n), [1, 1.0, '1', ' 1 ', true, new Date(1)]);\n      expectNoActionIssue(value(0n), [\n        0,\n        0.0,\n        '0',\n        ' 0 ',\n        '',\n        ' ',\n        false,\n        new Date(0),\n      ]);\n    });\n\n    test('for valid booleans', () => {\n      expectNoActionIssue(value(true), [true]);\n      expectNoActionIssue(value(false), [false]);\n    });\n\n    test('for valid non-booleans', () => {\n      expectNoActionIssue(value(true), [\n        1,\n        1.0,\n        1n,\n        '1',\n        '1.0',\n        ' 1 ',\n        new Date(1),\n      ]);\n      expectNoActionIssue(value(false), [\n        0,\n        0.0,\n        0n,\n        '0',\n        '0.0',\n        ' 0 ',\n        '',\n        ' ',\n        new Date(0),\n      ]);\n    });\n\n    test('for valid dates', () => {\n      const date = new Date();\n      expectNoActionIssue(value(date), [\n        date,\n        new Date(date.getTime()),\n        new Date(date.toISOString()),\n        new Date(\n          date.getFullYear(),\n          date.getMonth(),\n          date.getDate(),\n          date.getHours(),\n          date.getMinutes(),\n          date.getSeconds(),\n          date.getMilliseconds()\n        ),\n      ]);\n    });\n\n    test('for valid non-dates', () => {\n      expectNoActionIssue(value(new Date(123)), [\n        123,\n        123.0,\n        123n,\n        '123',\n        '123.0',\n        ' 123 ',\n      ]);\n      expectNoActionIssue(value(new Date(1)), [\n        1,\n        1.0,\n        1n,\n        '1',\n        '1.0',\n        ' 1 ',\n        true,\n      ]);\n      expectNoActionIssue(value(new Date(0)), [\n        0,\n        0.0,\n        0n,\n        '0',\n        '0.0',\n        ' 0 ',\n        '',\n        ' ',\n        false,\n      ]);\n    });\n\n    test('for valid numbers', () => {\n      expectNoActionIssue(value(123), [123, 123.0, Number('123')]);\n    });\n\n    test('for valid non-numbers', () => {\n      expectNoActionIssue(value(123), [\n        123n,\n        '123',\n        '123.0',\n        ' 123 ',\n        new Date(123),\n      ]);\n      expectNoActionIssue(value(1), [1n, '1', '1.0', ' 1 ', true, new Date(1)]);\n      expectNoActionIssue(value(0), [\n        0n,\n        '0',\n        '0.0',\n        ' 0 ',\n        '',\n        ' ',\n        false,\n        new Date(0),\n      ]);\n    });\n\n    test('for valid strings', () => {\n      expectNoActionIssue(value('2024'), ['2024']);\n    });\n\n    test('for valid non-strings', () => {\n      expectNoActionIssue(value('1'), [1n, 1, 1.0, true, new Date(1)]);\n      expectNoActionIssue(value('0'), [0n, 0, 0.0, false, new Date(0)]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const baseInfo = {\n      kind: 'validation',\n      type: 'value',\n      message: 'message',\n    } as const;\n\n    const getReceived = (value: unknown): string =>\n      value instanceof Date ? value.toJSON() : _stringify(value);\n\n    test('for invalid bigints', () => {\n      expectActionIssue(\n        value(10n, 'message'),\n        { ...baseInfo, expected: '10', requirement: 10n },\n        [-123n, 0n, 9n, 11n, 123n]\n      );\n    });\n\n    test('for invalid non-bigints', () => {\n      expectActionIssue(\n        value(10n, 'message'),\n        { ...baseInfo, expected: '10', requirement: 10n },\n        [\n          9,\n          11,\n          9.0,\n          11.0,\n          '9',\n          '11',\n          '9.0',\n          '11.0',\n          '',\n          ' ',\n          new Date(9),\n          new Date(11),\n          true,\n          false,\n        ],\n        getReceived\n      );\n      expectActionIssue(\n        value(1n, 'message'),\n        { ...baseInfo, expected: '1', requirement: 1n },\n        [0, 0.0, '0', ' 0 ', '', ' ', false, new Date(0)],\n        getReceived\n      );\n      expectActionIssue(\n        value(0n, 'message'),\n        { ...baseInfo, expected: '0', requirement: 0n },\n        [1, 1.0, '1', ' 1 ', true, new Date(1)],\n        getReceived\n      );\n    });\n\n    test('for invalid booleans', () => {\n      expectActionIssue(\n        value(true, 'message'),\n        { ...baseInfo, expected: 'true', requirement: true },\n        [false]\n      );\n      expectActionIssue(\n        value(false, 'message'),\n        { ...baseInfo, expected: 'false', requirement: false },\n        [true]\n      );\n    });\n\n    test('for invalid non-booleans', () => {\n      expectActionIssue(\n        value(true, 'message'),\n        { ...baseInfo, expected: 'true', requirement: true },\n        [0n, 0, 0.0, '0', '0.0', ' 0 ', '', ' ', new Date(0)],\n        getReceived\n      );\n      expectActionIssue(\n        value(true, 'message'),\n        { ...baseInfo, expected: 'true', requirement: true },\n        [123n, 123, 123.0, '123', '123.0', 'foo', 'true', new Date(123)],\n        getReceived\n      );\n      expectActionIssue(\n        value(false, 'message'),\n        { ...baseInfo, expected: 'false', requirement: false },\n        [1n, 1, 1.0, '1', '1.0', ' 1 ', new Date(1)],\n        getReceived\n      );\n      expectActionIssue(\n        value(false, 'message'),\n        { ...baseInfo, expected: 'false', requirement: false },\n        [123n, 123, 123.0, '123', '123.0', 'foo', 'false', new Date(123)],\n        getReceived\n      );\n    });\n\n    test('for invalid dates', () => {\n      const date = new Date();\n      expectActionIssue(\n        value<Date, Date, 'message'>(date, 'message'),\n        { ...baseInfo, expected: `${date.toJSON()}`, requirement: date },\n        [new Date(+date - 1), new Date(+date + 1), new Date(+date + 999999)],\n        (value) => value.toJSON()\n      );\n    });\n\n    test('for invalid non-dates', () => {\n      const date1 = new Date(10);\n      expectActionIssue(\n        value(date1, 'message'),\n        { ...baseInfo, expected: date1.toJSON(), requirement: date1 },\n        [\n          9n,\n          11n,\n          9,\n          11,\n          9.0,\n          11.0,\n          '9',\n          '11',\n          '9.0',\n          '11.0',\n          '',\n          ' ',\n          true,\n          false,\n        ],\n        getReceived\n      );\n      const date2 = new Date(1);\n      expectActionIssue(\n        value(date2, 'message'),\n        { ...baseInfo, expected: date2.toJSON(), requirement: date2 },\n        [0, 0.0, 0n, '0', '0.0', ' 0 ', '', ' ', false],\n        getReceived\n      );\n      const date3 = new Date(0);\n      expectActionIssue(\n        value(date3, 'message'),\n        { ...baseInfo, expected: date3.toJSON(), requirement: date3 },\n        [1, 1.0, 1n, '1', '1.0', ' 1 ', true],\n        getReceived\n      );\n    });\n\n    test('for invalid numbers', () => {\n      expectActionIssue(\n        value(10, 'message'),\n        { ...baseInfo, expected: '10', requirement: 10 },\n        [\n          -Infinity,\n          Number.MIN_VALUE,\n          -10,\n          -9,\n          9,\n          11,\n          9999,\n          Number.MAX_VALUE,\n          Infinity,\n          NaN,\n        ]\n      );\n    });\n\n    test('for invalid non-numbers', () => {\n      expectActionIssue(\n        value(10, 'message'),\n        { ...baseInfo, expected: '10', requirement: 10 },\n        [9n, 11n, '9', '11', '9.0', '11.0', '', ' ', new Date(9), true, false],\n        getReceived\n      );\n      expectActionIssue(\n        value(1, 'message'),\n        { ...baseInfo, expected: '1', requirement: 1 },\n        [0n, '0', '0.0', ' 0 ', '', ' ', false, new Date(0)],\n        getReceived\n      );\n      expectActionIssue(\n        value(0, 'message'),\n        { ...baseInfo, expected: '0', requirement: 0 },\n        [1n, '1', '1.0', ' 1 ', true, new Date(1)],\n        getReceived\n      );\n    });\n\n    test('for invalid strings', () => {\n      expectActionIssue(\n        value('2024', 'message'),\n        { ...baseInfo, expected: '\"2024\"', requirement: '2024' },\n        [\n          '202',\n          '024',\n          ' 2024',\n          '2024 ',\n          '02024',\n          '20240',\n          '020240',\n          '2025',\n          '9999',\n          'XYZ',\n        ]\n      );\n    });\n\n    test('for invalid non-strings', () => {\n      expectActionIssue(\n        value('10', 'message'),\n        { ...baseInfo, expected: '\"10\"', requirement: '10' },\n        [9n, 11n, 9, 11, 9.0, 11.0, new Date(9), new Date(11), true, false],\n        getReceived\n      );\n      expectActionIssue(\n        value('1', 'message'),\n        { ...baseInfo, expected: '\"1\"', requirement: '1' },\n        [0n, 0, 0.0, false, new Date(0)],\n        getReceived\n      );\n      expectActionIssue(\n        value('0', 'message'),\n        { ...baseInfo, expected: '\"0\"', requirement: '0' },\n        [1n, 1, 1.0, true, new Date(1)],\n        getReceived\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/value/value.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue, _stringify } from '../../utils/index.ts';\nimport type { ValueInput } from '../types.ts';\n\n/**\n * Value issue interface.\n */\nexport interface ValueIssue<\n  TInput extends ValueInput,\n  TRequirement extends TInput,\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'value';\n  /**\n   * The expected property.\n   */\n  readonly expected: string;\n  /**\n   * The required value.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Value action interface.\n */\nexport interface ValueAction<\n  TInput extends ValueInput,\n  TRequirement extends TInput,\n  TMessage extends ErrorMessage<ValueIssue<TInput, TRequirement>> | undefined,\n> extends BaseValidation<TInput, TInput, ValueIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'value';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof value;\n  /**\n   * The expected property.\n   */\n  readonly expects: string;\n  /**\n   * The required value.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a value validation action.\n *\n * @param requirement The required value.\n *\n * @returns A value action.\n */\nexport function value<\n  TInput extends ValueInput,\n  const TRequirement extends TInput,\n>(requirement: TRequirement): ValueAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a value validation action.\n *\n * @param requirement The required value.\n * @param message The error message.\n *\n * @returns A value action.\n */\nexport function value<\n  TInput extends ValueInput,\n  const TRequirement extends TInput,\n  const TMessage extends\n    | ErrorMessage<ValueIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): ValueAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function value(\n  requirement: ValueInput,\n  message?: ErrorMessage<ValueIssue<ValueInput, ValueInput>>\n): ValueAction<\n  ValueInput,\n  ValueInput,\n  ErrorMessage<ValueIssue<ValueInput, ValueInput>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'value',\n    reference: value,\n    async: false,\n    expects:\n      requirement instanceof Date\n        ? requirement.toJSON()\n        : _stringify(requirement),\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (\n        dataset.typed &&\n        !(\n          this.requirement <= dataset.value && this.requirement >= dataset.value\n        )\n      ) {\n        _addIssue(this, 'value', dataset, config, {\n          received:\n            dataset.value instanceof Date\n              ? dataset.value.toJSON()\n              : _stringify(dataset.value),\n        });\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/values/index.ts",
    "content": "export * from './values.ts';\n"
  },
  {
    "path": "library/src/actions/values/values.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { values, type ValuesAction, type ValuesIssue } from './values.ts';\n\ndescribe('values', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = ValuesAction<number, [2, 4, 6], undefined>;\n      expectTypeOf(\n        values<number, [2, 4, 6]>([2, 4, 6])\n      ).toEqualTypeOf<Action>();\n      expectTypeOf(\n        values<number, [2, 4, 6], undefined>([2, 4, 6], undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        values<number, [2, 4, 6], 'message'>([2, 4, 6], 'message')\n      ).toEqualTypeOf<ValuesAction<number, [2, 4, 6], 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        values<number, [2, 4, 6], () => string>([2, 4, 6], () => 'message')\n      ).toEqualTypeOf<ValuesAction<number, [2, 4, 6], () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Action = ValuesAction<number, [2, 4, 6], undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<number>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<\n        ValuesIssue<number, [2, 4, 6]>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/values/values.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { NumberIssue } from '../../schemas/index.ts';\nimport { _stringify } from '../../utils/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { values, type ValuesAction } from './values.ts';\n\ndescribe('values', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<\n      ValuesAction<number, [2, 4, 6], never>,\n      'message'\n    > = {\n      kind: 'validation',\n      type: 'values',\n      reference: values,\n      expects: '(2 | 4 | 6)',\n      requirement: [2, 4, 6],\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: ValuesAction<number, [2, 4, 6], undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(values([2, 4, 6])).toStrictEqual(action);\n      expect(values([2, 4, 6], undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(values([2, 4, 6], 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies ValuesAction<number, [2, 4, 6], string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(values([2, 4, 6], message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies ValuesAction<number, [2, 4, 6], typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for untyped inputs', () => {\n      const issues: [NumberIssue] = [\n        {\n          kind: 'schema',\n          type: 'number',\n          input: null,\n          expected: 'number',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        values([1])['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid bigints', () => {\n      expectNoActionIssue(values([-2n, 3n]), [-2n, 3n, BigInt(3), BigInt('3')]);\n      expectNoActionIssue(values([0n]), [0n]);\n    });\n\n    test('for valid non-bigints', () => {\n      expectNoActionIssue(values([-123n, 456n]), [\n        -123,\n        456,\n        -123.0,\n        456.0,\n        '-123',\n        '456',\n        ' -123 ',\n        ' 456 ',\n        new Date(-123),\n        new Date(456),\n      ]);\n      expectNoActionIssue(values([1n]), [\n        1,\n        1.0,\n        '1',\n        ' 1 ',\n        true,\n        new Date(1),\n      ]);\n      expectNoActionIssue(values([0n]), [\n        0,\n        0.0,\n        '0',\n        ' 0 ',\n        '',\n        ' ',\n        false,\n        new Date(0),\n      ]);\n    });\n\n    test('for valid booleans', () => {\n      expectNoActionIssue(values([true]), [true]);\n      expectNoActionIssue(values([false]), [false]);\n      expectNoActionIssue(values([true, false]), [false, true]);\n    });\n\n    test('for valid non-booleans', () => {\n      expectNoActionIssue(values([true]), [\n        1,\n        1.0,\n        1n,\n        '1',\n        '1.0',\n        ' 1 ',\n        new Date(1),\n      ]);\n      expectNoActionIssue(values([false]), [\n        0,\n        0.0,\n        0n,\n        '0',\n        '0.0',\n        ' 0 ',\n        '',\n        ' ',\n        new Date(0),\n      ]);\n      expectNoActionIssue(values([false, true]), [\n        1,\n        0,\n        1.0,\n        0.0,\n        1n,\n        0n,\n        '1',\n        '0',\n        '1.0',\n        '0.0',\n        ' 1 ',\n        ' 0 ',\n        '',\n        ' ',\n        new Date(1),\n        new Date(0),\n      ]);\n    });\n\n    test('for valid dates', () => {\n      const date = new Date();\n      const nextDate = new Date(+date + 1);\n      expectNoActionIssue(values([date, nextDate]), [\n        nextDate,\n        date,\n        new Date(+nextDate),\n        new Date(date.getTime()),\n        new Date(date.toISOString()),\n        new Date(\n          date.getFullYear(),\n          date.getMonth(),\n          date.getDate(),\n          date.getHours(),\n          date.getMinutes(),\n          date.getSeconds(),\n          date.getMilliseconds()\n        ),\n      ]);\n    });\n\n    test('for valid non-dates', () => {\n      expectNoActionIssue(values([new Date(-123), new Date(456)]), [\n        -123,\n        456,\n        -123.0,\n        456.0,\n        -123n,\n        456n,\n        '-123',\n        '456',\n        '-123.0',\n        '456.0',\n        ' -123 ',\n        ' 456 ',\n      ]);\n      expectNoActionIssue(values([new Date(1)]), [\n        1,\n        1.0,\n        1n,\n        '1',\n        '1.0',\n        ' 1 ',\n        true,\n      ]);\n      expectNoActionIssue(values([new Date(0)]), [\n        0,\n        0.0,\n        0n,\n        '0',\n        '0.0',\n        ' 0 ',\n        '',\n        ' ',\n        false,\n      ]);\n    });\n\n    test('for valid numbers', () => {\n      expectNoActionIssue(values([-2, 3]), [-2, 3, 3.0, Number('3')]);\n      expectNoActionIssue(values([0]), [0]);\n    });\n\n    test('for valid non-numbers', () => {\n      expectNoActionIssue(values([-123, 456]), [\n        -123n,\n        456n,\n        '-123',\n        '456',\n        '-123.0',\n        '456.0',\n        ' -123 ',\n        ' 456 ',\n        new Date(-123),\n        new Date(456),\n      ]);\n      expectNoActionIssue(values([1]), [\n        1n,\n        '1',\n        '1.0',\n        ' 1 ',\n        true,\n        new Date(1),\n      ]);\n      expectNoActionIssue(values([0]), [\n        0n,\n        '0',\n        '0.0',\n        ' 0 ',\n        '',\n        ' ',\n        false,\n        new Date(0),\n      ]);\n    });\n\n    test('for valid strings', () => {\n      expectNoActionIssue(values(['2024', '2025']), ['2024', '2025']);\n      expectNoActionIssue(values(['0']), ['0']);\n    });\n\n    test('for valid non-strings', () => {\n      expectNoActionIssue(values(['-123', '456']), [\n        -123n,\n        456n,\n        -123,\n        456,\n        -123.0,\n        456.0,\n        new Date(-123),\n        new Date(456),\n      ]);\n      expectNoActionIssue(values(['1']), [1n, 1, 1.0, true, new Date(1)]);\n      expectNoActionIssue(values(['0']), [0n, 0, 0.0, false, new Date(0)]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const baseInfo = {\n      kind: 'validation',\n      type: 'values',\n      message: 'message',\n    } as const;\n\n    const getReceived = (value: unknown): string =>\n      value instanceof Date ? value.toJSON() : _stringify(value);\n\n    test('for invalid bigints', () => {\n      expectActionIssue(\n        values([-2n, 0n, 1n], 'message'),\n        { ...baseInfo, expected: '(-2 | 0 | 1)', requirement: [-2n, 0n, 1n] },\n        [-1n, 2n, 100n]\n      );\n    });\n\n    test('for invalid non-bigints', () => {\n      expectActionIssue(\n        values([10n, 11n, 12n], 'message'),\n        {\n          ...baseInfo,\n          expected: '(10 | 11 | 12)',\n          requirement: [10n, 11n, 12n],\n        },\n        [\n          9,\n          13,\n          9.0,\n          13.0,\n          '9',\n          '13',\n          '9.0',\n          '13.0',\n          '',\n          ' ',\n          new Date(9),\n          new Date(13),\n          true,\n          false,\n        ],\n        getReceived\n      );\n      expectActionIssue(\n        values([1n], 'message'),\n        { ...baseInfo, expected: '1', requirement: [1n] },\n        [0, 0.0, '0', ' 0 ', '', ' ', false, new Date(0)],\n        getReceived\n      );\n      expectActionIssue(\n        values([0n], 'message'),\n        { ...baseInfo, expected: '0', requirement: [0n] },\n        [1, 1.0, '1', ' 1 ', true, new Date(1)],\n        getReceived\n      );\n    });\n\n    test('for invalid booleans', () => {\n      expectActionIssue(\n        values([true], 'message'),\n        { ...baseInfo, expected: 'true', requirement: [true] },\n        [false]\n      );\n      expectActionIssue(\n        values([false], 'message'),\n        { ...baseInfo, expected: 'false', requirement: [false] },\n        [true]\n      );\n    });\n\n    test('for invalid non-booleans', () => {\n      expectActionIssue(\n        values([true], 'message'),\n        { ...baseInfo, expected: 'true', requirement: [true] },\n        [0n, 0, 0.0, '0', '0.0', ' 0 ', '', ' ', new Date(0)],\n        getReceived\n      );\n      expectActionIssue(\n        values([true], 'message'),\n        { ...baseInfo, expected: 'true', requirement: [true] },\n        [123n, 123, 123.0, '123', '123.0', 'foo', 'true', new Date(123)],\n        getReceived\n      );\n      expectActionIssue(\n        values([false], 'message'),\n        { ...baseInfo, expected: 'false', requirement: [false] },\n        [1n, 1, 1.0, '1', '1.0', ' 1 ', new Date(1)],\n        getReceived\n      );\n      expectActionIssue(\n        values([false], 'message'),\n        { ...baseInfo, expected: 'false', requirement: [false] },\n        [123n, 123, 123.0, '123', '123.0', 'foo', 'false', new Date(123)],\n        getReceived\n      );\n    });\n\n    test('for invalid dates', () => {\n      const date = new Date();\n      const datePlusTwo = new Date(+date + 2);\n      expectActionIssue(\n        values<Date, [Date, Date], 'message'>([date, datePlusTwo], 'message'),\n        {\n          ...baseInfo,\n          expected: `(${date.toJSON()} | ${datePlusTwo.toJSON()})`,\n          requirement: [date, datePlusTwo],\n        },\n        [new Date(+date - 1), new Date(+date + 1), new Date(+date + 999999)],\n        (value) => value.toJSON()\n      );\n    });\n\n    test('for invalid non-dates', () => {\n      const date1 = new Date(10);\n      expectActionIssue(\n        values([date1], 'message'),\n        { ...baseInfo, expected: date1.toJSON(), requirement: [date1] },\n        [\n          9n,\n          11n,\n          9,\n          11,\n          9.0,\n          11.0,\n          '9',\n          '11',\n          '9.0',\n          '11.0',\n          '',\n          ' ',\n          true,\n          false,\n        ],\n        getReceived\n      );\n      const date2 = new Date(1);\n      expectActionIssue(\n        values([date2], 'message'),\n        { ...baseInfo, expected: date2.toJSON(), requirement: [date2] },\n        [0, 0.0, 0n, '0', '0.0', ' 0 ', '', ' ', false],\n        getReceived\n      );\n      const date3 = new Date(0);\n      expectActionIssue(\n        values([date3], 'message'),\n        { ...baseInfo, expected: date3.toJSON(), requirement: [date3] },\n        [1, 1.0, 1n, '1', '1.0', ' 1 ', true],\n        getReceived\n      );\n    });\n\n    test('for invalid numbers', () => {\n      expectActionIssue(\n        values([-123, 456], 'message'),\n        { ...baseInfo, expected: '(-123 | 456)', requirement: [-123, 456] },\n        [\n          -Infinity,\n          Number.MIN_VALUE,\n          -124,\n          -122,\n          0,\n          455,\n          457,\n          9999,\n          Number.MAX_VALUE,\n          Infinity,\n          NaN,\n        ]\n      );\n    });\n\n    test('for invalid non-numbers', () => {\n      expectActionIssue(\n        values([10, 11, 12], 'message'),\n        { ...baseInfo, expected: '(10 | 11 | 12)', requirement: [10, 11, 12] },\n        [\n          9n,\n          13n,\n          '9',\n          '13',\n          '9.0',\n          '13.0',\n          '',\n          ' ',\n          new Date(9),\n          new Date(13),\n          true,\n          false,\n        ],\n        getReceived\n      );\n      expectActionIssue(\n        values([1], 'message'),\n        { ...baseInfo, expected: '1', requirement: [1] },\n        [0n, '0', '0.0', ' 0 ', '', ' ', false, new Date(0)],\n        getReceived\n      );\n      expectActionIssue(\n        values([0], 'message'),\n        { ...baseInfo, expected: '0', requirement: [0] },\n        [1n, '1', '1.0', ' 1 ', true, new Date(1)],\n        getReceived\n      );\n    });\n\n    test('for invalid strings', () => {\n      expectActionIssue(\n        values(['2024', '2025'], 'message'),\n        {\n          ...baseInfo,\n          expected: '(\"2024\" | \"2025\")',\n          requirement: ['2024', '2025'],\n        },\n        [\n          '202',\n          '024',\n          ' 2024',\n          '2024 ',\n          '02024',\n          '20240',\n          '020240',\n          '2026',\n          '9999',\n          'XYZ',\n        ]\n      );\n    });\n\n    test('for invalid non-strings', () => {\n      expectActionIssue(\n        values(['10', '11', '12'], 'message'),\n        {\n          ...baseInfo,\n          expected: '(\"10\" | \"11\" | \"12\")',\n          requirement: ['10', '11', '12'],\n        },\n        [9n, 13n, 9, 13, 9.0, 13.0, new Date(9), new Date(13), true, false],\n        getReceived\n      );\n      expectActionIssue(\n        values(['1'], 'message'),\n        { ...baseInfo, expected: '\"1\"', requirement: ['1'] },\n        [0n, 0, 0.0, false, new Date(0)],\n        getReceived\n      );\n      expectActionIssue(\n        values(['0'], 'message'),\n        { ...baseInfo, expected: '\"0\"', requirement: ['0'] },\n        [1n, 1, 1.0, true, new Date(1)],\n        getReceived\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/values/values.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue, _joinExpects, _stringify } from '../../utils/index.ts';\nimport type { ValueInput } from '../types.ts';\n\n/**\n * Values issue type.\n */\nexport interface ValuesIssue<\n  TInput extends ValueInput,\n  TRequirement extends readonly TInput[],\n> extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'values';\n  /**\n   * The expected property.\n   */\n  readonly expected: string;\n  /**\n   * The required values.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Values action type.\n */\nexport interface ValuesAction<\n  TInput extends ValueInput,\n  TRequirement extends readonly TInput[],\n  TMessage extends ErrorMessage<ValuesIssue<TInput, TRequirement>> | undefined,\n> extends BaseValidation<TInput, TInput, ValuesIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'values';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof values;\n  /**\n   * The expected property.\n   */\n  readonly expects: string;\n  /**\n   * The required values.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a values validation action.\n *\n * @param requirement The required values.\n *\n * @returns A values action.\n */\nexport function values<\n  TInput extends ValueInput,\n  const TRequirement extends readonly TInput[],\n>(requirement: TRequirement): ValuesAction<TInput, TRequirement, undefined>;\n\n/**\n * Creates a values validation action.\n *\n * @param requirement The required values.\n * @param message The error message.\n *\n * @returns A values action.\n */\nexport function values<\n  TInput extends ValueInput,\n  const TRequirement extends readonly TInput[],\n  const TMessage extends\n    | ErrorMessage<ValuesIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  requirement: TRequirement,\n  message: TMessage\n): ValuesAction<TInput, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function values(\n  requirement: readonly ValueInput[],\n  message?: ErrorMessage<ValuesIssue<ValueInput, readonly ValueInput[]>>\n): ValuesAction<\n  ValueInput,\n  readonly ValueInput[],\n  ErrorMessage<ValuesIssue<ValueInput, readonly ValueInput[]>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'values',\n    reference: values,\n    async: false,\n    expects: `${_joinExpects(\n      requirement.map((value) =>\n        value instanceof Date ? value.toJSON() : _stringify(value)\n      ),\n      '|'\n    )}`,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (\n        dataset.typed &&\n        !this.requirement.some(\n          (value) => value <= dataset.value && value >= dataset.value\n        )\n      ) {\n        _addIssue(this, 'value', dataset, config, {\n          received:\n            dataset.value instanceof Date\n              ? dataset.value.toJSON()\n              : _stringify(dataset.value),\n        });\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/actions/words/index.ts",
    "content": "export * from './words.ts';\n"
  },
  {
    "path": "library/src/actions/words/words.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { words, type WordsAction, type WordsIssue } from './words.ts';\n\ndescribe('words', () => {\n  describe('should return action object', () => {\n    test('with undefined message', () => {\n      type Action = WordsAction<string, 'en', 3, undefined>;\n      expectTypeOf(words<string, 'en', 3>('en', 3)).toEqualTypeOf<Action>();\n      expectTypeOf(\n        words<string, 'en', 3, undefined>('en', 3, undefined)\n      ).toEqualTypeOf<Action>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        words<string, 'en', 3, 'message'>('en', 3, 'message')\n      ).toEqualTypeOf<WordsAction<string, 'en', 3, 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        words<string, 'en', 3, () => string>('en', 3, () => 'message')\n      ).toEqualTypeOf<WordsAction<string, 'en', 3, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Input = 'foo bar baz';\n    type Action = WordsAction<Input, 'en', 3, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<WordsIssue<Input, 3>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/words/words.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { _getWordCount } from '../../utils/index.ts';\nimport { expectActionIssue, expectNoActionIssue } from '../../vitest/index.ts';\nimport { words, type WordsAction, type WordsIssue } from './words.ts';\n\ndescribe('words', () => {\n  describe('should return action object', () => {\n    const baseAction: Omit<WordsAction<string, 'en', 3, never>, 'message'> = {\n      kind: 'validation',\n      type: 'words',\n      reference: words,\n      expects: '3',\n      locales: 'en',\n      requirement: 3,\n      async: false,\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const action: WordsAction<string, 'en', 3, undefined> = {\n        ...baseAction,\n        message: undefined,\n      };\n      expect(words('en', 3)).toStrictEqual(action);\n      expect(words('en', 3, undefined)).toStrictEqual(action);\n    });\n\n    test('with string message', () => {\n      expect(words('en', 3, 'message')).toStrictEqual({\n        ...baseAction,\n        message: 'message',\n      } satisfies WordsAction<string, 'en', 3, string>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(words('en', 3, message)).toStrictEqual({\n        ...baseAction,\n        message,\n      } satisfies WordsAction<string, 'en', 3, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const action = words('en', 3);\n\n    test('for untyped inputs', () => {\n      const issues: [StringIssue] = [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: null,\n          expected: 'string',\n          received: 'null',\n          message: 'message',\n        },\n      ];\n      expect(\n        action['~run']({ typed: false, value: null, issues }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues,\n      });\n    });\n\n    test('for valid strings', () => {\n      expectNoActionIssue(action, [\n        'foo bar baz',\n        'Lorem ipsum dolor?',\n        'Hi, welcome home!',\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const action = words('en', 3, 'message');\n    const baseIssue: Omit<WordsIssue<string, 3>, 'input' | 'received'> = {\n      kind: 'validation',\n      type: 'words',\n      expected: '3',\n      message: 'message',\n      requirement: 3,\n    };\n\n    test('for invalid strings', () => {\n      expectActionIssue(\n        action,\n        baseIssue,\n        [\n          '',\n          ' ',\n          'foo',\n          'foo bar',\n          'for bar baz qux',\n          'Lorem ipsum?',\n          'Lorem ipsum dolor sit?',\n          'Lorem ipsum dolor sit amet, consectetur adipiscing elit?',\n          'Hi, welcome!',\n          'Hi, welcome home! How are you?',\n        ],\n        (value) => `${_getWordCount('en', value)}`\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/actions/words/words.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport { _addIssue, _getWordCount } from '../../utils/index.ts';\n\n/**\n * Words issue interface.\n */\nexport interface WordsIssue<TInput extends string, TRequirement extends number>\n  extends BaseIssue<TInput> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The issue type.\n   */\n  readonly type: 'words';\n  /**\n   * The expected property.\n   */\n  readonly expected: `${TRequirement}`;\n  /**\n   * The received property.\n   */\n  readonly received: `${number}`;\n  /**\n   * The required words.\n   */\n  readonly requirement: TRequirement;\n}\n\n/**\n * Words action interface.\n */\nexport interface WordsAction<\n  TInput extends string,\n  TLocales extends Intl.LocalesArgument,\n  TRequirement extends number,\n  TMessage extends ErrorMessage<WordsIssue<TInput, TRequirement>> | undefined,\n> extends BaseValidation<TInput, TInput, WordsIssue<TInput, TRequirement>> {\n  /**\n   * The action type.\n   */\n  readonly type: 'words';\n  /**\n   * The action reference.\n   */\n  readonly reference: typeof words;\n  /**\n   * The expected property.\n   */\n  readonly expects: `${TRequirement}`;\n  /**\n   * The locales to be used.\n   */\n  readonly locales: TLocales;\n  /**\n   * The required words.\n   */\n  readonly requirement: TRequirement;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a words validation action.\n *\n * @param locales The locales to be used.\n * @param requirement The required words.\n *\n * @returns A words action.\n */\nexport function words<\n  TInput extends string,\n  const TLocales extends Intl.LocalesArgument,\n  const TRequirement extends number,\n>(\n  locales: TLocales,\n  requirement: TRequirement\n): WordsAction<TInput, TLocales, TRequirement, undefined>;\n\n/**\n * Creates a words validation action.\n *\n * @param locales The locales to be used.\n * @param requirement The required words.\n * @param message The error message.\n *\n * @returns A words action.\n */\nexport function words<\n  TInput extends string,\n  const TLocales extends Intl.LocalesArgument,\n  const TRequirement extends number,\n  const TMessage extends\n    | ErrorMessage<WordsIssue<TInput, TRequirement>>\n    | undefined,\n>(\n  locales: TLocales,\n  requirement: TRequirement,\n  message: TMessage\n): WordsAction<TInput, TLocales, TRequirement, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function words(\n  locales: Intl.LocalesArgument,\n  requirement: number,\n  message?: ErrorMessage<WordsIssue<string, number>>\n): WordsAction<\n  string,\n  Intl.LocalesArgument,\n  number,\n  ErrorMessage<WordsIssue<string, number>> | undefined\n> {\n  return {\n    kind: 'validation',\n    type: 'words',\n    reference: words,\n    async: false,\n    expects: `${requirement}`,\n    locales,\n    requirement,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed) {\n        const count = _getWordCount(this.locales, dataset.value);\n        if (count !== this.requirement) {\n          _addIssue(this, 'words', dataset, config, {\n            received: `${count}`,\n          });\n        }\n      }\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/index.ts",
    "content": "export * from './actions/index.ts';\nexport * from './methods/index.ts';\nexport * from './regex.ts';\nexport * from './schemas/index.ts';\nexport * from './storages/index.ts';\nexport type {\n  ArrayPathItem,\n  BaseIssue,\n  BaseMetadata,\n  BaseSchema,\n  BaseSchemaAsync,\n  BaseTransformation,\n  BaseTransformationAsync,\n  BaseValidation,\n  BaseValidationAsync,\n  Config,\n  Default,\n  DefaultAsync,\n  DefaultValue,\n  ErrorMessage,\n  FailureDataset,\n  GenericIssue,\n  GenericMetadata,\n  GenericSchema,\n  GenericSchemaAsync,\n  GenericTransformation,\n  GenericTransformationAsync,\n  GenericValidation,\n  GenericValidationAsync,\n  GenericPipeAction,\n  GenericPipeActionAsync,\n  GenericPipeItem,\n  GenericPipeItemAsync,\n  InferInput,\n  InferOutput,\n  InferIssue,\n  IssueDotPath,\n  IssuePathItem,\n  MapPathItem,\n  ObjectPathItem,\n  ObjectEntries,\n  ObjectKeys,\n  ObjectEntriesAsync,\n  OutputDataset,\n  PartialDataset,\n  PipeAction,\n  PipeActionAsync,\n  PipeItem,\n  PipeItemAsync,\n  SchemaWithoutPipe,\n  SetPathItem,\n  SuccessDataset,\n  StandardProps,\n  TupleItems,\n  TupleItemsAsync,\n  UnknownDataset,\n  UnknownPathItem,\n} from './types/index.ts';\nexport * from './utils/index.ts';\n"
  },
  {
    "path": "library/src/methods/assert/assert.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport { transform } from '../../actions/index.ts';\nimport { object, string } from '../../schemas/index.ts';\nimport { pipe } from '../pipe/pipe.ts';\nimport { assert } from './assert.ts';\n\ndescribe('assert', () => {\n  test('should assert input type of schema', () => {\n    const input: unknown = { key: 'foo' };\n    assert(\n      object({\n        key: pipe(\n          string(),\n          transform((input) => input.length)\n        ),\n      }),\n      input\n    );\n    expectTypeOf(input).toEqualTypeOf<{ key: string }>();\n  });\n});\n"
  },
  {
    "path": "library/src/methods/assert/assert.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { transform } from '../../actions/index.ts';\nimport { number, object, string } from '../../schemas/index.ts';\nimport { pipe } from '../pipe/index.ts';\nimport { assert } from './assert.ts';\n\ndescribe('assert', () => {\n  const entries = {\n    key: pipe(\n      string(),\n      transform((input) => input.length)\n    ),\n  };\n\n  test('should not throw for valid input', () => {\n    expect(() => assert(string(), 'foo')).not.toThrowError();\n    expect(() => assert(number(), 123)).not.toThrowError();\n    expect(() => assert(object(entries), { key: 'foo' })).not.toThrowError();\n  });\n\n  test('should throw for invalid input', () => {\n    expect(() => assert(string(), 123)).toThrowError();\n    expect(() => assert(number(), 'foo')).toThrowError();\n    expect(() => assert(object(entries), null)).toThrowError();\n  });\n});\n"
  },
  {
    "path": "library/src/methods/assert/assert.ts",
    "content": "import type { BaseIssue, BaseSchema, InferInput } from '../../types/index.ts';\nimport { ValiError } from '../../utils/index.ts';\n\n/**\n * Checks if the input matches the schema. As this is an assertion function, it\n * can be used as a type guard.\n *\n * @param schema The schema to be used.\n * @param input The input to be tested.\n */\nexport function assert<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n>(schema: TSchema, input: unknown): asserts input is InferInput<TSchema> {\n  const issues = schema['~run']({ value: input }, { abortEarly: true }).issues;\n  if (issues) {\n    throw new ValiError(issues);\n  }\n}\n"
  },
  {
    "path": "library/src/methods/assert/index.ts",
    "content": "export * from './assert.ts';\n"
  },
  {
    "path": "library/src/methods/cache/_LruCache.test.ts",
    "content": "import { afterAll, beforeEach, describe, expect, test, vi } from 'vitest';\nimport { _LruCache } from './_LruCache.ts';\n\ndescribe('_LruCache', () => {\n  test('should create stable keys for the same input and config', () => {\n    const cache = new _LruCache<unknown>();\n    const input = { key: 'foo' };\n    const config = { lang: 'de', abortEarly: true };\n\n    expect(cache.key(input, config)).toBe(cache.key(input, config));\n  });\n\n  test('should create different keys for different configs', () => {\n    const cache = new _LruCache<unknown>();\n\n    expect(cache.key('foo', { lang: 'de' })).not.toBe(\n      cache.key('foo', { lang: 'en' })\n    );\n  });\n\n  test('should create different keys for different abort configs', () => {\n    const cache = new _LruCache<unknown>();\n\n    expect(cache.key('foo', {})).not.toBe(\n      cache.key('foo', { abortEarly: true })\n    );\n  });\n\n  test('should distinguish numbers and bigints', () => {\n    const cache = new _LruCache<unknown>();\n\n    expect(cache.key(1, {})).not.toBe(cache.key(1n, {}));\n  });\n\n  test('should handle null input', () => {\n    const cache = new _LruCache<unknown>();\n\n    expect(cache.key(null, {})).toContain('null');\n  });\n\n  test('should include symbol type for symbol input', () => {\n    const cache = new _LruCache<unknown>();\n\n    expect(cache.key(Symbol('foo'), {})).toBe(\n      'symbol|undefined|undefined|undefined|undefined'\n    );\n  });\n\n  test('should create different keys for different object references', () => {\n    const cache = new _LruCache<unknown>();\n\n    expect(cache.key({}, {})).not.toBe(cache.key({}, {}));\n  });\n\n  test('should return undefined on cache miss', () => {\n    const cache = new _LruCache<string>();\n\n    expect(cache.get('foo')).toBeUndefined();\n  });\n\n  test('should get stored values by key', () => {\n    const cache = new _LruCache<string>();\n\n    cache.set('foo', 'bar');\n\n    expect(cache.get('foo')).toBe('bar');\n  });\n\n  test('should clear stored values', () => {\n    const cache = new _LruCache<string>();\n\n    cache.set('foo', 'bar');\n    cache.clear();\n\n    expect(cache.get('foo')).toBeUndefined();\n  });\n\n  describe('should allow custom max age', () => {\n    beforeEach(() => {\n      vi.useFakeTimers();\n    });\n    afterAll(() => {\n      vi.useRealTimers();\n    });\n\n    test('and clear expired values', () => {\n      const cache = new _LruCache<string>({ maxAge: 1000 });\n\n      cache.set('foo', 'bar');\n      expect(cache.get('foo')).toBe('bar');\n      vi.advanceTimersByTime(1001);\n      expect(cache.get('foo')).toBeUndefined();\n    });\n\n    test('and not reset expiry on get', () => {\n      const cache = new _LruCache<string>({ maxAge: 1000 });\n\n      cache.set('foo', 'bar');\n      expect(cache.get('foo')).toBe('bar');\n      vi.advanceTimersByTime(500);\n      expect(cache.get('foo')).toBe('bar');\n      vi.advanceTimersByTime(501);\n      expect(cache.get('foo')).toBeUndefined();\n    });\n  });\n\n  test('should evict oldest key when max size is exceeded', () => {\n    const cache = new _LruCache<string>({ maxSize: 2 });\n\n    cache.set('foo', 'foo');\n    cache.set('bar', 'bar');\n    cache.set('baz', 'baz');\n\n    expect(cache.get('foo')).toBeUndefined();\n    expect(cache.get('bar')).toBe('bar');\n    expect(cache.get('baz')).toBe('baz');\n  });\n});\n"
  },
  {
    "path": "library/src/methods/cache/_LruCache.ts",
    "content": "import type { BaseIssue, Config } from '../../types/index.ts';\nimport type { Cache, CacheConfig } from './types.ts';\n\n/**\n * Efficient LRU cache using Map iteration order.\n */\nclass _LruCache<TValue> implements Cache<TValue> {\n  // Stores [value, timestamp] tuples to avoid object allocation overhead\n  private store: Map<string, [TValue, number]> | undefined;\n\n  // Assign stable IDs to references\n  private refIds: WeakMap<WeakKey, number> | undefined;\n\n  // Counter for tracking references\n  private refCount = 0;\n\n  // Cache configuration\n  private readonly maxSize: number;\n  private readonly maxAge: number;\n  private readonly hasMaxAge: boolean;\n\n  constructor(config?: CacheConfig) {\n    this.maxSize = config?.maxSize ?? 1000;\n    this.maxAge = config?.maxAge ?? Infinity;\n    this.hasMaxAge = isFinite(this.maxAge);\n  }\n\n  /**\n   * Stringifies an unknown input to a cache key component.\n   *\n   * @param input The unknown input.\n   *\n   * @returns A cache key component.\n   */\n  #stringify(input: unknown): string {\n    const type = typeof input;\n    if (type === 'string') {\n      return `\"${input}\"`;\n    }\n    if (type === 'number' || type === 'boolean') {\n      return `${input}`;\n    }\n    if (type === 'bigint') {\n      return `${input}n`;\n    }\n    if (type === 'object' || type === 'function') {\n      if (input) {\n        this.refIds ??= new WeakMap();\n        let id = this.refIds.get(input as WeakKey);\n        if (!id) {\n          id = ++this.refCount;\n          this.refIds.set(input as WeakKey, id);\n        }\n        return `#${id}`;\n      }\n      return 'null';\n    }\n    return type;\n  }\n\n  /**\n   * Creates a cache key from input and config.\n   *\n   * @param input The input value.\n   * @param config The parse configuration.\n   *\n   * @returns The cache key.\n   */\n  key(input: unknown, config: Config<BaseIssue<unknown>> = {}): string {\n    return `${this.#stringify(input)}|${this.#stringify(config.lang)}|${this.#stringify(\n      config.message\n    )}|${this.#stringify(config.abortEarly)}|${this.#stringify(\n      config.abortPipeEarly\n    )}`;\n  }\n\n  /**\n   * Gets a value from the cache by key.\n   *\n   * @param key The cache key.\n   *\n   * @returns The cached value.\n   */\n  get(key: string): TValue | undefined {\n    if (!this.store) return undefined;\n\n    // Get entry tuple [value, timestamp]\n    const entry = this.store.get(key);\n\n    // Return undefined if not found\n    if (!entry) return undefined;\n\n    // Delete stale entry if maxAge is exceeded\n    if (this.hasMaxAge && Date.now() - entry[1] > this.maxAge) {\n      this.store.delete(key);\n      return undefined;\n    }\n\n    // Reorder by deleting and re-inserting at end (most recently used)\n    this.store.delete(key);\n    this.store.set(key, entry);\n\n    // Return cached value\n    return entry[0];\n  }\n\n  /**\n   * Sets a value in the cache by key.\n   *\n   * @param key The cache key.\n   * @param value The cached value.\n   */\n  set(key: string, value: TValue): void {\n    this.store ??= new Map();\n\n    // Delete first to ensure insertion at end for correct ordering\n    this.store.delete(key);\n\n    // Set value with current timestamp if maxAge is used\n    const timestamp = this.hasMaxAge ? Date.now() : 0;\n    this.store.set(key, [value, timestamp]);\n\n    // Evict oldest entry (first key) if over maxSize\n    if (this.store.size > this.maxSize) {\n      this.store.delete(this.store.keys().next().value!);\n    }\n  }\n\n  /**\n   * Clears all entries from the cache.\n   */\n  clear(): void {\n    this.store?.clear();\n  }\n}\n\nexport { _LruCache };\n"
  },
  {
    "path": "library/src/methods/cache/cache.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { StringIssue, StringSchema } from '../../schemas/index.ts';\nimport { string } from '../../schemas/index.ts';\nimport type {\n  InferInput,\n  InferIssue,\n  InferOutput,\n  OutputDataset,\n} from '../../types/index.ts';\nimport type { SchemaWithCache } from './cache.ts';\nimport { cache } from './cache.ts';\nimport type { Cache } from './types.ts';\n\ndescribe('cache', () => {\n  describe('should return schema object', () => {\n    test('without config', () => {\n      const schema = string();\n      expectTypeOf(cache(schema)).toEqualTypeOf<\n        SchemaWithCache<typeof schema, undefined>\n      >();\n      expectTypeOf(cache(schema, undefined)).toEqualTypeOf<\n        SchemaWithCache<typeof schema, undefined>\n      >();\n    });\n\n    test('with config', () => {\n      const schema = string();\n      expectTypeOf(cache(schema, { maxSize: 10 })).toMatchTypeOf<\n        SchemaWithCache<typeof schema, { maxSize: 10 }>\n      >();\n      expectTypeOf<\n        SchemaWithCache<typeof schema, { maxSize: 10 }>\n      >().toMatchTypeOf(cache(schema, { maxSize: 10 }));\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = SchemaWithCache<StringSchema<undefined>, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<StringIssue>();\n    });\n\n    test('of cache', () => {\n      expectTypeOf<Schema['cache']>().toEqualTypeOf<\n        Cache<OutputDataset<string, StringIssue>>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/cache/cache.test.ts",
    "content": "import { describe, expect, test, vi } from 'vitest';\nimport { minLength, transform } from '../../actions/index.ts';\nimport { string } from '../../schemas/index.ts';\nimport { pipe } from '../index.ts';\nimport { cache, type SchemaWithCache } from './cache.ts';\n\ndescribe('cache', () => {\n  describe('should return schema object', () => {\n    const schema = string();\n    type Schema = typeof schema;\n    const baseSchema: Omit<SchemaWithCache<Schema, never>, 'cacheConfig'> = {\n      ...schema,\n      cache: expect.any(Object),\n      '~run': expect.any(Function),\n    };\n\n    test('without cache config', () => {\n      expect(cache(schema)).toStrictEqual({\n        ...baseSchema,\n        cacheConfig: undefined,\n        '~standard': {\n          version: 1,\n          vendor: 'valibot',\n          validate: expect.any(Function),\n        },\n      } satisfies SchemaWithCache<Schema, undefined>);\n    });\n\n    test('with cache config', () => {\n      expect(cache(schema, { maxSize: 123 })).toStrictEqual({\n        ...baseSchema,\n        cacheConfig: { maxSize: 123 },\n        '~standard': {\n          version: 1,\n          vendor: 'valibot',\n          validate: expect.any(Function),\n        },\n      } satisfies SchemaWithCache<Schema, { maxSize: 123 }>);\n    });\n  });\n\n  describe('should cache output', () => {\n    test('for same input and config', () => {\n      const baseSchema = string();\n      const runSpy = vi.spyOn(baseSchema, '~run');\n      const schema = cache(baseSchema);\n      const dataset1 = schema['~run']({ value: 'foo' }, {});\n      const dataset2 = schema['~run']({ value: 'foo' }, {});\n\n      expect(dataset1).toStrictEqual({\n        typed: true,\n        value: 'foo',\n        issues: undefined,\n      });\n      expect(dataset2).toStrictEqual({\n        typed: true,\n        value: 'foo',\n        issues: undefined,\n      });\n      expect(dataset1).not.toBe(dataset2);\n      expect(runSpy).toHaveBeenCalledTimes(1);\n    });\n\n    test('without reusing mutated pipe datasets', () => {\n      const baseSchema = string();\n      const runSpy = vi.spyOn(baseSchema, '~run');\n      const schema = pipe(\n        cache(baseSchema),\n        transform((input) => `${input}!`)\n      );\n\n      expect(schema['~run']({ value: 'foo' }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo!',\n        issues: undefined,\n      });\n      expect(schema['~run']({ value: 'foo' }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo!',\n        issues: undefined,\n      });\n      expect(runSpy).toHaveBeenCalledTimes(1);\n    });\n  });\n\n  describe('should respect config changes', () => {\n    test('for lang config', () => {\n      const baseSchema = string();\n      const runSpy = vi.spyOn(baseSchema, '~run');\n      const schema = cache(baseSchema);\n      const defaultDataset = schema['~run']({ value: 'foo' }, {});\n      const langDataset = schema['~run']({ value: 'foo' }, { lang: 'de' });\n      const defaultDataset2 = schema['~run']({ value: 'foo' }, {});\n      const langDataset2 = schema['~run']({ value: 'foo' }, { lang: 'de' });\n\n      expect(defaultDataset).not.toBe(langDataset);\n      expect(defaultDataset).toStrictEqual({\n        typed: true,\n        value: 'foo',\n        issues: undefined,\n      });\n      expect(defaultDataset2).toStrictEqual({\n        typed: true,\n        value: 'foo',\n        issues: undefined,\n      });\n      expect(defaultDataset2).not.toBe(defaultDataset);\n      expect(langDataset).toStrictEqual({\n        typed: true,\n        value: 'foo',\n        issues: undefined,\n      });\n      expect(langDataset2).toStrictEqual({\n        typed: true,\n        value: 'foo',\n        issues: undefined,\n      });\n      expect(langDataset2).not.toBe(langDataset);\n      expect(runSpy).toHaveBeenCalledTimes(2);\n    });\n\n    test('for abort config', () => {\n      const schema = cache(pipe(string(), minLength(4), minLength(6)));\n      const defaultDataset = schema['~run']({ value: 'foo' }, {});\n      const abortDataset = schema['~run'](\n        { value: 'foo' },\n        { abortEarly: true }\n      );\n\n      expect(defaultDataset).not.toBe(abortDataset);\n      expect(defaultDataset.issues).toHaveLength(2);\n      expect(abortDataset.issues).toHaveLength(1);\n    });\n  });\n\n  describe('should expose cache for manual clearing', () => {\n    test('to invalidate cached output', () => {\n      const baseSchema = string();\n      const runSpy = vi.spyOn(baseSchema, '~run');\n      const schema = cache(baseSchema);\n\n      expect(schema['~run']({ value: 'foo' }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n        issues: undefined,\n      });\n      expect(schema['~run']({ value: 'foo' }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n        issues: undefined,\n      });\n      expect(runSpy).toHaveBeenCalledTimes(1);\n\n      schema.cache.clear();\n\n      expect(schema['~run']({ value: 'foo' }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n        issues: undefined,\n      });\n      expect(runSpy).toHaveBeenCalledTimes(2);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/cache/cache.ts",
    "content": "import type { OutputDataset } from '../../types/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  InferIssue,\n  InferOutput,\n} from '../../types/index.ts';\nimport { _cloneDataset, _getStandardProps } from '../../utils/index.ts';\nimport { _LruCache } from './_LruCache.ts';\nimport type { Cache, CacheConfig } from './types.ts';\n\n/**\n * Schema with cache type.\n *\n * @beta\n */\nexport type SchemaWithCache<\n  TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  TCacheConfig extends CacheConfig | undefined,\n> = TSchema & {\n  /**\n   * The cache config.\n   */\n  readonly cacheConfig: TCacheConfig;\n  /**\n   * The cache instance.\n   */\n  readonly cache: Cache<\n    OutputDataset<InferOutput<TSchema>, InferIssue<TSchema>>\n  >;\n};\n\n/**\n * Caches the output of a schema.\n *\n * Hint: Primitive inputs are cached by value. Object and function inputs are\n * cached by reference identity, so mutating input objects and reusing the same\n * reference can return a stale cached dataset. Returned objects are also\n * reused by reference, so mutating cached output can affect later cache hits.\n *\n * @param schema The schema to cache.\n *\n * @returns The cached schema.\n *\n * @beta\n */\nexport function cache<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n>(schema: TSchema): SchemaWithCache<TSchema, undefined>;\n\n/**\n * Caches the output of a schema.\n *\n * Hint: Primitive inputs are cached by value. Object and function inputs are\n * cached by reference identity, so mutating input objects and reusing the same\n * reference can return a stale cached dataset. Returned objects are also\n * reused by reference, so mutating cached output can affect later cache hits.\n *\n * @param schema The schema to cache.\n * @param config The cache config.\n *\n * @returns The cached schema.\n *\n * @beta\n */\nexport function cache<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TCacheConfig extends CacheConfig | undefined,\n>(\n  schema: TSchema,\n  config: TCacheConfig\n): SchemaWithCache<TSchema, TCacheConfig>;\n\n// @__NO_SIDE_EFFECTS__\nexport function cache(\n  schema: BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  config?: CacheConfig\n): SchemaWithCache<\n  BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  CacheConfig | undefined\n> {\n  return {\n    ...schema,\n    cacheConfig: config,\n    cache: new _LruCache(config),\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, runConfig) {\n      const key = this.cache.key(dataset.value, runConfig);\n      let outputDataset = this.cache.get(key);\n      if (!outputDataset) {\n        this.cache.set(\n          key,\n          (outputDataset = schema['~run'](dataset, runConfig))\n        );\n      }\n      // Hint: We clone the dataset before returning it so downstream pipe items\n      // do not mutate the cached dataset wrapper or issues array.\n      return _cloneDataset(outputDataset);\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/methods/cache/cacheAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { StringIssue, StringSchema } from '../../schemas/index.ts';\nimport { string } from '../../schemas/index.ts';\nimport type {\n  InferInput,\n  InferIssue,\n  InferOutput,\n  OutputDataset,\n} from '../../types/index.ts';\nimport type { SchemaWithCacheAsync } from './cacheAsync.ts';\nimport { cacheAsync } from './cacheAsync.ts';\nimport type { Cache } from './types.ts';\n\ndescribe('cacheAsync', () => {\n  describe('should return schema object', () => {\n    test('without config', () => {\n      const schema = string();\n      expectTypeOf(cacheAsync(schema)).toEqualTypeOf<\n        SchemaWithCacheAsync<typeof schema, undefined>\n      >();\n      expectTypeOf(cacheAsync(schema, undefined)).toEqualTypeOf<\n        SchemaWithCacheAsync<typeof schema, undefined>\n      >();\n    });\n\n    test('with config', () => {\n      const schema = string();\n      expectTypeOf(cacheAsync(schema, { maxSize: 10 })).toMatchTypeOf<\n        SchemaWithCacheAsync<typeof schema, { maxSize: 10 }>\n      >();\n      expectTypeOf<\n        SchemaWithCacheAsync<typeof schema, { maxSize: 10 }>\n      >().toMatchTypeOf(cacheAsync(schema, { maxSize: 10 }));\n    });\n  });\n  describe('should infer correct types', () => {\n    type Schema = SchemaWithCacheAsync<StringSchema<undefined>, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<StringIssue>();\n    });\n\n    test('of cache', () => {\n      expectTypeOf<Schema['cache']>().toEqualTypeOf<\n        Cache<OutputDataset<string, StringIssue>>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/cache/cacheAsync.test.ts",
    "content": "import { describe, expect, test, vi } from 'vitest';\nimport { minLength, transformAsync } from '../../actions/index.ts';\nimport { string } from '../../schemas/index.ts';\nimport { pipe, pipeAsync } from '../index.ts';\nimport { cacheAsync, type SchemaWithCacheAsync } from './cacheAsync.ts';\n\ndescribe('cacheAsync', () => {\n  describe('should return schema object', () => {\n    const schema = string();\n    type Schema = typeof schema;\n    const baseSchema: Omit<\n      SchemaWithCacheAsync<Schema, never>,\n      'cacheConfig'\n    > = {\n      ...schema,\n      async: true,\n      cache: expect.any(Object),\n      '~run': expect.any(Function),\n    };\n\n    test('without cache config', () => {\n      expect(cacheAsync(schema)).toStrictEqual({\n        ...baseSchema,\n        cacheConfig: undefined,\n        '~standard': {\n          version: 1,\n          vendor: 'valibot',\n          validate: expect.any(Function),\n        },\n      } satisfies SchemaWithCacheAsync<Schema, undefined>);\n    });\n\n    test('with cache config', () => {\n      expect(cacheAsync(schema, { maxSize: 123 })).toStrictEqual({\n        ...baseSchema,\n        cacheConfig: { maxSize: 123 },\n        '~standard': {\n          version: 1,\n          vendor: 'valibot',\n          validate: expect.any(Function),\n        },\n      } satisfies SchemaWithCacheAsync<Schema, { maxSize: 123 }>);\n    });\n  });\n\n  describe('should cache output', () => {\n    test('for same input and config', async () => {\n      const baseSchema = string();\n      const runSpy = vi.spyOn(baseSchema, '~run');\n      const schema = cacheAsync(baseSchema);\n      const dataset1 = await schema['~run']({ value: 'foo' }, {});\n      const dataset2 = await schema['~run']({ value: 'foo' }, {});\n\n      expect(dataset1).toStrictEqual({\n        typed: true,\n        value: 'foo',\n        issues: undefined,\n      });\n      expect(dataset2).toStrictEqual({\n        typed: true,\n        value: 'foo',\n        issues: undefined,\n      });\n      expect(dataset1).not.toBe(dataset2);\n      expect(runSpy).toHaveBeenCalledTimes(1);\n    });\n\n    test('without reusing mutated pipe datasets', async () => {\n      const baseSchema = string();\n      const runSpy = vi.spyOn(baseSchema, '~run');\n      const schema = pipeAsync(\n        cacheAsync(baseSchema),\n        transformAsync(async (input) => `${input}!`)\n      );\n\n      await expect(schema['~run']({ value: 'foo' }, {})).resolves.toStrictEqual(\n        {\n          typed: true,\n          value: 'foo!',\n          issues: undefined,\n        }\n      );\n      await expect(schema['~run']({ value: 'foo' }, {})).resolves.toStrictEqual(\n        {\n          typed: true,\n          value: 'foo!',\n          issues: undefined,\n        }\n      );\n      expect(runSpy).toHaveBeenCalledTimes(1);\n    });\n  });\n\n  describe('should respect config changes', () => {\n    test('for lang config', async () => {\n      const baseSchema = string();\n      const runSpy = vi.spyOn(baseSchema, '~run');\n      const schema = cacheAsync(baseSchema);\n      const defaultDataset = await schema['~run']({ value: 'foo' }, {});\n      const langDataset = await schema['~run'](\n        { value: 'foo' },\n        { lang: 'de' }\n      );\n      const defaultDataset2 = await schema['~run']({ value: 'foo' }, {});\n      const langDataset2 = await schema['~run'](\n        { value: 'foo' },\n        { lang: 'de' }\n      );\n\n      expect(defaultDataset).not.toBe(langDataset);\n      expect(defaultDataset).toStrictEqual({\n        typed: true,\n        value: 'foo',\n        issues: undefined,\n      });\n      expect(defaultDataset2).toStrictEqual({\n        typed: true,\n        value: 'foo',\n        issues: undefined,\n      });\n      expect(defaultDataset2).not.toBe(defaultDataset);\n      expect(langDataset).toStrictEqual({\n        typed: true,\n        value: 'foo',\n        issues: undefined,\n      });\n      expect(langDataset2).toStrictEqual({\n        typed: true,\n        value: 'foo',\n        issues: undefined,\n      });\n      expect(langDataset2).not.toBe(langDataset);\n      expect(runSpy).toHaveBeenCalledTimes(2);\n    });\n\n    test('for abort config', async () => {\n      const schema = cacheAsync(pipe(string(), minLength(4), minLength(6)));\n      const defaultDataset = await schema['~run']({ value: 'foo' }, {});\n      const abortDataset = await schema['~run'](\n        { value: 'foo' },\n        { abortEarly: true }\n      );\n\n      expect(defaultDataset).not.toBe(abortDataset);\n      expect(defaultDataset.issues).toHaveLength(2);\n      expect(abortDataset.issues).toHaveLength(1);\n    });\n  });\n\n  describe('should expose cache for manual clearing', () => {\n    test('to invalidate cached output', async () => {\n      const baseSchema = string();\n      const runSpy = vi.spyOn(baseSchema, '~run');\n      const schema = cacheAsync(baseSchema);\n\n      await expect(schema['~run']({ value: 'foo' }, {})).resolves.toStrictEqual(\n        {\n          typed: true,\n          value: 'foo',\n          issues: undefined,\n        }\n      );\n      await expect(schema['~run']({ value: 'foo' }, {})).resolves.toStrictEqual(\n        {\n          typed: true,\n          value: 'foo',\n          issues: undefined,\n        }\n      );\n      expect(runSpy).toHaveBeenCalledTimes(1);\n\n      schema.cache.clear();\n\n      await expect(schema['~run']({ value: 'foo' }, {})).resolves.toStrictEqual(\n        {\n          typed: true,\n          value: 'foo',\n          issues: undefined,\n        }\n      );\n      expect(runSpy).toHaveBeenCalledTimes(2);\n    });\n  });\n\n  describe('should deduplicate concurrent calls', () => {\n    test('for matching input and config', async () => {\n      const baseSchema = string();\n      const runSpy = vi.spyOn(baseSchema, '~run');\n      const schema = cacheAsync(baseSchema);\n      const promise1 = schema['~run']({ value: 'foo' }, {});\n      const promise2 = schema['~run']({ value: 'foo' }, {});\n      const [dataset1, dataset2] = await Promise.all([promise1, promise2]);\n\n      expect(dataset1).toStrictEqual(dataset2);\n      expect(dataset1).not.toBe(dataset2);\n      expect(runSpy).toHaveBeenCalledTimes(1);\n    });\n  });\n\n  describe('should retry after rejection', () => {\n    test('for later calls', async () => {\n      const baseSchema = string();\n      vi.spyOn(baseSchema, '~run').mockReturnValueOnce(\n        Promise.reject(new Error('test error')) as never\n      );\n      const schema = cacheAsync(baseSchema);\n\n      await expect(schema['~run']({ value: 'foo' }, {})).rejects.toThrow(\n        'test error'\n      );\n      await expect(schema['~run']({ value: 'foo' }, {})).resolves.toStrictEqual(\n        {\n          typed: true,\n          value: 'foo',\n          issues: undefined,\n        }\n      );\n    });\n  });\n\n  describe('should propagate errors', () => {\n    test('to concurrent callers', async () => {\n      const baseSchema = string();\n      const runSpy = vi\n        .spyOn(baseSchema, '~run')\n        .mockReturnValue(Promise.reject(new Error('test error')) as never);\n      const schema = cacheAsync(baseSchema);\n      const promise1 = schema['~run']({ value: 'foo' }, {});\n      const promise2 = schema['~run']({ value: 'foo' }, {});\n\n      await expect(promise1).rejects.toThrow('test error');\n      await expect(promise2).rejects.toThrow('test error');\n      expect(runSpy).toHaveBeenCalledTimes(1);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/cache/cacheAsync.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  Config,\n  InferInput,\n  InferIssue,\n  InferOutput,\n  OutputDataset,\n  StandardProps,\n  UnknownDataset,\n} from '../../types/index.ts';\nimport { _cloneDataset, _getStandardProps } from '../../utils/index.ts';\nimport { _LruCache } from './_LruCache.ts';\nimport type { Cache, CacheConfig } from './types.ts';\n\n/**\n * Schema with cache async type.\n *\n * @beta\n */\nexport type SchemaWithCacheAsync<\n  TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  TCacheConfig extends CacheConfig | undefined,\n> = Omit<TSchema, 'async' | '~standard' | '~run'> & {\n  /**\n   * Whether it's async.\n   */\n  readonly async: true;\n\n  /**\n   * The cache config.\n   */\n  readonly cacheConfig: TCacheConfig;\n\n  /**\n   * The cache instance.\n   */\n  readonly cache: Cache<\n    OutputDataset<InferOutput<TSchema>, InferIssue<TSchema>>\n  >;\n\n  /**\n   * The Standard Schema properties.\n   *\n   * @internal\n   */\n  readonly '~standard': StandardProps<\n    InferInput<TSchema>,\n    InferOutput<TSchema>\n  >;\n\n  /**\n   * Parses unknown input values.\n   *\n   * @param dataset The input dataset.\n   * @param config The configuration.\n   *\n   * @returns The output dataset.\n   *\n   * @internal\n   */\n  readonly '~run': (\n    dataset: UnknownDataset,\n    config: Config<BaseIssue<unknown>>\n  ) => Promise<OutputDataset<InferOutput<TSchema>, InferIssue<TSchema>>>;\n};\n\n/**\n * Caches the output of a schema.\n *\n * Hint: Primitive inputs are cached by value. Object and function inputs are\n * cached by reference identity, so mutating input objects and reusing the same\n * reference can return a stale cached dataset. Returned objects are also\n * reused by reference, so mutating cached output can affect later cache hits.\n *\n * @param schema The schema to cache.\n *\n * @returns The cached schema.\n *\n * @beta\n */\n// @ts-expect-error\nexport function cacheAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(schema: TSchema): SchemaWithCacheAsync<TSchema, undefined>;\n\n/**\n * Caches the output of a schema.\n *\n * Hint: Primitive inputs are cached by value. Object and function inputs are\n * cached by reference identity, so mutating input objects and reusing the same\n * reference can return a stale cached dataset. Returned objects are also\n * reused by reference, so mutating cached output can affect later cache hits.\n *\n * @param schema The schema to cache.\n * @param config The cache config.\n *\n * @returns The cached schema.\n *\n * @beta\n */\nexport function cacheAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TCacheConfig extends CacheConfig | undefined,\n>(\n  schema: TSchema,\n  config: TCacheConfig\n): SchemaWithCacheAsync<TSchema, TCacheConfig>;\n\n// @__NO_SIDE_EFFECTS__\nexport function cacheAsync(\n  schema:\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  config?: CacheConfig\n): SchemaWithCacheAsync<\n  | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n  | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  CacheConfig | undefined\n> {\n  let activeRuns:\n    | Map<string, Promise<OutputDataset<unknown, BaseIssue<unknown>>>>\n    | undefined;\n  return {\n    ...schema,\n    async: true,\n    cacheConfig: config,\n    cache: new _LruCache(config),\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    async '~run'(dataset, runConfig) {\n      // Create cache key based on input and config\n      const key = this.cache.key(dataset.value, runConfig);\n\n      // Check and return cached output if exists\n      const cached = this.cache.get(key);\n      if (cached) {\n        // Hint: We clone the dataset before returning it so downstream pipe\n        // items do not mutate the cached dataset wrapper or issues array.\n        return _cloneDataset(cached);\n      }\n\n      // If not cached, check if a matching run is already in progress\n      let promise = activeRuns?.get(key);\n      if (!promise) {\n        activeRuns ??= new Map();\n        promise = Promise.resolve(schema['~run'](dataset, runConfig));\n        activeRuns.set(key, promise);\n      }\n\n      // Await pending promise, cache output and return\n      try {\n        const outputDataset = await promise;\n        this.cache.set(key, outputDataset);\n        // Hint: We clone the dataset before returning it so downstream pipe\n        // items do not mutate the cached dataset wrapper or issues array.\n        return _cloneDataset(outputDataset);\n\n        // Cleanup active runs map\n      } finally {\n        activeRuns?.delete(key);\n      }\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/methods/cache/index.ts",
    "content": "export * from './cache.ts';\nexport * from './cacheAsync.ts';\nexport * from './types.ts';\n"
  },
  {
    "path": "library/src/methods/cache/types.ts",
    "content": "import type { BaseIssue, Config } from '../../types/index.ts';\n\n/**\n * Cache interface type.\n *\n * @beta\n */\nexport interface Cache<TValue> {\n  /**\n   * Creates a cache key from input and config.\n   *\n   * Hint: Primitive inputs are keyed by value. Object and function inputs are\n   * keyed by reference identity.\n   */\n  key(input: unknown, config?: Config<BaseIssue<unknown>>): string;\n  /**\n   * Gets a value from the cache by key.\n   */\n  get(key: string): TValue | undefined;\n  /**\n   * Sets a value in the cache by key.\n   */\n  set(key: string, value: TValue): void;\n  /**\n   * Clears all entries from the cache.\n   */\n  clear(): void;\n}\n\n/**\n * Cache config type.\n *\n * @beta\n */\nexport interface CacheConfig {\n  /**\n   * The maximum number of items to cache.\n   *\n   * @default 1000\n   */\n  maxSize?: number;\n  /**\n   * The maximum age of a cache entry in milliseconds.\n   *\n   * @default Infinity\n   */\n  maxAge?: number;\n}\n"
  },
  {
    "path": "library/src/methods/config/config.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport { objectAsync, string } from '../../schemas/index.ts';\nimport { config } from './config.ts';\n\ndescribe('config', () => {\n  test('should return schema object', () => {\n    const schema = string();\n    expectTypeOf(config(schema, { abortEarly: true })).toEqualTypeOf<\n      typeof schema\n    >();\n  });\n\n  test('should return async schema object', () => {\n    const schema = objectAsync({ key: string() });\n    expectTypeOf(config(schema, { abortEarly: true })).toEqualTypeOf<\n      typeof schema\n    >();\n  });\n});\n"
  },
  {
    "path": "library/src/methods/config/config.test.ts",
    "content": "import { describe, expect, test, vi } from 'vitest';\nimport { objectAsync, string } from '../../schemas/index.ts';\nimport type { BaseIssue, Config } from '../../types/index.ts';\nimport { config } from './config.ts';\n\ndescribe('config', () => {\n  test('should return copy of passed schema', () => {\n    expect(config(string(), {})).toStrictEqual({\n      kind: 'schema',\n      type: 'string',\n      reference: string,\n      expects: 'string',\n      async: false,\n      message: undefined,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    });\n  });\n\n  test('should override config of schema', () => {\n    const schema = string();\n    // @ts-expect-error\n    schema['~run'] = vi.fn(schema['~run']);\n    const dataset = { value: 'foo' };\n    const globalConfig: Config<BaseIssue<unknown>> = {\n      lang: 'de',\n    };\n    const localConfig: Config<BaseIssue<unknown>> = {\n      abortPipeEarly: true,\n    };\n    config(schema, localConfig)['~run'](dataset, globalConfig);\n    expect(schema['~run']).toHaveBeenCalledWith(dataset, {\n      ...globalConfig,\n      ...localConfig,\n    });\n  });\n\n  test('should override config of async schema', () => {\n    const schema = objectAsync({ key: string() });\n    // @ts-expect-error\n    schema['~run'] = vi.fn(schema['~run']);\n    const dataset = { value: { key: 'foo' } };\n    const globalConfig: Config<BaseIssue<unknown>> = {\n      lang: 'de',\n    };\n    const localConfig: Config<BaseIssue<unknown>> = {\n      abortEarly: true,\n      lang: 'en',\n    };\n    config(schema, localConfig)['~run'](dataset, globalConfig);\n    expect(schema['~run']).toHaveBeenCalledWith(dataset, {\n      ...globalConfig,\n      ...localConfig,\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/config/config.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  Config,\n  InferIssue,\n} from '../../types/index.ts';\nimport { _getStandardProps } from '../../utils/index.ts';\n\n/**\n * Changes the local configuration of a schema.\n *\n * @param schema The schema to configure.\n * @param config The parse configuration.\n *\n * @returns The configured schema.\n */\n// @__NO_SIDE_EFFECTS__\nexport function config<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(schema: TSchema, config: Config<InferIssue<TSchema>>): TSchema {\n  return {\n    ...schema,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config_) {\n      return schema['~run'](dataset, { ...config_, ...config });\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/methods/config/index.ts",
    "content": "export * from './config.ts';\n"
  },
  {
    "path": "library/src/methods/fallback/fallback.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport { transform, type TransformAction } from '../../actions/index.ts';\nimport type { ArrayIssue, ArraySchema } from '../../schemas/array/index.ts';\nimport {\n  number,\n  type NumberIssue,\n  type NumberSchema,\n} from '../../schemas/index.ts';\nimport type { ObjectIssue, ObjectSchema } from '../../schemas/object/index.ts';\nimport type { StringIssue, StringSchema } from '../../schemas/string/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { InferFallback } from '../getFallback/index.ts';\nimport { pipe, type SchemaWithPipe } from '../pipe/index.ts';\nimport { fallback, type SchemaWithFallback } from './fallback.ts';\n\ndescribe('fallback', () => {\n  describe('should return schema object', () => {\n    const schema = pipe(number(), transform(String));\n    type Schema = typeof schema;\n\n    test('with value fallback', () => {\n      expectTypeOf(fallback(schema, '123' as const)).toEqualTypeOf<\n        SchemaWithFallback<Schema, '123'>\n      >();\n    });\n\n    test('with function fallback', () => {\n      expectTypeOf(fallback(schema, () => '123' as const)).toEqualTypeOf<\n        SchemaWithFallback<Schema, () => '123'>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema1 = SchemaWithFallback<\n      SchemaWithPipe<\n        [NumberSchema<undefined>, TransformAction<number, string>]\n      >,\n      () => '123'\n    >;\n    type Schema2 = SchemaWithFallback<\n      ObjectSchema<\n        { foo: ArraySchema<StringSchema<undefined>, undefined> },\n        undefined\n      >,\n      { readonly foo: readonly string[] }\n    >;\n    type Schema3 = SchemaWithFallback<\n      ObjectSchema<\n        { foo: ArraySchema<StringSchema<undefined>, undefined> },\n        undefined\n      >,\n      () => { readonly foo: readonly string[] }\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema1>>().toEqualTypeOf<number>();\n      expectTypeOf<InferInput<Schema2>>().toEqualTypeOf<{ foo: string[] }>();\n      expectTypeOf<InferInput<Schema3>>().toEqualTypeOf<{ foo: string[] }>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema1>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema2>>().toEqualTypeOf<{ foo: string[] }>();\n      expectTypeOf<InferOutput<Schema3>>().toEqualTypeOf<{ foo: string[] }>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema1>>().toEqualTypeOf<NumberIssue>();\n      expectTypeOf<InferIssue<Schema2>>().toEqualTypeOf<\n        ObjectIssue | ArrayIssue | StringIssue\n      >();\n      expectTypeOf<InferIssue<Schema3>>().toEqualTypeOf<\n        ObjectIssue | ArrayIssue | StringIssue\n      >();\n    });\n\n    test('of fallback', () => {\n      expectTypeOf<InferFallback<Schema1>>().toEqualTypeOf<'123'>();\n      expectTypeOf<InferFallback<Schema2>>().toEqualTypeOf<{\n        readonly foo: readonly string[];\n      }>();\n      expectTypeOf<InferFallback<Schema3>>().toEqualTypeOf<{\n        readonly foo: readonly string[];\n      }>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/fallback/fallback.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { transform } from '../../actions/index.ts';\nimport { boolean, number, union } from '../../schemas/index.ts';\nimport { pipe } from '../pipe/index.ts';\nimport { fallback, type SchemaWithFallback } from './fallback.ts';\n\ndescribe('fallback', () => {\n  describe('should return schema object', () => {\n    const schema = pipe(number(), transform(String));\n    type Schema = typeof schema;\n    const baseSchema: Omit<SchemaWithFallback<Schema, never>, 'fallback'> = {\n      ...schema,\n      '~run': expect.any(Function),\n    };\n\n    test('with value fallback', () => {\n      expect(fallback(schema, '123')).toStrictEqual({\n        ...baseSchema,\n        fallback: '123',\n        '~standard': {\n          version: 1,\n          vendor: 'valibot',\n          validate: expect.any(Function),\n        },\n      } satisfies SchemaWithFallback<Schema, '123'>);\n    });\n\n    test('with function fallback', () => {\n      const fallbackArg = () => '123';\n      expect(fallback(schema, fallbackArg)).toStrictEqual({\n        ...baseSchema,\n        fallback: fallbackArg,\n        '~standard': {\n          version: 1,\n          vendor: 'valibot',\n          validate: expect.any(Function),\n        },\n      } satisfies SchemaWithFallback<Schema, typeof fallbackArg>);\n    });\n  });\n\n  const schema = fallback(\n    pipe(union([number(), boolean()]), transform(String)),\n    '123'\n  );\n\n  describe('should return default dataset', () => {\n    test('for valid input', () => {\n      expect(schema['~run']({ value: 789 }, {})).toStrictEqual({\n        typed: true,\n        value: '789',\n      });\n    });\n  });\n\n  describe('should return dataset with fallback', () => {\n    test('for invalid input', () => {\n      expect(schema['~run']({ value: 'foo' }, {})).toStrictEqual({\n        typed: true,\n        value: '123',\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/fallback/fallback.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  Config,\n  InferIssue,\n  InferOutput,\n  MaybeDeepReadonly,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _getStandardProps } from '../../utils/index.ts';\nimport { getFallback } from '../getFallback/index.ts';\n\n/**\n * Fallback type.\n */\nexport type Fallback<\n  TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n> =\n  | MaybeDeepReadonly<InferOutput<TSchema>>\n  | ((\n      dataset?: OutputDataset<InferOutput<TSchema>, InferIssue<TSchema>>,\n      config?: Config<InferIssue<TSchema>>\n    ) => MaybeDeepReadonly<InferOutput<TSchema>>);\n\n/**\n * Schema with fallback type.\n */\nexport type SchemaWithFallback<\n  TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  TFallback extends Fallback<TSchema>,\n> = TSchema & {\n  /**\n   * The fallback value.\n   */\n  readonly fallback: TFallback;\n};\n\n/**\n * Returns a fallback value as output if the input does not match the schema.\n *\n * @param schema The schema to catch.\n * @param fallback The fallback value.\n *\n * @returns The passed schema.\n */\n// @__NO_SIDE_EFFECTS__\nexport function fallback<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TFallback extends Fallback<TSchema>,\n>(\n  schema: TSchema,\n  fallback: TFallback\n): SchemaWithFallback<TSchema, TFallback> {\n  return {\n    ...schema,\n    fallback,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      const outputDataset = schema['~run'](dataset, config);\n      return outputDataset.issues\n        ? { typed: true, value: getFallback(this, outputDataset, config) }\n        : outputDataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/methods/fallback/fallbackAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport { transform, type TransformAction } from '../../actions/index.ts';\nimport type { ArrayIssue, ArraySchema } from '../../schemas/array/index.ts';\nimport {\n  number,\n  type NumberIssue,\n  type NumberSchema,\n} from '../../schemas/index.ts';\nimport type { ObjectIssue, ObjectSchema } from '../../schemas/object/index.ts';\nimport type { StringIssue, StringSchema } from '../../schemas/string/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { InferFallback } from '../getFallback/index.ts';\nimport { pipe, type SchemaWithPipe } from '../pipe/index.ts';\nimport {\n  fallbackAsync,\n  type SchemaWithFallbackAsync,\n} from './fallbackAsync.ts';\n\ndescribe('fallbackAsync', () => {\n  describe('should return schema object', () => {\n    const schema = pipe(number(), transform(String));\n    type Schema = typeof schema;\n\n    test('with value fallback', () => {\n      expectTypeOf(fallbackAsync(schema, '123' as const)).toEqualTypeOf<\n        SchemaWithFallbackAsync<Schema, '123'>\n      >();\n    });\n\n    test('with function fallback', () => {\n      expectTypeOf(fallbackAsync(schema, () => '123' as const)).toEqualTypeOf<\n        SchemaWithFallbackAsync<Schema, () => '123'>\n      >();\n    });\n\n    test('with async function fallback', () => {\n      expectTypeOf(\n        fallbackAsync(schema, async () => '123' as const)\n      ).toEqualTypeOf<SchemaWithFallbackAsync<Schema, () => Promise<'123'>>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema1 = SchemaWithFallbackAsync<\n      SchemaWithPipe<\n        [NumberSchema<undefined>, TransformAction<number, string>]\n      >,\n      () => Promise<'123'>\n    >;\n    type Schema2 = SchemaWithFallbackAsync<\n      ObjectSchema<\n        { foo: ArraySchema<StringSchema<undefined>, undefined> },\n        undefined\n      >,\n      { readonly foo: readonly string[] }\n    >;\n    type Schema3 = SchemaWithFallbackAsync<\n      ObjectSchema<\n        { foo: ArraySchema<StringSchema<undefined>, undefined> },\n        undefined\n      >,\n      () => { readonly foo: readonly string[] }\n    >;\n    type Schema4 = SchemaWithFallbackAsync<\n      ObjectSchema<\n        { foo: ArraySchema<StringSchema<undefined>, undefined> },\n        undefined\n      >,\n      () => Promise<{ readonly foo: readonly string[] }>\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema1>>().toEqualTypeOf<number>();\n      expectTypeOf<InferInput<Schema2>>().toEqualTypeOf<{ foo: string[] }>();\n      expectTypeOf<InferInput<Schema3>>().toEqualTypeOf<{ foo: string[] }>();\n      expectTypeOf<InferInput<Schema4>>().toEqualTypeOf<{ foo: string[] }>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema1>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema2>>().toEqualTypeOf<{ foo: string[] }>();\n      expectTypeOf<InferOutput<Schema3>>().toEqualTypeOf<{ foo: string[] }>();\n      expectTypeOf<InferOutput<Schema4>>().toEqualTypeOf<{ foo: string[] }>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema1>>().toEqualTypeOf<NumberIssue>();\n      expectTypeOf<InferIssue<Schema2>>().toEqualTypeOf<\n        ObjectIssue | ArrayIssue | StringIssue\n      >();\n      expectTypeOf<InferIssue<Schema3>>().toEqualTypeOf<\n        ObjectIssue | ArrayIssue | StringIssue\n      >();\n      expectTypeOf<InferIssue<Schema4>>().toEqualTypeOf<\n        ObjectIssue | ArrayIssue | StringIssue\n      >();\n    });\n\n    test('of fallback', () => {\n      expectTypeOf<InferFallback<Schema1>>().toEqualTypeOf<Promise<'123'>>();\n      expectTypeOf<InferFallback<Schema2>>().toEqualTypeOf<{\n        readonly foo: readonly string[];\n      }>();\n      expectTypeOf<InferFallback<Schema3>>().toEqualTypeOf<{\n        readonly foo: readonly string[];\n      }>();\n      expectTypeOf<InferFallback<Schema4>>().toEqualTypeOf<\n        Promise<{ readonly foo: readonly string[] }>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/fallback/fallbackAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { transformAsync } from '../../actions/index.ts';\nimport { boolean, number, union } from '../../schemas/index.ts';\nimport { pipeAsync } from '../pipe/index.ts';\nimport {\n  fallbackAsync,\n  type SchemaWithFallbackAsync,\n} from './fallbackAsync.ts';\n\ndescribe('fallbackAsync', () => {\n  describe('should return schema object', () => {\n    const schema = pipeAsync(\n      number(),\n      transformAsync(async (input) => String(input))\n    );\n    type Schema = typeof schema;\n    const baseSchema: Omit<\n      SchemaWithFallbackAsync<Schema, never>,\n      'fallback'\n    > = {\n      ...schema,\n      async: true,\n      '~run': expect.any(Function),\n    };\n\n    test('with value fallback', () => {\n      expect(fallbackAsync(schema, '123')).toStrictEqual({\n        ...baseSchema,\n        fallback: '123',\n        '~standard': {\n          version: 1,\n          vendor: 'valibot',\n          validate: expect.any(Function),\n        },\n      } satisfies SchemaWithFallbackAsync<Schema, '123'>);\n    });\n\n    test('with function fallback', () => {\n      const fallbackArg = () => '123';\n      expect(fallbackAsync(schema, fallbackArg)).toStrictEqual({\n        ...baseSchema,\n        fallback: fallbackArg,\n        '~standard': {\n          version: 1,\n          vendor: 'valibot',\n          validate: expect.any(Function),\n        },\n      } satisfies SchemaWithFallbackAsync<Schema, typeof fallbackArg>);\n    });\n\n    test('with async function fallback', () => {\n      const fallbackArg = async () => '123';\n      expect(fallbackAsync(schema, fallbackArg)).toStrictEqual({\n        ...baseSchema,\n        fallback: fallbackArg,\n        '~standard': {\n          version: 1,\n          vendor: 'valibot',\n          validate: expect.any(Function),\n        },\n      } satisfies SchemaWithFallbackAsync<Schema, typeof fallbackArg>);\n    });\n  });\n\n  const schema = fallbackAsync(\n    pipeAsync(\n      union([number(), boolean()]),\n      transformAsync(async (input) => String(input))\n    ),\n    async () => '123'\n  );\n\n  describe('should return default dataset', () => {\n    test('for valid input', async () => {\n      expect(await schema['~run']({ value: 789 }, {})).toStrictEqual({\n        typed: true,\n        value: '789',\n      });\n    });\n  });\n\n  describe('should return dataset with fallback', () => {\n    test('for invalid input', async () => {\n      expect(await schema['~run']({ value: 'foo' }, {})).toStrictEqual({\n        typed: true,\n        value: '123',\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/fallback/fallbackAsync.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  Config,\n  InferInput,\n  InferIssue,\n  InferOutput,\n  MaybeDeepReadonly,\n  MaybePromise,\n  OutputDataset,\n  StandardProps,\n  UnknownDataset,\n} from '../../types/index.ts';\nimport { _getStandardProps } from '../../utils/index.ts';\nimport { getFallback } from '../getFallback/index.ts';\n\n/**\n * Fallback async type.\n */\nexport type FallbackAsync<\n  TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n> =\n  | MaybeDeepReadonly<InferOutput<TSchema>>\n  | ((\n      dataset?: OutputDataset<InferOutput<TSchema>, InferIssue<TSchema>>,\n      config?: Config<InferIssue<TSchema>>\n    ) => MaybePromise<MaybeDeepReadonly<InferOutput<TSchema>>>);\n\n/**\n * Schema with fallback async type.\n */\nexport type SchemaWithFallbackAsync<\n  TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  TFallback extends FallbackAsync<TSchema>,\n> = Omit<TSchema, 'async' | '~standard' | '~run'> & {\n  /**\n   * The fallback value.\n   */\n  readonly fallback: TFallback;\n  /**\n   * Whether it's async.\n   */\n  readonly async: true;\n  /**\n   * The Standard Schema properties.\n   *\n   * @internal\n   */\n  readonly '~standard': StandardProps<\n    InferInput<TSchema>,\n    InferOutput<TSchema>\n  >;\n  /**\n   * Parses unknown input values.\n   *\n   * @param dataset The input dataset.\n   * @param config The configuration.\n   *\n   * @returns The output dataset.\n   *\n   * @internal\n   */\n  readonly '~run': (\n    dataset: UnknownDataset,\n    config: Config<BaseIssue<unknown>>\n  ) => Promise<OutputDataset<InferOutput<TSchema>, InferIssue<TSchema>>>;\n};\n\n/**\n * Returns a fallback value as output if the input does not match the schema.\n *\n * @param schema The schema to catch.\n * @param fallback The fallback value.\n *\n * @returns The passed schema.\n */\n// @__NO_SIDE_EFFECTS__\nexport function fallbackAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TFallback extends FallbackAsync<TSchema>,\n>(\n  schema: TSchema,\n  fallback: TFallback\n): SchemaWithFallbackAsync<TSchema, TFallback> {\n  return {\n    ...schema,\n    fallback,\n    async: true,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    async '~run'(dataset, config) {\n      const outputDataset = await schema['~run'](dataset, config);\n      return outputDataset.issues\n        ? {\n            typed: true,\n            value: await getFallback(this, outputDataset, config),\n          }\n        : outputDataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/methods/fallback/index.ts",
    "content": "export * from './fallback.ts';\nexport * from './fallbackAsync.ts';\n"
  },
  {
    "path": "library/src/methods/flatten/flatten.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type {\n  ArraySchema,\n  NumberIssue,\n  NumberSchema,\n  ObjectSchema,\n} from '../../schemas/index.ts';\nimport type { ArrayPathItem, ObjectPathItem } from '../../types/index.ts';\nimport { flatten } from './flatten.ts';\n\ndescribe('flatten', () => {\n  const issues: [NumberIssue] = [\n    {\n      kind: 'schema',\n      type: 'number',\n      input: 'foo',\n      expected: 'number',\n      received: '\"foo\"',\n      message: 'Invalid type: Expected number but received \"foo\"',\n      path: [\n        {\n          type: 'object',\n          origin: 'value',\n          input: { dot: [{ path: 'foo' }] },\n          key: 'dot',\n          value: [{ path: 'foo' }],\n        } satisfies ObjectPathItem,\n        {\n          type: 'array',\n          origin: 'value',\n          input: [{ path: 'foo' }],\n          key: 0,\n          value: { path: 'foo' },\n        } satisfies ArrayPathItem,\n        {\n          type: 'object',\n          origin: 'value',\n          input: { path: 'foo' },\n          key: 'path',\n          value: 'foo',\n        } satisfies ObjectPathItem,\n      ],\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n      issues: undefined,\n      lang: undefined,\n    },\n  ];\n\n  test('should return generic flat errors', () => {\n    expectTypeOf(flatten(issues)).toEqualTypeOf<{\n      readonly root?: [string, ...string[]];\n      readonly nested?: Readonly<\n        Partial<Record<string, [string, ...string[]]>>\n      >;\n      readonly other?: [string, ...string[]];\n    }>();\n  });\n\n  test('should return specific flat errors', () => {\n    type Schema = ObjectSchema<\n      {\n        dot: ArraySchema<\n          ObjectSchema<{ path: NumberSchema<undefined> }, undefined>,\n          undefined\n        >;\n      },\n      undefined\n    >;\n    expectTypeOf(flatten<Schema>(issues)).toEqualTypeOf<{\n      readonly root?: [string, ...string[]];\n      readonly nested?: Readonly<\n        Partial<\n          Record<\n            'dot' | `dot.${number}` | `dot.${number}.path`,\n            [string, ...string[]]\n          >\n        >\n      >;\n      readonly other?: [string, ...string[]];\n    }>();\n  });\n});\n"
  },
  {
    "path": "library/src/methods/flatten/flatten.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type {\n  CheckIssue,\n  IncludesIssue,\n  MinLengthIssue,\n  MinValueIssue,\n} from '../../actions';\nimport type { NumberIssue, StringIssue } from '../../schemas';\nimport type { ArrayPathItem, ObjectPathItem, SetPathItem } from '../../types';\nimport { flatten } from './flatten.ts';\n\ndescribe('flatten', () => {\n  const commonIssueInfo = {\n    abortEarly: undefined,\n    abortPipeEarly: undefined,\n    issues: undefined,\n    lang: undefined,\n  };\n\n  test('should return empty object', () => {\n    // @ts-expect-error\n    expect(flatten([])).toStrictEqual({});\n  });\n\n  test('should return single root error', () => {\n    const rootIssues1: [StringIssue] = [\n      {\n        ...commonIssueInfo,\n        kind: 'schema',\n        type: 'string',\n        input: 123,\n        expected: 'string',\n        received: '123',\n        message: 'Invalid type: Expected string but received 123',\n        path: undefined,\n      },\n    ];\n    expect(flatten(rootIssues1)).toStrictEqual({\n      root: ['Invalid type: Expected string but received 123'],\n    });\n  });\n\n  test('should return multiple root errors', () => {\n    const rootIssues2: [\n      IncludesIssue<string, 'foo'>,\n      MinLengthIssue<string, 5>,\n    ] = [\n      {\n        ...commonIssueInfo,\n        kind: 'validation',\n        type: 'includes',\n        input: '123',\n        expected: '\"foo\"',\n        received: '!\"foo\"',\n        message: 'Invalid content: Expected \"foo\" but received !\"foo\"',\n        requirement: 'foo',\n        path: undefined,\n      },\n      {\n        ...commonIssueInfo,\n        kind: 'validation',\n        type: 'min_length',\n        input: '123',\n        expected: '>=5',\n        received: '3',\n        message: 'Invalid length: Expected >=5 but received 3',\n        requirement: 5,\n        path: undefined,\n      },\n    ];\n    expect(flatten(rootIssues2)).toStrictEqual({\n      root: [\n        'Invalid content: Expected \"foo\" but received !\"foo\"',\n        'Invalid length: Expected >=5 but received 3',\n      ],\n    });\n  });\n\n  test('should return single nested error', () => {\n    const nestedIssue: NumberIssue = {\n      ...commonIssueInfo,\n      kind: 'schema',\n      type: 'number',\n      input: '1',\n      expected: 'number',\n      received: '\"1\"',\n      message: 'Invalid type: Expected number but received \"1\"',\n      path: [\n        {\n          type: 'array',\n          origin: 'value',\n          input: ['1'],\n          key: 0,\n          value: '1',\n        } satisfies ArrayPathItem,\n      ],\n    };\n    expect(flatten([nestedIssue])).toStrictEqual({\n      nested: {\n        0: ['Invalid type: Expected number but received \"1\"'],\n      },\n    });\n  });\n\n  test('should return multiple nested errors', () => {\n    const input = {\n      key1: 'bar',\n      key2: '21',\n    };\n    const nestedIssues: [\n      IncludesIssue<string, 'foo'>,\n      MinLengthIssue<string, 5>,\n      NumberIssue,\n    ] = [\n      {\n        ...commonIssueInfo,\n        kind: 'validation',\n        type: 'includes',\n        input: '123',\n        expected: '\"foo\"',\n        received: '!\"foo\"',\n        message: 'Invalid content: Expected \"foo\" but received !\"foo\"',\n        requirement: 'foo',\n        path: [\n          {\n            type: 'object',\n            origin: 'value',\n            input,\n            key: 'key1',\n            value: input.key1,\n          } satisfies ObjectPathItem,\n        ],\n      },\n      {\n        ...commonIssueInfo,\n        kind: 'validation',\n        type: 'min_length',\n        input: '123',\n        expected: '>=5',\n        received: '3',\n        message: 'Invalid length: Expected >=5 but received 3',\n        requirement: 5,\n        path: [\n          {\n            type: 'object',\n            origin: 'value',\n            input,\n            key: 'key1',\n            value: input.key1,\n          } satisfies ObjectPathItem,\n        ],\n      },\n      {\n        expected: 'number',\n        input: '21',\n        kind: 'schema',\n        message: 'Invalid type: Expected number but received \"21\"',\n        path: [\n          {\n            type: 'object',\n            origin: 'value',\n            input,\n            key: 'key2',\n            value: input.key2,\n          } satisfies ObjectPathItem,\n        ],\n        received: '\"21\"',\n        type: 'number',\n      },\n    ];\n    expect(flatten(nestedIssues)).toStrictEqual({\n      nested: {\n        key1: [\n          'Invalid content: Expected \"foo\" but received !\"foo\"',\n          'Invalid length: Expected >=5 but received 3',\n        ],\n        key2: ['Invalid type: Expected number but received \"21\"'],\n      },\n    });\n  });\n\n  test('should return nested error with dot path', () => {\n    const nestedIssue: NumberIssue = {\n      ...commonIssueInfo,\n      kind: 'schema',\n      type: 'number',\n      input: 'foo',\n      expected: 'number',\n      received: '\"foo\"',\n      message: 'Invalid type: Expected number but received \"foo\"',\n      path: [\n        {\n          type: 'object',\n          origin: 'value',\n          input: { dot: [{ path: 'foo' }] },\n          key: 'dot',\n          value: [{ path: 'foo' }],\n        } satisfies ObjectPathItem,\n        {\n          type: 'array',\n          origin: 'value',\n          input: [{ path: 'foo' }],\n          key: 0,\n          value: { path: 'foo' },\n        } satisfies ArrayPathItem,\n        {\n          type: 'object',\n          origin: 'value',\n          input: { path: 'foo' },\n          key: 'path',\n          value: 'foo',\n        } satisfies ObjectPathItem,\n      ],\n    };\n    expect(flatten([nestedIssue])).toStrictEqual({\n      nested: {\n        'dot.0.path': ['Invalid type: Expected number but received \"foo\"'],\n      },\n    });\n  });\n\n  test('should return single other error', () => {\n    const otherIssue: NumberIssue = {\n      ...commonIssueInfo,\n      kind: 'schema',\n      type: 'number',\n      input: 'abc',\n      expected: 'number',\n      received: '\"abc\"',\n      message: 'Invalid type: Expected number but received \"abc\"',\n      path: [\n        {\n          type: 'set',\n          origin: 'value',\n          input: new Set(['abc']),\n          key: null,\n          value: 'abc',\n        } satisfies SetPathItem,\n      ],\n    };\n\n    expect(flatten([otherIssue])).toStrictEqual({\n      other: ['Invalid type: Expected number but received \"abc\"'],\n    });\n  });\n\n  test('should return multiple other errors', () => {\n    const input = new Set(['abc']);\n    const otherIssues: [\n      IncludesIssue<string, 'bar'>,\n      MinLengthIssue<string, 4>,\n    ] = [\n      {\n        ...commonIssueInfo,\n        kind: 'validation',\n        type: 'includes',\n        input: 'abc',\n        received: '!\"bar\"',\n        expected: '\"bar\"',\n        message: 'Invalid content: Expected \"bar\" but received !\"bar\"',\n        requirement: 'bar',\n        path: [\n          {\n            type: 'set',\n            origin: 'value',\n            input,\n            key: null,\n            value: 'abc',\n          } satisfies SetPathItem,\n        ],\n      },\n      {\n        ...commonIssueInfo,\n        kind: 'validation',\n        type: 'min_length',\n        input: 'abc',\n        expected: '>=4',\n        received: '3',\n        message: 'Invalid length: Expected >=4 but received 3',\n        requirement: 4,\n        path: [\n          {\n            type: 'set',\n            origin: 'value',\n            input,\n            key: null,\n            value: 'abc',\n          } satisfies SetPathItem,\n        ],\n      },\n    ];\n    expect(flatten(otherIssues)).toStrictEqual({\n      other: [\n        'Invalid content: Expected \"bar\" but received !\"bar\"',\n        'Invalid length: Expected >=4 but received 3',\n      ],\n    });\n  });\n\n  test('should return different kind of errors', () => {\n    const input = { positiveValue: -1, positiveNums: new Set([-1]) };\n    const issues: [\n      MinValueIssue<number, 0>,\n      MinValueIssue<number, 0>,\n      CheckIssue<typeof input>,\n    ] = [\n      {\n        ...commonIssueInfo,\n        kind: 'validation',\n        type: 'min_value',\n        input: -1,\n        received: '-1',\n        expected: '>=0',\n        message: 'Invalid value: Expected >=0 but received -1',\n        requirement: 0,\n        path: [\n          {\n            type: 'object',\n            origin: 'value',\n            input,\n            key: 'positiveValue',\n            value: -1,\n          } satisfies ObjectPathItem,\n        ],\n      },\n      {\n        ...commonIssueInfo,\n        kind: 'validation',\n        type: 'min_value',\n        input: -1,\n        expected: '>=0',\n        received: '-1',\n        message: 'Invalid value: Expected >=0 but received -1',\n        requirement: 0,\n        path: [\n          {\n            type: 'object',\n            origin: 'value',\n            input,\n            key: 'positiveNums',\n            value: input['positiveNums'],\n          },\n          {\n            type: 'set',\n            origin: 'value',\n            input: input['positiveNums'],\n            key: null,\n            value: -1,\n          },\n        ] satisfies [ObjectPathItem, SetPathItem],\n      },\n      {\n        ...commonIssueInfo,\n        kind: 'validation',\n        type: 'check',\n        input,\n        expected: null,\n        received: 'Object',\n        requirement: () => false,\n        message: 'Invalid input: Received Object',\n      },\n    ];\n    expect(flatten(issues)).toStrictEqual({\n      root: ['Invalid input: Received Object'],\n      nested: {\n        positiveValue: ['Invalid value: Expected >=0 but received -1'],\n      },\n      other: ['Invalid value: Expected >=0 but received -1'],\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/flatten/flatten.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  InferIssue,\n  IssueDotPath,\n  Prettify,\n} from '../../types/index.ts';\nimport { getDotPath } from '../../utils/index.ts';\n\n/**\n * Flat errors type.\n */\nexport type FlatErrors<\n  TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n    | undefined,\n> = Prettify<{\n  /**\n   * The root errors.\n   *\n   * Hint: The error messages of issues without a path that belong to the root\n   * of the schema are added to this key.\n   */\n  readonly root?: [string, ...string[]];\n  /**\n   * The nested errors.\n   *\n   * Hint: The error messages of issues with a path that belong to the nested\n   * parts of the schema and can be converted to a dot path are added to this\n   * key.\n   */\n  readonly nested?: Prettify<\n    Readonly<\n      Partial<\n        Record<\n          TSchema extends\n            | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n            | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n            ? IssueDotPath<TSchema>\n            : string,\n          [string, ...string[]]\n        >\n      >\n    >\n  >;\n  /**\n   * The other errors.\n   *\n   * Hint: Some issue paths, for example for complex data types like `Set` and\n   * `Map`, have no key or a key that cannot be converted to a dot path. These\n   * error messages are added to this key.\n   */\n  readonly other?: [string, ...string[]];\n}>;\n\n/**\n * Flatten the error messages of issues.\n *\n * @param issues The list of issues.\n *\n * @returns A flat error object.\n */\nexport function flatten(\n  issues: [BaseIssue<unknown>, ...BaseIssue<unknown>[]]\n): FlatErrors<undefined>;\n\n/**\n * Flatten the error messages of issues.\n *\n * @param issues The list of issues.\n *\n * @returns A flat error object.\n */\nexport function flatten<\n  TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(issues: [InferIssue<TSchema>, ...InferIssue<TSchema>[]]): FlatErrors<TSchema>;\n\n// @__NO_SIDE_EFFECTS__\nexport function flatten(\n  issues: [BaseIssue<unknown>, ...BaseIssue<unknown>[]]\n): FlatErrors<undefined> {\n  // Create flat errors object\n  const flatErrors: FlatErrors<undefined> = {};\n\n  // Add message of each issue to flat errors object\n  for (const issue of issues) {\n    // If issue has path, add message to nested or other errors\n    if (issue.path) {\n      // Get dot path from issue\n      const dotPath = getDotPath(issue);\n\n      // If path has valid keys, add message to nested errors\n      if (dotPath) {\n        if (!flatErrors.nested) {\n          // @ts-expect-error\n          flatErrors.nested = {};\n        }\n        if (flatErrors.nested![dotPath]) {\n          flatErrors.nested![dotPath]!.push(issue.message);\n        } else {\n          // @ts-expect-error\n          flatErrors.nested![dotPath] = [issue.message];\n        }\n\n        // Otherwise, add message to other errors\n      } else {\n        if (flatErrors.other) {\n          flatErrors.other.push(issue.message);\n        } else {\n          // @ts-expect-error\n          flatErrors.other = [issue.message];\n        }\n      }\n\n      // Otherwise, add message to root errors\n    } else {\n      if (flatErrors.root) {\n        flatErrors.root.push(issue.message);\n      } else {\n        // @ts-expect-error\n        flatErrors.root = [issue.message];\n      }\n    }\n  }\n\n  // Return flat errors object\n  return flatErrors;\n}\n"
  },
  {
    "path": "library/src/methods/flatten/index.ts",
    "content": "export * from './flatten.ts';\n"
  },
  {
    "path": "library/src/methods/forward/forward.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport { check, type CheckIssue } from '../../actions/index.ts';\nimport type {\n  BaseValidation,\n  InferInput,\n  InferIssue,\n  InferOutput,\n} from '../../types/index.ts';\nimport { forward } from './forward.ts';\n\ndescribe('forward', () => {\n  // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n  type Input = { nested: { key: string }[] };\n  type Path = ['nested', 1, 'key'];\n  const action = forward<Input, CheckIssue<Input>, Path>(\n    check((input) => Boolean(input), 'message'),\n    ['nested', 1, 'key']\n  );\n\n  test('should return action object', () => {\n    expectTypeOf(action).toEqualTypeOf<\n      BaseValidation<Input, Input, CheckIssue<Input>>\n    >();\n  });\n\n  describe('should infer correct types', () => {\n    type Action = typeof action;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<CheckIssue<Input>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/forward/forward.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  check,\n  type CheckIssue,\n  type MinLengthIssue,\n} from '../../actions/index.ts';\nimport type { PartialDataset, SuccessDataset } from '../../types/index.ts';\nimport { forward } from './forward.ts';\n\ndescribe('forward', () => {\n  test('should forward issues to end of path list', () => {\n    const input = { nested: [{ key: 'value_1' }, { key: 'value_2' }] };\n    type Input = typeof input;\n    type Path = ['nested', 1, 'key'];\n    const requirement = () => false;\n    expect(\n      forward<Input, CheckIssue<Input>, Path>(check(requirement, 'message'), [\n        'nested',\n        1,\n        'key',\n      ])['~run']({ typed: true, value: input }, {})\n    ).toStrictEqual({\n      typed: true,\n      value: input,\n      issues: [\n        {\n          kind: 'validation',\n          type: 'check',\n          input,\n          expected: null,\n          received: 'Object',\n          message: 'message',\n          path: [\n            {\n              type: 'unknown',\n              origin: 'value',\n              input: input,\n              key: 'nested',\n              value: input.nested,\n            },\n            {\n              type: 'unknown',\n              origin: 'value',\n              input: input.nested,\n              key: 1,\n              value: input.nested[1],\n            },\n            {\n              type: 'unknown',\n              origin: 'value',\n              input: input.nested[1],\n              key: 'key',\n              value: input.nested[1].key,\n            },\n          ],\n          requirement,\n          issues: undefined,\n          lang: undefined,\n          abortEarly: undefined,\n          abortPipeEarly: undefined,\n        },\n      ],\n    } satisfies PartialDataset<Input, CheckIssue<Input>>);\n  });\n\n  test('should stop forwarding if path input is undefined', () => {\n    const input = { nested: [{ key: 'value_1' }, { key: 'value_2' }] };\n    type Input = typeof input;\n    type Path = ['nested', 6, 'key'];\n    const requirement = () => false;\n    expect(\n      forward<Input, CheckIssue<Input>, Path>(check(requirement, 'message'), [\n        'nested',\n        6,\n        'key',\n      ])['~run']({ typed: true, value: input }, {})\n    ).toStrictEqual({\n      typed: true,\n      value: input,\n      issues: [\n        {\n          kind: 'validation',\n          type: 'check',\n          input,\n          expected: null,\n          received: 'Object',\n          message: 'message',\n          path: [\n            {\n              type: 'unknown',\n              origin: 'value',\n              input: input,\n              key: 'nested',\n              value: input.nested,\n            },\n            {\n              type: 'unknown',\n              origin: 'value',\n              input: input.nested,\n              key: 6,\n              value: input.nested[6],\n            },\n          ],\n          requirement,\n          issues: undefined,\n          lang: undefined,\n          abortEarly: undefined,\n          abortPipeEarly: undefined,\n        },\n      ],\n    } satisfies PartialDataset<Input, CheckIssue<Input>>);\n  });\n\n  test('should only forward issues of wrapped action', () => {\n    const input = { nested: [{ key: 'value_1' }, { key: 'value_2' }] };\n    type Input = typeof input;\n    type Path = ['nested', 1, 'key'];\n    const requirement = () => false;\n    const prevIssue: MinLengthIssue<Input['nested'], 3> = {\n      kind: 'validation',\n      type: 'min_length',\n      input: input.nested,\n      expected: '>=3',\n      received: '2',\n      message: 'message',\n      path: [\n        {\n          type: 'object',\n          origin: 'value',\n          input: input,\n          key: 'nested',\n          value: input.nested,\n        },\n      ],\n      requirement: 3,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n    expect(\n      forward<Input, CheckIssue<Input>, Path>(check(requirement, 'message'), [\n        'nested',\n        1,\n        'key',\n      ])['~run'](\n        {\n          typed: true,\n          value: input,\n          // Hint: We pass a copy of the previous issue to avoid accidentally\n          // modifying our test data.\n          issues: [{ ...prevIssue, path: [...prevIssue.path!] }],\n        },\n        {}\n      )\n    ).toStrictEqual({\n      typed: true,\n      value: input,\n      issues: [\n        prevIssue,\n        {\n          kind: 'validation',\n          type: 'check',\n          input,\n          expected: null,\n          received: 'Object',\n          message: 'message',\n          path: [\n            {\n              type: 'unknown',\n              origin: 'value',\n              input: input,\n              key: 'nested',\n              value: input.nested,\n            },\n            {\n              type: 'unknown',\n              origin: 'value',\n              input: input.nested,\n              key: 1,\n              value: input.nested[1],\n            },\n            {\n              type: 'unknown',\n              origin: 'value',\n              input: input.nested[1],\n              key: 'key',\n              value: input.nested[1].key,\n            },\n          ],\n          requirement,\n          issues: undefined,\n          lang: undefined,\n          abortEarly: undefined,\n          abortPipeEarly: undefined,\n        },\n      ],\n    } satisfies PartialDataset<\n      Input,\n      MinLengthIssue<Input['nested'], 3> | CheckIssue<Input>\n    >);\n  });\n\n  test('should do nothing if there are no issues', () => {\n    const input = { nested: [{ key: 'value_1' }, { key: 'value_2' }] };\n    type Input = typeof input;\n    type Path = ['nested', 6, 'key'];\n    const requirement = () => true;\n    expect(\n      forward<Input, CheckIssue<Input>, Path>(check(requirement, 'message'), [\n        'nested',\n        6,\n        'key',\n      ])['~run']({ typed: true, value: input }, {})\n    ).toStrictEqual({\n      typed: true,\n      value: input,\n    } satisfies SuccessDataset<Input>);\n  });\n});\n"
  },
  {
    "path": "library/src/methods/forward/forward.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  IssuePathItem,\n} from '../../types/index.ts';\nimport type { RequiredPath, ValidPath } from './types.ts';\n\n// TODO: We should try to find a better way to type this function without\n// breaking the type inference, as the current implementation loses some type\n// information by returning a `BaseValidation` instead of the original type.\n// In the process, we should also figure out how to add a `.forward' property\n// to the returnd object in a type-safe way, similar to how the `fallback`\n// method works.\n\n/**\n * Forwards the issues of the passed validation action.\n *\n * @param action The validation action.\n * @param path The path to forward the issues to.\n *\n * @returns The modified action.\n */\n// @__NO_SIDE_EFFECTS__\nexport function forward<\n  TInput extends Record<string, unknown> | ArrayLike<unknown>,\n  TIssue extends BaseIssue<unknown>,\n  const TPath extends RequiredPath,\n>(\n  action: BaseValidation<TInput, TInput, TIssue>,\n  path: ValidPath<TInput, TPath>\n): BaseValidation<TInput, TInput, TIssue> {\n  return {\n    ...action,\n    '~run'(dataset, config) {\n      // Create copy of previous issues\n      const prevIssues = dataset.issues && [...dataset.issues];\n\n      // Run validation action\n      dataset = action['~run'](dataset, config);\n\n      // If dataset contains issues, forward newly added issues\n      if (dataset.issues) {\n        for (const issue of dataset.issues) {\n          if (!prevIssues?.includes(issue)) {\n            // Create path input variable\n            let pathInput: unknown = dataset.value;\n\n            // Try to forward issue to end of path list\n            for (const key of path) {\n              // Create path value variable\n              // @ts-expect-error\n              const pathValue: unknown = pathInput[key];\n\n              // Create path item for current key\n              const pathItem: IssuePathItem = {\n                type: 'unknown',\n                origin: 'value',\n                input: pathInput,\n                key,\n                value: pathValue,\n              };\n\n              // Forward issue by adding path item\n              if (issue.path) {\n                issue.path.push(pathItem);\n              } else {\n                // @ts-expect-error\n                issue.path = [pathItem];\n              }\n\n              // If path value is undefined, stop forwarding\n              if (!pathValue) {\n                break;\n              }\n\n              // Set next path input to current path value\n              pathInput = pathValue;\n            }\n          }\n        }\n      }\n\n      // Return output dataset\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/methods/forward/forwardAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport { check, type CheckIssue } from '../../actions/index.ts';\nimport type {\n  BaseValidationAsync,\n  InferInput,\n  InferIssue,\n  InferOutput,\n} from '../../types/index.ts';\nimport { forwardAsync } from './forwardAsync.ts';\n\ndescribe('forwardAsync', () => {\n  // eslint-disable-next-line @typescript-eslint/consistent-type-definitions\n  type Input = { nested: { key: string }[] };\n  type Path = ['nested', 1, 'key'];\n  const action = forwardAsync<Input, CheckIssue<Input>, Path>(\n    check((input) => Boolean(input), 'message'),\n    ['nested', 1, 'key']\n  );\n\n  test('should return action object', () => {\n    expectTypeOf(action).toEqualTypeOf<\n      BaseValidationAsync<Input, Input, CheckIssue<Input>>\n    >();\n  });\n\n  describe('should infer correct types', () => {\n    type Action = typeof action;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Action>>().toEqualTypeOf<Input>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Action>>().toEqualTypeOf<CheckIssue<Input>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/forward/forwardAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  check,\n  type CheckIssue,\n  type MinLengthIssue,\n} from '../../actions/index.ts';\nimport type { PartialDataset, SuccessDataset } from '../../types/index.ts';\nimport { forwardAsync } from './forwardAsync.ts';\n\ndescribe('forwardAsync', () => {\n  test('should forward issues to end of path list', async () => {\n    const input = { nested: [{ key: 'value_1' }, { key: 'value_2' }] };\n    type Input = typeof input;\n    type Path = ['nested', 1, 'key'];\n    const requirement = () => false;\n    expect(\n      await forwardAsync<Input, CheckIssue<Input>, Path>(\n        check(requirement, 'message'),\n        ['nested', 1, 'key']\n      )['~run']({ typed: true, value: input }, {})\n    ).toStrictEqual({\n      typed: true,\n      value: input,\n      issues: [\n        {\n          kind: 'validation',\n          type: 'check',\n          input,\n          expected: null,\n          received: 'Object',\n          message: 'message',\n          path: [\n            {\n              type: 'unknown',\n              origin: 'value',\n              input: input,\n              key: 'nested',\n              value: input.nested,\n            },\n            {\n              type: 'unknown',\n              origin: 'value',\n              input: input.nested,\n              key: 1,\n              value: input.nested[1],\n            },\n            {\n              type: 'unknown',\n              origin: 'value',\n              input: input.nested[1],\n              key: 'key',\n              value: input.nested[1].key,\n            },\n          ],\n          requirement,\n          issues: undefined,\n          lang: undefined,\n          abortEarly: undefined,\n          abortPipeEarly: undefined,\n        },\n      ],\n    } satisfies PartialDataset<Input, CheckIssue<Input>>);\n  });\n\n  test('should stop forwarding if path input is undefined', async () => {\n    const input = { nested: [{ key: 'value_1' }, { key: 'value_2' }] };\n    type Input = typeof input;\n    type Path = ['nested', 6, 'key'];\n    const requirement = () => false;\n    expect(\n      await forwardAsync<Input, CheckIssue<Input>, Path>(\n        check(requirement, 'message'),\n        ['nested', 6, 'key']\n      )['~run']({ typed: true, value: input }, {})\n    ).toStrictEqual({\n      typed: true,\n      value: input,\n      issues: [\n        {\n          kind: 'validation',\n          type: 'check',\n          input,\n          expected: null,\n          received: 'Object',\n          message: 'message',\n          path: [\n            {\n              type: 'unknown',\n              origin: 'value',\n              input: input,\n              key: 'nested',\n              value: input.nested,\n            },\n            {\n              type: 'unknown',\n              origin: 'value',\n              input: input.nested,\n              key: 6,\n              value: input.nested[6],\n            },\n          ],\n          requirement,\n          issues: undefined,\n          lang: undefined,\n          abortEarly: undefined,\n          abortPipeEarly: undefined,\n        },\n      ],\n    } satisfies PartialDataset<Input, CheckIssue<Input>>);\n  });\n\n  test('should only forward issues of wrapped action', async () => {\n    const input = { nested: [{ key: 'value_1' }, { key: 'value_2' }] };\n    type Input = typeof input;\n    type Path = ['nested', 1, 'key'];\n    const requirement = () => false;\n    const prevIssue: MinLengthIssue<Input['nested'], 3> = {\n      kind: 'validation',\n      type: 'min_length',\n      input: input.nested,\n      expected: '>=3',\n      received: '2',\n      message: 'message',\n      path: [\n        {\n          type: 'object',\n          origin: 'value',\n          input: input,\n          key: 'nested',\n          value: input.nested,\n        },\n      ],\n      requirement: 3,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n    expect(\n      await forwardAsync<Input, CheckIssue<Input>, Path>(\n        check(requirement, 'message'),\n        ['nested', 1, 'key']\n      )['~run'](\n        {\n          typed: true,\n          value: input,\n          // Hint: We pass a copy of the previous issue to avoid accidentally\n          // modifying our test data.\n          issues: [{ ...prevIssue, path: [...prevIssue.path!] }],\n        },\n        {}\n      )\n    ).toStrictEqual({\n      typed: true,\n      value: input,\n      issues: [\n        prevIssue,\n        {\n          kind: 'validation',\n          type: 'check',\n          input,\n          expected: null,\n          received: 'Object',\n          message: 'message',\n          path: [\n            {\n              type: 'unknown',\n              origin: 'value',\n              input: input,\n              key: 'nested',\n              value: input.nested,\n            },\n            {\n              type: 'unknown',\n              origin: 'value',\n              input: input.nested,\n              key: 1,\n              value: input.nested[1],\n            },\n            {\n              type: 'unknown',\n              origin: 'value',\n              input: input.nested[1],\n              key: 'key',\n              value: input.nested[1].key,\n            },\n          ],\n          requirement,\n          issues: undefined,\n          lang: undefined,\n          abortEarly: undefined,\n          abortPipeEarly: undefined,\n        },\n      ],\n    } satisfies PartialDataset<\n      Input,\n      MinLengthIssue<Input['nested'], 3> | CheckIssue<Input>\n    >);\n  });\n\n  test('should do nothing if there are no issues', async () => {\n    const input = { nested: [{ key: 'value_1' }, { key: 'value_2' }] };\n    type Input = typeof input;\n    type Path = ['nested', 6, 'key'];\n    const requirement = () => true;\n    expect(\n      await forwardAsync<Input, CheckIssue<Input>, Path>(\n        check(requirement, 'message'),\n        ['nested', 6, 'key']\n      )['~run']({ typed: true, value: input }, {})\n    ).toStrictEqual({\n      typed: true,\n      value: input,\n    } satisfies SuccessDataset<Input>);\n  });\n});\n"
  },
  {
    "path": "library/src/methods/forward/forwardAsync.ts",
    "content": "import type {\n  BaseIssue,\n  BaseValidation,\n  BaseValidationAsync,\n  IssuePathItem,\n} from '../../types/index.ts';\nimport type { RequiredPath, ValidPath } from './types.ts';\n\n// TODO: We should try to find a better way to type this function without\n// breaking the type inference, as the current implementation loses some type\n// information by returning a `BaseValidation` instead of the original type.\n// In the process, we should also figure out how to add a `.forward' property\n// to the returnd object in a type-safe way, similar to how the `fallback`\n// method works.\n\n/**\n * Forwards the issues of the passed validation action.\n *\n * @param action The validation action.\n * @param path The path to forward the issues to.\n *\n * @returns The modified action.\n */\n// @__NO_SIDE_EFFECTS__\nexport function forwardAsync<\n  TInput extends Record<string, unknown> | ArrayLike<unknown>,\n  TIssue extends BaseIssue<unknown>,\n  const TPath extends RequiredPath,\n>(\n  action:\n    | BaseValidation<TInput, TInput, TIssue>\n    | BaseValidationAsync<TInput, TInput, TIssue>,\n  path: ValidPath<TInput, TPath>\n): BaseValidationAsync<TInput, TInput, TIssue> {\n  return {\n    ...action,\n    async: true,\n    async '~run'(dataset, config) {\n      // Create copy of previous issues\n      const prevIssues = dataset.issues && [...dataset.issues];\n\n      // Run validation action\n      dataset = await action['~run'](dataset, config);\n\n      // If dataset contains issues, forward newly added issues\n      if (dataset.issues) {\n        for (const issue of dataset.issues) {\n          if (!prevIssues?.includes(issue)) {\n            // Create path input variable\n            let pathInput: unknown = dataset.value;\n\n            // Try to forward issue to end of path list\n            for (const key of path) {\n              // Create path value variable\n              // @ts-expect-error\n              const pathValue: unknown = pathInput[key];\n\n              // Create path item for current key\n              const pathItem: IssuePathItem = {\n                type: 'unknown',\n                origin: 'value',\n                input: pathInput,\n                key,\n                value: pathValue,\n              };\n\n              // Forward issue by adding path item\n              if (issue.path) {\n                issue.path.push(pathItem);\n              } else {\n                // @ts-expect-error\n                issue.path = [pathItem];\n              }\n\n              // If path value is undefined, stop forwarding\n              if (!pathValue) {\n                break;\n              }\n\n              // Set next path input to current path value\n              pathInput = pathValue;\n            }\n          }\n        }\n      }\n\n      // Return output dataset\n      return dataset;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/methods/forward/index.ts",
    "content": "export * from './forward.ts';\nexport * from './forwardAsync.ts';\n"
  },
  {
    "path": "library/src/methods/forward/types.ts",
    "content": "import type { IsAny, IsNever } from '../../types/index.ts';\n\n/**\n * Extracts the exact keys of a tuple, array or object.\n */\ntype KeyOf<TValue> =\n  IsAny<TValue> extends true\n    ? never\n    : TValue extends readonly unknown[]\n      ? number extends TValue['length']\n        ? number\n        : {\n            [TKey in keyof TValue]: TKey extends `${infer TIndex extends number}`\n              ? TIndex\n              : never;\n          }[number]\n      : TValue extends Record<string, unknown>\n        ? keyof TValue & (string | number)\n        : never;\n\n/**\n * Path type.\n */\ntype Path = readonly (string | number)[];\n\n/**\n * Required path type.\n */\nexport type RequiredPath = readonly [string | number, ...Path];\n\n/**\n * Lazily evaluate only the first valid path segment based on the given value.\n */\ntype LazyPath<\n  TValue,\n  TPathToCheck extends Path,\n  TValidPath extends Path = readonly [],\n> =\n  // If path to check is empty, return last valid path\n  TPathToCheck extends readonly []\n    ? TValidPath\n    : // If first key of path to check is valid, continue with next key\n      TPathToCheck extends readonly [\n          infer TFirstKey extends KeyOf<TValue> & keyof TValue,\n          ...infer TPathRest extends Path,\n        ]\n      ? LazyPath<\n          TValue[TFirstKey],\n          TPathRest,\n          readonly [...TValidPath, TFirstKey]\n        >\n      : // If current value has valid keys, return them\n        IsNever<KeyOf<TValue>> extends false\n        ? readonly [...TValidPath, KeyOf<TValue>]\n        : // Otherwise, return only last valid path\n          TValidPath;\n\n/**\n * Returns the path if valid, otherwise the first possible valid path based on\n * the given value.\n */\nexport type ValidPath<\n  TValue extends Record<string, unknown> | ArrayLike<unknown>,\n  TPath extends RequiredPath,\n> = TPath extends LazyPath<TValue, TPath> ? TPath : LazyPath<TValue, TPath>;\n"
  },
  {
    "path": "library/src/methods/getDefault/getDefault.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport {\n  exactOptional,\n  exactOptionalAsync,\n  nullable,\n  nullableAsync,\n  nullish,\n  nullishAsync,\n  number,\n  object,\n  optional,\n  optionalAsync,\n  string,\n  undefinedable,\n  undefinedableAsync,\n} from '../../schemas/index.ts';\nimport { pipe, pipeAsync } from '../pipe/index.ts';\nimport { getDefault } from './getDefault.ts';\n\ndescribe('getDefault', () => {\n  test('should return undefined', () => {\n    expectTypeOf(getDefault(string())).toEqualTypeOf<undefined>();\n    expectTypeOf(getDefault(number())).toEqualTypeOf<undefined>();\n    expectTypeOf(getDefault(object({}))).toEqualTypeOf<undefined>();\n  });\n\n  describe('should return exact optional default', () => {\n    test('for undefined value', () => {\n      expectTypeOf(\n        getDefault(exactOptional(string()))\n      ).toEqualTypeOf<undefined>();\n      expectTypeOf(\n        getDefault(exactOptional(string(), undefined))\n      ).toEqualTypeOf<undefined>();\n    });\n\n    test('for direct value', () => {\n      expectTypeOf(\n        getDefault(exactOptional(string(), 'foo'))\n      ).toEqualTypeOf<'foo'>();\n    });\n\n    test('for value getter', () => {\n      expectTypeOf(\n        getDefault(exactOptional(string(), () => 'foo' as const))\n      ).toEqualTypeOf<'foo'>();\n    });\n\n    test('for async value getter', () => {\n      expectTypeOf(\n        getDefault(exactOptionalAsync(string(), async () => 'foo' as const))\n      ).toEqualTypeOf<Promise<'foo'>>();\n    });\n\n    test('for schema with pipe', () => {\n      expectTypeOf(\n        getDefault(pipe(exactOptional(string(), 'foo')))\n      ).toEqualTypeOf<'foo'>();\n      expectTypeOf(\n        getDefault(pipeAsync(exactOptional(string(), 'foo')))\n      ).toEqualTypeOf<'foo'>();\n      expectTypeOf(\n        getDefault(pipeAsync(exactOptionalAsync(string(), 'foo')))\n      ).toEqualTypeOf<'foo'>();\n    });\n  });\n\n  describe('should return optional default', () => {\n    test('for undefined value', () => {\n      expectTypeOf(getDefault(optional(string()))).toEqualTypeOf<undefined>();\n      expectTypeOf(\n        getDefault(optional(string(), undefined))\n      ).toEqualTypeOf<undefined>();\n      expectTypeOf(\n        getDefault(optional(string(), () => undefined))\n      ).toEqualTypeOf<undefined>();\n      expectTypeOf(\n        getDefault(optionalAsync(string(), async () => undefined))\n      ).toEqualTypeOf<Promise<undefined>>();\n    });\n\n    test('for direct value', () => {\n      expectTypeOf(\n        getDefault(optional(string(), 'foo'))\n      ).toEqualTypeOf<'foo'>();\n    });\n\n    test('for value getter', () => {\n      expectTypeOf(\n        getDefault(optional(string(), () => 'foo' as const))\n      ).toEqualTypeOf<'foo'>();\n    });\n\n    test('for async value getter', () => {\n      expectTypeOf(\n        getDefault(optionalAsync(string(), async () => 'foo' as const))\n      ).toEqualTypeOf<Promise<'foo'>>();\n    });\n\n    test('for schema with pipe', () => {\n      expectTypeOf(\n        getDefault(pipe(optional(string(), 'foo')))\n      ).toEqualTypeOf<'foo'>();\n      expectTypeOf(\n        getDefault(pipeAsync(optional(string(), 'foo')))\n      ).toEqualTypeOf<'foo'>();\n      expectTypeOf(\n        getDefault(pipeAsync(optionalAsync(string(), 'foo')))\n      ).toEqualTypeOf<'foo'>();\n    });\n  });\n\n  describe('should return nullable default', () => {\n    test('for undefined value', () => {\n      expectTypeOf(getDefault(nullable(string()))).toEqualTypeOf<undefined>();\n    });\n\n    test('for null value', () => {\n      expectTypeOf(getDefault(nullable(string(), null))).toEqualTypeOf<null>();\n      expectTypeOf(\n        getDefault(nullable(string(), () => null))\n      ).toEqualTypeOf<null>();\n      expectTypeOf(\n        getDefault(nullableAsync(string(), async () => null))\n      ).toEqualTypeOf<Promise<null>>();\n    });\n\n    test('for direct value', () => {\n      expectTypeOf(\n        getDefault(nullable(string(), 'foo'))\n      ).toEqualTypeOf<'foo'>();\n    });\n\n    test('for value getter', () => {\n      expectTypeOf(\n        getDefault(nullable(string(), () => 'foo' as const))\n      ).toEqualTypeOf<'foo'>();\n    });\n\n    test('for async value getter', () => {\n      expectTypeOf(\n        getDefault(nullableAsync(string(), async () => 'foo' as const))\n      ).toEqualTypeOf<Promise<'foo'>>();\n    });\n\n    test('for schema with pipe', () => {\n      expectTypeOf(\n        getDefault(pipe(nullable(string(), 'foo')))\n      ).toEqualTypeOf<'foo'>();\n      expectTypeOf(\n        getDefault(pipeAsync(nullable(string(), 'foo')))\n      ).toEqualTypeOf<'foo'>();\n      expectTypeOf(\n        getDefault(pipeAsync(nullableAsync(string(), 'foo')))\n      ).toEqualTypeOf<'foo'>();\n    });\n  });\n\n  describe('should return nullish default', () => {\n    test('for undefined value', () => {\n      expectTypeOf(getDefault(nullish(string()))).toEqualTypeOf<undefined>();\n      expectTypeOf(\n        getDefault(nullish(string(), undefined))\n      ).toEqualTypeOf<undefined>();\n      expectTypeOf(\n        getDefault(nullish(string(), () => undefined))\n      ).toEqualTypeOf<undefined>();\n      expectTypeOf(\n        getDefault(nullishAsync(string(), async () => undefined))\n      ).toEqualTypeOf<Promise<undefined>>();\n    });\n\n    test('for null value', () => {\n      expectTypeOf(getDefault(nullish(string(), null))).toEqualTypeOf<null>();\n      expectTypeOf(\n        getDefault(nullish(string(), () => null))\n      ).toEqualTypeOf<null>();\n      expectTypeOf(\n        getDefault(nullishAsync(string(), async () => null))\n      ).toEqualTypeOf<Promise<null>>();\n    });\n\n    test('for direct value', () => {\n      expectTypeOf(getDefault(nullish(string(), 'foo'))).toEqualTypeOf<'foo'>();\n    });\n\n    test('for value getter', () => {\n      expectTypeOf(\n        getDefault(nullish(string(), () => 'foo' as const))\n      ).toEqualTypeOf<'foo'>();\n    });\n\n    test('for async value getter', () => {\n      expectTypeOf(\n        getDefault(nullishAsync(string(), async () => 'foo' as const))\n      ).toEqualTypeOf<Promise<'foo'>>();\n    });\n\n    test('for schema with pipe', () => {\n      expectTypeOf(\n        getDefault(pipe(nullish(string(), 'foo')))\n      ).toEqualTypeOf<'foo'>();\n      expectTypeOf(\n        getDefault(pipeAsync(nullish(string(), 'foo')))\n      ).toEqualTypeOf<'foo'>();\n      expectTypeOf(\n        getDefault(pipeAsync(nullishAsync(string(), 'foo')))\n      ).toEqualTypeOf<'foo'>();\n    });\n  });\n\n  describe('should return undefinedable default', () => {\n    test('for undefined value', () => {\n      expectTypeOf(\n        getDefault(undefinedable(string()))\n      ).toEqualTypeOf<undefined>();\n      expectTypeOf(\n        getDefault(undefinedable(string(), undefined))\n      ).toEqualTypeOf<undefined>();\n      expectTypeOf(\n        getDefault(undefinedable(string(), () => undefined))\n      ).toEqualTypeOf<undefined>();\n      expectTypeOf(\n        getDefault(undefinedableAsync(string(), async () => undefined))\n      ).toEqualTypeOf<Promise<undefined>>();\n    });\n\n    test('for direct value', () => {\n      expectTypeOf(\n        getDefault(undefinedable(string(), 'foo'))\n      ).toEqualTypeOf<'foo'>();\n    });\n\n    test('for value getter', () => {\n      expectTypeOf(\n        getDefault(undefinedable(string(), () => 'foo' as const))\n      ).toEqualTypeOf<'foo'>();\n    });\n\n    test('for async value getter', () => {\n      expectTypeOf(\n        getDefault(undefinedableAsync(string(), async () => 'foo' as const))\n      ).toEqualTypeOf<Promise<'foo'>>();\n    });\n\n    test('for schema with pipe', () => {\n      expectTypeOf(\n        getDefault(pipe(undefinedable(string(), 'foo')))\n      ).toEqualTypeOf<'foo'>();\n      expectTypeOf(\n        getDefault(pipeAsync(undefinedable(string(), 'foo')))\n      ).toEqualTypeOf<'foo'>();\n      expectTypeOf(\n        getDefault(pipeAsync(undefinedableAsync(string(), 'foo')))\n      ).toEqualTypeOf<'foo'>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/getDefault/getDefault.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  exactOptional,\n  exactOptionalAsync,\n  nullable,\n  nullableAsync,\n  nullish,\n  nullishAsync,\n  number,\n  object,\n  optional,\n  optionalAsync,\n  string,\n  undefinedable,\n  undefinedableAsync,\n} from '../../schemas/index.ts';\nimport { pipe, pipeAsync } from '../pipe/index.ts';\nimport { getDefault } from './getDefault.ts';\n\ndescribe('getDefault', () => {\n  test('should return undefined', () => {\n    expect(getDefault(string())).toBeUndefined();\n    expect(getDefault(number())).toBeUndefined();\n    expect(getDefault(object({}))).toBeUndefined();\n  });\n\n  describe('should return exact optional default', () => {\n    test('for undefined value', async () => {\n      expect(getDefault(exactOptional(string()))).toBeUndefined();\n      expect(getDefault(exactOptional(string(), undefined))).toBeUndefined();\n    });\n\n    test('for direct value', () => {\n      expect(getDefault(exactOptional(string(), 'foo'))).toBe('foo');\n      expect(getDefault(exactOptionalAsync(string(), 'foo'))).toBe('foo');\n    });\n\n    test('for value getter', () => {\n      expect(getDefault(exactOptional(string(), () => 'foo'))).toBe('foo');\n      expect(getDefault(exactOptionalAsync(string(), () => 'foo'))).toBe('foo');\n    });\n\n    test('for asycn value getter', async () => {\n      expect(\n        await getDefault(exactOptionalAsync(string(), async () => 'foo'))\n      ).toBe('foo');\n    });\n\n    test('for schema with pipe', () => {\n      expect(getDefault(pipe(exactOptional(string(), 'foo')))).toBe('foo');\n      expect(getDefault(pipeAsync(exactOptional(string(), 'foo')))).toBe('foo');\n      expect(getDefault(pipeAsync(exactOptionalAsync(string(), 'foo')))).toBe(\n        'foo'\n      );\n    });\n  });\n\n  describe('should return optional default', () => {\n    test('for undefined value', async () => {\n      expect(getDefault(optional(string()))).toBeUndefined();\n      expect(getDefault(optional(string(), undefined))).toBeUndefined();\n      expect(getDefault(optional(string(), () => undefined))).toBeUndefined();\n      expect(\n        await getDefault(optionalAsync(string(), async () => undefined))\n      ).toBeUndefined();\n    });\n\n    test('for direct value', () => {\n      expect(getDefault(optional(string(), 'foo'))).toBe('foo');\n      expect(getDefault(optionalAsync(string(), 'foo'))).toBe('foo');\n    });\n\n    test('for value getter', () => {\n      expect(getDefault(optional(string(), () => 'foo'))).toBe('foo');\n      expect(getDefault(optionalAsync(string(), () => 'foo'))).toBe('foo');\n    });\n\n    test('for asycn value getter', async () => {\n      expect(await getDefault(optionalAsync(string(), async () => 'foo'))).toBe(\n        'foo'\n      );\n    });\n\n    test('for schema with pipe', () => {\n      expect(getDefault(pipe(optional(string(), 'foo')))).toBe('foo');\n      expect(getDefault(pipeAsync(optional(string(), 'foo')))).toBe('foo');\n      expect(getDefault(pipeAsync(optionalAsync(string(), 'foo')))).toBe('foo');\n    });\n  });\n\n  describe('should return nullable default', () => {\n    test('for undefined value', async () => {\n      expect(getDefault(nullable(string()))).toBeUndefined();\n    });\n\n    test('for null value', async () => {\n      expect(getDefault(nullable(string(), null))).toBeNull();\n      expect(getDefault(nullable(string(), () => null))).toBeNull();\n      expect(\n        await getDefault(nullableAsync(string(), async () => null))\n      ).toBeNull();\n    });\n\n    test('for direct value', () => {\n      expect(getDefault(nullable(string(), 'foo'))).toBe('foo');\n      expect(getDefault(nullableAsync(string(), 'foo'))).toBe('foo');\n    });\n\n    test('for value getter', () => {\n      expect(getDefault(nullable(string(), () => 'foo'))).toBe('foo');\n      expect(getDefault(nullableAsync(string(), () => 'foo'))).toBe('foo');\n    });\n\n    test('for value getter', async () => {\n      expect(await getDefault(nullableAsync(string(), async () => 'foo'))).toBe(\n        'foo'\n      );\n    });\n\n    test('for schema with pipe', () => {\n      expect(getDefault(pipe(nullable(string(), 'foo')))).toBe('foo');\n      expect(getDefault(pipeAsync(nullable(string(), 'foo')))).toBe('foo');\n      expect(getDefault(pipeAsync(nullableAsync(string(), 'foo')))).toBe('foo');\n    });\n  });\n\n  describe('should return nullish default', () => {\n    test('for undefined value', async () => {\n      expect(getDefault(nullish(string()))).toBeUndefined();\n      expect(getDefault(nullish(string(), undefined))).toBeUndefined();\n      expect(getDefault(nullish(string(), () => undefined))).toBeUndefined();\n      expect(\n        await getDefault(nullishAsync(string(), async () => undefined))\n      ).toBeUndefined();\n    });\n\n    test('for null value', async () => {\n      expect(getDefault(nullish(string(), null))).toBeNull();\n      expect(getDefault(nullish(string(), () => null))).toBeNull();\n      expect(\n        await getDefault(nullishAsync(string(), async () => null))\n      ).toBeNull();\n    });\n\n    test('for direct value', () => {\n      expect(getDefault(nullish(string(), 'foo'))).toBe('foo');\n      expect(getDefault(nullishAsync(string(), 'foo'))).toBe('foo');\n    });\n\n    test('for value getter', () => {\n      expect(getDefault(nullish(string(), () => 'foo'))).toBe('foo');\n      expect(getDefault(nullishAsync(string(), () => 'foo'))).toBe('foo');\n    });\n\n    test('for value getter', async () => {\n      expect(await getDefault(nullishAsync(string(), async () => 'foo'))).toBe(\n        'foo'\n      );\n    });\n\n    test('for schema with pipe', () => {\n      expect(getDefault(pipe(nullish(string(), 'foo')))).toBe('foo');\n      expect(getDefault(pipeAsync(nullish(string(), 'foo')))).toBe('foo');\n      expect(getDefault(pipeAsync(nullishAsync(string(), 'foo')))).toBe('foo');\n    });\n  });\n\n  describe('should return undefinedable default', () => {\n    test('for undefined value', async () => {\n      expect(getDefault(undefinedable(string()))).toBeUndefined();\n      expect(getDefault(undefinedable(string(), undefined))).toBeUndefined();\n      expect(\n        getDefault(undefinedable(string(), () => undefined))\n      ).toBeUndefined();\n      expect(\n        await getDefault(undefinedableAsync(string(), async () => undefined))\n      ).toBeUndefined();\n    });\n\n    test('for direct value', () => {\n      expect(getDefault(undefinedable(string(), 'foo'))).toBe('foo');\n      expect(getDefault(undefinedableAsync(string(), 'foo'))).toBe('foo');\n    });\n\n    test('for value getter', () => {\n      expect(getDefault(undefinedable(string(), () => 'foo'))).toBe('foo');\n      expect(getDefault(undefinedableAsync(string(), () => 'foo'))).toBe('foo');\n    });\n\n    test('for asycn value getter', async () => {\n      expect(\n        await getDefault(undefinedableAsync(string(), async () => 'foo'))\n      ).toBe('foo');\n    });\n\n    test('for schema with pipe', () => {\n      expect(getDefault(pipe(undefinedable(string(), 'foo')))).toBe('foo');\n      expect(getDefault(pipeAsync(undefinedable(string(), 'foo')))).toBe('foo');\n      expect(getDefault(pipeAsync(undefinedableAsync(string(), 'foo')))).toBe(\n        'foo'\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/getDefault/getDefault.ts",
    "content": "import type {\n  ExactOptionalSchema,\n  ExactOptionalSchemaAsync,\n  NullableSchema,\n  NullableSchemaAsync,\n  NullishSchema,\n  NullishSchemaAsync,\n  OptionalSchema,\n  OptionalSchemaAsync,\n  UndefinedableSchema,\n  UndefinedableSchemaAsync,\n} from '../../schemas/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  Config,\n  InferIssue,\n  UnknownDataset,\n} from '../../types/index.ts';\n\n/**\n * Schema with default type.\n */\ntype SchemaWithDefault =\n  | ExactOptionalSchema<\n      BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n      unknown\n    >\n  | NullableSchema<BaseSchema<unknown, unknown, BaseIssue<unknown>>, unknown>\n  | NullishSchema<BaseSchema<unknown, unknown, BaseIssue<unknown>>, unknown>\n  | OptionalSchema<BaseSchema<unknown, unknown, BaseIssue<unknown>>, unknown>\n  | UndefinedableSchema<\n      BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n      unknown\n    >;\n\n/**\n * Schema with default async type.\n */\ntype SchemaWithDefaultAsync =\n  | ExactOptionalSchemaAsync<\n      | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n      | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n      unknown\n    >\n  | NullableSchemaAsync<\n      | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n      | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n      unknown\n    >\n  | NullishSchemaAsync<\n      | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n      | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n      unknown\n    >\n  | OptionalSchemaAsync<\n      | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n      | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n      unknown\n    >\n  | UndefinedableSchemaAsync<\n      | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n      | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n      unknown\n    >;\n\n/**\n * Infer default type.\n */\nexport type InferDefault<\n  TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n    | SchemaWithDefault\n    | SchemaWithDefaultAsync,\n> = TSchema extends SchemaWithDefault | SchemaWithDefaultAsync\n  ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    TSchema['default'] extends (...args: any) => any\n    ? ReturnType<TSchema['default']>\n    : TSchema['default']\n  : undefined;\n\n/**\n * Returns the default value of the schema.\n *\n * @param schema The schema to get it from.\n * @param dataset The input dataset if available.\n * @param config The config if available.\n *\n * @returns The default value.\n */\n// @__NO_SIDE_EFFECTS__\nexport function getDefault<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(\n  schema: TSchema,\n  dataset?: UnknownDataset,\n  config?: Config<InferIssue<TSchema>>\n): InferDefault<TSchema> {\n  // @ts-expect-error\n  return typeof schema.default === 'function'\n    ? // @ts-expect-error\n      schema.default(dataset, config)\n    : // @ts-expect-error\n      schema.default;\n}\n"
  },
  {
    "path": "library/src/methods/getDefault/index.ts",
    "content": "export * from './getDefault.ts';\n"
  },
  {
    "path": "library/src/methods/getDefaults/getDefaults.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport {\n  boolean,\n  nullable,\n  nullish,\n  number,\n  object,\n  optional,\n  strictObject,\n  strictTuple,\n  string,\n  tuple,\n} from '../../schemas/index.ts';\nimport { getDefaults } from './getDefaults.ts';\n\ndescribe('getDefaults', () => {\n  test('should return undefined', () => {\n    expectTypeOf(getDefaults(string())).toEqualTypeOf<undefined>();\n    expectTypeOf(getDefaults(number())).toEqualTypeOf<undefined>();\n    expectTypeOf(getDefaults(boolean())).toEqualTypeOf<undefined>();\n  });\n\n  test('should return default', () => {\n    expectTypeOf(getDefaults(optional(string(), 'foo'))).toEqualTypeOf<'foo'>();\n    expectTypeOf(\n      getDefaults(nullish(number(), () => 123 as const))\n    ).toEqualTypeOf<123>();\n    expectTypeOf(\n      getDefaults(nullable(boolean(), false))\n    ).toEqualTypeOf<false>();\n  });\n\n  describe('should return object defaults', () => {\n    test('for empty object', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n      expectTypeOf(getDefaults(object({}))).toEqualTypeOf<{}>();\n    });\n\n    test('for simple object', () => {\n      expectTypeOf(\n        getDefaults(\n          object({\n            key1: optional(string(), 'foo'),\n            key2: nullish(number(), () => 123 as const),\n            key3: nullable(boolean(), false),\n            key4: string(),\n          })\n        )\n      ).toEqualTypeOf<{\n        key1: 'foo';\n        key2: 123;\n        key3: false;\n        key4: undefined;\n      }>();\n    });\n\n    test('for nested object', () => {\n      expectTypeOf(\n        getDefaults(\n          object({\n            nested: strictObject({\n              key1: optional(string(), 'foo'),\n              key2: nullish(number(), () => 123 as const),\n              key3: nullable(boolean(), false),\n            }),\n            other: string(),\n          })\n        )\n      ).toEqualTypeOf<{\n        nested: {\n          key1: 'foo';\n          key2: 123;\n          key3: false;\n        };\n        other: undefined;\n      }>();\n    });\n  });\n\n  describe('should return tuple defaults', () => {\n    test('for empty tuple', () => {\n      expectTypeOf(getDefaults(tuple([]))).toEqualTypeOf<[]>();\n    });\n\n    test('for simple tuple', () => {\n      expectTypeOf(\n        getDefaults(\n          tuple([\n            optional(string(), 'foo'),\n            nullish(number(), () => 123 as const),\n            nullable(boolean(), false),\n            string(),\n          ])\n        )\n      ).toEqualTypeOf<['foo', 123, false, undefined]>();\n    });\n\n    test('for nested tuple', () => {\n      expectTypeOf(\n        getDefaults(\n          tuple([\n            strictTuple([\n              optional(string(), 'foo'),\n              nullish(number(), () => 123 as const),\n              nullable(boolean(), false),\n            ]),\n            string(),\n          ])\n        )\n      ).toEqualTypeOf<[['foo', 123, false], undefined]>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/getDefaults/getDefaults.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  boolean,\n  nullable,\n  nullish,\n  number,\n  object,\n  optional,\n  strictObject,\n  strictTuple,\n  string,\n  tuple,\n} from '../../schemas/index.ts';\nimport { getDefaults } from './getDefaults.ts';\n\ndescribe('getDefaults', () => {\n  test('should return undefined', () => {\n    expect(getDefaults(string())).toBeUndefined();\n    expect(getDefaults(number())).toBeUndefined();\n    expect(getDefaults(boolean())).toBeUndefined();\n  });\n\n  test('should return default', () => {\n    expect(getDefaults(optional(string(), 'foo'))).toBe('foo');\n    expect(getDefaults(nullish(number(), () => 123 as const))).toBe(123);\n    expect(getDefaults(nullable(boolean(), false))).toBe(false);\n  });\n\n  describe('should return object defaults', () => {\n    test('for empty object', () => {\n      expect(getDefaults(object({}))).toStrictEqual({});\n    });\n\n    test('for simple object', () => {\n      expect(\n        getDefaults(\n          object({\n            key1: optional(string(), 'foo'),\n            key2: nullish(number(), () => 123 as const),\n            key3: nullable(boolean(), false),\n            key4: string(),\n          })\n        )\n      ).toStrictEqual({\n        key1: 'foo',\n        key2: 123,\n        key3: false,\n        key4: undefined,\n      });\n    });\n\n    test('for nested object', () => {\n      expect(\n        getDefaults(\n          object({\n            nested: strictObject({\n              key1: optional(string(), 'foo'),\n              key2: nullish(number(), () => 123 as const),\n              key3: nullable(boolean(), false),\n            }),\n            other: string(),\n          })\n        )\n      ).toStrictEqual({\n        nested: {\n          key1: 'foo',\n          key2: 123,\n          key3: false,\n        },\n        other: undefined,\n      });\n    });\n  });\n\n  describe('should return tuple defaults', () => {\n    test('for empty tuple', () => {\n      expect(getDefaults(tuple([]))).toStrictEqual([]);\n    });\n\n    test('for simple tuple', () => {\n      expect(\n        getDefaults(\n          tuple([\n            optional(string(), 'foo'),\n            nullish(number(), () => 123 as const),\n            nullable(boolean(), false),\n            string(),\n          ])\n        )\n      ).toStrictEqual(['foo', 123, false, undefined]);\n    });\n\n    test('for nested tuple', () => {\n      expect(\n        getDefaults(\n          tuple([\n            strictTuple([\n              optional(string(), 'foo'),\n              nullish(number(), () => 123 as const),\n              nullable(boolean(), false),\n            ]),\n            string(),\n          ])\n        )\n      ).toStrictEqual([['foo', 123, false], undefined]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/getDefaults/getDefaults.ts",
    "content": "import type {\n  LooseObjectIssue,\n  LooseObjectSchema,\n  LooseTupleIssue,\n  LooseTupleSchema,\n  ObjectIssue,\n  ObjectSchema,\n  ObjectWithRestIssue,\n  ObjectWithRestSchema,\n  StrictObjectIssue,\n  StrictObjectSchema,\n  StrictTupleIssue,\n  StrictTupleSchema,\n  TupleIssue,\n  TupleSchema,\n  TupleWithRestIssue,\n  TupleWithRestSchema,\n} from '../../schemas/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  ObjectEntries,\n  TupleItems,\n} from '../../types/index.ts';\nimport { getDefault } from '../getDefault/index.ts';\nimport type { InferDefaults } from './types.ts';\n\n/**\n * Returns the default values of the schema.\n *\n * Hint: The difference to `getDefault` is that for object and tuple schemas\n * this function recursively returns the default values of the subschemas\n * instead of `undefined`.\n *\n * @param schema The schema to get them from.\n *\n * @returns The default values.\n */\n// @__NO_SIDE_EFFECTS__\nexport function getDefaults<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | LooseObjectSchema<\n        ObjectEntries,\n        ErrorMessage<LooseObjectIssue> | undefined\n      >\n    | LooseTupleSchema<TupleItems, ErrorMessage<LooseTupleIssue> | undefined>\n    | ObjectSchema<ObjectEntries, ErrorMessage<ObjectIssue> | undefined>\n    | ObjectWithRestSchema<\n        ObjectEntries,\n        BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n        ErrorMessage<ObjectWithRestIssue> | undefined\n      >\n    | StrictObjectSchema<\n        ObjectEntries,\n        ErrorMessage<StrictObjectIssue> | undefined\n      >\n    | StrictTupleSchema<TupleItems, ErrorMessage<StrictTupleIssue> | undefined>\n    | TupleSchema<TupleItems, ErrorMessage<TupleIssue> | undefined>\n    | TupleWithRestSchema<\n        TupleItems,\n        BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n        ErrorMessage<TupleWithRestIssue> | undefined\n      >,\n>(schema: TSchema): InferDefaults<TSchema> {\n  // If it is an object schema, return defaults of entries\n  if ('entries' in schema) {\n    const object: Record<string, unknown> = {};\n    for (const key in schema.entries) {\n      object[key] = getDefaults(schema.entries[key]);\n    }\n    return object as InferDefaults<TSchema>;\n  }\n\n  // If it is a tuple schema, return defaults of items\n  if ('items' in schema) {\n    return schema.items.map(getDefaults) as InferDefaults<TSchema>;\n  }\n\n  // Otherwise, return default or `undefined`\n  // @ts-expect-error\n  return getDefault(schema);\n}\n"
  },
  {
    "path": "library/src/methods/getDefaults/getDefaultsAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport {\n  boolean,\n  nullableAsync,\n  nullish,\n  number,\n  object,\n  objectAsync,\n  optional,\n  strictObjectAsync,\n  strictTupleAsync,\n  string,\n  tuple,\n  tupleAsync,\n} from '../../schemas/index.ts';\nimport { getDefaultsAsync } from './getDefaultsAsync.ts';\n\ndescribe('getDefaultsAsync', () => {\n  test('should return undefined', () => {\n    expectTypeOf(getDefaultsAsync(string())).toEqualTypeOf<\n      Promise<undefined>\n    >();\n    expectTypeOf(getDefaultsAsync(number())).toEqualTypeOf<\n      Promise<undefined>\n    >();\n    expectTypeOf(getDefaultsAsync(boolean())).toEqualTypeOf<\n      Promise<undefined>\n    >();\n  });\n\n  test('should return default', () => {\n    expectTypeOf(getDefaultsAsync(optional(string(), 'foo'))).toEqualTypeOf<\n      Promise<'foo'>\n    >();\n    expectTypeOf(\n      getDefaultsAsync(nullish(number(), () => 123 as const))\n    ).toEqualTypeOf<Promise<123>>();\n    expectTypeOf(\n      getDefaultsAsync(nullableAsync(boolean(), async () => false as const))\n    ).toEqualTypeOf<Promise<false>>();\n  });\n\n  describe('should return object defaults', () => {\n    test('for empty object', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n      expectTypeOf(getDefaultsAsync(object({}))).toEqualTypeOf<Promise<{}>>();\n    });\n\n    test('for simple object', () => {\n      expectTypeOf(\n        getDefaultsAsync(\n          objectAsync({\n            key1: optional(string(), 'foo'),\n            key2: nullish(number(), () => 123 as const),\n            key3: nullableAsync(boolean(), false),\n            key4: string(),\n          })\n        )\n      ).toEqualTypeOf<\n        Promise<{\n          key1: 'foo';\n          key2: 123;\n          key3: false;\n          key4: undefined;\n        }>\n      >();\n    });\n\n    test('for nested object', () => {\n      expectTypeOf(\n        getDefaultsAsync(\n          objectAsync({\n            nested: strictObjectAsync({\n              key1: optional(string(), 'foo'),\n              key2: nullish(number(), () => 123 as const),\n              key3: nullableAsync(boolean(), false),\n            }),\n            other: string(),\n          })\n        )\n      ).toEqualTypeOf<\n        Promise<{\n          nested: {\n            key1: 'foo';\n            key2: 123;\n            key3: false;\n          };\n          other: undefined;\n        }>\n      >();\n    });\n  });\n\n  describe('should return tuple defaults', () => {\n    test('for empty tuple', () => {\n      expectTypeOf(getDefaultsAsync(tuple([]))).toEqualTypeOf<Promise<[]>>();\n    });\n\n    test('for simple tuple', () => {\n      expectTypeOf(\n        getDefaultsAsync(\n          tupleAsync([\n            optional(string(), 'foo'),\n            nullish(number(), () => 123 as const),\n            nullableAsync(boolean(), false),\n            string(),\n          ])\n        )\n      ).toEqualTypeOf<Promise<['foo', 123, false, undefined]>>();\n    });\n\n    test('for nested tuple', () => {\n      expectTypeOf(\n        getDefaultsAsync(\n          tupleAsync([\n            strictTupleAsync([\n              optional(string(), 'foo'),\n              nullish(number(), () => 123 as const),\n              nullableAsync(boolean(), false),\n            ]),\n            string(),\n          ])\n        )\n      ).toEqualTypeOf<Promise<[['foo', 123, false], undefined]>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/getDefaults/getDefaultsAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  boolean,\n  nullableAsync,\n  nullish,\n  number,\n  object,\n  objectAsync,\n  optional,\n  strictObjectAsync,\n  strictTupleAsync,\n  string,\n  tuple,\n  tupleAsync,\n} from '../../schemas/index.ts';\nimport { getDefaultsAsync } from './getDefaultsAsync.ts';\n\ndescribe('getDefaultsAsync', () => {\n  test('should return undefined', async () => {\n    expect(await getDefaultsAsync(string())).toBeUndefined();\n    expect(await getDefaultsAsync(number())).toBeUndefined();\n    expect(await getDefaultsAsync(boolean())).toBeUndefined();\n  });\n\n  test('should return default', async () => {\n    expect(await getDefaultsAsync(optional(string(), 'foo'))).toBe('foo');\n    expect(await getDefaultsAsync(nullish(number(), () => 123 as const))).toBe(\n      123\n    );\n    expect(\n      await getDefaultsAsync(\n        nullableAsync(boolean(), async () => false as const)\n      )\n    ).toBe(false);\n  });\n\n  describe('should return object defaults', () => {\n    test('for empty object', async () => {\n      expect(await getDefaultsAsync(object({}))).toStrictEqual({});\n    });\n\n    test('for simple object', async () => {\n      expect(\n        await getDefaultsAsync(\n          objectAsync({\n            key1: optional(string(), 'foo'),\n            key2: nullish(number(), () => 123 as const),\n            key3: nullableAsync(boolean(), false),\n            key4: string(),\n          })\n        )\n      ).toStrictEqual({\n        key1: 'foo',\n        key2: 123,\n        key3: false,\n        key4: undefined,\n      });\n    });\n\n    test('for nested object', async () => {\n      expect(\n        await getDefaultsAsync(\n          objectAsync({\n            nested: strictObjectAsync({\n              key1: optional(string(), 'foo'),\n              key2: nullish(number(), () => 123 as const),\n              key3: nullableAsync(boolean(), false),\n            }),\n            other: string(),\n          })\n        )\n      ).toStrictEqual({\n        nested: {\n          key1: 'foo',\n          key2: 123,\n          key3: false,\n        },\n        other: undefined,\n      });\n    });\n  });\n\n  describe('should return tuple defaults', () => {\n    test('for empty tuple', async () => {\n      expect(await getDefaultsAsync(tuple([]))).toStrictEqual([]);\n    });\n\n    test('for simple tuple', async () => {\n      expect(\n        await getDefaultsAsync(\n          tupleAsync([\n            optional(string(), 'foo'),\n            nullish(number(), () => 123 as const),\n            nullableAsync(boolean(), false),\n            string(),\n          ])\n        )\n      ).toStrictEqual(['foo', 123, false, undefined]);\n    });\n\n    test('for nested tuple', async () => {\n      expect(\n        await getDefaultsAsync(\n          tupleAsync([\n            strictTupleAsync([\n              optional(string(), 'foo'),\n              nullish(number(), () => 123 as const),\n              nullableAsync(boolean(), false),\n            ]),\n            string(),\n          ])\n        )\n      ).toStrictEqual([['foo', 123, false], undefined]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/getDefaults/getDefaultsAsync.ts",
    "content": "import type {\n  LooseObjectIssue,\n  LooseObjectSchema,\n  LooseObjectSchemaAsync,\n  LooseTupleIssue,\n  LooseTupleSchema,\n  LooseTupleSchemaAsync,\n  ObjectIssue,\n  ObjectSchema,\n  ObjectSchemaAsync,\n  ObjectWithRestIssue,\n  ObjectWithRestSchema,\n  ObjectWithRestSchemaAsync,\n  StrictObjectIssue,\n  StrictObjectSchema,\n  StrictObjectSchemaAsync,\n  StrictTupleIssue,\n  StrictTupleSchema,\n  StrictTupleSchemaAsync,\n  TupleIssue,\n  TupleSchema,\n  TupleSchemaAsync,\n  TupleWithRestIssue,\n  TupleWithRestSchema,\n  TupleWithRestSchemaAsync,\n} from '../../schemas/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  ErrorMessage,\n  ObjectEntries,\n  ObjectEntriesAsync,\n  TupleItems,\n  TupleItemsAsync,\n} from '../../types/index.ts';\nimport { getDefault } from '../getDefault/index.ts';\nimport type { InferDefaults } from './types.ts';\n\n/**\n * Returns the default values of the schema.\n *\n * Hint: The difference to `getDefault` is that for object and tuple schemas\n * this function recursively returns the default values of the subschemas\n * instead of `undefined`.\n *\n * @param schema The schema to get them from.\n *\n * @returns The default values.\n */\n// @__NO_SIDE_EFFECTS__\nexport async function getDefaultsAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n    | LooseObjectSchema<\n        ObjectEntries,\n        ErrorMessage<LooseObjectIssue> | undefined\n      >\n    | LooseObjectSchemaAsync<\n        ObjectEntriesAsync,\n        ErrorMessage<LooseObjectIssue> | undefined\n      >\n    | LooseTupleSchema<TupleItems, ErrorMessage<LooseTupleIssue> | undefined>\n    | LooseTupleSchemaAsync<\n        TupleItemsAsync,\n        ErrorMessage<LooseTupleIssue> | undefined\n      >\n    | ObjectSchema<ObjectEntries, ErrorMessage<ObjectIssue> | undefined>\n    | ObjectSchemaAsync<\n        ObjectEntriesAsync,\n        ErrorMessage<ObjectIssue> | undefined\n      >\n    | ObjectWithRestSchema<\n        ObjectEntries,\n        BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n        ErrorMessage<ObjectWithRestIssue> | undefined\n      >\n    | ObjectWithRestSchemaAsync<\n        ObjectEntriesAsync,\n        | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n        | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n        ErrorMessage<ObjectWithRestIssue> | undefined\n      >\n    | StrictObjectSchema<\n        ObjectEntries,\n        ErrorMessage<StrictObjectIssue> | undefined\n      >\n    | StrictObjectSchemaAsync<\n        ObjectEntriesAsync,\n        ErrorMessage<StrictObjectIssue> | undefined\n      >\n    | StrictTupleSchema<TupleItems, ErrorMessage<StrictTupleIssue> | undefined>\n    | StrictTupleSchemaAsync<\n        TupleItemsAsync,\n        ErrorMessage<StrictTupleIssue> | undefined\n      >\n    | TupleSchema<TupleItems, ErrorMessage<TupleIssue> | undefined>\n    | TupleSchemaAsync<TupleItemsAsync, ErrorMessage<TupleIssue> | undefined>\n    | TupleWithRestSchema<\n        TupleItems,\n        BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n        ErrorMessage<TupleWithRestIssue> | undefined\n      >\n    | TupleWithRestSchemaAsync<\n        TupleItemsAsync,\n        | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n        | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n        ErrorMessage<TupleWithRestIssue> | undefined\n      >,\n>(schema: TSchema): Promise<InferDefaults<TSchema>> {\n  // If it is an object schema, return defaults of entries\n  if ('entries' in schema) {\n    return Object.fromEntries(\n      await Promise.all(\n        Object.entries(schema.entries).map(async ([key, value]) => [\n          key,\n          await getDefaultsAsync(value),\n        ])\n      )\n    ) as InferDefaults<TSchema>;\n  }\n\n  // If it is a tuple schema, return defaults of items\n  if ('items' in schema) {\n    return Promise.all(schema.items.map(getDefaultsAsync)) as Promise<\n      InferDefaults<TSchema>\n    >;\n  }\n\n  // Otherwise, return default or `undefined`\n  // @ts-expect-error\n  return getDefault(schema);\n}\n"
  },
  {
    "path": "library/src/methods/getDefaults/index.ts",
    "content": "export * from './getDefaults.ts';\nexport * from './getDefaultsAsync.ts';\nexport * from './types.ts';\n"
  },
  {
    "path": "library/src/methods/getDefaults/types.ts",
    "content": "import type {\n  LooseObjectIssue,\n  LooseObjectSchema,\n  LooseObjectSchemaAsync,\n  LooseTupleIssue,\n  LooseTupleSchema,\n  LooseTupleSchemaAsync,\n  ObjectIssue,\n  ObjectSchema,\n  ObjectSchemaAsync,\n  ObjectWithRestIssue,\n  ObjectWithRestSchema,\n  ObjectWithRestSchemaAsync,\n  StrictObjectIssue,\n  StrictObjectSchema,\n  StrictObjectSchemaAsync,\n  StrictTupleIssue,\n  StrictTupleSchema,\n  StrictTupleSchemaAsync,\n  TupleIssue,\n  TupleSchema,\n  TupleSchemaAsync,\n  TupleWithRestIssue,\n  TupleWithRestSchema,\n  TupleWithRestSchemaAsync,\n} from '../../schemas/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport type { InferDefault } from '../getDefault/index.ts';\n\n/**\n * Infer defaults type.\n */\nexport type InferDefaults<\n  TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n> = TSchema extends\n  | LooseObjectSchema<\n      infer TEntries,\n      ErrorMessage<LooseObjectIssue> | undefined\n    >\n  | ObjectSchema<infer TEntries, ErrorMessage<ObjectIssue> | undefined>\n  | ObjectWithRestSchema<\n      infer TEntries,\n      BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n      ErrorMessage<ObjectWithRestIssue> | undefined\n    >\n  | StrictObjectSchema<\n      infer TEntries,\n      ErrorMessage<StrictObjectIssue> | undefined\n    >\n  ? { -readonly [TKey in keyof TEntries]: InferDefaults<TEntries[TKey]> }\n  : TSchema extends\n        | LooseObjectSchemaAsync<\n            infer TEntries,\n            ErrorMessage<LooseObjectIssue> | undefined\n          >\n        | ObjectSchemaAsync<\n            infer TEntries,\n            ErrorMessage<ObjectIssue> | undefined\n          >\n        | ObjectWithRestSchemaAsync<\n            infer TEntries,\n            BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n            ErrorMessage<ObjectWithRestIssue> | undefined\n          >\n        | StrictObjectSchemaAsync<\n            infer TEntries,\n            ErrorMessage<StrictObjectIssue> | undefined\n          >\n    ? { -readonly [TKey in keyof TEntries]: InferDefaults<TEntries[TKey]> }\n    : TSchema extends\n          | LooseTupleSchema<\n              infer TItems,\n              ErrorMessage<LooseTupleIssue> | undefined\n            >\n          | StrictTupleSchema<\n              infer TItems,\n              ErrorMessage<StrictTupleIssue> | undefined\n            >\n          | TupleSchema<infer TItems, ErrorMessage<TupleIssue> | undefined>\n          | TupleWithRestSchema<\n              infer TItems,\n              BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n              ErrorMessage<TupleWithRestIssue> | undefined\n            >\n      ? { -readonly [TKey in keyof TItems]: InferDefaults<TItems[TKey]> }\n      : TSchema extends\n            | LooseTupleSchemaAsync<\n                infer TItems,\n                ErrorMessage<LooseTupleIssue> | undefined\n              >\n            | StrictTupleSchemaAsync<\n                infer TItems,\n                ErrorMessage<StrictTupleIssue> | undefined\n              >\n            | TupleSchemaAsync<\n                infer TItems,\n                ErrorMessage<TupleIssue> | undefined\n              >\n            | TupleWithRestSchemaAsync<\n                infer TItems,\n                BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n                ErrorMessage<TupleWithRestIssue> | undefined\n              >\n        ? { -readonly [TKey in keyof TItems]: InferDefaults<TItems[TKey]> }\n        : Awaited<InferDefault<TSchema>>;\n"
  },
  {
    "path": "library/src/methods/getDescription/getDescription.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { description, title } from '../../actions/index.ts';\nimport { string } from '../../schemas/index.ts';\nimport { pipe } from '../pipe/index.ts';\nimport { getDescription } from './getDescription.ts';\n\ndescribe('getDescription', () => {\n  test('should return undefined', () => {\n    expect(getDescription(string())).toBeUndefined();\n    expect(getDescription(pipe(string()))).toBeUndefined();\n    expect(getDescription(pipe(string(), title('foo')))).toBeUndefined();\n  });\n\n  test('should return description', () => {\n    expect(getDescription(pipe(string(), description('foo')))).toBe('foo');\n    expect(\n      getDescription(pipe(string(), description('foo'), description('bar')))\n    ).toBe('bar');\n    expect(\n      getDescription(\n        pipe(pipe(string(), description('foo')), description('bar'))\n      )\n    ).toBe('bar');\n    expect(\n      getDescription(\n        pipe(string(), description('foo'), pipe(string(), description('bar')))\n      )\n    ).toBe('foo');\n  });\n});\n"
  },
  {
    "path": "library/src/methods/getDescription/getDescription.ts",
    "content": "import type { DescriptionAction } from '../../actions/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  PipeItem,\n  PipeItemAsync,\n} from '../../types/index.ts';\nimport { _getLastMetadata } from '../../utils/index.ts';\nimport type { SchemaWithPipe, SchemaWithPipeAsync } from '../index.ts';\n\n/**\n * Schema type.\n */\ntype Schema =\n  | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n  | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n  | SchemaWithPipe<\n      readonly [\n        BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n        ...(\n          | PipeItem<any, unknown, BaseIssue<unknown>> // eslint-disable-line @typescript-eslint/no-explicit-any\n          | DescriptionAction<unknown, string>\n        )[],\n      ]\n    >\n  | SchemaWithPipeAsync<\n      readonly [\n        (\n          | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n          | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n        ),\n        ...(\n          | PipeItem<any, unknown, BaseIssue<unknown>> // eslint-disable-line @typescript-eslint/no-explicit-any\n          | PipeItemAsync<any, unknown, BaseIssue<unknown>> // eslint-disable-line @typescript-eslint/no-explicit-any\n          | DescriptionAction<unknown, string>\n        )[],\n      ]\n    >;\n\n/**\n * Returns the description of the schema.\n *\n * If multiple descriptions are defined, the last one of the highest level is\n * returned. If no description is defined, `undefined` is returned.\n *\n * @param schema The schema to get the description from.\n *\n * @returns The description, if any.\n *\n * @beta\n */\n// TODO: Investigate if return type can be strongly typed\n// @__NO_SIDE_EFFECTS__\nexport function getDescription(schema: Schema): string | undefined {\n  return _getLastMetadata(schema, 'description');\n}\n"
  },
  {
    "path": "library/src/methods/getDescription/index.ts",
    "content": "export * from './getDescription.ts';\n"
  },
  {
    "path": "library/src/methods/getExamples/getExamples.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport { email, examples, startsWith } from '../../actions/index.ts';\nimport { string } from '../../schemas/index.ts';\nimport type { GenericSchema } from '../../types/index.ts';\nimport { pipe, pipeAsync } from '../pipe/index.ts';\nimport { getExamples } from './getExamples.ts';\n\ndescribe('getExamples', () => {\n  test('should return generic examples', () => {\n    const genericSchema = string() as GenericSchema;\n    expectTypeOf(getExamples(genericSchema)).toEqualTypeOf<[]>();\n  });\n\n  describe('should return empty array', () => {\n    test('for schema without pipe', () => {\n      expectTypeOf(getExamples(string())).toEqualTypeOf<[]>();\n    });\n\n    test('for schema with empty pipe', () => {\n      expectTypeOf(getExamples(pipe(string()))).toEqualTypeOf<readonly []>();\n    });\n\n    test('for schema with no examples in pipe', () => {\n      expectTypeOf(getExamples(pipe(string(), email()))).toEqualTypeOf<\n        readonly []\n      >();\n    });\n  });\n\n  describe('should return single examples', () => {\n    test('for simple schema with examples', () => {\n      expectTypeOf(\n        getExamples(pipe(string(), examples(['foo', 'bar'])))\n      ).toEqualTypeOf<readonly ['foo', 'bar']>();\n    });\n\n    test('for schema with examples in nested pipe', () => {\n      expectTypeOf(\n        getExamples(pipe(pipe(string(), examples(['foo', 'bar'])), email()))\n      ).toEqualTypeOf<readonly ['foo', 'bar']>();\n    });\n\n    test('for schema with examples in deeply nested pipe', () => {\n      expectTypeOf(\n        getExamples(\n          pipe(\n            string(),\n            pipe(pipe(string(), examples(['foo', 'bar'])), email()),\n            startsWith('foo')\n          )\n        )\n      ).toEqualTypeOf<readonly ['foo', 'bar']>();\n    });\n\n    test('for schema with examples in async pipe', () => {\n      expectTypeOf(\n        getExamples(pipeAsync(string(), examples(['foo', 'bar'])))\n      ).toEqualTypeOf<readonly ['foo', 'bar']>();\n    });\n  });\n\n  describe('should return merged examples', () => {\n    test('for simple schema with multiple examples', () => {\n      expectTypeOf(\n        getExamples(\n          pipe(string(), examples(['foo', 'bar']), examples(['baz', 'qux']))\n        )\n      ).toEqualTypeOf<readonly ['foo', 'bar', 'baz', 'qux']>();\n    });\n\n    test('for schema with multiple examples in nested pipe', () => {\n      expectTypeOf(\n        getExamples(\n          pipe(\n            pipe(string(), examples(['foo', 'bar'])),\n            examples(['baz', 'qux'])\n          )\n        )\n      ).toEqualTypeOf<readonly ['foo', 'bar', 'baz', 'qux']>();\n    });\n\n    test('for schema with multiple examples in deeply nested pipe', () => {\n      expectTypeOf(\n        getExamples(\n          pipe(\n            string(),\n            pipe(pipe(string(), examples(['foo', 'bar'])), email()),\n            examples(['baz', 'qux'])\n          )\n        )\n      ).toEqualTypeOf<readonly ['foo', 'bar', 'baz', 'qux']>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/getExamples/getExamples.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { email, examples, startsWith } from '../../actions/index.ts';\nimport { string } from '../../schemas/index.ts';\nimport { pipe, pipeAsync } from '../pipe/index.ts';\nimport { getExamples } from './getExamples.ts';\n\ndescribe('getExamples', () => {\n  describe('should return empty array', () => {\n    test('for schema without pipe', () => {\n      expect(getExamples(string())).toStrictEqual([]);\n    });\n\n    test('for schema with empty pipe', () => {\n      expect(getExamples(pipe(string()))).toStrictEqual([]);\n    });\n\n    test('for schema with no examples in pipe', () => {\n      expect(getExamples(pipe(string(), email()))).toStrictEqual([]);\n    });\n  });\n\n  describe('should return single examples', () => {\n    test('for simple schema with examples', () => {\n      expect(\n        getExamples(pipe(string(), examples(['foo', 'bar'])))\n      ).toStrictEqual(['foo', 'bar']);\n    });\n\n    test('for schema with examples in nested pipe', () => {\n      expect(\n        getExamples(pipe(pipe(string(), examples(['foo', 'bar'])), email()))\n      ).toStrictEqual(['foo', 'bar']);\n    });\n\n    test('for schema with examples in deeply nested pipe', () => {\n      expect(\n        getExamples(\n          pipe(\n            string(),\n            pipe(pipe(string(), examples(['foo', 'bar'])), email()),\n            startsWith('foo')\n          )\n        )\n      ).toStrictEqual(['foo', 'bar']);\n    });\n\n    test('for schema with examples in async pipe', () => {\n      expect(\n        getExamples(pipeAsync(string(), examples(['foo', 'bar'])))\n      ).toStrictEqual(['foo', 'bar']);\n    });\n  });\n\n  describe('should return merged examples', () => {\n    test('for simple schema with multiple examples', () => {\n      expect(\n        getExamples(\n          pipe(string(), examples(['foo', 'bar']), examples(['baz', 'qux']))\n        )\n      ).toStrictEqual(['foo', 'bar', 'baz', 'qux']);\n    });\n\n    test('for schema with multiple examples in nested pipe', () => {\n      expect(\n        getExamples(\n          pipe(\n            pipe(string(), examples(['foo', 'bar'])),\n            examples(['baz', 'qux'])\n          )\n        )\n      ).toStrictEqual(['foo', 'bar', 'baz', 'qux']);\n    });\n\n    test('for schema with multiple examples in deeply nested pipe', () => {\n      expect(\n        getExamples(\n          pipe(\n            string(),\n            pipe(pipe(string(), examples(['foo', 'bar'])), email()),\n            examples(['baz', 'qux'])\n          )\n        )\n      ).toStrictEqual(['foo', 'bar', 'baz', 'qux']);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/getExamples/getExamples.ts",
    "content": "import type { ExamplesAction } from '../../actions/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  PipeItem,\n  PipeItemAsync,\n} from '../../types/index.ts';\nimport type { SchemaWithPipe, SchemaWithPipeAsync } from '../index.ts';\n\n/**\n * Schema type.\n */\ntype Schema =\n  | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n  | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n  | SchemaWithPipe<\n      readonly [\n        BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n        ...(\n          | PipeItem<any, unknown, BaseIssue<unknown>> // eslint-disable-line @typescript-eslint/no-explicit-any\n          | ExamplesAction<unknown, readonly unknown[]>\n        )[],\n      ]\n    >\n  | SchemaWithPipeAsync<\n      readonly [\n        (\n          | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n          | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n        ),\n        ...(\n          | PipeItem<any, unknown, BaseIssue<unknown>> // eslint-disable-line @typescript-eslint/no-explicit-any\n          | PipeItemAsync<any, unknown, BaseIssue<unknown>> // eslint-disable-line @typescript-eslint/no-explicit-any\n          | ExamplesAction<unknown, readonly unknown[]>\n        )[],\n      ]\n    >;\n\n/**\n * Recursively concat type.\n */\ntype RecursiveConcat<\n  TRootPipe extends readonly // prettier-ignore\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  (| PipeItem<any, unknown, BaseIssue<unknown>>\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    | PipeItemAsync<any, unknown, BaseIssue<unknown>>\n  )[],\n  TCollectedExamples extends unknown[] = [],\n> = TRootPipe extends readonly [\n  infer TFirstItem,\n  ...infer TPipeRest extends readonly // prettier-ignore\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  (| PipeItem<any, unknown, BaseIssue<unknown>>\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    | PipeItemAsync<any, unknown, BaseIssue<unknown>>\n  )[],\n]\n  ? TFirstItem extends\n      | SchemaWithPipe<infer TNestedPipe>\n      | SchemaWithPipeAsync<infer TNestedPipe>\n    ? RecursiveConcat<\n        TPipeRest,\n        RecursiveConcat<TNestedPipe, TCollectedExamples>\n      >\n    : TFirstItem extends ExamplesAction<unknown, infer TCurrentExamples>\n      ? RecursiveConcat<TPipeRest, [...TCollectedExamples, ...TCurrentExamples]>\n      : RecursiveConcat<TPipeRest, TCollectedExamples>\n  : TCollectedExamples;\n\n/**\n * Infer examples type.\n */\nexport type InferExamples<TSchema extends Schema> = TSchema extends\n  | SchemaWithPipe<infer TPipe>\n  | SchemaWithPipeAsync<infer TPipe>\n  ? Readonly<RecursiveConcat<TPipe>>\n  : [];\n\n/**\n * Returns the examples of a schema.\n *\n * If multiple examples are defined, it concatenates them using depth-first\n * search. If no examples are defined, an empty array is returned.\n *\n * @param schema The schema to get the examples from.\n *\n * @returns The examples, if any.\n *\n * @beta\n */\n// @__NO_SIDE_EFFECTS__\nexport function getExamples<const TSchema extends Schema>(\n  schema: TSchema\n): InferExamples<TSchema> {\n  const examples: unknown[] = [];\n  function depthFirstCollect(schema: Schema): void {\n    if ('pipe' in schema) {\n      for (const item of schema.pipe) {\n        if (item.kind === 'schema' && 'pipe' in item) {\n          depthFirstCollect(item);\n        } else if (item.kind === 'metadata' && item.type === 'examples') {\n          // @ts-expect-error\n          examples.push(...item.examples);\n        }\n      }\n    }\n  }\n  depthFirstCollect(schema);\n  // @ts-expect-error\n  return examples;\n}\n"
  },
  {
    "path": "library/src/methods/getExamples/index.ts",
    "content": "export * from './getExamples.ts';\n"
  },
  {
    "path": "library/src/methods/getFallback/getFallback.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport { transform } from '../../actions/index.ts';\nimport { array, number, object, string } from '../../schemas/index.ts';\nimport { fallback, fallbackAsync } from '../fallback/index.ts';\nimport { pipe } from '../pipe/index.ts';\nimport { getFallback } from './getFallback.ts';\n\ndescribe('getFallback', () => {\n  test('should return undefined', () => {\n    expectTypeOf(getFallback(string())).toEqualTypeOf<undefined>();\n    expectTypeOf(getFallback(number())).toEqualTypeOf<undefined>();\n    expectTypeOf(getFallback(object({}))).toEqualTypeOf<undefined>();\n  });\n\n  describe('should return fallback for simple values', () => {\n    const schema = pipe(string(), transform(parseInt));\n\n    test('for direct value', () => {\n      expectTypeOf(\n        getFallback(fallback(schema, 123 as const))\n      ).toEqualTypeOf<123>();\n    });\n\n    test('for value getter', () => {\n      expectTypeOf(\n        getFallback(fallback(schema, () => 123 as const))\n      ).toEqualTypeOf<123>();\n    });\n\n    test('for async value getter', () => {\n      expectTypeOf(\n        getFallback(fallbackAsync(schema, async () => 123 as const))\n      ).toEqualTypeOf<Promise<123>>();\n    });\n  });\n\n  describe('should return fallback for object with array', () => {\n    const schema = object({ foo: array(string()) });\n\n    test('for direct value', () => {\n      const value: { readonly foo: readonly string[] } = { foo: [] };\n      expectTypeOf(getFallback(fallback(schema, value))).toEqualTypeOf<{\n        readonly foo: readonly string[];\n      }>();\n    });\n\n    test('for value getter', () => {\n      const getter: () => { readonly foo: readonly string[] } = () => ({\n        foo: [],\n      });\n      expectTypeOf(getFallback(fallback(schema, getter))).toEqualTypeOf<{\n        readonly foo: readonly string[];\n      }>();\n    });\n\n    test('for async value getter', () => {\n      const getter: () => Promise<{\n        readonly foo: readonly string[];\n      }> = async () => ({ foo: [] });\n      expectTypeOf(getFallback(fallbackAsync(schema, getter))).toEqualTypeOf<\n        Promise<{ readonly foo: readonly string[] }>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/getFallback/getFallback.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { transform } from '../../actions/index.ts';\nimport { number, object, string } from '../../schemas/index.ts';\nimport { fallback, fallbackAsync } from '../fallback/index.ts';\nimport { pipe } from '../pipe/index.ts';\nimport { getFallback } from './getFallback.ts';\n\ndescribe('getFallback', () => {\n  test('should return undefined', () => {\n    expect(getFallback(string())).toBeUndefined();\n    expect(getFallback(number())).toBeUndefined();\n    expect(getFallback(object({}))).toBeUndefined();\n  });\n\n  describe('should return fallback fallback', () => {\n    const schema = pipe(string(), transform(parseInt));\n\n    test('for direct value', () => {\n      expect(getFallback(fallback(schema, 123))).toBe(123);\n      expect(getFallback(fallbackAsync(schema, 123))).toBe(123);\n    });\n\n    test('for value getter', () => {\n      expect(getFallback(fallback(schema, () => 123))).toBe(123);\n      expect(getFallback(fallbackAsync(schema, () => 123))).toBe(123);\n    });\n\n    test('for asycn value getter', async () => {\n      expect(await getFallback(fallbackAsync(schema, async () => 123))).toBe(\n        123\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/getFallback/getFallback.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  Config,\n  InferIssue,\n  InferOutput,\n  MaybeDeepReadonly,\n  MaybePromise,\n  OutputDataset,\n} from '../../types/index.ts';\nimport type {\n  SchemaWithFallback,\n  SchemaWithFallbackAsync,\n} from '../fallback/index.ts';\n\n/**\n * Infer fallback type.\n */\nexport type InferFallback<\n  TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n> = TSchema extends\n  | SchemaWithFallback<\n      BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n      infer TFallback\n    >\n  | SchemaWithFallbackAsync<\n      | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n      | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n      infer TFallback\n    >\n  ? TFallback extends MaybeDeepReadonly<InferOutput<TSchema>>\n    ? TFallback\n    : TFallback extends () => MaybePromise<\n          MaybeDeepReadonly<InferOutput<TSchema>>\n        >\n      ? ReturnType<TFallback>\n      : never\n  : undefined;\n\n/**\n * Returns the fallback value of the schema.\n *\n * @param schema The schema to get it from.\n * @param dataset The output dataset if available.\n * @param config The config if available.\n *\n * @returns The fallback value.\n */\n// @__NO_SIDE_EFFECTS__\nexport function getFallback<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(\n  schema: TSchema,\n  dataset?: OutputDataset<InferOutput<TSchema>, InferIssue<TSchema>>,\n  config?: Config<InferIssue<TSchema>>\n): InferFallback<TSchema> {\n  // @ts-expect-error\n  return typeof schema.fallback === 'function'\n    ? // @ts-expect-error\n      schema.fallback(dataset, config)\n    : // @ts-expect-error\n      schema.fallback;\n}\n"
  },
  {
    "path": "library/src/methods/getFallback/index.ts",
    "content": "export * from './getFallback.ts';\n"
  },
  {
    "path": "library/src/methods/getFallbacks/getFallbacks.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport {\n  boolean,\n  number,\n  object,\n  strictObject,\n  strictTuple,\n  string,\n  tuple,\n} from '../../schemas/index.ts';\nimport { fallback } from '../fallback/index.ts';\nimport { getFallbacks } from './getFallbacks.ts';\n\ndescribe('getFallbacks', () => {\n  test('should return undefined', () => {\n    expectTypeOf(getFallbacks(string())).toEqualTypeOf<undefined>();\n    expectTypeOf(getFallbacks(number())).toEqualTypeOf<undefined>();\n    expectTypeOf(getFallbacks(boolean())).toEqualTypeOf<undefined>();\n  });\n\n  test('should return default', () => {\n    expectTypeOf(\n      getFallbacks(fallback(string(), 'foo' as const))\n    ).toEqualTypeOf<'foo'>();\n    expectTypeOf(\n      getFallbacks(fallback(number(), () => 123 as const))\n    ).toEqualTypeOf<123>();\n    expectTypeOf(\n      getFallbacks(fallback(boolean(), false as const))\n    ).toEqualTypeOf<false>();\n  });\n\n  describe('should return object defaults', () => {\n    test('for empty object', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n      expectTypeOf(getFallbacks(object({}))).toEqualTypeOf<{}>();\n    });\n\n    test('for simple object', () => {\n      expectTypeOf(\n        getFallbacks(\n          object({\n            key1: fallback(string(), 'foo' as const),\n            key2: fallback(number(), () => 123 as const),\n            key3: fallback(boolean(), false as const),\n            key4: string(),\n          })\n        )\n      ).toEqualTypeOf<{\n        key1: 'foo';\n        key2: 123;\n        key3: false;\n        key4: undefined;\n      }>();\n    });\n\n    test('for nested object', () => {\n      expectTypeOf(\n        getFallbacks(\n          object({\n            nested: strictObject({\n              key1: fallback(string(), 'foo' as const),\n              key2: fallback(number(), () => 123 as const),\n              key3: fallback(boolean(), false as const),\n            }),\n            other: string(),\n          })\n        )\n      ).toEqualTypeOf<{\n        nested: {\n          key1: 'foo';\n          key2: 123;\n          key3: false;\n        };\n        other: undefined;\n      }>();\n    });\n  });\n\n  describe('should return tuple defaults', () => {\n    test('for empty tuple', () => {\n      expectTypeOf(getFallbacks(tuple([]))).toEqualTypeOf<[]>();\n    });\n\n    test('for simple tuple', () => {\n      expectTypeOf(\n        getFallbacks(\n          tuple([\n            fallback(string(), 'foo' as const),\n            fallback(number(), () => 123 as const),\n            fallback(boolean(), false as const),\n            string(),\n          ])\n        )\n      ).toEqualTypeOf<['foo', 123, false, undefined]>();\n    });\n\n    test('for nested tuple', () => {\n      expectTypeOf(\n        getFallbacks(\n          tuple([\n            strictTuple([\n              fallback(string(), 'foo' as const),\n              fallback(number(), () => 123 as const),\n              fallback(boolean(), false as const),\n            ]),\n            string(),\n          ])\n        )\n      ).toEqualTypeOf<[['foo', 123, false], undefined]>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/getFallbacks/getFallbacks.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  boolean,\n  number,\n  object,\n  strictObject,\n  strictTuple,\n  string,\n  tuple,\n} from '../../schemas/index.ts';\nimport { fallback } from '../fallback/index.ts';\nimport { getFallbacks } from './getFallbacks.ts';\n\ndescribe('getFallbacks', () => {\n  test('should return undefined', () => {\n    expect(getFallbacks(string())).toBeUndefined();\n    expect(getFallbacks(number())).toBeUndefined();\n    expect(getFallbacks(boolean())).toBeUndefined();\n  });\n\n  test('should return default', () => {\n    expect(getFallbacks(fallback(string(), 'foo' as const))).toBe('foo');\n    expect(getFallbacks(fallback(number(), () => 123 as const))).toBe(123);\n    expect(getFallbacks(fallback(boolean(), false as const))).toBe(false);\n  });\n\n  describe('should return object defaults', () => {\n    test('for empty object', () => {\n      expect(getFallbacks(object({}))).toStrictEqual({});\n    });\n\n    test('for simple object', () => {\n      expect(\n        getFallbacks(\n          object({\n            key1: fallback(string(), 'foo' as const),\n            key2: fallback(number(), () => 123 as const),\n            key3: fallback(boolean(), false as const),\n            key4: string(),\n          })\n        )\n      ).toStrictEqual({\n        key1: 'foo',\n        key2: 123,\n        key3: false,\n        key4: undefined,\n      });\n    });\n\n    test('for nested object', () => {\n      expect(\n        getFallbacks(\n          object({\n            nested: strictObject({\n              key1: fallback(string(), 'foo' as const),\n              key2: fallback(number(), () => 123 as const),\n              key3: fallback(boolean(), false as const),\n            }),\n            other: string(),\n          })\n        )\n      ).toStrictEqual({\n        nested: {\n          key1: 'foo',\n          key2: 123,\n          key3: false,\n        },\n        other: undefined,\n      });\n    });\n  });\n\n  describe('should return tuple defaults', () => {\n    test('for empty tuple', () => {\n      expect(getFallbacks(tuple([]))).toStrictEqual([]);\n    });\n\n    test('for simple tuple', () => {\n      expect(\n        getFallbacks(\n          tuple([\n            fallback(string(), 'foo' as const),\n            fallback(number(), () => 123 as const),\n            fallback(boolean(), false as const),\n            string(),\n          ])\n        )\n      ).toStrictEqual(['foo', 123, false, undefined]);\n    });\n\n    test('for nested tuple', () => {\n      expect(\n        getFallbacks(\n          tuple([\n            strictTuple([\n              fallback(string(), 'foo' as const),\n              fallback(number(), () => 123 as const),\n              fallback(boolean(), false as const),\n            ]),\n            string(),\n          ])\n        )\n      ).toStrictEqual([['foo', 123, false], undefined]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/getFallbacks/getFallbacks.ts",
    "content": "import type {\n  LooseObjectIssue,\n  LooseObjectSchema,\n  LooseTupleIssue,\n  LooseTupleSchema,\n  ObjectIssue,\n  ObjectSchema,\n  ObjectWithRestIssue,\n  ObjectWithRestSchema,\n  StrictObjectIssue,\n  StrictObjectSchema,\n  StrictTupleIssue,\n  StrictTupleSchema,\n  TupleIssue,\n  TupleSchema,\n  TupleWithRestIssue,\n  TupleWithRestSchema,\n} from '../../schemas/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  ObjectEntries,\n  TupleItems,\n} from '../../types/index.ts';\nimport { getFallback } from '../getFallback/index.ts';\nimport type { InferFallbacks } from './types.ts';\n\n/**\n * Returns the fallback values of the schema.\n *\n * Hint: The difference to `getFallback` is that for object and tuple schemas\n * this function recursively returns the fallback values of the subschemas\n * instead of `undefined`.\n *\n * @param schema The schema to get them from.\n *\n * @returns The fallback values.\n */\n// @__NO_SIDE_EFFECTS__\nexport function getFallbacks<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | LooseObjectSchema<\n        ObjectEntries,\n        ErrorMessage<LooseObjectIssue> | undefined\n      >\n    | LooseTupleSchema<TupleItems, ErrorMessage<LooseTupleIssue> | undefined>\n    | ObjectSchema<ObjectEntries, ErrorMessage<ObjectIssue> | undefined>\n    | ObjectWithRestSchema<\n        ObjectEntries,\n        BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n        ErrorMessage<ObjectWithRestIssue> | undefined\n      >\n    | StrictObjectSchema<\n        ObjectEntries,\n        ErrorMessage<StrictObjectIssue> | undefined\n      >\n    | StrictTupleSchema<TupleItems, ErrorMessage<StrictTupleIssue> | undefined>\n    | TupleSchema<TupleItems, ErrorMessage<TupleIssue> | undefined>\n    | TupleWithRestSchema<\n        TupleItems,\n        BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n        ErrorMessage<TupleWithRestIssue> | undefined\n      >,\n>(schema: TSchema): InferFallbacks<TSchema> {\n  // If it is an object schema, return fallbacks of entries\n  if ('entries' in schema) {\n    const object: Record<string, unknown> = {};\n    for (const key in schema.entries) {\n      object[key] = getFallbacks(schema.entries[key]);\n    }\n    return object as InferFallbacks<TSchema>;\n  }\n\n  // If it is a tuple schema, return fallbacks of items\n  if ('items' in schema) {\n    return schema.items.map(getFallbacks) as InferFallbacks<TSchema>;\n  }\n\n  // Otherwise, return fallback or `undefined`\n  // @ts-expect-error\n  return getFallback(schema);\n}\n"
  },
  {
    "path": "library/src/methods/getFallbacks/getFallbacksAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport {\n  boolean,\n  number,\n  object,\n  objectAsync,\n  strictObjectAsync,\n  strictTupleAsync,\n  string,\n  tuple,\n  tupleAsync,\n} from '../../schemas/index.ts';\nimport { fallback, fallbackAsync } from '../fallback/index.ts';\nimport { getFallbacksAsync } from './getFallbacksAsync.ts';\n\ndescribe('getFallbacksAsync', () => {\n  test('should return undefined', () => {\n    expectTypeOf(getFallbacksAsync(string())).toEqualTypeOf<\n      Promise<undefined>\n    >();\n    expectTypeOf(getFallbacksAsync(number())).toEqualTypeOf<\n      Promise<undefined>\n    >();\n    expectTypeOf(getFallbacksAsync(boolean())).toEqualTypeOf<\n      Promise<undefined>\n    >();\n  });\n\n  test('should return default', () => {\n    expectTypeOf(\n      getFallbacksAsync(fallback(string(), 'foo' as const))\n    ).toEqualTypeOf<Promise<'foo'>>();\n    expectTypeOf(\n      getFallbacksAsync(fallback(number(), () => 123 as const))\n    ).toEqualTypeOf<Promise<123>>();\n    expectTypeOf(\n      getFallbacksAsync(fallbackAsync(boolean(), async () => false as const))\n    ).toEqualTypeOf<Promise<false>>();\n  });\n\n  describe('should return object defaults', () => {\n    test('for empty object', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n      expectTypeOf(getFallbacksAsync(object({}))).toEqualTypeOf<Promise<{}>>();\n    });\n\n    test('for simple object', () => {\n      expectTypeOf(\n        getFallbacksAsync(\n          objectAsync({\n            key1: fallback(string(), 'foo' as const),\n            key2: fallback(number(), () => 123 as const),\n            key3: fallbackAsync(boolean(), false as const),\n            key4: string(),\n          })\n        )\n      ).toEqualTypeOf<\n        Promise<{\n          key1: 'foo';\n          key2: 123;\n          key3: false;\n          key4: undefined;\n        }>\n      >();\n    });\n\n    test('for nested object', () => {\n      expectTypeOf(\n        getFallbacksAsync(\n          objectAsync({\n            nested: strictObjectAsync({\n              key1: fallback(string(), 'foo' as const),\n              key2: fallback(number(), () => 123 as const),\n              key3: fallbackAsync(boolean(), false as const),\n            }),\n            other: string(),\n          })\n        )\n      ).toEqualTypeOf<\n        Promise<{\n          nested: {\n            key1: 'foo';\n            key2: 123;\n            key3: false;\n          };\n          other: undefined;\n        }>\n      >();\n    });\n  });\n\n  describe('should return tuple defaults', () => {\n    test('for empty tuple', () => {\n      expectTypeOf(getFallbacksAsync(tuple([]))).toEqualTypeOf<Promise<[]>>();\n    });\n\n    test('for simple tuple', () => {\n      expectTypeOf(\n        getFallbacksAsync(\n          tupleAsync([\n            fallback(string(), 'foo' as const),\n            fallback(number(), () => 123 as const),\n            fallbackAsync(boolean(), false as const),\n            string(),\n          ])\n        )\n      ).toEqualTypeOf<Promise<['foo', 123, false, undefined]>>();\n    });\n\n    test('for nested tuple', () => {\n      expectTypeOf(\n        getFallbacksAsync(\n          tupleAsync([\n            strictTupleAsync([\n              fallback(string(), 'foo' as const),\n              fallback(number(), () => 123 as const),\n              fallbackAsync(boolean(), false as const),\n            ]),\n            string(),\n          ])\n        )\n      ).toEqualTypeOf<Promise<[['foo', 123, false], undefined]>>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/getFallbacks/getFallbacksAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  boolean,\n  number,\n  object,\n  objectAsync,\n  strictObjectAsync,\n  strictTupleAsync,\n  string,\n  tuple,\n  tupleAsync,\n} from '../../schemas/index.ts';\nimport { fallback, fallbackAsync } from '../fallback/index.ts';\nimport { getFallbacksAsync } from './getFallbacksAsync.ts';\n\ndescribe('await getFallbacksAsync', () => {\n  test('should return undefined', async () => {\n    expect(await getFallbacksAsync(string())).toBeUndefined();\n    expect(await getFallbacksAsync(number())).toBeUndefined();\n    expect(await getFallbacksAsync(boolean())).toBeUndefined();\n  });\n\n  test('should return default', async () => {\n    expect(await getFallbacksAsync(fallback(string(), 'foo' as const))).toBe(\n      'foo'\n    );\n    expect(\n      await getFallbacksAsync(fallback(number(), () => 123 as const))\n    ).toBe(123);\n    expect(\n      await getFallbacksAsync(\n        fallbackAsync(boolean(), async () => false as const)\n      )\n    ).toBe(false);\n  });\n\n  describe('should return object defaults', () => {\n    test('for empty object', async () => {\n      expect(await getFallbacksAsync(object({}))).toStrictEqual({});\n    });\n\n    test('for simple object', async () => {\n      expect(\n        await getFallbacksAsync(\n          objectAsync({\n            key1: fallback(string(), 'foo' as const),\n            key2: fallback(number(), () => 123 as const),\n            key3: fallbackAsync(boolean(), false as const),\n            key4: string(),\n          })\n        )\n      ).toStrictEqual({\n        key1: 'foo',\n        key2: 123,\n        key3: false,\n        key4: undefined,\n      });\n    });\n\n    test('for nested object', async () => {\n      expect(\n        await getFallbacksAsync(\n          objectAsync({\n            nested: strictObjectAsync({\n              key1: fallback(string(), 'foo' as const),\n              key2: fallback(number(), () => 123 as const),\n              key3: fallbackAsync(boolean(), false as const),\n            }),\n            other: string(),\n          })\n        )\n      ).toStrictEqual({\n        nested: {\n          key1: 'foo',\n          key2: 123,\n          key3: false,\n        },\n        other: undefined,\n      });\n    });\n  });\n\n  describe('should return tuple defaults', () => {\n    test('for empty tuple', async () => {\n      expect(await getFallbacksAsync(tuple([]))).toStrictEqual([]);\n    });\n\n    test('for simple tuple', async () => {\n      expect(\n        await getFallbacksAsync(\n          tupleAsync([\n            fallback(string(), 'foo' as const),\n            fallback(number(), () => 123 as const),\n            fallbackAsync(boolean(), false as const),\n            string(),\n          ])\n        )\n      ).toStrictEqual(['foo', 123, false, undefined]);\n    });\n\n    test('for nested tuple', async () => {\n      expect(\n        await getFallbacksAsync(\n          tupleAsync([\n            strictTupleAsync([\n              fallback(string(), 'foo' as const),\n              fallback(number(), () => 123 as const),\n              fallbackAsync(boolean(), false as const),\n            ]),\n            string(),\n          ])\n        )\n      ).toStrictEqual([['foo', 123, false], undefined]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/getFallbacks/getFallbacksAsync.ts",
    "content": "import type {\n  LooseObjectIssue,\n  LooseObjectSchema,\n  LooseObjectSchemaAsync,\n  LooseTupleIssue,\n  LooseTupleSchema,\n  LooseTupleSchemaAsync,\n  ObjectIssue,\n  ObjectSchema,\n  ObjectSchemaAsync,\n  ObjectWithRestIssue,\n  ObjectWithRestSchema,\n  ObjectWithRestSchemaAsync,\n  StrictObjectIssue,\n  StrictObjectSchema,\n  StrictObjectSchemaAsync,\n  StrictTupleIssue,\n  StrictTupleSchema,\n  StrictTupleSchemaAsync,\n  TupleIssue,\n  TupleSchema,\n  TupleSchemaAsync,\n  TupleWithRestIssue,\n  TupleWithRestSchema,\n  TupleWithRestSchemaAsync,\n} from '../../schemas/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  ErrorMessage,\n  ObjectEntries,\n  ObjectEntriesAsync,\n  TupleItems,\n  TupleItemsAsync,\n} from '../../types/index.ts';\nimport { getFallback } from '../getFallback/index.ts';\nimport type { InferFallbacks } from './types.ts';\n\n/**\n * Returns the fallback values of the schema.\n *\n * Hint: The difference to `getFallback` is that for object and tuple schemas\n * this function recursively returns the fallback values of the subschemas\n * instead of `undefined`.\n *\n * @param schema The schema to get them from.\n *\n * @returns The fallback values.\n */\n// @__NO_SIDE_EFFECTS__\nexport async function getFallbacksAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n    | LooseObjectSchema<\n        ObjectEntries,\n        ErrorMessage<LooseObjectIssue> | undefined\n      >\n    | LooseObjectSchemaAsync<\n        ObjectEntriesAsync,\n        ErrorMessage<LooseObjectIssue> | undefined\n      >\n    | LooseTupleSchema<TupleItems, ErrorMessage<LooseTupleIssue> | undefined>\n    | LooseTupleSchemaAsync<\n        TupleItemsAsync,\n        ErrorMessage<LooseTupleIssue> | undefined\n      >\n    | ObjectSchema<ObjectEntries, ErrorMessage<ObjectIssue> | undefined>\n    | ObjectSchemaAsync<\n        ObjectEntriesAsync,\n        ErrorMessage<ObjectIssue> | undefined\n      >\n    | ObjectWithRestSchema<\n        ObjectEntries,\n        BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n        ErrorMessage<ObjectWithRestIssue> | undefined\n      >\n    | ObjectWithRestSchemaAsync<\n        ObjectEntriesAsync,\n        | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n        | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n        ErrorMessage<ObjectWithRestIssue> | undefined\n      >\n    | StrictObjectSchema<\n        ObjectEntries,\n        ErrorMessage<StrictObjectIssue> | undefined\n      >\n    | StrictObjectSchemaAsync<\n        ObjectEntriesAsync,\n        ErrorMessage<StrictObjectIssue> | undefined\n      >\n    | StrictTupleSchema<TupleItems, ErrorMessage<StrictTupleIssue> | undefined>\n    | StrictTupleSchemaAsync<\n        TupleItemsAsync,\n        ErrorMessage<StrictTupleIssue> | undefined\n      >\n    | TupleSchema<TupleItems, ErrorMessage<TupleIssue> | undefined>\n    | TupleSchemaAsync<TupleItemsAsync, ErrorMessage<TupleIssue> | undefined>\n    | TupleWithRestSchema<\n        TupleItems,\n        BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n        ErrorMessage<TupleWithRestIssue> | undefined\n      >\n    | TupleWithRestSchemaAsync<\n        TupleItemsAsync,\n        | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n        | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n        ErrorMessage<TupleWithRestIssue> | undefined\n      >,\n>(schema: TSchema): Promise<InferFallbacks<TSchema>> {\n  // If it is an object schema, return fallbacks of entries\n  if ('entries' in schema) {\n    return Object.fromEntries(\n      await Promise.all(\n        Object.entries(schema.entries).map(async ([key, value]) => [\n          key,\n          await getFallbacksAsync(value),\n        ])\n      )\n    ) as InferFallbacks<TSchema>;\n  }\n\n  // If it is a tuple schema, return fallbacks of items\n  if ('items' in schema) {\n    return Promise.all(schema.items.map(getFallbacksAsync)) as Promise<\n      InferFallbacks<TSchema>\n    >;\n  }\n\n  // Otherwise, return fallback or `undefined`\n  // @ts-expect-error\n  return getFallback(schema);\n}\n"
  },
  {
    "path": "library/src/methods/getFallbacks/index.ts",
    "content": "export * from './getFallbacks.ts';\nexport * from './getFallbacksAsync.ts';\nexport * from './types.ts';\n"
  },
  {
    "path": "library/src/methods/getFallbacks/types.ts",
    "content": "import type {\n  LooseObjectIssue,\n  LooseObjectSchema,\n  LooseObjectSchemaAsync,\n  LooseTupleIssue,\n  LooseTupleSchema,\n  LooseTupleSchemaAsync,\n  ObjectIssue,\n  ObjectSchema,\n  ObjectSchemaAsync,\n  ObjectWithRestIssue,\n  ObjectWithRestSchema,\n  ObjectWithRestSchemaAsync,\n  StrictObjectIssue,\n  StrictObjectSchema,\n  StrictObjectSchemaAsync,\n  StrictTupleIssue,\n  StrictTupleSchema,\n  StrictTupleSchemaAsync,\n  TupleIssue,\n  TupleSchema,\n  TupleSchemaAsync,\n  TupleWithRestIssue,\n  TupleWithRestSchema,\n  TupleWithRestSchemaAsync,\n} from '../../schemas/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  ErrorMessage,\n} from '../../types/index.ts';\nimport type { InferFallback } from '../getFallback/index.ts';\n\n/**\n * Infer fallbacks type.\n */\nexport type InferFallbacks<\n  TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n> = TSchema extends\n  | LooseObjectSchema<\n      infer TEntries,\n      ErrorMessage<LooseObjectIssue> | undefined\n    >\n  | ObjectSchema<infer TEntries, ErrorMessage<ObjectIssue> | undefined>\n  | ObjectWithRestSchema<\n      infer TEntries,\n      BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n      ErrorMessage<ObjectWithRestIssue> | undefined\n    >\n  | StrictObjectSchema<\n      infer TEntries,\n      ErrorMessage<StrictObjectIssue> | undefined\n    >\n  ? { -readonly [TKey in keyof TEntries]: InferFallbacks<TEntries[TKey]> }\n  : TSchema extends\n        | LooseObjectSchemaAsync<\n            infer TEntries,\n            ErrorMessage<LooseObjectIssue> | undefined\n          >\n        | ObjectSchemaAsync<\n            infer TEntries,\n            ErrorMessage<ObjectIssue> | undefined\n          >\n        | ObjectWithRestSchemaAsync<\n            infer TEntries,\n            BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n            ErrorMessage<ObjectWithRestIssue> | undefined\n          >\n        | StrictObjectSchemaAsync<\n            infer TEntries,\n            ErrorMessage<StrictObjectIssue> | undefined\n          >\n    ? { -readonly [TKey in keyof TEntries]: InferFallbacks<TEntries[TKey]> }\n    : TSchema extends\n          | LooseTupleSchema<\n              infer TItems,\n              ErrorMessage<LooseTupleIssue> | undefined\n            >\n          | StrictTupleSchema<\n              infer TItems,\n              ErrorMessage<StrictTupleIssue> | undefined\n            >\n          | TupleSchema<infer TItems, ErrorMessage<TupleIssue> | undefined>\n          | TupleWithRestSchema<\n              infer TItems,\n              BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n              ErrorMessage<TupleWithRestIssue> | undefined\n            >\n      ? { -readonly [TKey in keyof TItems]: InferFallbacks<TItems[TKey]> }\n      : TSchema extends\n            | LooseTupleSchemaAsync<\n                infer TItems,\n                ErrorMessage<LooseTupleIssue> | undefined\n              >\n            | StrictTupleSchemaAsync<\n                infer TItems,\n                ErrorMessage<StrictTupleIssue> | undefined\n              >\n            | TupleSchemaAsync<\n                infer TItems,\n                ErrorMessage<TupleIssue> | undefined\n              >\n            | TupleWithRestSchemaAsync<\n                infer TItems,\n                BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n                ErrorMessage<TupleWithRestIssue> | undefined\n              >\n        ? { -readonly [TKey in keyof TItems]: InferFallbacks<TItems[TKey]> }\n        : Awaited<InferFallback<TSchema>>;\n"
  },
  {
    "path": "library/src/methods/getMetadata/getMetadata.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport { email, metadata, startsWith } from '../../actions/index.ts';\nimport { string } from '../../schemas/index.ts';\nimport type { GenericSchema } from '../../types/schema.ts';\nimport { pipe } from '../pipe/index.ts';\nimport { getMetadata } from './getMetadata.ts';\n\ndescribe('getMetadata', () => {\n  test('should return generic metadata', () => {\n    const genericSchema = string() as GenericSchema;\n    expectTypeOf(getMetadata(genericSchema)).toEqualTypeOf<\n      Record<string, unknown>\n    >();\n  });\n\n  describe('should return empty object', () => {\n    test('for schema without pipe', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n      expectTypeOf(getMetadata(string())).toEqualTypeOf<{}>();\n    });\n\n    test('for schema with empty pipe', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n      expectTypeOf(getMetadata(pipe(string()))).toEqualTypeOf<{}>();\n    });\n\n    test('for schema with no metadata in pipe', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n      expectTypeOf(getMetadata(pipe(string(), email()))).toEqualTypeOf<{}>();\n    });\n  });\n\n  describe('should return single metadata', () => {\n    test('for simple schema with metadata', () => {\n      expectTypeOf(\n        getMetadata(pipe(string(), metadata({ key: 'foo' })))\n      ).toEqualTypeOf<{ readonly key: 'foo' }>();\n    });\n\n    test('for schema with metadata in nested pipe', () => {\n      expectTypeOf(\n        getMetadata(pipe(pipe(string(), metadata({ key: 'foo' })), email()))\n      ).toEqualTypeOf<{ readonly key: 'foo' }>();\n    });\n\n    test('for schema with metadata in deeply nested pipe', () => {\n      expectTypeOf(\n        getMetadata(\n          pipe(\n            string(),\n            pipe(pipe(string(), metadata({ key: 'foo' })), email()),\n            startsWith('foo')\n          )\n        )\n      ).toEqualTypeOf<{ readonly key: 'foo' }>();\n    });\n  });\n\n  describe('should return merged metadata', () => {\n    test('for simple schema with multiple metadata', () => {\n      expectTypeOf(\n        getMetadata(\n          pipe(\n            string(),\n            metadata({ key1: 'foo', key2: 'bar' }),\n            metadata({ key2: 'baz', key3: 'qux' })\n          )\n        )\n      ).toEqualTypeOf<{\n        readonly key1: 'foo';\n        readonly key2: 'baz';\n        readonly key3: 'qux';\n      }>();\n    });\n\n    test('for schema with multiple metadata in nested pipe', () => {\n      expectTypeOf(\n        getMetadata(\n          pipe(\n            pipe(string(), metadata({ key1: 'foo', key2: 'bar' })),\n            metadata({ key2: 'baz', key3: 'qux' }),\n            email()\n          )\n        )\n      ).toEqualTypeOf<{\n        readonly key1: 'foo';\n        readonly key2: 'baz';\n        readonly key3: 'qux';\n      }>();\n    });\n\n    test('for schema with multiple metadata in deeply nested pipe', () => {\n      expectTypeOf(\n        getMetadata(\n          pipe(\n            string(),\n            pipe(\n              pipe(string(), metadata({ key1: 'foo', key2: 'bar' })),\n              metadata({ key2: 'baz' }),\n              email()\n            ),\n            metadata({ key3: 'qux' }),\n            startsWith('foo')\n          )\n        )\n      ).toEqualTypeOf<{\n        readonly key1: 'foo';\n        readonly key2: 'baz';\n        readonly key3: 'qux';\n      }>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/getMetadata/getMetadata.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { email, metadata, startsWith } from '../../actions/index.ts';\nimport { string } from '../../schemas/index.ts';\nimport { pipe } from '../pipe/index.ts';\nimport { getMetadata } from './getMetadata.ts';\n\ndescribe('getMetadata', () => {\n  describe('should return empty object', () => {\n    test('for schema without pipe', () => {\n      expect(getMetadata(string())).toStrictEqual({});\n    });\n\n    test('for schema with empty pipe', () => {\n      expect(getMetadata(pipe(string()))).toStrictEqual({});\n    });\n\n    test('for schema with no metadata in pipe', () => {\n      expect(getMetadata(pipe(string(), email()))).toStrictEqual({});\n    });\n  });\n\n  describe('should return single metadata', () => {\n    test('for simple schema with metadata', () => {\n      expect(\n        getMetadata(pipe(string(), metadata({ key: 'foo' })))\n      ).toStrictEqual({ key: 'foo' });\n    });\n\n    test('for schema with metadata in nested pipe', () => {\n      expect(\n        getMetadata(pipe(pipe(string(), metadata({ key: 'foo' })), email()))\n      ).toStrictEqual({ key: 'foo' });\n    });\n\n    test('for schema with metadata in deeply nested pipe', () => {\n      expect(\n        getMetadata(\n          pipe(\n            string(),\n            pipe(pipe(string(), metadata({ key: 'foo' })), email()),\n            startsWith('foo')\n          )\n        )\n      ).toStrictEqual({ key: 'foo' });\n    });\n  });\n\n  describe('should return merged metadata', () => {\n    test('for simple schema with multiple metadata', () => {\n      expect(\n        getMetadata(\n          pipe(\n            string(),\n            metadata({ key1: 'foo', key2: 'bar' }),\n            metadata({ key2: 'baz', key3: 'qux' })\n          )\n        )\n      ).toStrictEqual({\n        key1: 'foo',\n        key2: 'baz',\n        key3: 'qux',\n      });\n    });\n\n    test('for schema with multiple metadata in nested pipe', () => {\n      expect(\n        getMetadata(\n          pipe(\n            pipe(string(), metadata({ key1: 'foo', key2: 'bar' })),\n            metadata({ key2: 'baz', key3: 'qux' }),\n            email()\n          )\n        )\n      ).toStrictEqual({\n        key1: 'foo',\n        key2: 'baz',\n        key3: 'qux',\n      });\n    });\n\n    test('for schema with multiple metadata in deeply nested pipe', () => {\n      expect(\n        getMetadata(\n          pipe(\n            string(),\n            pipe(\n              pipe(string(), metadata({ key1: 'foo', key2: 'bar' })),\n              metadata({ key2: 'baz' }),\n              email()\n            ),\n            metadata({ key3: 'qux' }),\n            startsWith('foo')\n          )\n        )\n      ).toStrictEqual({\n        key1: 'foo',\n        key2: 'baz',\n        key3: 'qux',\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/getMetadata/getMetadata.ts",
    "content": "import type { MetadataAction } from '../../actions/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  Merge,\n  PipeItem,\n  PipeItemAsync,\n  Prettify,\n} from '../../types/index.ts';\nimport type { SchemaWithPipe, SchemaWithPipeAsync } from '../pipe/index.ts';\n\n/**\n * Schema type.\n */\ntype Schema =\n  | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n  | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n  | SchemaWithPipe<\n      readonly [\n        BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n        ...(\n          | PipeItem<any, unknown, BaseIssue<unknown>> // eslint-disable-line @typescript-eslint/no-explicit-any\n          | MetadataAction<unknown, Record<string, unknown>>\n        )[],\n      ]\n    >\n  | SchemaWithPipeAsync<\n      readonly [\n        (\n          | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n          | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n        ),\n        ...(\n          | PipeItem<any, unknown, BaseIssue<unknown>> // eslint-disable-line @typescript-eslint/no-explicit-any\n          | PipeItemAsync<any, unknown, BaseIssue<unknown>> // eslint-disable-line @typescript-eslint/no-explicit-any\n          | MetadataAction<unknown, Record<string, unknown>>\n        )[],\n      ]\n    >;\n\n/**\n * Basic pipe item type.\n */\ntype BasicPipeItem =\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  | PipeItem<any, unknown, BaseIssue<unknown>>\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  | PipeItemAsync<any, unknown, BaseIssue<unknown>>\n  | MetadataAction<unknown, Record<string, unknown>>;\n\n/**\n * Recursive merge type.\n */\ntype RecursiveMerge<\n  TRootPipe extends readonly BasicPipeItem[],\n  // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n  TCollectedMetadata extends Record<string, unknown> = {},\n> = TRootPipe extends readonly [\n  infer TFirstItem,\n  ...infer TPipeRest extends readonly BasicPipeItem[],\n]\n  ? TFirstItem extends\n      | SchemaWithPipe<infer TNestedPipe>\n      | SchemaWithPipeAsync<infer TNestedPipe>\n    ? RecursiveMerge<TPipeRest, RecursiveMerge<TNestedPipe, TCollectedMetadata>>\n    : TFirstItem extends MetadataAction<unknown, infer TCurrentMetadata>\n      ? RecursiveMerge<TPipeRest, Merge<TCollectedMetadata, TCurrentMetadata>>\n      : RecursiveMerge<TPipeRest, TCollectedMetadata>\n  : TCollectedMetadata;\n\n/**\n * Infer metadata type.\n *\n * @beta\n */\nexport type InferMetadata<TSchema extends Schema> =\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  BaseSchema<any, any, any> extends TSchema\n    ? Record<string, unknown>\n    : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      BaseSchemaAsync<any, any, any> extends TSchema\n      ? Record<string, unknown>\n      : TSchema extends\n            | SchemaWithPipe<infer TPipe>\n            | SchemaWithPipeAsync<infer TPipe>\n        ? Prettify<RecursiveMerge<TPipe>>\n        : // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n          {};\n\n/**\n * Returns the metadata of a schema.\n *\n * If multiple metadata are defined, it shallowly merges them using depth-first\n * search. If no metadata is defined, an empty object is returned.\n *\n * @param schema Schema to get the metadata from.\n *\n * @returns The metadata, if any.\n *\n * @beta\n */\n// @__NO_SIDE_EFFECTS__\nexport function getMetadata<const TSchema extends Schema>(\n  schema: TSchema\n): InferMetadata<TSchema> {\n  const result = {};\n  function depthFirstMerge(schema: Schema): void {\n    if ('pipe' in schema) {\n      for (const item of schema.pipe) {\n        if (item.kind === 'schema' && 'pipe' in item) {\n          depthFirstMerge(item);\n        } else if (item.kind === 'metadata' && item.type === 'metadata') {\n          // @ts-expect-error\n          Object.assign(result, item.metadata);\n        }\n      }\n    }\n  }\n  depthFirstMerge(schema);\n  // @ts-expect-error\n  return result;\n}\n"
  },
  {
    "path": "library/src/methods/getMetadata/index.ts",
    "content": "export * from './getMetadata.ts';\n"
  },
  {
    "path": "library/src/methods/getTitle/getTitle.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { description, title } from '../../actions/index.ts';\nimport { string } from '../../schemas/index.ts';\nimport { pipe } from '../pipe/index.ts';\nimport { getTitle } from './getTitle.ts';\n\ndescribe('getTitle', () => {\n  test('should return undefined', () => {\n    expect(getTitle(string())).toBeUndefined();\n    expect(getTitle(pipe(string()))).toBeUndefined();\n    expect(getTitle(pipe(string(), description('foo')))).toBeUndefined();\n  });\n\n  test('should return title', () => {\n    expect(getTitle(pipe(string(), title('foo')))).toBe('foo');\n    expect(getTitle(pipe(string(), title('foo'), title('bar')))).toBe('bar');\n    expect(getTitle(pipe(pipe(string(), title('foo')), title('bar')))).toBe(\n      'bar'\n    );\n    expect(\n      getTitle(pipe(string(), title('foo'), pipe(string(), title('bar'))))\n    ).toBe('foo');\n  });\n});\n"
  },
  {
    "path": "library/src/methods/getTitle/getTitle.ts",
    "content": "import type { TitleAction } from '../../actions/title/title.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  PipeItem,\n  PipeItemAsync,\n} from '../../types/index.ts';\nimport { _getLastMetadata } from '../../utils/index.ts';\nimport type { SchemaWithPipe, SchemaWithPipeAsync } from '../index.ts';\n\n/**\n * Schema type.\n */\ntype Schema =\n  | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n  | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n  | SchemaWithPipe<\n      readonly [\n        BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n        ...(\n          | PipeItem<any, unknown, BaseIssue<unknown>> // eslint-disable-line @typescript-eslint/no-explicit-any\n          | TitleAction<unknown, string>\n        )[],\n      ]\n    >\n  | SchemaWithPipeAsync<\n      readonly [\n        (\n          | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n          | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n        ),\n        ...(\n          | PipeItem<any, unknown, BaseIssue<unknown>> // eslint-disable-line @typescript-eslint/no-explicit-any\n          | PipeItemAsync<any, unknown, BaseIssue<unknown>> // eslint-disable-line @typescript-eslint/no-explicit-any\n          | TitleAction<unknown, string>\n        )[],\n      ]\n    >;\n\n/**\n * Returns the title of the schema.\n *\n * If multiple titles are defined, the last one of the highest level is\n * returned. If no title is defined, `undefined` is returned.\n *\n * @param schema The schema to get the title from.\n *\n * @returns The title, if any.\n *\n * @beta\n */\n// TODO: Investigate if return type can be strongly typed\n// @__NO_SIDE_EFFECTS__\nexport function getTitle(schema: Schema): string | undefined {\n  return _getLastMetadata(schema, 'title');\n}\n"
  },
  {
    "path": "library/src/methods/getTitle/index.ts",
    "content": "export * from './getTitle.ts';\n"
  },
  {
    "path": "library/src/methods/index.ts",
    "content": "export * from './assert/index.ts';\nexport * from './cache/index.ts';\nexport * from './config/index.ts';\nexport * from './fallback/index.ts';\nexport * from './flatten/index.ts';\nexport * from './forward/index.ts';\nexport * from './getDefault/index.ts';\nexport * from './getDefaults/index.ts';\nexport * from './getDescription/index.ts';\nexport * from './getExamples/index.ts';\nexport * from './getFallback/index.ts';\nexport * from './getFallbacks/index.ts';\nexport * from './getMetadata/index.ts';\nexport * from './getTitle/index.ts';\nexport * from './is/index.ts';\nexport * from './keyof/index.ts';\nexport * from './message/index.ts';\nexport * from './omit/index.ts';\nexport * from './parse/index.ts';\nexport * from './parser/index.ts';\nexport * from './partial/index.ts';\nexport * from './pick/index.ts';\nexport * from './pipe/index.ts';\nexport * from './required/index.ts';\nexport * from './safeParse/index.ts';\nexport * from './safeParser/index.ts';\nexport * from './summarize/index.ts';\nexport * from './unwrap/index.ts';\n"
  },
  {
    "path": "library/src/methods/is/index.ts",
    "content": "export * from './is.ts';\n"
  },
  {
    "path": "library/src/methods/is/is.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport { transform } from '../../actions/index.ts';\nimport { object, string } from '../../schemas/index.ts';\nimport { pipe } from '../pipe/pipe.ts';\nimport { is } from './is.ts';\n\ndescribe('is', () => {\n  const input: unknown = { key: 'foo' };\n  const isValid = is(\n    object({\n      key: pipe(\n        string(),\n        transform((input) => input.length)\n      ),\n    }),\n    input\n  );\n\n  test('should infer input type for valid input', () => {\n    if (isValid) {\n      expectTypeOf(input).toEqualTypeOf<{ key: string }>();\n    }\n  });\n\n  test('should not infer input type for invalid input', () => {\n    if (!isValid) {\n      expectTypeOf(input).toEqualTypeOf<unknown>();\n    }\n  });\n});\n"
  },
  {
    "path": "library/src/methods/is/is.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { transform } from '../../actions/index.ts';\nimport { number, object, string } from '../../schemas/index.ts';\nimport { pipe } from '../pipe/index.ts';\nimport { is } from './is.ts';\n\ndescribe('is', () => {\n  const entries = {\n    key: pipe(\n      string(),\n      transform((input) => input.length)\n    ),\n  };\n\n  test('should return true for valid input', () => {\n    expect(is(string(), 'foo')).toBe(true);\n    expect(is(number(), 123)).toBe(true);\n    expect(is(object(entries), { key: 'foo' })).toBe(true);\n  });\n\n  test('should return false for invalid input', () => {\n    expect(is(string(), 123)).toBe(false);\n    expect(is(number(), 'foo')).toBe(false);\n    expect(is(object(entries), null)).toBe(false);\n  });\n});\n"
  },
  {
    "path": "library/src/methods/is/is.ts",
    "content": "import type { BaseIssue, BaseSchema, InferInput } from '../../types/index.ts';\n\n/**\n * Checks if the input matches the schema. By using a type predicate, this\n * function can be used as a type guard.\n *\n * @param schema The schema to be used.\n * @param input The input to be tested.\n *\n * @returns Whether the input matches the schema.\n */\n// @__NO_SIDE_EFFECTS__\nexport function is<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n>(schema: TSchema, input: unknown): input is InferInput<TSchema> {\n  return !schema['~run']({ value: input }, { abortEarly: true }).issues;\n}\n"
  },
  {
    "path": "library/src/methods/keyof/index.ts",
    "content": "export * from './keyof.ts';\n"
  },
  {
    "path": "library/src/methods/keyof/keyof.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport {\n  null_,\n  number,\n  object,\n  type PicklistIssue,\n  type PicklistSchema,\n  string,\n  unknown,\n} from '../../schemas/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { keyof } from './keyof.ts';\n\ndescribe('keyof', () => {\n  const objectSchema = object({ foo: string(), bar: number(), baz: null_() });\n  type Options = ['foo', 'bar', 'baz'];\n\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = PicklistSchema<Options, undefined>;\n      expectTypeOf(keyof(objectSchema)).toEqualTypeOf<Schema>();\n      expectTypeOf(keyof(objectSchema, undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(keyof(objectSchema, 'message')).toEqualTypeOf<\n        PicklistSchema<Options, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(keyof(objectSchema, () => 'message')).toEqualTypeOf<\n        PicklistSchema<Options, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = PicklistSchema<Options, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<'foo' | 'bar' | 'baz'>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<\n        'foo' | 'bar' | 'baz'\n      >();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<PicklistIssue>();\n    });\n  });\n\n  test('should not trigger TS error for many keys', () => {\n    expectTypeOf(\n      keyof(\n        object({\n          k00: unknown(),\n          k01: unknown(),\n          k02: unknown(),\n          k03: unknown(),\n          k04: unknown(),\n          k05: unknown(),\n          k06: unknown(),\n          k07: unknown(),\n          k08: unknown(),\n          k09: unknown(),\n          k10: unknown(),\n          k11: unknown(),\n          k12: unknown(),\n          k13: unknown(),\n          k14: unknown(),\n          k15: unknown(),\n          k16: unknown(),\n          k17: unknown(),\n          k18: unknown(),\n          k19: unknown(),\n          k20: unknown(),\n          k21: unknown(),\n          k22: unknown(),\n          k23: unknown(),\n          k24: unknown(),\n          k25: unknown(),\n          k26: unknown(),\n          k27: unknown(),\n          k28: unknown(),\n          k29: unknown(),\n          k30: unknown(),\n          k31: unknown(),\n          k32: unknown(),\n          k33: unknown(),\n          k34: unknown(),\n          k35: unknown(),\n          k36: unknown(),\n          k37: unknown(),\n          k38: unknown(),\n          k39: unknown(),\n          k40: unknown(),\n          k41: unknown(),\n          k42: unknown(),\n          k43: unknown(),\n          k44: unknown(),\n          k45: unknown(),\n          k46: unknown(),\n          k47: unknown(),\n          k48: unknown(),\n          k49: unknown(),\n          k50: unknown(),\n          k51: unknown(),\n          k52: unknown(),\n          k53: unknown(),\n          k54: unknown(),\n          k55: unknown(),\n          k56: unknown(),\n          k57: unknown(),\n          k58: unknown(),\n          k59: unknown(),\n          k60: unknown(),\n        })\n      )\n    ).toEqualTypeOf<\n      PicklistSchema<\n        [\n          'k00',\n          'k01',\n          'k02',\n          'k03',\n          'k04',\n          'k05',\n          'k06',\n          'k07',\n          'k08',\n          'k09',\n          'k10',\n          'k11',\n          'k12',\n          'k13',\n          'k14',\n          'k15',\n          'k16',\n          'k17',\n          'k18',\n          'k19',\n          'k20',\n          'k21',\n          'k22',\n          'k23',\n          'k24',\n          'k25',\n          'k26',\n          'k27',\n          'k28',\n          'k29',\n          'k30',\n          'k31',\n          'k32',\n          'k33',\n          'k34',\n          'k35',\n          'k36',\n          'k37',\n          'k38',\n          'k39',\n          'k40',\n          'k41',\n          'k42',\n          'k43',\n          'k44',\n          'k45',\n          'k46',\n          'k47',\n          'k48',\n          'k49',\n          'k50',\n          'k51',\n          'k52',\n          'k53',\n          'k54',\n          'k55',\n          'k56',\n          'k57',\n          'k58',\n          'k59',\n          'k60',\n        ],\n        undefined\n      >\n    >();\n  });\n});\n"
  },
  {
    "path": "library/src/methods/keyof/keyof.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  null_,\n  number,\n  object,\n  picklist,\n  type PicklistSchema,\n  string,\n} from '../../schemas/index.ts';\nimport { keyof } from './keyof.ts';\n\ndescribe('keyof', () => {\n  const objectSchema = object({ foo: string(), bar: number(), baz: null_() });\n  const options = ['foo', 'bar', 'baz'] as const;\n  type Options = typeof options;\n\n  describe('should return objectSchema object', () => {\n    const baseSchema: Omit<PicklistSchema<Options, never>, 'message'> = {\n      kind: 'schema',\n      type: 'picklist',\n      reference: picklist,\n      expects: '(\"foo\" | \"bar\" | \"baz\")',\n      options,\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const picklistSchema: PicklistSchema<Options, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(keyof(objectSchema)).toStrictEqual(picklistSchema);\n      expect(keyof(objectSchema, undefined)).toStrictEqual(picklistSchema);\n    });\n\n    test('with string message', () => {\n      expect(keyof(objectSchema, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies PicklistSchema<Options, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(keyof(objectSchema, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies PicklistSchema<Options, typeof message>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/keyof/keyof.ts",
    "content": "import {\n  type LooseObjectIssue,\n  type LooseObjectSchema,\n  type LooseObjectSchemaAsync,\n  type ObjectIssue,\n  type ObjectSchema,\n  type ObjectSchemaAsync,\n  type ObjectWithRestIssue,\n  type ObjectWithRestSchema,\n  type ObjectWithRestSchemaAsync,\n  picklist,\n  type PicklistIssue,\n  type PicklistSchema,\n  type StrictObjectIssue,\n  type StrictObjectSchema,\n  type StrictObjectSchemaAsync,\n} from '../../schemas/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  ObjectEntries,\n  ObjectEntriesAsync,\n  UnionToTuple,\n} from '../../types/index.ts';\n\n/**\n * Schema type.\n */\ntype Schema =\n  | LooseObjectSchema<ObjectEntries, ErrorMessage<LooseObjectIssue> | undefined>\n  | LooseObjectSchemaAsync<\n      ObjectEntriesAsync,\n      ErrorMessage<LooseObjectIssue> | undefined\n    >\n  | ObjectSchema<ObjectEntries, ErrorMessage<ObjectIssue> | undefined>\n  | ObjectSchemaAsync<ObjectEntriesAsync, ErrorMessage<ObjectIssue> | undefined>\n  | ObjectWithRestSchema<\n      ObjectEntries,\n      BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n      ErrorMessage<ObjectWithRestIssue> | undefined\n    >\n  | ObjectWithRestSchemaAsync<\n      ObjectEntriesAsync,\n      BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n      ErrorMessage<ObjectWithRestIssue> | undefined\n    >\n  | StrictObjectSchema<\n      ObjectEntries,\n      ErrorMessage<StrictObjectIssue> | undefined\n    >\n  | StrictObjectSchemaAsync<\n      ObjectEntriesAsync,\n      ErrorMessage<StrictObjectIssue> | undefined\n    >;\n\n/**\n * Force tuple type.\n */\ntype ForceTuple<T> = T extends [string, ...string[]] ? T : [];\n\n/**\n * Object keys type.\n */\ntype ObjectKeys<TSchema extends Schema> = ForceTuple<\n  UnionToTuple<keyof TSchema['entries']>\n>;\n\n/**\n * Creates a picklist schema of object keys.\n *\n * @param schema The object schema.\n *\n * @returns A picklist schema.\n */\nexport function keyof<const TSchema extends Schema>(\n  schema: TSchema\n): PicklistSchema<ObjectKeys<TSchema>, undefined>;\n\n/**\n * Creates a picklist schema of object keys.\n *\n * @param schema The object schema.\n * @param message The error message.\n *\n * @returns A picklist schema.\n */\nexport function keyof<\n  const TSchema extends Schema,\n  const TMessage extends ErrorMessage<PicklistIssue> | undefined,\n>(\n  schema: TSchema,\n  message: TMessage\n): PicklistSchema<ObjectKeys<TSchema>, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function keyof(\n  schema: Schema,\n  message?: ErrorMessage<PicklistIssue>\n): PicklistSchema<ObjectKeys<Schema>, ErrorMessage<PicklistIssue> | undefined> {\n  return picklist(Object.keys(schema.entries) as ObjectKeys<Schema>, message);\n}\n"
  },
  {
    "path": "library/src/methods/message/index.ts",
    "content": "export * from './message.ts';\n"
  },
  {
    "path": "library/src/methods/message/message.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport { objectAsync, string } from '../../schemas/index.ts';\nimport { message } from './message.ts';\n\ndescribe('message', () => {\n  test('should return schema object', () => {\n    const schema = string();\n    expectTypeOf(message(schema, 'message')).toEqualTypeOf<typeof schema>();\n  });\n\n  test('should return async schema object', () => {\n    const schema = objectAsync({ key: string() });\n    expectTypeOf(message(schema, 'message')).toEqualTypeOf<typeof schema>();\n  });\n});\n"
  },
  {
    "path": "library/src/methods/message/message.test.ts",
    "content": "import { describe, expect, test, vi } from 'vitest';\nimport { objectAsync, string } from '../../schemas/index.ts';\nimport type { BaseIssue, Config } from '../../types/index.ts';\nimport { message } from './message.ts';\n\ndescribe('message', () => {\n  test('should return copy of passed schema', () => {\n    expect(message(string(), 'message')).toStrictEqual({\n      kind: 'schema',\n      type: 'string',\n      reference: string,\n      expects: 'string',\n      async: false,\n      message: undefined,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    });\n  });\n\n  test('should override config of schema', () => {\n    const schema = string();\n    // @ts-expect-error\n    schema['~run'] = vi.fn(schema['~run']);\n    const dataset = { value: 'foo' };\n    const globalConfig: Config<BaseIssue<unknown>> = {\n      abortPipeEarly: true,\n      message: 'global config error',\n    };\n    const errorMessage = 'local config error';\n    message(schema, errorMessage)['~run'](dataset, globalConfig);\n    expect(schema['~run']).toHaveBeenCalledWith(dataset, {\n      ...globalConfig,\n      message: errorMessage,\n    });\n  });\n\n  test('should override config of async schema', () => {\n    const schema = objectAsync({ key: string() });\n    // @ts-expect-error\n    schema['~run'] = vi.fn(schema['~run']);\n    const dataset = { value: { key: 'foo' } };\n    const globalConfig: Config<BaseIssue<unknown>> = {\n      abortPipeEarly: true,\n      message: 'global config error',\n    };\n    const errorMessage = 'local config error';\n    message(schema, errorMessage)['~run'](dataset, globalConfig);\n    expect(schema['~run']).toHaveBeenCalledWith(dataset, {\n      ...globalConfig,\n      message: errorMessage,\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/message/message.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  ErrorMessage,\n  InferIssue,\n} from '../../types/index.ts';\nimport { _getStandardProps } from '../../utils/index.ts';\n\n/**\n * Changes the local message configuration of a schema.\n *\n * @param schema The schema to configure.\n * @param message_ The error message.\n *\n * @returns The configured schema.\n */\n// @__NO_SIDE_EFFECTS__\nexport function message<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(schema: TSchema, message_: ErrorMessage<InferIssue<TSchema>>): TSchema {\n  return {\n    ...schema,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      return schema['~run'](dataset, { ...config, message: message_ });\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/methods/omit/index.ts",
    "content": "export * from './omit.ts';\n"
  },
  {
    "path": "library/src/methods/omit/omit.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport {\n  boolean,\n  type BooleanIssue,\n  type BooleanSchema,\n  number,\n  type NumberIssue,\n  type NumberSchema,\n  object,\n  type ObjectIssue,\n  type ObjectSchema,\n  objectWithRest,\n  type ObjectWithRestIssue,\n  type ObjectWithRestSchema,\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../../schemas/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { omit, type SchemaWithOmit } from './omit.ts';\n\ndescribe('omit', () => {\n  describe('object', () => {\n    type Schema = SchemaWithOmit<\n      ObjectSchema<\n        {\n          readonly key1: StringSchema<undefined>;\n          readonly key2: NumberSchema<undefined>;\n          readonly key3: StringSchema<undefined>;\n          readonly key4: NumberSchema<undefined>;\n        },\n        undefined\n      >,\n      ['key1', 'key3']\n    >;\n\n    test('should return schema object', () => {\n      expectTypeOf(\n        omit(\n          object({\n            key1: string(),\n            key2: number(),\n            key3: string(),\n            key4: number(),\n          }),\n          ['key1', 'key3']\n        )\n      ).toEqualTypeOf<Schema>();\n    });\n\n    describe('should infer correct types', () => {\n      test('of input', () => {\n        expectTypeOf<InferInput<Schema>>().toEqualTypeOf<{\n          key2: number;\n          key4: number;\n        }>();\n      });\n\n      test('of output', () => {\n        expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<{\n          key2: number;\n          key4: number;\n        }>();\n      });\n\n      test('of issue', () => {\n        expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n          ObjectIssue | NumberIssue\n        >();\n      });\n    });\n  });\n\n  describe('objectWithRest', () => {\n    type Schema = SchemaWithOmit<\n      ObjectWithRestSchema<\n        {\n          readonly key1: StringSchema<undefined>;\n          readonly key2: NumberSchema<undefined>;\n          readonly key3: StringSchema<undefined>;\n          readonly key4: NumberSchema<undefined>;\n        },\n        BooleanSchema<undefined>,\n        undefined\n      >,\n      ['key2', 'key3']\n    >;\n\n    test('should return schema object', () => {\n      expectTypeOf(\n        omit(\n          objectWithRest(\n            { key1: string(), key2: number(), key3: string(), key4: number() },\n            boolean()\n          ),\n          ['key2', 'key3']\n        )\n      ).toEqualTypeOf<Schema>();\n    });\n\n    describe('should infer correct types', () => {\n      test('of input', () => {\n        expectTypeOf<InferInput<Schema>>().toEqualTypeOf<\n          { key1: string; key4: number } & { [key: string]: boolean }\n        >();\n      });\n\n      test('of output', () => {\n        expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<\n          { key1: string; key4: number } & { [key: string]: boolean }\n        >();\n      });\n\n      test('of issue', () => {\n        expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n          ObjectWithRestIssue | NumberIssue | StringIssue | BooleanIssue\n        >();\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/omit/omit.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  boolean,\n  type BooleanIssue,\n  number,\n  object,\n  objectWithRest,\n  string,\n} from '../../schemas/index.ts';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport { expectNoSchemaIssue } from '../../vitest/index.ts';\nimport { omit } from './omit.ts';\n\ndescribe('omit', () => {\n  const entries = {\n    key1: string(),\n    key2: number(),\n    key3: string(),\n    key4: number(),\n  };\n  const baseInfo = {\n    message: expect.any(String),\n    requirement: undefined,\n    issues: undefined,\n    lang: undefined,\n    abortEarly: undefined,\n    abortPipeEarly: undefined,\n  } as const;\n\n  describe('object', () => {\n    const schema = omit(object(entries), ['key1', 'key3']);\n\n    test('should return schema object', () => {\n      expect(schema).toStrictEqual({\n        kind: 'schema',\n        type: 'object',\n        reference: object,\n        expects: 'Object',\n        entries: {\n          key2: {\n            ...number(),\n            '~standard': {\n              version: 1,\n              vendor: 'valibot',\n              validate: expect.any(Function),\n            },\n            '~run': expect.any(Function),\n          },\n          key4: {\n            ...number(),\n            '~standard': {\n              version: 1,\n              vendor: 'valibot',\n              validate: expect.any(Function),\n            },\n            '~run': expect.any(Function),\n          },\n        },\n        message: undefined,\n        async: false,\n        '~standard': {\n          version: 1,\n          vendor: 'valibot',\n          validate: expect.any(Function),\n        },\n        '~run': expect.any(Function),\n      } satisfies typeof schema);\n    });\n\n    describe('should return dataset without nested issues', () => {\n      test('if not omitted keys are specified', () => {\n        expectNoSchemaIssue(schema, [{ key2: 123, key4: 456 }]);\n      });\n\n      test('for unknown entries', () => {\n        expect(\n          schema['~run'](\n            { value: { key1: 'foo', key2: 123, key4: 456, other: null } },\n            {}\n          )\n        ).toStrictEqual({\n          typed: true,\n          value: { key2: 123, key4: 456 },\n        });\n      });\n    });\n\n    describe('should return dataset with nested issues', () => {\n      test('if a not omitted key is missing', () => {\n        expect(schema['~run']({ value: { key2: 123 } }, {})).toStrictEqual({\n          typed: false,\n          value: { key2: 123 },\n          issues: [\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'object',\n              input: undefined,\n              expected: '\"key4\"',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input: { key2: 123 },\n                  key: 'key4',\n                  value: undefined,\n                },\n              ],\n            },\n          ],\n        } satisfies FailureDataset<InferIssue<typeof schema>>);\n      });\n    });\n  });\n\n  describe('objectWithRest', () => {\n    const schema = omit(objectWithRest(entries, boolean()), ['key2', 'key3']);\n\n    test('should return schema object', () => {\n      expect(schema).toStrictEqual({\n        kind: 'schema',\n        type: 'object_with_rest',\n        reference: objectWithRest,\n        expects: 'Object',\n        entries: {\n          key1: {\n            ...string(),\n            '~standard': {\n              version: 1,\n              vendor: 'valibot',\n              validate: expect.any(Function),\n            },\n            '~run': expect.any(Function),\n          },\n          key4: {\n            ...number(),\n            '~standard': {\n              version: 1,\n              vendor: 'valibot',\n              validate: expect.any(Function),\n            },\n            '~run': expect.any(Function),\n          },\n        },\n        rest: {\n          ...boolean(),\n          '~standard': {\n            version: 1,\n            vendor: 'valibot',\n            validate: expect.any(Function),\n          },\n          '~run': expect.any(Function),\n        },\n        message: undefined,\n        async: false,\n        '~standard': {\n          version: 1,\n          vendor: 'valibot',\n          validate: expect.any(Function),\n        },\n        '~run': expect.any(Function),\n      } satisfies typeof schema);\n    });\n\n    describe('should return dataset without nested issues', () => {\n      test('if not omitted keys are specified', () => {\n        // @ts-expect-error\n        expectNoSchemaIssue(schema, [{ key1: 'foo', key4: 456 }]);\n      });\n\n      test('if omitted key matches rest', () => {\n        // @ts-expect-error\n        expectNoSchemaIssue(schema, [{ key1: 'foo', key2: true, key4: 456 }]);\n      });\n    });\n\n    describe('should return dataset with nested issues', () => {\n      test('if a not omitted key is missing', () => {\n        expect(schema['~run']({ value: { key1: 'foo' } }, {})).toStrictEqual({\n          typed: false,\n          value: { key1: 'foo' },\n          issues: [\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'object_with_rest',\n              input: undefined,\n              expected: '\"key4\"',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input: { key1: 'foo' },\n                  key: 'key4',\n                  value: undefined,\n                },\n              ],\n            },\n          ],\n        } satisfies FailureDataset<InferIssue<typeof schema>>);\n      });\n\n      test('if an omitted key does not match rest', () => {\n        expect(\n          schema['~run']({ value: { key1: 'foo', key2: null, key4: 456 } }, {})\n        ).toStrictEqual({\n          typed: false,\n          value: { key1: 'foo', key2: null, key4: 456 },\n          issues: [\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'boolean',\n              input: null,\n              expected: 'boolean',\n              received: 'null',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'value',\n                  input: { key1: 'foo', key2: null, key4: 456 },\n                  key: 'key2',\n                  value: null,\n                },\n              ],\n            } satisfies BooleanIssue,\n          ],\n        } satisfies FailureDataset<InferIssue<typeof schema>>);\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/omit/omit.ts",
    "content": "import type {\n  LooseObjectIssue,\n  LooseObjectSchema,\n  LooseObjectSchemaAsync,\n  ObjectIssue,\n  ObjectSchema,\n  ObjectSchemaAsync,\n  ObjectWithRestIssue,\n  ObjectWithRestSchema,\n  ObjectWithRestSchemaAsync,\n  StrictObjectIssue,\n  StrictObjectSchema,\n  StrictObjectSchemaAsync,\n} from '../../schemas/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  Config,\n  ErrorMessage,\n  InferInput,\n  InferIssue,\n  InferObjectInput,\n  InferObjectIssue,\n  InferObjectOutput,\n  InferOutput,\n  ObjectEntries,\n  ObjectEntriesAsync,\n  ObjectKeys,\n  OutputDataset,\n  SchemaWithoutPipe,\n  StandardProps,\n  UnknownDataset,\n} from '../../types/index.ts';\nimport { _getStandardProps } from '../../utils/index.ts';\n\n/**\n * Schema type.\n */\ntype Schema = SchemaWithoutPipe<\n  | LooseObjectSchema<ObjectEntries, ErrorMessage<LooseObjectIssue> | undefined>\n  | LooseObjectSchemaAsync<\n      ObjectEntriesAsync,\n      ErrorMessage<LooseObjectIssue> | undefined\n    >\n  | ObjectSchema<ObjectEntries, ErrorMessage<ObjectIssue> | undefined>\n  | ObjectSchemaAsync<ObjectEntriesAsync, ErrorMessage<ObjectIssue> | undefined>\n  | ObjectWithRestSchema<\n      ObjectEntries,\n      BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n      ErrorMessage<ObjectWithRestIssue> | undefined\n    >\n  | ObjectWithRestSchemaAsync<\n      ObjectEntriesAsync,\n      | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n      | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n      ErrorMessage<ObjectWithRestIssue> | undefined\n    >\n  | StrictObjectSchema<\n      ObjectEntries,\n      ErrorMessage<StrictObjectIssue> | undefined\n    >\n  | StrictObjectSchemaAsync<\n      ObjectEntriesAsync,\n      ErrorMessage<StrictObjectIssue> | undefined\n    >\n>;\n\n/**\n * Schema with omit type.\n */\nexport type SchemaWithOmit<\n  TSchema extends Schema,\n  TKeys extends ObjectKeys<TSchema>,\n> = TSchema extends\n  | ObjectSchema<infer TEntries, ErrorMessage<ObjectIssue> | undefined>\n  | StrictObjectSchema<\n      infer TEntries,\n      ErrorMessage<StrictObjectIssue> | undefined\n    >\n  ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & {\n      /**\n       * The object entries.\n       */\n      readonly entries: Omit<TEntries, TKeys[number]>;\n      /**\n       * The Standard Schema properties.\n       *\n       * @internal\n       */\n      readonly '~standard': StandardProps<\n        InferObjectInput<Omit<TEntries, TKeys[number]>>,\n        InferObjectOutput<Omit<TEntries, TKeys[number]>>\n      >;\n      /**\n       * Parses unknown input.\n       *\n       * @param dataset The input dataset.\n       * @param config The configuration.\n       *\n       * @returns The output dataset.\n       *\n       * @internal\n       */\n      readonly '~run': (\n        dataset: UnknownDataset,\n        config: Config<BaseIssue<unknown>>\n      ) => OutputDataset<\n        InferObjectOutput<Omit<TEntries, TKeys[number]>>,\n        | Extract<InferIssue<TSchema>, { type: TSchema['type'] }>\n        | InferObjectIssue<Omit<TEntries, TKeys[number]>>\n      >;\n      /**\n       * The input, output and issue type.\n       *\n       * @internal\n       */\n      readonly '~types'?:\n        | {\n            readonly input: InferObjectInput<Omit<TEntries, TKeys[number]>>;\n            readonly output: InferObjectOutput<Omit<TEntries, TKeys[number]>>;\n            readonly issue:\n              | Extract<InferIssue<TSchema>, { type: TSchema['type'] }>\n              | InferObjectIssue<Omit<TEntries, TKeys[number]>>;\n          }\n        | undefined;\n    }\n  : TSchema extends\n        | ObjectSchemaAsync<\n            infer TEntries,\n            ErrorMessage<ObjectIssue> | undefined\n          >\n        | StrictObjectSchemaAsync<\n            infer TEntries,\n            ErrorMessage<StrictObjectIssue> | undefined\n          >\n    ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & {\n        /**\n         * The object entries.\n         */\n        readonly entries: Omit<TEntries, TKeys[number]>;\n        /**\n         * The Standard Schema properties.\n         *\n         * @internal\n         */\n        readonly '~standard': StandardProps<\n          InferObjectInput<Omit<TEntries, TKeys[number]>>,\n          InferObjectOutput<Omit<TEntries, TKeys[number]>>\n        >;\n        /**\n         * Parses unknown input.\n         *\n         * @param dataset The input dataset.\n         * @param config The configuration.\n         *\n         * @returns The output dataset.\n         *\n         * @internal\n         */\n        readonly '~run': (\n          dataset: UnknownDataset,\n          config: Config<BaseIssue<unknown>>\n        ) => Promise<\n          OutputDataset<\n            InferObjectOutput<Omit<TEntries, TKeys[number]>>,\n            | Extract<InferIssue<TSchema>, { type: TSchema['type'] }>\n            | InferObjectIssue<Omit<TEntries, TKeys[number]>>\n          >\n        >;\n        /**\n         * The input, output and issue type.\n         *\n         * @internal\n         */\n        readonly '~types'?:\n          | {\n              readonly input: InferObjectInput<Omit<TEntries, TKeys[number]>>;\n              readonly output: InferObjectOutput<Omit<TEntries, TKeys[number]>>;\n              readonly issue:\n                | Extract<InferIssue<TSchema>, { type: TSchema['type'] }>\n                | InferObjectIssue<Omit<TEntries, TKeys[number]>>;\n            }\n          | undefined;\n      }\n    : TSchema extends LooseObjectSchema<\n          infer TEntries,\n          ErrorMessage<LooseObjectIssue> | undefined\n        >\n      ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & {\n          /**\n           * The object entries.\n           */\n          readonly entries: Omit<TEntries, TKeys[number]>;\n          /**\n           * The Standard Schema properties.\n           *\n           * @internal\n           */\n          readonly '~standard': StandardProps<\n            InferObjectInput<Omit<TEntries, TKeys[number]>> & {\n              [key: string]: unknown;\n            },\n            InferObjectInput<Omit<TEntries, TKeys[number]>> & {\n              [key: string]: unknown;\n            }\n          >;\n          /**\n           * Parses unknown input.\n           *\n           * @param dataset The input dataset.\n           * @param config The configuration.\n           *\n           * @returns The output dataset.\n           *\n           * @internal\n           */\n          readonly '~run': (\n            dataset: UnknownDataset,\n            config: Config<BaseIssue<unknown>>\n          ) => OutputDataset<\n            InferObjectOutput<Omit<TEntries, TKeys[number]>> & {\n              [key: string]: unknown;\n            },\n            | Extract<InferIssue<TSchema>, { type: TSchema['type'] }>\n            | InferObjectIssue<Omit<TEntries, TKeys[number]>>\n          >;\n          /**\n           * The input, output and issue type.\n           *\n           * @internal\n           */\n          readonly '~types'?:\n            | {\n                readonly input: InferObjectInput<\n                  Omit<TEntries, TKeys[number]>\n                > & {\n                  [key: string]: unknown;\n                };\n                readonly output: InferObjectOutput<\n                  Omit<TEntries, TKeys[number]>\n                > & {\n                  [key: string]: unknown;\n                };\n                readonly issue:\n                  | Extract<InferIssue<TSchema>, { type: TSchema['type'] }>\n                  | InferObjectIssue<Omit<TEntries, TKeys[number]>>;\n              }\n            | undefined;\n        }\n      : TSchema extends LooseObjectSchemaAsync<\n            infer TEntries,\n            ErrorMessage<LooseObjectIssue> | undefined\n          >\n        ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & {\n            /**\n             * The object entries.\n             */\n            readonly entries: Omit<TEntries, TKeys[number]>;\n            /**\n             * The Standard Schema properties.\n             *\n             * @internal\n             */\n            readonly '~standard': StandardProps<\n              InferObjectInput<Omit<TEntries, TKeys[number]>> & {\n                [key: string]: unknown;\n              },\n              InferObjectInput<Omit<TEntries, TKeys[number]>> & {\n                [key: string]: unknown;\n              }\n            >;\n            /**\n             * Parses unknown input.\n             *\n             * @param dataset The input dataset.\n             * @param config The configuration.\n             *\n             * @returns The output dataset.\n             *\n             * @internal\n             */\n            readonly '~run': (\n              dataset: UnknownDataset,\n              config: Config<BaseIssue<unknown>>\n            ) => Promise<\n              OutputDataset<\n                InferObjectOutput<Omit<TEntries, TKeys[number]>> & {\n                  [key: string]: unknown;\n                },\n                | Extract<InferIssue<TSchema>, { type: TSchema['type'] }>\n                | InferObjectIssue<Omit<TEntries, TKeys[number]>>\n              >\n            >;\n            /**\n             * The input, output and issue type.\n             *\n             * @internal\n             */\n            readonly '~types'?:\n              | {\n                  readonly input: InferObjectInput<\n                    Omit<TEntries, TKeys[number]>\n                  > & {\n                    [key: string]: unknown;\n                  };\n                  readonly output: InferObjectOutput<\n                    Omit<TEntries, TKeys[number]>\n                  > & {\n                    [key: string]: unknown;\n                  };\n                  readonly issue:\n                    | Extract<InferIssue<TSchema>, { type: TSchema['type'] }>\n                    | InferObjectIssue<Omit<TEntries, TKeys[number]>>;\n                }\n              | undefined;\n          }\n        : TSchema extends ObjectWithRestSchema<\n              infer TEntries,\n              BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n              ErrorMessage<ObjectWithRestIssue> | undefined\n            >\n          ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & {\n              /**\n               * The object entries.\n               */\n              readonly entries: Omit<TEntries, TKeys[number]>;\n              /**\n               * The Standard Schema properties.\n               *\n               * @internal\n               */\n              readonly '~standard': StandardProps<\n                InferObjectInput<Omit<TEntries, TKeys[number]>> & {\n                  [key: string]: InferInput<TSchema['rest']>;\n                },\n                InferObjectOutput<Omit<TEntries, TKeys[number]>> & {\n                  [key: string]: InferOutput<TSchema['rest']>;\n                }\n              >;\n              /**\n               * Parses unknown input.\n               *\n               * @param dataset The input dataset.\n               * @param config The configuration.\n               *\n               * @returns The output dataset.\n               *\n               * @internal\n               */\n              readonly '~run': (\n                dataset: UnknownDataset,\n                config: Config<BaseIssue<unknown>>\n              ) => OutputDataset<\n                InferObjectOutput<Omit<TEntries, TKeys[number]>> & {\n                  [key: string]: InferOutput<TSchema['rest']>;\n                },\n                | Extract<InferIssue<TSchema>, { type: TSchema['type'] }>\n                | InferObjectIssue<Omit<TEntries, TKeys[number]>>\n                | InferIssue<TSchema['rest']>\n              >;\n              /**\n               * The input, output and issue type.\n               *\n               * @internal\n               */\n              readonly '~types'?:\n                | {\n                    readonly input: InferObjectInput<\n                      Omit<TEntries, TKeys[number]>\n                    > & {\n                      [key: string]: InferInput<TSchema['rest']>;\n                    };\n                    readonly output: InferObjectOutput<\n                      Omit<TEntries, TKeys[number]>\n                    > & { [key: string]: InferOutput<TSchema['rest']> };\n                    readonly issue:\n                      | Extract<InferIssue<TSchema>, { type: TSchema['type'] }>\n                      | InferObjectIssue<Omit<TEntries, TKeys[number]>>\n                      | InferIssue<TSchema['rest']>;\n                  }\n                | undefined;\n            }\n          : TSchema extends ObjectWithRestSchemaAsync<\n                infer TEntries,\n                BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n                ErrorMessage<ObjectWithRestIssue> | undefined\n              >\n            ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & {\n                /**\n                 * The object entries.\n                 */\n                readonly entries: Omit<TEntries, TKeys[number]>;\n                /**\n                 * The Standard Schema properties.\n                 *\n                 * @internal\n                 */\n                readonly '~standard': StandardProps<\n                  InferObjectInput<Omit<TEntries, TKeys[number]>> & {\n                    [key: string]: InferInput<TSchema['rest']>;\n                  },\n                  InferObjectOutput<Omit<TEntries, TKeys[number]>> & {\n                    [key: string]: InferOutput<TSchema['rest']>;\n                  }\n                >;\n                /**\n                 * Parses unknown input.\n                 *\n                 * @param dataset The input dataset.\n                 * @param config The configuration.\n                 *\n                 * @returns The output dataset.\n                 *\n                 * @internal\n                 */\n                readonly '~run': (\n                  dataset: UnknownDataset,\n                  config: Config<BaseIssue<unknown>>\n                ) => Promise<\n                  OutputDataset<\n                    InferObjectOutput<Omit<TEntries, TKeys[number]>> & {\n                      [key: string]: InferOutput<TSchema['rest']>;\n                    },\n                    | Extract<InferIssue<TSchema>, { type: TSchema['type'] }>\n                    | InferObjectIssue<Omit<TEntries, TKeys[number]>>\n                    | InferIssue<TSchema['rest']>\n                  >\n                >;\n                /**\n                 * The input, output and issue type.\n                 *\n                 * @internal\n                 */\n                readonly '~types'?:\n                  | {\n                      readonly input: InferObjectInput<\n                        Omit<TEntries, TKeys[number]>\n                      > & {\n                        [key: string]: InferInput<TSchema['rest']>;\n                      };\n                      readonly output: InferObjectOutput<\n                        Omit<TEntries, TKeys[number]>\n                      > & { [key: string]: InferOutput<TSchema['rest']> };\n                      readonly issue:\n                        | Extract<\n                            InferIssue<TSchema>,\n                            { type: TSchema['type'] }\n                          >\n                        | InferObjectIssue<Omit<TEntries, TKeys[number]>>\n                        | InferIssue<TSchema['rest']>;\n                    }\n                  | undefined;\n              }\n            : never;\n\n/**\n * Creates a modified copy of an object schema that does not contain the\n * selected entries.\n *\n * @param schema The schema to omit from.\n * @param keys The selected entries.\n *\n * @returns An object schema.\n */\n// @__NO_SIDE_EFFECTS__\nexport function omit<\n  const TSchema extends Schema,\n  const TKeys extends ObjectKeys<TSchema>,\n>(schema: TSchema, keys: TKeys): SchemaWithOmit<TSchema, TKeys> {\n  // Create modified object entries\n  // @ts-expect-error\n  const entries: Omit<TSchema['entries'], TKeys[number]> = {\n    ...schema.entries,\n  };\n  for (const key of keys) {\n    // @ts-expect-error\n    // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n    delete entries[key];\n  }\n\n  // Rerturn modified copy of schema\n  // @ts-expect-error\n  return {\n    ...schema,\n    entries,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/methods/parse/index.ts",
    "content": "export * from './parse.ts';\nexport * from './parseAsync.ts';\n"
  },
  {
    "path": "library/src/methods/parse/parse.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport { transform } from '../../actions/index.ts';\nimport { object, string } from '../../schemas/index.ts';\nimport { pipe } from '../pipe/pipe.ts';\nimport { parse } from './parse.ts';\n\ndescribe('parse', () => {\n  test('should return output type of schema', () => {\n    expectTypeOf(\n      parse(\n        object({\n          key: pipe(\n            string(),\n            transform((input) => input.length)\n          ),\n        }),\n        { key: 'foo' }\n      )\n    ).toEqualTypeOf<{ key: number }>();\n  });\n});\n"
  },
  {
    "path": "library/src/methods/parse/parse.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { transform } from '../../actions/index.ts';\nimport { number, object, string } from '../../schemas/index.ts';\nimport { pipe } from '../pipe/index.ts';\nimport { parse } from './parse.ts';\n\ndescribe('parse', () => {\n  const entries = {\n    key: pipe(\n      string(),\n      transform((input) => input.length)\n    ),\n  };\n\n  test('should return output for valid input', () => {\n    expect(parse(string(), 'hello')).toBe('hello');\n    expect(parse(number(), 123)).toBe(123);\n    expect(parse(object(entries), { key: 'foo' })).toStrictEqual({\n      key: 3,\n    });\n  });\n\n  test('should throw error for invalid input', () => {\n    expect(() => parse(string(), 123)).toThrowError();\n    expect(() => parse(number(), 'foo')).toThrowError();\n    expect(() => parse(object(entries), null)).toThrowError();\n  });\n});\n"
  },
  {
    "path": "library/src/methods/parse/parse.ts",
    "content": "import { getGlobalConfig } from '../../storages/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  Config,\n  InferIssue,\n  InferOutput,\n} from '../../types/index.ts';\nimport { ValiError } from '../../utils/index.ts';\n\n/**\n * Parses an unknown input based on a schema.\n *\n * @param schema The schema to be used.\n * @param input The input to be parsed.\n * @param config The parse configuration.\n *\n * @returns The parsed input.\n */\nexport function parse<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n>(\n  schema: TSchema,\n  input: unknown,\n  config?: Config<InferIssue<TSchema>>\n): InferOutput<TSchema> {\n  const dataset = schema['~run']({ value: input }, getGlobalConfig(config));\n  if (dataset.issues) {\n    throw new ValiError(dataset.issues);\n  }\n  return dataset.value;\n}\n"
  },
  {
    "path": "library/src/methods/parse/parseAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport { transform } from '../../actions/index.ts';\nimport { object, string } from '../../schemas/index.ts';\nimport { pipe } from '../pipe/pipe.ts';\nimport { parseAsync } from './parseAsync.ts';\n\ndescribe('parseAsync', () => {\n  test('should return output type of schema', () => {\n    expectTypeOf(\n      parseAsync(\n        object({\n          key: pipe(\n            string(),\n            transform((input) => input.length)\n          ),\n        }),\n        { key: 'foo' }\n      )\n    ).toEqualTypeOf<Promise<{ key: number }>>();\n  });\n});\n"
  },
  {
    "path": "library/src/methods/parse/parseAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { transform } from '../../actions/index.ts';\nimport { number, objectAsync, string } from '../../schemas/index.ts';\nimport { pipe } from '../pipe/index.ts';\nimport { parseAsync } from './parseAsync.ts';\n\ndescribe('parseAsync', () => {\n  const entries = {\n    key: pipe(\n      string(),\n      transform((input) => input.length)\n    ),\n  };\n\n  test('should return output for valid input', async () => {\n    expect(await parseAsync(string(), 'hello')).toBe('hello');\n    expect(await parseAsync(number(), 123)).toBe(123);\n    expect(\n      await parseAsync(objectAsync(entries), { key: 'foo' })\n    ).toStrictEqual({\n      key: 3,\n    });\n  });\n\n  test('should throw error for invalid input', async () => {\n    await expect(() => parseAsync(string(), 123)).rejects.toThrowError();\n    await expect(() => parseAsync(number(), 'foo')).rejects.toThrowError();\n    await expect(() =>\n      parseAsync(objectAsync(entries), null)\n    ).rejects.toThrowError();\n  });\n});\n"
  },
  {
    "path": "library/src/methods/parse/parseAsync.ts",
    "content": "import { getGlobalConfig } from '../../storages/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  Config,\n  InferIssue,\n  InferOutput,\n} from '../../types/index.ts';\nimport { ValiError } from '../../utils/index.ts';\n\n/**\n * Parses an unknown input based on a schema.\n *\n * @param schema The schema to be used.\n * @param input The input to be parsed.\n * @param config The parse configuration.\n *\n * @returns The parsed input.\n */\nexport async function parseAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(\n  schema: TSchema,\n  input: unknown,\n  config?: Config<InferIssue<TSchema>>\n): Promise<InferOutput<TSchema>> {\n  const dataset = await schema['~run'](\n    { value: input },\n    getGlobalConfig(config)\n  );\n  if (dataset.issues) {\n    throw new ValiError(dataset.issues);\n  }\n  return dataset.value;\n}\n"
  },
  {
    "path": "library/src/methods/parser/index.ts",
    "content": "export * from './parser.ts';\nexport * from './parserAsync.ts';\n"
  },
  {
    "path": "library/src/methods/parser/parser.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport { transform } from '../../actions/index.ts';\nimport { object, string } from '../../schemas/index.ts';\nimport type { Config, InferIssue } from '../../types/index.ts';\nimport { pipe } from '../pipe/pipe.ts';\nimport { type Parser, parser } from './parser.ts';\n\ndescribe('parser', () => {\n  describe('should return function object', () => {\n    const schema = object({\n      key: pipe(\n        string(),\n        transform((input) => input.length)\n      ),\n    });\n    type Schema = typeof schema;\n\n    test('without config', () => {\n      expectTypeOf(parser(schema)).toEqualTypeOf<Parser<Schema, undefined>>();\n      expectTypeOf(parser(schema, undefined)).toEqualTypeOf<\n        Parser<Schema, undefined>\n      >();\n    });\n\n    test('with config', () => {\n      const config: Config<InferIssue<Schema>> = {\n        abortEarly: true,\n      };\n      expectTypeOf(parser(schema, config)).toEqualTypeOf<\n        Parser<Schema, typeof config>\n      >();\n    });\n  });\n\n  test('should return output type of schema', () => {\n    expectTypeOf(\n      parser(\n        object({\n          key: pipe(\n            string(),\n            transform((input) => input.length)\n          ),\n        })\n      )({ key: 'foo' })\n    ).toEqualTypeOf<{ key: number }>();\n  });\n});\n"
  },
  {
    "path": "library/src/methods/parser/parser.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { transform } from '../../actions/index.ts';\nimport { number, object, string } from '../../schemas/index.ts';\nimport type { Config, InferIssue } from '../../types/index.ts';\nimport { pipe } from '../pipe/index.ts';\nimport { parser } from './parser.ts';\n\ndescribe('parser', () => {\n  const entries = {\n    key: pipe(\n      string(),\n      transform((input) => input.length)\n    ),\n  };\n\n  describe('should return function object', () => {\n    const schema = object(entries);\n\n    test('without config', () => {\n      const func1 = parser(schema);\n      expect(func1).toBeInstanceOf(Function);\n      expect(func1.schema).toBe(schema);\n      expect(func1.config).toBeUndefined();\n      const func2 = parser(schema, undefined);\n      expect(func2).toBeInstanceOf(Function);\n      expect(func2.schema).toBe(schema);\n      expect(func2.config).toBeUndefined();\n    });\n\n    test('with config', () => {\n      const config: Config<InferIssue<typeof schema>> = {\n        abortEarly: true,\n      };\n      const func = parser(schema, config);\n      expect(func).toBeInstanceOf(Function);\n      expect(func.schema).toBe(schema);\n      expect(func.config).toBe(config);\n    });\n  });\n\n  test('should return output for valid input', () => {\n    expect(parser(string())('hello')).toBe('hello');\n    expect(parser(number())(123)).toBe(123);\n    expect(parser(object(entries))({ key: 'foo' })).toStrictEqual({\n      key: 3,\n    });\n  });\n\n  test('should throw error for invalid input', () => {\n    expect(() => parser(string())(123)).toThrowError();\n    expect(() => parser(number())('foo')).toThrowError();\n    expect(() => parser(object(entries))(null)).toThrowError();\n  });\n});\n"
  },
  {
    "path": "library/src/methods/parser/parser.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  Config,\n  InferIssue,\n  InferOutput,\n} from '../../types/index.ts';\nimport { parse } from '../parse/index.ts';\n\n/**\n * The parser interface.\n */\nexport interface Parser<\n  TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  TConfig extends Config<InferIssue<TSchema>> | undefined,\n> {\n  /**\n   * Parses an unknown input based on the schema.\n   */\n  (input: unknown): InferOutput<TSchema>;\n  /**\n   * The schema to be used.\n   */\n  readonly schema: TSchema;\n  /**\n   * The parser configuration.\n   */\n  readonly config: TConfig;\n}\n\n/**\n * Returns a function that parses an unknown input based on a schema.\n *\n * @param schema The schema to be used.\n *\n * @returns The parser function.\n */\nexport function parser<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n>(schema: TSchema): Parser<TSchema, undefined>;\n\n/**\n * Returns a function that parses an unknown input based on a schema.\n *\n * @param schema The schema to be used.\n * @param config The parser configuration.\n *\n * @returns The parser function.\n */\nexport function parser<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TConfig extends Config<InferIssue<TSchema>> | undefined,\n>(schema: TSchema, config: TConfig): Parser<TSchema, TConfig>;\n\n// @__NO_SIDE_EFFECTS__\nexport function parser(\n  schema: BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  config?: Config<InferIssue<BaseSchema<unknown, unknown, BaseIssue<unknown>>>>\n): Parser<\n  BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  Config<BaseIssue<unknown>> | undefined\n> {\n  const func: Parser<\n    BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n    Config<BaseIssue<unknown>> | undefined\n  > = (input: unknown) => parse(schema, input, config);\n  // @ts-expect-error\n  func.schema = schema;\n  // @ts-expect-error\n  func.config = config;\n  return func;\n}\n"
  },
  {
    "path": "library/src/methods/parser/parserAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport { transform } from '../../actions/index.ts';\nimport { object, string } from '../../schemas/index.ts';\nimport type { Config, InferIssue } from '../../types/index.ts';\nimport { pipe } from '../pipe/pipe.ts';\nimport { type ParserAsync, parserAsync } from './parserAsync.ts';\n\ndescribe('parserAsync', () => {\n  describe('should return function object', () => {\n    const schema = object({\n      key: pipe(\n        string(),\n        transform((input) => input.length)\n      ),\n    });\n    type Schema = typeof schema;\n\n    test('without config', () => {\n      expectTypeOf(parserAsync(schema)).toEqualTypeOf<\n        ParserAsync<Schema, undefined>\n      >();\n      expectTypeOf(parserAsync(schema, undefined)).toEqualTypeOf<\n        ParserAsync<Schema, undefined>\n      >();\n    });\n\n    test('with config', () => {\n      const config: Config<InferIssue<Schema>> = {\n        abortEarly: true,\n      };\n      expectTypeOf(parserAsync(schema, config)).toEqualTypeOf<\n        ParserAsync<Schema, typeof config>\n      >();\n    });\n  });\n\n  test('should return output type of schema', () => {\n    expectTypeOf(\n      parserAsync(\n        object({\n          key: pipe(\n            string(),\n            transform((input) => input.length)\n          ),\n        })\n      )({ key: 'foo' })\n    ).toEqualTypeOf<Promise<{ key: number }>>();\n  });\n});\n"
  },
  {
    "path": "library/src/methods/parser/parserAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { transform } from '../../actions/index.ts';\nimport { number, objectAsync, string } from '../../schemas/index.ts';\nimport type { Config, InferIssue } from '../../types/index.ts';\nimport { pipe } from '../pipe/index.ts';\nimport { parserAsync } from './parserAsync.ts';\n\ndescribe('parserAsync', () => {\n  const entries = {\n    key: pipe(\n      string(),\n      transform((input) => input.length)\n    ),\n  };\n\n  describe('should return function object', () => {\n    const schema = objectAsync(entries);\n\n    test('without config', () => {\n      const func1 = parserAsync(schema);\n      expect(func1).toBeInstanceOf(Function);\n      expect(func1.schema).toBe(schema);\n      expect(func1.config).toBeUndefined();\n      const func2 = parserAsync(schema, undefined);\n      expect(func2).toBeInstanceOf(Function);\n      expect(func2.schema).toBe(schema);\n      expect(func2.config).toBeUndefined();\n    });\n\n    test('with config', () => {\n      const config: Config<InferIssue<typeof schema>> = {\n        abortEarly: true,\n      };\n      const func = parserAsync(schema, config);\n      expect(func).toBeInstanceOf(Function);\n      expect(func.schema).toBe(schema);\n      expect(func.config).toBe(config);\n    });\n  });\n\n  test('should return output for valid input', async () => {\n    expect(await parserAsync(string())('hello')).toBe('hello');\n    expect(await parserAsync(number())(123)).toBe(123);\n    expect(\n      await parserAsync(objectAsync(entries))({ key: 'foo' })\n    ).toStrictEqual({\n      key: 3,\n    });\n  });\n\n  test('should throw error for invalid input', async () => {\n    await expect(() => parserAsync(string())(123)).rejects.toThrowError();\n    await expect(() => parserAsync(number())('foo')).rejects.toThrowError();\n    await expect(() =>\n      parserAsync(objectAsync(entries))(null)\n    ).rejects.toThrowError();\n  });\n});\n"
  },
  {
    "path": "library/src/methods/parser/parserAsync.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  Config,\n  InferIssue,\n  InferOutput,\n} from '../../types/index.ts';\nimport { parseAsync } from '../parse/index.ts';\n\n/**\n * The parser async interface.\n */\nexport interface ParserAsync<\n  TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  TConfig extends Config<InferIssue<TSchema>> | undefined,\n> {\n  /**\n   * Parses an unknown input based on the schema.\n   */\n  (input: unknown): Promise<InferOutput<TSchema>>;\n  /**\n   * The schema to be used.\n   */\n  readonly schema: TSchema;\n  /**\n   * The parser configuration.\n   */\n  readonly config: TConfig;\n}\n\n/**\n * Returns a function that parses an unknown input based on a schema.\n *\n * @param schema The schema to be used.\n *\n * @returns The parser function.\n */\nexport function parserAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(schema: TSchema): ParserAsync<TSchema, undefined>;\n\n/**\n * Returns a function that parses an unknown input based on a schema.\n *\n * @param schema The schema to be used.\n * @param config The parser configuration.\n *\n * @returns The parser function.\n */\nexport function parserAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TConfig extends Config<InferIssue<TSchema>> | undefined,\n>(schema: TSchema, config: TConfig): ParserAsync<TSchema, TConfig>;\n\n// @__NO_SIDE_EFFECTS__\nexport function parserAsync(\n  schema:\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  config?: Config<\n    InferIssue<\n      | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n      | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n    >\n  >\n): ParserAsync<\n  | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n  | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  Config<BaseIssue<unknown>> | undefined\n> {\n  const func: ParserAsync<\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n    Config<BaseIssue<unknown>> | undefined\n  > = (input: unknown) => parseAsync(schema, input, config);\n  // @ts-expect-error\n  func.schema = schema;\n  // @ts-expect-error\n  func.config = config;\n  return func;\n}\n"
  },
  {
    "path": "library/src/methods/partial/index.ts",
    "content": "export * from './partial.ts';\nexport * from './partialAsync.ts';\n"
  },
  {
    "path": "library/src/methods/partial/partial.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport {\n  boolean,\n  type BooleanIssue,\n  nullish,\n  number,\n  type NumberIssue,\n  object,\n  type ObjectIssue,\n  objectWithRest,\n  type ObjectWithRestIssue,\n  string,\n  type StringIssue,\n} from '../../schemas/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { partial, type SchemaWithPartial } from './partial.ts';\n\ndescribe('partial', () => {\n  const entries = {\n    key1: string(),\n    key2: number(),\n    key3: string(),\n    key4: nullish(number(), () => 123),\n  };\n\n  describe('object', () => {\n    const wrapped = object(entries);\n    type Wrapped = typeof wrapped;\n    type Schema1 = SchemaWithPartial<Wrapped, undefined>;\n    type Schema2 = SchemaWithPartial<Wrapped, ['key1', 'key3']>;\n\n    describe('should return schema object', () => {\n      test('with undefined keys', () => {\n        expectTypeOf(partial(wrapped)).toEqualTypeOf<Schema1>();\n      });\n\n      test('with specific keys', () => {\n        expectTypeOf(\n          partial(wrapped, ['key1', 'key3'])\n        ).toEqualTypeOf<Schema2>();\n      });\n    });\n\n    describe('should infer correct types', () => {\n      test('of input', () => {\n        expectTypeOf<InferInput<Schema1>>().toEqualTypeOf<{\n          key1?: string;\n          key2?: number;\n          key3?: string;\n          key4?: number | null;\n        }>();\n        expectTypeOf<InferInput<Schema2>>().toEqualTypeOf<{\n          key1?: string;\n          key2: number;\n          key3?: string;\n          key4?: number | null;\n        }>();\n      });\n\n      test('of output', () => {\n        expectTypeOf<InferOutput<Schema1>>().toEqualTypeOf<{\n          key1?: string;\n          key2?: number;\n          key3?: string;\n          key4?: number;\n        }>();\n        expectTypeOf<InferOutput<Schema2>>().toEqualTypeOf<{\n          key1?: string;\n          key2: number;\n          key3?: string;\n          key4: number;\n        }>();\n      });\n\n      test('of issue', () => {\n        expectTypeOf<InferIssue<Schema1>>().toEqualTypeOf<\n          ObjectIssue | StringIssue | NumberIssue\n        >();\n        expectTypeOf<InferIssue<Schema2>>().toEqualTypeOf<\n          ObjectIssue | StringIssue | NumberIssue\n        >();\n      });\n    });\n  });\n\n  describe('objectWithRest', () => {\n    const wrapped = objectWithRest(entries, boolean());\n    type Wrapped = typeof wrapped;\n    type Schema1 = SchemaWithPartial<Wrapped, undefined>;\n    type Schema2 = SchemaWithPartial<Wrapped, ['key2', 'key3']>;\n\n    describe('should return schema object', () => {\n      test('with undefined keys', () => {\n        expectTypeOf(partial(wrapped)).toEqualTypeOf<Schema1>();\n      });\n\n      test('with specific keys', () => {\n        expectTypeOf(\n          partial(wrapped, ['key2', 'key3'])\n        ).toEqualTypeOf<Schema2>();\n      });\n    });\n\n    describe('should infer correct types', () => {\n      test('of input', () => {\n        expectTypeOf<InferInput<Schema1>>().toEqualTypeOf<\n          {\n            key1?: string;\n            key2?: number;\n            key3?: string;\n            key4?: number | null;\n          } & { [key: string]: boolean }\n        >();\n        expectTypeOf<InferInput<Schema2>>().toEqualTypeOf<\n          {\n            key1: string;\n            key2?: number;\n            key3?: string;\n            key4?: number | null;\n          } & { [key: string]: boolean }\n        >();\n      });\n\n      test('of output', () => {\n        expectTypeOf<InferOutput<Schema1>>().toEqualTypeOf<\n          {\n            key1?: string;\n            key2?: number;\n            key3?: string;\n            key4?: number;\n          } & { [key: string]: boolean }\n        >();\n        expectTypeOf<InferOutput<Schema2>>().toEqualTypeOf<\n          {\n            key1: string;\n            key2?: number;\n            key3?: string;\n            key4: number;\n          } & { [key: string]: boolean }\n        >();\n      });\n\n      test('of issue', () => {\n        expectTypeOf<InferIssue<Schema1>>().toEqualTypeOf<\n          ObjectWithRestIssue | NumberIssue | StringIssue | BooleanIssue\n        >();\n        expectTypeOf<InferIssue<Schema2>>().toEqualTypeOf<\n          ObjectWithRestIssue | NumberIssue | StringIssue | BooleanIssue\n        >();\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/partial/partial.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  boolean,\n  nullish,\n  number,\n  object,\n  objectWithRest,\n  optional,\n  string,\n} from '../../schemas/index.ts';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport { expectNoSchemaIssue } from '../../vitest/index.ts';\nimport { partial } from './partial.ts';\n\ndescribe('partial', () => {\n  const entries = {\n    key1: string(),\n    key2: number(),\n    key3: string(),\n    key4: nullish(number(), 123),\n  };\n  const baseInfo = {\n    message: expect.any(String),\n    requirement: undefined,\n    issues: undefined,\n    lang: undefined,\n    abortEarly: undefined,\n    abortPipeEarly: undefined,\n  } as const;\n\n  describe('object', () => {\n    const wrapped = object(entries);\n    const schema1 = partial(wrapped);\n    const schema2 = partial(wrapped, ['key1', 'key3']);\n\n    describe('should return schema object', () => {\n      test('with undefined keys', () => {\n        expect(schema1).toStrictEqual({\n          kind: 'schema',\n          type: 'object',\n          reference: object,\n          expects: 'Object',\n          entries: {\n            key1: {\n              ...optional(entries.key1),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key2: {\n              ...optional(entries.key2),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key3: {\n              ...optional(entries.key3),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: {\n              ...optional(entries.key4),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n          },\n          message: undefined,\n          async: false,\n          '~standard': {\n            version: 1,\n            vendor: 'valibot',\n            validate: expect.any(Function),\n          },\n          '~run': expect.any(Function),\n        } satisfies typeof schema1);\n      });\n\n      test('with specific keys', () => {\n        expect(schema2).toStrictEqual({\n          kind: 'schema',\n          type: 'object',\n          reference: object,\n          expects: 'Object',\n          entries: {\n            key1: {\n              ...optional(entries.key1),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key2: entries.key2,\n            key3: {\n              ...optional(entries.key3),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: entries.key4,\n          },\n          message: undefined,\n          async: false,\n          '~standard': {\n            version: 1,\n            vendor: 'valibot',\n            validate: expect.any(Function),\n          },\n          '~run': expect.any(Function),\n        } satisfies typeof schema2);\n      });\n    });\n\n    describe('should return dataset without nested issues', () => {\n      test('if partial keys are present', () => {\n        const input = { key1: 'foo', key2: 123, key3: 'bar', key4: 123 };\n        expectNoSchemaIssue(schema1, [input]);\n        expectNoSchemaIssue(schema2, [input]);\n      });\n\n      test('if partial keys are missing', () => {\n        expectNoSchemaIssue(schema1, [{}]);\n        expectNoSchemaIssue(schema2, [{ key2: 123, key4: 123 }]);\n      });\n    });\n\n    describe('should return dataset with nested issues', () => {\n      test('if non-partialed keys are missing', () => {\n        for (const input of [{}, { key1: 'foo', key3: 'bar' }]) {\n          expect(schema2['~run']({ value: input }, {})).toStrictEqual({\n            typed: false,\n            value: { ...input, key4: 123 },\n            issues: [\n              {\n                ...baseInfo,\n                kind: 'schema',\n                type: 'object',\n                input: undefined,\n                expected: '\"key2\"',\n                received: 'undefined',\n                path: [\n                  {\n                    type: 'object',\n                    origin: 'key',\n                    input: input,\n                    key: 'key2',\n                    value: undefined,\n                  },\n                ],\n              },\n            ],\n          } satisfies FailureDataset<InferIssue<typeof schema2>>);\n        }\n      });\n    });\n  });\n\n  describe('objectWithRest', () => {\n    const rest = boolean();\n    const wrapped = objectWithRest(entries, rest);\n    const schema1 = partial(wrapped);\n    const schema2 = partial(wrapped, ['key2', 'key3']);\n\n    describe('should return schema object', () => {\n      test('with undefined keys', () => {\n        expect(schema1).toStrictEqual({\n          kind: 'schema',\n          type: 'object_with_rest',\n          reference: objectWithRest,\n          expects: 'Object',\n          entries: {\n            key1: {\n              ...optional(entries.key1),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key2: {\n              ...optional(entries.key2),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key3: {\n              ...optional(entries.key3),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: {\n              ...optional(entries.key4),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n          },\n          rest,\n          message: undefined,\n          async: false,\n          '~standard': {\n            version: 1,\n            vendor: 'valibot',\n            validate: expect.any(Function),\n          },\n          '~run': expect.any(Function),\n        } satisfies typeof schema1);\n      });\n\n      test('with specific keys', () => {\n        expect(schema2).toStrictEqual({\n          kind: 'schema',\n          type: 'object_with_rest',\n          reference: objectWithRest,\n          expects: 'Object',\n          entries: {\n            key1: entries.key1,\n            key2: {\n              ...optional(entries.key2),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key3: {\n              ...optional(entries.key3),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: entries.key4,\n          },\n          rest,\n          message: undefined,\n          async: false,\n          '~standard': {\n            version: 1,\n            vendor: 'valibot',\n            validate: expect.any(Function),\n          },\n          '~run': expect.any(Function),\n        } satisfies typeof schema2);\n      });\n    });\n\n    describe('should return dataset without nested issues', () => {\n      test('if partial keys are present', () => {\n        const input = {\n          key1: 'foo',\n          key2: 123,\n          key3: 'bar',\n          key4: 123,\n          other: true,\n        };\n        // @ts-expect-error\n        expectNoSchemaIssue(schema1, [input]);\n        // @ts-expect-error\n        expectNoSchemaIssue(schema2, [input]);\n      });\n\n      test('if partial keys are missing', () => {\n        expectNoSchemaIssue(schema1, [{}]);\n        // @ts-expect-error\n        expectNoSchemaIssue(schema2, [{ key1: 'foo', key4: 123, other: true }]);\n      });\n    });\n\n    describe('should return dataset with nested issues', () => {\n      test('if non-partialed keys are missing', () => {\n        for (const input of [{}, { key2: 123, key3: 'bar', other: true }]) {\n          expect(schema2['~run']({ value: input }, {})).toStrictEqual({\n            typed: false,\n            value: { ...input, key4: 123 },\n            issues: [\n              {\n                ...baseInfo,\n                kind: 'schema',\n                type: 'object_with_rest',\n                input: undefined,\n                expected: '\"key1\"',\n                received: 'undefined',\n                path: [\n                  {\n                    type: 'object',\n                    origin: 'key',\n                    input: input,\n                    key: 'key1',\n                    value: undefined,\n                  },\n                ],\n              },\n            ],\n          } satisfies FailureDataset<InferIssue<typeof schema2>>);\n        }\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/partial/partial.ts",
    "content": "import {\n  type LooseObjectIssue,\n  type LooseObjectSchema,\n  type ObjectIssue,\n  type ObjectSchema,\n  type ObjectWithRestIssue,\n  type ObjectWithRestSchema,\n  optional,\n  type OptionalSchema,\n  type StrictObjectIssue,\n  type StrictObjectSchema,\n} from '../../schemas/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  Config,\n  ErrorMessage,\n  InferInput,\n  InferIssue,\n  InferObjectInput,\n  InferObjectOutput,\n  InferOutput,\n  ObjectEntries,\n  ObjectKeys,\n  OutputDataset,\n  SchemaWithoutPipe,\n  StandardProps,\n  UnknownDataset,\n} from '../../types/index.ts';\nimport { _getStandardProps } from '../../utils/index.ts';\n\n/**\n * Schema type.\n */\ntype Schema = SchemaWithoutPipe<\n  | LooseObjectSchema<ObjectEntries, ErrorMessage<LooseObjectIssue> | undefined>\n  | ObjectSchema<ObjectEntries, ErrorMessage<ObjectIssue> | undefined>\n  | ObjectWithRestSchema<\n      ObjectEntries,\n      BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n      ErrorMessage<ObjectWithRestIssue> | undefined\n    >\n  | StrictObjectSchema<\n      ObjectEntries,\n      ErrorMessage<StrictObjectIssue> | undefined\n    >\n>;\n\n/**\n * Partial entries type.\n */\ntype PartialEntries<\n  TEntries extends ObjectEntries,\n  TKeys extends readonly (keyof TEntries)[] | undefined,\n> = {\n  [TKey in keyof TEntries]: TKeys extends readonly (keyof TEntries)[]\n    ? TKey extends TKeys[number]\n      ? OptionalSchema<TEntries[TKey], undefined>\n      : TEntries[TKey]\n    : OptionalSchema<TEntries[TKey], undefined>;\n};\n\n/**\n * Schema with partial type.\n */\nexport type SchemaWithPartial<\n  TSchema extends Schema,\n  TKeys extends ObjectKeys<TSchema> | undefined,\n> = TSchema extends\n  | ObjectSchema<infer TEntries, ErrorMessage<ObjectIssue> | undefined>\n  | StrictObjectSchema<\n      infer TEntries,\n      ErrorMessage<StrictObjectIssue> | undefined\n    >\n  ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & {\n      /**\n       * The object entries.\n       */\n      readonly entries: PartialEntries<TEntries, TKeys>;\n      /**\n       * The Standard Schema properties.\n       *\n       * @internal\n       */\n      readonly '~standard': StandardProps<\n        InferObjectInput<PartialEntries<TEntries, TKeys>>,\n        InferObjectOutput<PartialEntries<TEntries, TKeys>>\n      >;\n      /**\n       * Parses unknown input.\n       *\n       * @param dataset The input dataset.\n       * @param config The configuration.\n       *\n       * @returns The output dataset.\n       *\n       * @internal\n       */\n      readonly '~run': (\n        dataset: UnknownDataset,\n        config: Config<BaseIssue<unknown>>\n      ) => OutputDataset<\n        InferObjectOutput<PartialEntries<TEntries, TKeys>>,\n        InferIssue<TSchema>\n      >;\n      /**\n       * The input, output and issue type.\n       *\n       * @internal\n       */\n      readonly '~types'?:\n        | {\n            readonly input: InferObjectInput<PartialEntries<TEntries, TKeys>>;\n            readonly output: InferObjectOutput<PartialEntries<TEntries, TKeys>>;\n            readonly issue: InferIssue<TSchema>;\n          }\n        | undefined;\n    }\n  : TSchema extends LooseObjectSchema<\n        infer TEntries,\n        ErrorMessage<LooseObjectIssue> | undefined\n      >\n    ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & {\n        /**\n         * The object entries.\n         */\n        readonly entries: PartialEntries<TEntries, TKeys>;\n        /**\n         * The Standard Schema properties.\n         *\n         * @internal\n         */\n        readonly '~standard': StandardProps<\n          InferObjectInput<PartialEntries<TEntries, TKeys>> & {\n            [key: string]: unknown;\n          },\n          InferObjectOutput<PartialEntries<TEntries, TKeys>> & {\n            [key: string]: unknown;\n          }\n        >;\n        /**\n         * Parses unknown input.\n         *\n         * @param dataset The input dataset.\n         * @param config The configuration.\n         *\n         * @returns The output dataset.\n         *\n         * @internal\n         */\n        readonly '~run': (\n          dataset: UnknownDataset,\n          config: Config<BaseIssue<unknown>>\n        ) => OutputDataset<\n          InferObjectOutput<PartialEntries<TEntries, TKeys>> & {\n            [key: string]: unknown;\n          },\n          InferIssue<TSchema>\n        >;\n        /**\n         * The input, output and issue type.\n         *\n         * @internal\n         */\n        readonly '~types'?:\n          | {\n              readonly input: InferObjectInput<\n                PartialEntries<TEntries, TKeys>\n              > & {\n                [key: string]: unknown;\n              };\n              readonly output: InferObjectOutput<\n                PartialEntries<TEntries, TKeys>\n              > & {\n                [key: string]: unknown;\n              };\n              readonly issue: InferIssue<TSchema>;\n            }\n          | undefined;\n      }\n    : TSchema extends ObjectWithRestSchema<\n          infer TEntries,\n          infer TRest,\n          ErrorMessage<ObjectWithRestIssue> | undefined\n        >\n      ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & {\n          /**\n           * The object entries.\n           */\n          readonly entries: PartialEntries<TEntries, TKeys>;\n          /**\n           * The Standard Schema properties.\n           *\n           * @internal\n           */\n          readonly '~standard': StandardProps<\n            InferObjectInput<PartialEntries<TEntries, TKeys>> & {\n              [key: string]: InferInput<TRest>;\n            },\n            InferObjectOutput<PartialEntries<TEntries, TKeys>> & {\n              [key: string]: InferOutput<TRest>;\n            }\n          >;\n          /**\n           * Parses unknown input.\n           *\n           * @param dataset The input dataset.\n           * @param config The configuration.\n           *\n           * @returns The output dataset.\n           *\n           * @internal\n           */\n          readonly '~run': (\n            dataset: UnknownDataset,\n            config: Config<BaseIssue<unknown>>\n          ) => OutputDataset<\n            InferObjectOutput<PartialEntries<TEntries, TKeys>> & {\n              [key: string]: InferOutput<TRest>;\n            },\n            InferIssue<TSchema>\n          >;\n          /**\n           * The input, output and issue type.\n           *\n           * @internal\n           */\n          readonly '~types'?:\n            | {\n                readonly input: InferObjectInput<\n                  PartialEntries<TEntries, TKeys>\n                > & {\n                  [key: string]: InferInput<TRest>;\n                };\n                readonly output: InferObjectOutput<\n                  PartialEntries<TEntries, TKeys>\n                > & { [key: string]: InferOutput<TRest> };\n                readonly issue: InferIssue<TSchema>;\n              }\n            | undefined;\n        }\n      : never;\n\n/**\n * Creates a modified copy of an object schema that marks all entries as optional.\n *\n * @param schema The schema to modify.\n *\n * @returns An object schema.\n */\nexport function partial<const TSchema extends Schema>(\n  schema: TSchema\n): SchemaWithPartial<TSchema, undefined>;\n\n/**\n * Creates a modified copy of an object schema that marks the selected entries\n * as optional.\n *\n * @param schema The schema to modify.\n * @param keys The selected entries.\n *\n * @returns An object schema.\n */\nexport function partial<\n  const TSchema extends Schema,\n  const TKeys extends ObjectKeys<TSchema>,\n>(schema: TSchema, keys: TKeys): SchemaWithPartial<TSchema, TKeys>;\n\n// @__NO_SIDE_EFFECTS__\nexport function partial(\n  schema: Schema,\n  keys?: ObjectKeys<Schema>\n): SchemaWithPartial<Schema, ObjectKeys<Schema> | undefined> {\n  // Create modified object entries\n  const entries: PartialEntries<ObjectEntries, ObjectKeys<Schema>> = {};\n  for (const key in schema.entries) {\n    // @ts-expect-error\n    entries[key] =\n      !keys || keys.includes(key)\n        ? optional(schema.entries[key])\n        : schema.entries[key];\n  }\n\n  // Return modified copy of schema\n  return {\n    ...schema,\n    entries,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/methods/partial/partialAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport {\n  boolean,\n  type BooleanIssue,\n  nullishAsync,\n  number,\n  type NumberIssue,\n  objectAsync,\n  type ObjectIssue,\n  objectWithRestAsync,\n  type ObjectWithRestIssue,\n  string,\n  type StringIssue,\n} from '../../schemas/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { partialAsync, type SchemaWithPartialAsync } from './partialAsync.ts';\n\ndescribe('partialAsync', () => {\n  const entries = {\n    key1: string(),\n    key2: number(),\n    key3: string(),\n    key4: nullishAsync(number(), async () => 123),\n  };\n\n  describe('objectAsync', () => {\n    const wrapped = objectAsync(entries);\n    type Wrapped = typeof wrapped;\n    type Schema1 = SchemaWithPartialAsync<Wrapped, undefined>;\n    type Schema2 = SchemaWithPartialAsync<Wrapped, ['key1', 'key3']>;\n\n    describe('should return schema objectAsync', () => {\n      test('with undefined keys', () => {\n        expectTypeOf(partialAsync(wrapped)).toEqualTypeOf<Schema1>();\n      });\n\n      test('with specific keys', () => {\n        expectTypeOf(\n          partialAsync(wrapped, ['key1', 'key3'])\n        ).toEqualTypeOf<Schema2>();\n      });\n    });\n\n    describe('should infer correct types', () => {\n      test('of input', () => {\n        expectTypeOf<InferInput<Schema1>>().toEqualTypeOf<{\n          key1?: string;\n          key2?: number;\n          key3?: string;\n          key4?: number | null;\n        }>();\n        expectTypeOf<InferInput<Schema2>>().toEqualTypeOf<{\n          key1?: string;\n          key2: number;\n          key3?: string;\n          key4?: number | null;\n        }>();\n      });\n\n      test('of output', () => {\n        expectTypeOf<InferOutput<Schema1>>().toEqualTypeOf<{\n          key1?: string;\n          key2?: number;\n          key3?: string;\n          key4?: number;\n        }>();\n        expectTypeOf<InferOutput<Schema2>>().toEqualTypeOf<{\n          key1?: string;\n          key2: number;\n          key3?: string;\n          key4: number;\n        }>();\n      });\n\n      test('of issue', () => {\n        expectTypeOf<InferIssue<Schema1>>().toEqualTypeOf<\n          ObjectIssue | StringIssue | NumberIssue\n        >();\n        expectTypeOf<InferIssue<Schema2>>().toEqualTypeOf<\n          ObjectIssue | StringIssue | NumberIssue\n        >();\n      });\n    });\n  });\n\n  describe('objectWithRestAsync', () => {\n    const wrapped = objectWithRestAsync(entries, boolean());\n    type Wrapped = typeof wrapped;\n    type Schema1 = SchemaWithPartialAsync<Wrapped, undefined>;\n    type Schema2 = SchemaWithPartialAsync<Wrapped, ['key2', 'key3']>;\n\n    describe('should return schema objectAsync', () => {\n      test('with undefined keys', () => {\n        expectTypeOf(partialAsync(wrapped)).toEqualTypeOf<Schema1>();\n      });\n\n      test('with specific keys', () => {\n        expectTypeOf(\n          partialAsync(wrapped, ['key2', 'key3'])\n        ).toEqualTypeOf<Schema2>();\n      });\n    });\n\n    describe('should infer correct types', () => {\n      test('of input', () => {\n        expectTypeOf<InferInput<Schema1>>().toEqualTypeOf<\n          {\n            key1?: string;\n            key2?: number;\n            key3?: string;\n            key4?: number | null;\n          } & { [key: string]: boolean }\n        >();\n        expectTypeOf<InferInput<Schema2>>().toEqualTypeOf<\n          {\n            key1: string;\n            key2?: number;\n            key3?: string;\n            key4?: number | null;\n          } & { [key: string]: boolean }\n        >();\n      });\n\n      test('of output', () => {\n        expectTypeOf<InferOutput<Schema1>>().toEqualTypeOf<\n          {\n            key1?: string;\n            key2?: number;\n            key3?: string;\n            key4?: number;\n          } & { [key: string]: boolean }\n        >();\n        expectTypeOf<InferOutput<Schema2>>().toEqualTypeOf<\n          {\n            key1: string;\n            key2?: number;\n            key3?: string;\n            key4: number;\n          } & { [key: string]: boolean }\n        >();\n      });\n\n      test('of issue', () => {\n        expectTypeOf<InferIssue<Schema1>>().toEqualTypeOf<\n          ObjectWithRestIssue | NumberIssue | StringIssue | BooleanIssue\n        >();\n        expectTypeOf<InferIssue<Schema2>>().toEqualTypeOf<\n          ObjectWithRestIssue | NumberIssue | StringIssue | BooleanIssue\n        >();\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/partial/partialAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  boolean,\n  nullishAsync,\n  number,\n  objectAsync,\n  objectWithRestAsync,\n  optionalAsync,\n  string,\n} from '../../schemas/index.ts';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport { expectNoSchemaIssueAsync } from '../../vitest/index.ts';\nimport { partialAsync } from './partialAsync.ts';\n\ndescribe('partialAsync', () => {\n  const entries = {\n    key1: string(),\n    key2: number(),\n    key3: string(),\n    key4: nullishAsync(number(), async () => 123),\n  };\n  const baseInfo = {\n    message: expect.any(String),\n    requirement: undefined,\n    issues: undefined,\n    lang: undefined,\n    abortEarly: undefined,\n    abortPipeEarly: undefined,\n  } as const;\n\n  describe('objectAsync', () => {\n    const wrapped = objectAsync(entries);\n    const schema1 = partialAsync(wrapped);\n    const schema2 = partialAsync(wrapped, ['key1', 'key3']);\n\n    describe('should return schema objectAsync', () => {\n      test('with undefined keys', () => {\n        expect(schema1).toStrictEqual({\n          kind: 'schema',\n          type: 'object',\n          reference: objectAsync,\n          expects: 'Object',\n          entries: {\n            key1: {\n              ...optionalAsync(entries.key1),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key2: {\n              ...optionalAsync(entries.key2),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key3: {\n              ...optionalAsync(entries.key3),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: {\n              ...optionalAsync(entries.key4),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n          },\n          message: undefined,\n          async: true,\n          '~standard': {\n            version: 1,\n            vendor: 'valibot',\n            validate: expect.any(Function),\n          },\n          '~run': expect.any(Function),\n        } satisfies typeof schema1);\n      });\n\n      test('with specific keys', () => {\n        expect(schema2).toStrictEqual({\n          kind: 'schema',\n          type: 'object',\n          reference: objectAsync,\n          expects: 'Object',\n          entries: {\n            key1: {\n              ...optionalAsync(entries.key1),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key2: entries.key2,\n            key3: {\n              ...optionalAsync(entries.key3),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: entries.key4,\n          },\n          message: undefined,\n          async: true,\n          '~standard': {\n            version: 1,\n            vendor: 'valibot',\n            validate: expect.any(Function),\n          },\n          '~run': expect.any(Function),\n        } satisfies typeof schema2);\n      });\n    });\n\n    describe('should return dataset without nested issues', () => {\n      test('if partialAsync keys are present', async () => {\n        const input = { key1: 'foo', key2: 123, key3: 'bar', key4: 123 };\n        await expectNoSchemaIssueAsync(schema1, [input]);\n        await expectNoSchemaIssueAsync(schema2, [input]);\n      });\n\n      test('if partialAsync keys are missing', async () => {\n        await expectNoSchemaIssueAsync(schema1, [{}]);\n        await expectNoSchemaIssueAsync(schema2, [{ key2: 123, key4: 123 }]);\n      });\n    });\n\n    describe('should return dataset with nested issues', () => {\n      test('if non-partialed keys are missing', async () => {\n        for (const input of [{}, { key1: 'foo', key3: 'bar' }]) {\n          expect(await schema2['~run']({ value: input }, {})).toStrictEqual({\n            typed: false,\n            value: { ...input, key4: 123 },\n            issues: [\n              {\n                ...baseInfo,\n                kind: 'schema',\n                type: 'object',\n                input: undefined,\n                expected: '\"key2\"',\n                received: 'undefined',\n                path: [\n                  {\n                    type: 'object',\n                    origin: 'key',\n                    input: input,\n                    key: 'key2',\n                    value: undefined,\n                  },\n                ],\n              },\n            ],\n          } satisfies FailureDataset<InferIssue<typeof schema2>>);\n        }\n      });\n    });\n  });\n\n  describe('objectWithRestAsync', () => {\n    const rest = boolean();\n    const wrapped = objectWithRestAsync(entries, rest);\n    const schema1 = partialAsync(wrapped);\n    const schema2 = partialAsync(wrapped, ['key2', 'key3']);\n\n    describe('should return schema objectAsync', () => {\n      test('with undefined keys', () => {\n        expect(schema1).toStrictEqual({\n          kind: 'schema',\n          type: 'object_with_rest',\n          reference: objectWithRestAsync,\n          expects: 'Object',\n          entries: {\n            key1: {\n              ...optionalAsync(entries.key1),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key2: {\n              ...optionalAsync(entries.key2),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key3: {\n              ...optionalAsync(entries.key3),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: {\n              ...optionalAsync(entries.key4),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n          },\n          rest,\n          message: undefined,\n          async: true,\n          '~standard': {\n            version: 1,\n            vendor: 'valibot',\n            validate: expect.any(Function),\n          },\n          '~run': expect.any(Function),\n        } satisfies typeof schema1);\n      });\n\n      test('with specific keys', () => {\n        expect(schema2).toStrictEqual({\n          kind: 'schema',\n          type: 'object_with_rest',\n          reference: objectWithRestAsync,\n          expects: 'Object',\n          entries: {\n            key1: entries.key1,\n            key2: {\n              ...optionalAsync(entries.key2),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key3: {\n              ...optionalAsync(entries.key3),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: entries.key4,\n          },\n          rest,\n          message: undefined,\n          async: true,\n          '~standard': {\n            version: 1,\n            vendor: 'valibot',\n            validate: expect.any(Function),\n          },\n          '~run': expect.any(Function),\n        } satisfies typeof schema2);\n      });\n    });\n\n    describe('should return dataset without nested issues', () => {\n      test('if partialAsync keys are present', async () => {\n        const input = {\n          key1: 'foo',\n          key2: 123,\n          key3: 'bar',\n          key4: 123,\n          other: true,\n        };\n        // @ts-expect-error\n        await expectNoSchemaIssueAsync(schema1, [input]);\n        // @ts-expect-error\n        await expectNoSchemaIssueAsync(schema2, [input]);\n      });\n\n      test('if partialAsync keys are missing', async () => {\n        await expectNoSchemaIssueAsync(schema1, [{}]);\n        await expectNoSchemaIssueAsync(schema2, [\n          // @ts-expect-error\n          { key1: 'foo', key4: 123, other: true },\n        ]);\n      });\n    });\n\n    describe('should return dataset with nested issues', () => {\n      test('if non-partialed keys are missing', async () => {\n        for (const input of [{}, { key2: 123, key3: 'bar', other: true }]) {\n          expect(await schema2['~run']({ value: input }, {})).toStrictEqual({\n            typed: false,\n            value: { ...input, key4: 123 },\n            issues: [\n              {\n                ...baseInfo,\n                kind: 'schema',\n                type: 'object_with_rest',\n                input: undefined,\n                expected: '\"key1\"',\n                received: 'undefined',\n                path: [\n                  {\n                    type: 'object',\n                    origin: 'key',\n                    input: input,\n                    key: 'key1',\n                    value: undefined,\n                  },\n                ],\n              },\n            ],\n          } satisfies FailureDataset<InferIssue<typeof schema2>>);\n        }\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/partial/partialAsync.ts",
    "content": "import {\n  type LooseObjectIssue,\n  type LooseObjectSchemaAsync,\n  type ObjectIssue,\n  type ObjectSchemaAsync,\n  type ObjectWithRestIssue,\n  type ObjectWithRestSchemaAsync,\n  optionalAsync,\n  type OptionalSchemaAsync,\n  type StrictObjectIssue,\n  type StrictObjectSchemaAsync,\n} from '../../schemas/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  Config,\n  ErrorMessage,\n  InferInput,\n  InferIssue,\n  InferObjectInput,\n  InferObjectOutput,\n  InferOutput,\n  ObjectEntriesAsync,\n  ObjectKeys,\n  OutputDataset,\n  SchemaWithoutPipe,\n  StandardProps,\n  UnknownDataset,\n} from '../../types/index.ts';\nimport { _getStandardProps } from '../../utils/index.ts';\n\n/**\n * Schema type.\n */\ntype Schema = SchemaWithoutPipe<\n  | LooseObjectSchemaAsync<\n      ObjectEntriesAsync,\n      ErrorMessage<LooseObjectIssue> | undefined\n    >\n  | ObjectSchemaAsync<ObjectEntriesAsync, ErrorMessage<ObjectIssue> | undefined>\n  | ObjectWithRestSchemaAsync<\n      ObjectEntriesAsync,\n      | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n      | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n      ErrorMessage<ObjectWithRestIssue> | undefined\n    >\n  | StrictObjectSchemaAsync<\n      ObjectEntriesAsync,\n      ErrorMessage<StrictObjectIssue> | undefined\n    >\n>;\n\n/**\n * Partial entries type.\n */\ntype PartialEntries<\n  TEntries extends ObjectEntriesAsync,\n  TKeys extends readonly (keyof TEntries)[] | undefined,\n> = {\n  [TKey in keyof TEntries]: TKeys extends readonly (keyof TEntries)[]\n    ? TKey extends TKeys[number]\n      ? OptionalSchemaAsync<TEntries[TKey], undefined>\n      : TEntries[TKey]\n    : OptionalSchemaAsync<TEntries[TKey], undefined>;\n};\n\n/**\n * Schema with partial type.\n */\nexport type SchemaWithPartialAsync<\n  TSchema extends Schema,\n  TKeys extends ObjectKeys<TSchema> | undefined,\n> = TSchema extends\n  | ObjectSchemaAsync<infer TEntries, ErrorMessage<ObjectIssue> | undefined>\n  | StrictObjectSchemaAsync<\n      infer TEntries,\n      ErrorMessage<StrictObjectIssue> | undefined\n    >\n  ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & {\n      /**\n       * The object entries.\n       */\n      readonly entries: PartialEntries<TEntries, TKeys>;\n      /**\n       * The Standard Schema properties.\n       *\n       * @internal\n       */\n      readonly '~standard': StandardProps<\n        InferObjectInput<PartialEntries<TEntries, TKeys>>,\n        InferObjectOutput<PartialEntries<TEntries, TKeys>>\n      >;\n      /**\n       * Parses unknown input.\n       *\n       * @param dataset The input dataset.\n       * @param config The configuration.\n       *\n       * @returns The output dataset.\n       *\n       * @internal\n       */\n      readonly '~run': (\n        dataset: UnknownDataset,\n        config: Config<BaseIssue<unknown>>\n      ) => Promise<\n        OutputDataset<\n          InferObjectOutput<PartialEntries<TEntries, TKeys>>,\n          InferIssue<TSchema>\n        >\n      >;\n      /**\n       * The input, output and issue type.\n       *\n       * @internal\n       */\n      readonly '~types'?:\n        | {\n            readonly input: InferObjectInput<PartialEntries<TEntries, TKeys>>;\n            readonly output: InferObjectOutput<PartialEntries<TEntries, TKeys>>;\n            readonly issue: InferIssue<TSchema>;\n          }\n        | undefined;\n    }\n  : TSchema extends LooseObjectSchemaAsync<\n        infer TEntries,\n        ErrorMessage<LooseObjectIssue> | undefined\n      >\n    ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & {\n        /**\n         * The object entries.\n         */\n        readonly entries: PartialEntries<TEntries, TKeys>;\n        /**\n         * The Standard Schema properties.\n         *\n         * @internal\n         */\n        readonly '~standard': StandardProps<\n          InferObjectInput<PartialEntries<TEntries, TKeys>> & {\n            [key: string]: unknown;\n          },\n          InferObjectOutput<PartialEntries<TEntries, TKeys>> & {\n            [key: string]: unknown;\n          }\n        >;\n        /**\n         * Parses unknown input.\n         *\n         * @param dataset The input dataset.\n         * @param config The configuration.\n         *\n         * @returns The output dataset.\n         *\n         * @internal\n         */\n        readonly '~run': (\n          dataset: UnknownDataset,\n          config: Config<BaseIssue<unknown>>\n        ) => Promise<\n          OutputDataset<\n            InferObjectOutput<PartialEntries<TEntries, TKeys>> & {\n              [key: string]: unknown;\n            },\n            InferIssue<TSchema>\n          >\n        >;\n        /**\n         * The input, output and issue type.\n         *\n         * @internal\n         */\n        readonly '~types'?:\n          | {\n              readonly input: InferObjectInput<\n                PartialEntries<TEntries, TKeys>\n              > & {\n                [key: string]: unknown;\n              };\n              readonly output: InferObjectOutput<\n                PartialEntries<TEntries, TKeys>\n              > & {\n                [key: string]: unknown;\n              };\n              readonly issue: InferIssue<TSchema>;\n            }\n          | undefined;\n      }\n    : TSchema extends ObjectWithRestSchemaAsync<\n          infer TEntries,\n          infer TRest,\n          ErrorMessage<ObjectWithRestIssue> | undefined\n        >\n      ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & {\n          /**\n           * The object entries.\n           */\n          readonly entries: PartialEntries<TEntries, TKeys>;\n          /**\n           * The Standard Schema properties.\n           *\n           * @internal\n           */\n          readonly '~standard': StandardProps<\n            InferObjectInput<PartialEntries<TEntries, TKeys>> & {\n              [key: string]: InferInput<TRest>;\n            },\n            InferObjectOutput<PartialEntries<TEntries, TKeys>> & {\n              [key: string]: InferOutput<TRest>;\n            }\n          >;\n          /**\n           * Parses unknown input.\n           *\n           * @param dataset The input dataset.\n           * @param config The configuration.\n           *\n           * @returns The output dataset.\n           *\n           * @internal\n           */\n          readonly '~run': (\n            dataset: UnknownDataset,\n            config: Config<BaseIssue<unknown>>\n          ) => Promise<\n            OutputDataset<\n              InferObjectOutput<PartialEntries<TEntries, TKeys>> & {\n                [key: string]: InferOutput<TRest>;\n              },\n              InferIssue<TSchema>\n            >\n          >;\n          /**\n           * The input, output and issue type.\n           *\n           * @internal\n           */\n          readonly '~types'?:\n            | {\n                readonly input: InferObjectInput<\n                  PartialEntries<TEntries, TKeys>\n                > & {\n                  [key: string]: InferInput<TRest>;\n                };\n                readonly output: InferObjectOutput<\n                  PartialEntries<TEntries, TKeys>\n                > & { [key: string]: InferOutput<TRest> };\n                readonly issue: InferIssue<TSchema>;\n              }\n            | undefined;\n        }\n      : never;\n\n/**\n * Creates a modified copy of an object schema that marks all entries as optional.\n *\n * @param schema The schema to modify.\n *\n * @returns An object schema.\n */\nexport function partialAsync<const TSchema extends Schema>(\n  schema: TSchema\n): SchemaWithPartialAsync<TSchema, undefined>;\n\n/**\n * Creates a modified copy of an object schema that marks the selected entries\n * as optional.\n *\n * @param schema The schema to modify.\n * @param keys The selected entries.\n *\n * @returns An object schema.\n */\nexport function partialAsync<\n  const TSchema extends Schema,\n  const TKeys extends ObjectKeys<TSchema>,\n>(schema: TSchema, keys: TKeys): SchemaWithPartialAsync<TSchema, TKeys>;\n\n// @__NO_SIDE_EFFECTS__\nexport function partialAsync(\n  schema: Schema,\n  keys?: ObjectKeys<Schema>\n): SchemaWithPartialAsync<Schema, ObjectKeys<Schema> | undefined> {\n  // Create modified object entries\n  const entries: PartialEntries<ObjectEntriesAsync, ObjectKeys<Schema>> = {};\n  for (const key in schema.entries) {\n    // @ts-expect-error\n    entries[key] =\n      !keys || keys.includes(key)\n        ? optionalAsync(schema.entries[key])\n        : schema.entries[key];\n  }\n\n  // Return modified copy of schema\n  return {\n    ...schema,\n    entries,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/methods/pick/index.ts",
    "content": "export * from './pick.ts';\n"
  },
  {
    "path": "library/src/methods/pick/pick.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport {\n  boolean,\n  type BooleanIssue,\n  type BooleanSchema,\n  number,\n  type NumberIssue,\n  type NumberSchema,\n  object,\n  type ObjectIssue,\n  type ObjectSchema,\n  objectWithRest,\n  type ObjectWithRestIssue,\n  type ObjectWithRestSchema,\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../../schemas/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { pick, type SchemaWithPick } from './pick.ts';\n\ndescribe('pick', () => {\n  describe('object', () => {\n    type Schema = SchemaWithPick<\n      ObjectSchema<\n        {\n          readonly key1: StringSchema<undefined>;\n          readonly key2: NumberSchema<undefined>;\n          readonly key3: StringSchema<undefined>;\n          readonly key4: NumberSchema<undefined>;\n        },\n        undefined\n      >,\n      ['key1', 'key3']\n    >;\n\n    test('should return schema object', () => {\n      expectTypeOf(\n        pick(\n          object({\n            key1: string(),\n            key2: number(),\n            key3: string(),\n            key4: number(),\n          }),\n          ['key1', 'key3']\n        )\n      ).toEqualTypeOf<Schema>();\n    });\n\n    describe('should infer correct types', () => {\n      test('of input', () => {\n        expectTypeOf<InferInput<Schema>>().toEqualTypeOf<{\n          key1: string;\n          key3: string;\n        }>();\n      });\n\n      test('of output', () => {\n        expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<{\n          key1: string;\n          key3: string;\n        }>();\n      });\n\n      test('of issue', () => {\n        expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n          ObjectIssue | StringIssue\n        >();\n      });\n    });\n  });\n\n  describe('objectWithRest', () => {\n    type Schema = SchemaWithPick<\n      ObjectWithRestSchema<\n        {\n          readonly key1: StringSchema<undefined>;\n          readonly key2: NumberSchema<undefined>;\n          readonly key3: StringSchema<undefined>;\n          readonly key4: NumberSchema<undefined>;\n        },\n        BooleanSchema<undefined>,\n        undefined\n      >,\n      ['key2', 'key3']\n    >;\n\n    test('should return schema object', () => {\n      expectTypeOf(\n        pick(\n          objectWithRest(\n            { key1: string(), key2: number(), key3: string(), key4: number() },\n            boolean()\n          ),\n          ['key2', 'key3']\n        )\n      ).toEqualTypeOf<Schema>();\n    });\n\n    describe('should infer correct types', () => {\n      test('of input', () => {\n        expectTypeOf<InferInput<Schema>>().toEqualTypeOf<\n          { key2: number; key3: string } & { [key: string]: boolean }\n        >();\n      });\n\n      test('of output', () => {\n        expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<\n          { key2: number; key3: string } & { [key: string]: boolean }\n        >();\n      });\n\n      test('of issue', () => {\n        expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n          ObjectWithRestIssue | NumberIssue | StringIssue | BooleanIssue\n        >();\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/pick/pick.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  boolean,\n  type BooleanIssue,\n  number,\n  object,\n  objectWithRest,\n  string,\n} from '../../schemas/index.ts';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport { expectNoSchemaIssue } from '../../vitest/index.ts';\nimport { pick } from './pick.ts';\n\ndescribe('pick', () => {\n  const entries = {\n    key1: string(),\n    key2: number(),\n    key3: string(),\n    key4: number(),\n  };\n  const baseInfo = {\n    message: expect.any(String),\n    requirement: undefined,\n    issues: undefined,\n    lang: undefined,\n    abortEarly: undefined,\n    abortPipeEarly: undefined,\n  } as const;\n\n  describe('object', () => {\n    const schema = pick(object(entries), ['key1', 'key3']);\n\n    test('should return schema object', () => {\n      expect(schema).toStrictEqual({\n        kind: 'schema',\n        type: 'object',\n        reference: object,\n        expects: 'Object',\n        entries: {\n          key1: {\n            ...string(),\n            '~standard': {\n              version: 1,\n              vendor: 'valibot',\n              validate: expect.any(Function),\n            },\n            '~run': expect.any(Function),\n          },\n          key3: {\n            ...string(),\n            '~standard': {\n              version: 1,\n              vendor: 'valibot',\n              validate: expect.any(Function),\n            },\n            '~run': expect.any(Function),\n          },\n        },\n        message: undefined,\n        async: false,\n        '~standard': {\n          version: 1,\n          vendor: 'valibot',\n          validate: expect.any(Function),\n        },\n        '~run': expect.any(Function),\n      } satisfies typeof schema);\n    });\n\n    describe('should return dataset without nested issues', () => {\n      test('if picked keys are specified', () => {\n        expectNoSchemaIssue(schema, [{ key1: 'foo', key3: 'bar' }]);\n      });\n\n      test('for unknown entries', () => {\n        expect(\n          schema['~run'](\n            { value: { key1: 'foo', key2: 123, key3: 'bar', other: null } },\n            {}\n          )\n        ).toStrictEqual({\n          typed: true,\n          value: { key1: 'foo', key3: 'bar' },\n        });\n      });\n    });\n\n    describe('should return dataset with nested issues', () => {\n      test('if a picked key is missing', () => {\n        expect(schema['~run']({ value: { key3: 'bar' } }, {})).toStrictEqual({\n          typed: false,\n          value: { key3: 'bar' },\n          issues: [\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'object',\n              input: undefined,\n              expected: '\"key1\"',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input: { key3: 'bar' },\n                  key: 'key1',\n                  value: undefined,\n                },\n              ],\n            },\n          ],\n        } satisfies FailureDataset<InferIssue<typeof schema>>);\n      });\n    });\n  });\n\n  describe('objectWithRest', () => {\n    const schema = pick(objectWithRest(entries, boolean()), ['key2', 'key3']);\n\n    test('should return schema object', () => {\n      expect(schema).toStrictEqual({\n        kind: 'schema',\n        type: 'object_with_rest',\n        reference: objectWithRest,\n        expects: 'Object',\n        entries: {\n          key2: {\n            ...number(),\n            '~standard': {\n              version: 1,\n              vendor: 'valibot',\n              validate: expect.any(Function),\n            },\n            '~run': expect.any(Function),\n          },\n          key3: {\n            ...string(),\n            '~standard': {\n              version: 1,\n              vendor: 'valibot',\n              validate: expect.any(Function),\n            },\n            '~run': expect.any(Function),\n          },\n        },\n        rest: {\n          ...boolean(),\n          '~standard': {\n            version: 1,\n            vendor: 'valibot',\n            validate: expect.any(Function),\n          },\n          '~run': expect.any(Function),\n        },\n        message: undefined,\n        async: false,\n        '~standard': {\n          version: 1,\n          vendor: 'valibot',\n          validate: expect.any(Function),\n        },\n        '~run': expect.any(Function),\n      } satisfies typeof schema);\n    });\n\n    describe('should return dataset without nested issues', () => {\n      test('if picked keys are specified', () => {\n        // @ts-expect-error\n        expectNoSchemaIssue(schema, [{ key2: 123, key3: 'bar' }]);\n      });\n\n      test('if not picked key matches rest', () => {\n        // @ts-expect-error\n        expectNoSchemaIssue(schema, [{ key1: false, key2: 123, key3: 'bar' }]);\n      });\n    });\n\n    describe('should return dataset with nested issues', () => {\n      test('if a picked key is missing', () => {\n        expect(schema['~run']({ value: { key3: 'foo' } }, {})).toStrictEqual({\n          typed: false,\n          value: { key3: 'foo' },\n          issues: [\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'object_with_rest',\n              input: undefined,\n              expected: '\"key2\"',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input: { key3: 'foo' },\n                  key: 'key2',\n                  value: undefined,\n                },\n              ],\n            },\n          ],\n        } satisfies FailureDataset<InferIssue<typeof schema>>);\n      });\n\n      test('if a not picked key does not match rest', () => {\n        expect(\n          schema['~run']({ value: { key1: 'foo', key2: 123, key3: 'foo' } }, {})\n        ).toStrictEqual({\n          typed: false,\n          value: { key1: 'foo', key2: 123, key3: 'foo' },\n          issues: [\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'boolean',\n              input: 'foo',\n              expected: 'boolean',\n              received: '\"foo\"',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'value',\n                  input: { key1: 'foo', key2: 123, key3: 'foo' },\n                  key: 'key1',\n                  value: 'foo',\n                },\n              ],\n            } satisfies BooleanIssue,\n          ],\n        } satisfies FailureDataset<InferIssue<typeof schema>>);\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/pick/pick.ts",
    "content": "import type {\n  LooseObjectIssue,\n  LooseObjectSchema,\n  LooseObjectSchemaAsync,\n  ObjectIssue,\n  ObjectSchema,\n  ObjectSchemaAsync,\n  ObjectWithRestIssue,\n  ObjectWithRestSchema,\n  ObjectWithRestSchemaAsync,\n  StrictObjectIssue,\n  StrictObjectSchema,\n  StrictObjectSchemaAsync,\n} from '../../schemas/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  Config,\n  ErrorMessage,\n  InferInput,\n  InferIssue,\n  InferObjectInput,\n  InferObjectIssue,\n  InferObjectOutput,\n  InferOutput,\n  ObjectEntries,\n  ObjectEntriesAsync,\n  ObjectKeys,\n  OutputDataset,\n  SchemaWithoutPipe,\n  StandardProps,\n  UnknownDataset,\n} from '../../types/index.ts';\nimport { _getStandardProps } from '../../utils/index.ts';\n\n/**\n * The schema type.\n */\ntype Schema = SchemaWithoutPipe<\n  | LooseObjectSchema<ObjectEntries, ErrorMessage<LooseObjectIssue> | undefined>\n  | LooseObjectSchemaAsync<\n      ObjectEntriesAsync,\n      ErrorMessage<LooseObjectIssue> | undefined\n    >\n  | ObjectSchema<ObjectEntries, ErrorMessage<ObjectIssue> | undefined>\n  | ObjectSchemaAsync<ObjectEntriesAsync, ErrorMessage<ObjectIssue> | undefined>\n  | ObjectWithRestSchema<\n      ObjectEntries,\n      BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n      ErrorMessage<ObjectWithRestIssue> | undefined\n    >\n  | ObjectWithRestSchemaAsync<\n      ObjectEntriesAsync,\n      | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n      | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n      ErrorMessage<ObjectWithRestIssue> | undefined\n    >\n  | StrictObjectSchema<\n      ObjectEntries,\n      ErrorMessage<StrictObjectIssue> | undefined\n    >\n  | StrictObjectSchemaAsync<\n      ObjectEntriesAsync,\n      ErrorMessage<StrictObjectIssue> | undefined\n    >\n>;\n\n/**\n * Schema with pick type.\n */\nexport type SchemaWithPick<\n  TSchema extends Schema,\n  TKeys extends ObjectKeys<TSchema>,\n> = TSchema extends\n  | ObjectSchema<infer TEntries, ErrorMessage<ObjectIssue> | undefined>\n  | StrictObjectSchema<\n      infer TEntries,\n      ErrorMessage<StrictObjectIssue> | undefined\n    >\n  ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & {\n      /**\n       * The object entries.\n       */\n      readonly entries: Pick<TEntries, TKeys[number]>;\n      /**\n       * The Standard Schema properties.\n       *\n       * @internal\n       */\n      readonly '~standard': StandardProps<\n        InferObjectInput<Pick<TEntries, TKeys[number]>>,\n        InferObjectOutput<Pick<TEntries, TKeys[number]>>\n      >;\n      /**\n       * Parses unknown input.\n       *\n       * @param dataset The input dataset.\n       * @param config The configuration.\n       *\n       * @returns The output dataset.\n       *\n       * @internal\n       */\n      readonly '~run': (\n        dataset: UnknownDataset,\n        config: Config<BaseIssue<unknown>>\n      ) => OutputDataset<\n        InferObjectOutput<Pick<TEntries, TKeys[number]>>,\n        | Extract<InferIssue<TSchema>, { type: TSchema['type'] }>\n        | InferObjectIssue<Pick<TEntries, TKeys[number]>>\n      >;\n      /**\n       * The input, output and issue type.\n       *\n       * @internal\n       */\n      readonly '~types'?:\n        | {\n            readonly input: InferObjectInput<Pick<TEntries, TKeys[number]>>;\n            readonly output: InferObjectOutput<Pick<TEntries, TKeys[number]>>;\n            readonly issue:\n              | Extract<InferIssue<TSchema>, { type: TSchema['type'] }>\n              | InferObjectIssue<Pick<TEntries, TKeys[number]>>;\n          }\n        | undefined;\n    }\n  : TSchema extends\n        | ObjectSchemaAsync<\n            infer TEntries,\n            ErrorMessage<ObjectIssue> | undefined\n          >\n        | StrictObjectSchemaAsync<\n            infer TEntries,\n            ErrorMessage<StrictObjectIssue> | undefined\n          >\n    ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & {\n        /**\n         * The object entries.\n         */\n        readonly entries: Pick<TEntries, TKeys[number]>;\n        /**\n         * The Standard Schema properties.\n         *\n         * @internal\n         */\n        readonly '~standard': StandardProps<\n          InferObjectInput<Pick<TEntries, TKeys[number]>>,\n          InferObjectOutput<Pick<TEntries, TKeys[number]>>\n        >;\n        /**\n         * Parses unknown input.\n         *\n         * @param dataset The input dataset.\n         * @param config The configuration.\n         *\n         * @returns The output dataset.\n         *\n         * @internal\n         */\n        readonly '~run': (\n          dataset: UnknownDataset,\n          config: Config<BaseIssue<unknown>>\n        ) => Promise<\n          OutputDataset<\n            InferObjectOutput<Pick<TEntries, TKeys[number]>>,\n            | Extract<InferIssue<TSchema>, { type: TSchema['type'] }>\n            | InferObjectIssue<Pick<TEntries, TKeys[number]>>\n          >\n        >;\n        /**\n         * The input, output and issue type.\n         *\n         * @internal\n         */\n        readonly '~types'?:\n          | {\n              readonly input: InferObjectInput<Pick<TEntries, TKeys[number]>>;\n              readonly output: InferObjectOutput<Pick<TEntries, TKeys[number]>>;\n              readonly issue:\n                | Extract<InferIssue<TSchema>, { type: TSchema['type'] }>\n                | InferObjectIssue<Pick<TEntries, TKeys[number]>>;\n            }\n          | undefined;\n      }\n    : TSchema extends LooseObjectSchema<\n          infer TEntries,\n          ErrorMessage<LooseObjectIssue> | undefined\n        >\n      ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & {\n          /**\n           * The object entries.\n           */\n          readonly entries: Pick<TEntries, TKeys[number]>;\n          /**\n           * The Standard Schema properties.\n           *\n           * @internal\n           */\n          readonly '~standard': StandardProps<\n            InferObjectInput<Pick<TEntries, TKeys[number]>> & {\n              [key: string]: unknown;\n            },\n            InferObjectOutput<Pick<TEntries, TKeys[number]>> & {\n              [key: string]: unknown;\n            }\n          >;\n          /**\n           * Parses unknown input.\n           *\n           * @param dataset The input dataset.\n           * @param config The configuration.\n           *\n           * @returns The output dataset.\n           *\n           * @internal\n           */\n          readonly '~run': (\n            dataset: UnknownDataset,\n            config: Config<BaseIssue<unknown>>\n          ) => OutputDataset<\n            InferObjectOutput<Pick<TEntries, TKeys[number]>> & {\n              [key: string]: unknown;\n            },\n            | Extract<InferIssue<TSchema>, { type: TSchema['type'] }>\n            | InferObjectIssue<Pick<TEntries, TKeys[number]>>\n          >;\n          /**\n           * The input, output and issue type.\n           *\n           * @internal\n           */\n          readonly '~types'?:\n            | {\n                readonly input: InferObjectInput<\n                  Pick<TEntries, TKeys[number]>\n                > & {\n                  [key: string]: unknown;\n                };\n                readonly output: InferObjectOutput<\n                  Pick<TEntries, TKeys[number]>\n                > & {\n                  [key: string]: unknown;\n                };\n                readonly issue:\n                  | Extract<InferIssue<TSchema>, { type: TSchema['type'] }>\n                  | InferObjectIssue<Pick<TEntries, TKeys[number]>>;\n              }\n            | undefined;\n        }\n      : TSchema extends LooseObjectSchemaAsync<\n            infer TEntries,\n            ErrorMessage<LooseObjectIssue> | undefined\n          >\n        ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & {\n            /**\n             * The object entries.\n             */\n            readonly entries: Pick<TEntries, TKeys[number]>;\n            /**\n             * The Standard Schema properties.\n             *\n             * @internal\n             */\n            readonly '~standard': StandardProps<\n              InferObjectInput<Pick<TEntries, TKeys[number]>> & {\n                [key: string]: unknown;\n              },\n              InferObjectOutput<Pick<TEntries, TKeys[number]>> & {\n                [key: string]: unknown;\n              }\n            >;\n            /**\n             * Parses unknown input.\n             *\n             * @param dataset The input dataset.\n             * @param config The configuration.\n             *\n             * @returns The output dataset.\n             *\n             * @internal\n             */\n            readonly '~run': (\n              dataset: UnknownDataset,\n              config: Config<BaseIssue<unknown>>\n            ) => Promise<\n              OutputDataset<\n                InferObjectOutput<Pick<TEntries, TKeys[number]>> & {\n                  [key: string]: unknown;\n                },\n                | Extract<InferIssue<TSchema>, { type: TSchema['type'] }>\n                | InferObjectIssue<Pick<TEntries, TKeys[number]>>\n              >\n            >;\n            /**\n             * The input, output and issue type.\n             *\n             * @internal\n             */\n            readonly '~types'?:\n              | {\n                  readonly input: InferObjectInput<\n                    Pick<TEntries, TKeys[number]>\n                  > & {\n                    [key: string]: unknown;\n                  };\n                  readonly output: InferObjectOutput<\n                    Pick<TEntries, TKeys[number]>\n                  > & {\n                    [key: string]: unknown;\n                  };\n                  readonly issue:\n                    | Extract<InferIssue<TSchema>, { type: TSchema['type'] }>\n                    | InferObjectIssue<Pick<TEntries, TKeys[number]>>;\n                }\n              | undefined;\n          }\n        : TSchema extends ObjectWithRestSchema<\n              infer TEntries,\n              BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n              ErrorMessage<ObjectWithRestIssue> | undefined\n            >\n          ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & {\n              /**\n               * The object entries.\n               */\n              readonly entries: Pick<TEntries, TKeys[number]>;\n              /**\n               * The Standard Schema properties.\n               *\n               * @internal\n               */\n              readonly '~standard': StandardProps<\n                InferObjectInput<Pick<TEntries, TKeys[number]>> & {\n                  [key: string]: InferInput<TSchema['rest']>;\n                },\n                InferObjectOutput<Pick<TEntries, TKeys[number]>> & {\n                  [key: string]: InferOutput<TSchema['rest']>;\n                }\n              >;\n              /**\n               * Parses unknown input.\n               *\n               * @param dataset The input dataset.\n               * @param config The configuration.\n               *\n               * @returns The output dataset.\n               *\n               * @internal\n               */\n              readonly '~run': (\n                dataset: UnknownDataset,\n                config: Config<BaseIssue<unknown>>\n              ) => OutputDataset<\n                InferObjectOutput<Pick<TEntries, TKeys[number]>> & {\n                  [key: string]: InferOutput<TSchema['rest']>;\n                },\n                | Extract<InferIssue<TSchema>, { type: TSchema['type'] }>\n                | InferObjectIssue<Pick<TEntries, TKeys[number]>>\n                | InferIssue<TSchema['rest']>\n              >;\n              /**\n               * The input, output and issue type.\n               *\n               * @internal\n               */\n              readonly '~types'?:\n                | {\n                    readonly input: InferObjectInput<\n                      Pick<TEntries, TKeys[number]>\n                    > & {\n                      [key: string]: InferInput<TSchema['rest']>;\n                    };\n                    readonly output: InferObjectOutput<\n                      Pick<TEntries, TKeys[number]>\n                    > & { [key: string]: InferOutput<TSchema['rest']> };\n                    readonly issue:\n                      | Extract<InferIssue<TSchema>, { type: TSchema['type'] }>\n                      | InferObjectIssue<Pick<TEntries, TKeys[number]>>\n                      | InferIssue<TSchema['rest']>;\n                  }\n                | undefined;\n            }\n          : TSchema extends ObjectWithRestSchemaAsync<\n                infer TEntries,\n                BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n                ErrorMessage<ObjectWithRestIssue> | undefined\n              >\n            ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & {\n                /**\n                 * The object entries.\n                 */\n                readonly entries: Pick<TEntries, TKeys[number]>;\n                /**\n                 * The Standard Schema properties.\n                 *\n                 * @internal\n                 */\n                readonly '~standard': StandardProps<\n                  InferObjectInput<Pick<TEntries, TKeys[number]>> & {\n                    [key: string]: InferInput<TSchema['rest']>;\n                  },\n                  InferObjectOutput<Pick<TEntries, TKeys[number]>> & {\n                    [key: string]: InferOutput<TSchema['rest']>;\n                  }\n                >;\n                /**\n                 * Parses unknown input.\n                 *\n                 * @param dataset The input dataset.\n                 * @param config The configuration.\n                 *\n                 * @returns The output dataset.\n                 *\n                 * @internal\n                 */\n                readonly '~run': (\n                  dataset: UnknownDataset,\n                  config: Config<BaseIssue<unknown>>\n                ) => Promise<\n                  OutputDataset<\n                    InferObjectOutput<Pick<TEntries, TKeys[number]>> & {\n                      [key: string]: InferOutput<TSchema['rest']>;\n                    },\n                    | Extract<InferIssue<TSchema>, { type: TSchema['type'] }>\n                    | InferObjectIssue<Pick<TEntries, TKeys[number]>>\n                    | InferIssue<TSchema['rest']>\n                  >\n                >;\n                /**\n                 * The input, output and issue type.\n                 *\n                 * @internal\n                 */\n                readonly '~types'?:\n                  | {\n                      readonly input: InferObjectInput<\n                        Pick<TEntries, TKeys[number]>\n                      > & {\n                        [key: string]: InferInput<TSchema['rest']>;\n                      };\n                      readonly output: InferObjectOutput<\n                        Pick<TEntries, TKeys[number]>\n                      > & { [key: string]: InferOutput<TSchema['rest']> };\n                      readonly issue:\n                        | Extract<\n                            InferIssue<TSchema>,\n                            { type: TSchema['type'] }\n                          >\n                        | InferObjectIssue<Pick<TEntries, TKeys[number]>>\n                        | InferIssue<TSchema['rest']>;\n                    }\n                  | undefined;\n              }\n            : never;\n\n/**\n * Creates a modified copy of an object schema that contains only the selected\n * entries.\n *\n * @param schema The schema to pick from.\n * @param keys The selected entries.\n *\n * @returns An object schema.\n */\n// @__NO_SIDE_EFFECTS__\nexport function pick<\n  const TSchema extends Schema,\n  const TKeys extends ObjectKeys<TSchema>,\n>(schema: TSchema, keys: TKeys): SchemaWithPick<TSchema, TKeys> {\n  // Create modified object entries\n  // @ts-expect-error\n  const entries: Pick<TSchema['entries'], TKeys[number]> = {};\n  for (const key of keys) {\n    // @ts-expect-error\n    entries[key] = schema.entries[key];\n  }\n\n  // Return modified copy of schema\n  // @ts-expect-error\n  return {\n    ...schema,\n    entries,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/methods/pipe/index.ts",
    "content": "export * from './pipe.ts';\nexport * from './pipeAsync.ts';\n"
  },
  {
    "path": "library/src/methods/pipe/pipe.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport {\n  decimal,\n  type DecimalAction,\n  type DecimalIssue,\n  description,\n  type DescriptionAction,\n  minLength,\n  type MinLengthAction,\n  type MinLengthIssue,\n  minValue,\n  type MinValueAction,\n  type MinValueIssue,\n  transform,\n  type TransformAction,\n  trim,\n  type TrimAction,\n} from '../../actions/index.ts';\nimport {\n  number,\n  type NumberIssue,\n  type NumberSchema,\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../../schemas/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { pipe, type SchemaWithPipe } from './pipe.ts';\n\ndescribe('pipe', () => {\n  const schema = pipe(\n    string(),\n    description('text'),\n    trim(),\n    minLength(1),\n    decimal(),\n    transform(parseInt),\n    number(),\n    minValue(100)\n  );\n\n  test('should return schema object', () => {\n    expectTypeOf(schema).toEqualTypeOf<\n      SchemaWithPipe<\n        readonly [\n          StringSchema<undefined>,\n          DescriptionAction<string, 'text'>,\n          TrimAction,\n          MinLengthAction<string, 1, undefined>,\n          DecimalAction<string, undefined>,\n          TransformAction<string, number>,\n          NumberSchema<undefined>,\n          MinValueAction<number, 100, undefined>,\n        ]\n      >\n    >();\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = typeof schema;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<number>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        | StringIssue\n        | MinLengthIssue<string, 1>\n        | DecimalIssue<string>\n        | NumberIssue\n        | MinValueIssue<number, 100>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/pipe/pipe.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  decimal,\n  type DecimalIssue,\n  description,\n  minLength,\n  type MinLengthIssue,\n  minValue,\n  transform,\n  trim,\n} from '../../actions/index.ts';\nimport { DECIMAL_REGEX } from '../../regex.ts';\nimport { string } from '../../schemas/index.ts';\nimport { pipe } from './pipe.ts';\n\ndescribe('pipe', () => {\n  const schema = pipe(\n    string(),\n    description('text'),\n    trim(),\n    minLength(1),\n    decimal()\n  );\n\n  test('should return schema object', () => {\n    expect(schema).toStrictEqual({\n      kind: 'schema',\n      type: 'string',\n      reference: string,\n      expects: 'string',\n      message: undefined,\n      pipe: [\n        {\n          ...string(),\n          '~standard': {\n            version: 1,\n            vendor: 'valibot',\n            validate: expect.any(Function),\n          },\n          '~run': expect.any(Function),\n        },\n        description('text'),\n        {\n          ...trim(),\n          '~run': expect.any(Function),\n        },\n        {\n          ...minLength(1),\n          '~run': expect.any(Function),\n        },\n        {\n          ...decimal(),\n          '~run': expect.any(Function),\n        },\n      ],\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    } satisfies typeof schema);\n  });\n\n  test('should return dataset without issues', () => {\n    expect(schema['~run']({ value: ' 123 ' }, {})).toStrictEqual({\n      typed: true,\n      value: '123',\n    });\n  });\n\n  const baseInfo = {\n    message: expect.any(String),\n    path: undefined,\n    issues: undefined,\n    lang: undefined,\n    abortEarly: undefined,\n    abortPipeEarly: undefined,\n  };\n\n  const minLengthIssue: MinLengthIssue<string, 1> = {\n    ...baseInfo,\n    kind: 'validation',\n    type: 'min_length',\n    input: '',\n    expected: '>=1',\n    received: '0',\n    requirement: 1,\n  };\n\n  const decimalIssue: DecimalIssue<string> = {\n    ...baseInfo,\n    kind: 'validation',\n    type: 'decimal',\n    input: '',\n    expected: null,\n    received: '\"\"',\n    requirement: DECIMAL_REGEX,\n  };\n\n  test('should return dataset with issues', () => {\n    expect(schema['~run']({ value: '  ' }, {})).toStrictEqual({\n      typed: true,\n      value: '',\n      issues: [minLengthIssue, decimalIssue],\n    });\n  });\n\n  describe('should break pipe if necessary', () => {\n    test('for abort early config', () => {\n      expect(\n        schema['~run']({ value: '  ' }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: true,\n        value: '',\n        issues: [{ ...minLengthIssue, abortEarly: true }],\n      });\n    });\n\n    test('for abort pipe early config', () => {\n      expect(\n        schema['~run']({ value: '  ' }, { abortPipeEarly: true })\n      ).toStrictEqual({\n        typed: true,\n        value: '',\n        issues: [{ ...minLengthIssue, abortPipeEarly: true }],\n      });\n    });\n\n    test('if next action is schema', () => {\n      expect(\n        pipe(schema, string(), minLength(10))['~run']({ value: '  ' }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: '',\n        issues: [minLengthIssue, decimalIssue],\n      });\n    });\n\n    test('if next action is transformation', () => {\n      expect(\n        pipe(schema, transform(parseInt), minValue(999))['~run'](\n          { value: '  ' },\n          {}\n        )\n      ).toStrictEqual({\n        typed: false,\n        value: '',\n        issues: [minLengthIssue, decimalIssue],\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/pipe/pipe.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  Config,\n  FirstTupleItem,\n  InferInput,\n  InferIssue,\n  InferOutput,\n  LastTupleItem,\n  OutputDataset,\n  PipeAction,\n  PipeItem,\n  StandardProps,\n  UnknownDataset,\n} from '../../types/index.ts';\nimport { _getStandardProps } from '../../utils/index.ts';\n\n/**\n * Schema with pipe type.\n */\nexport type SchemaWithPipe<\n  TPipe extends readonly [\n    BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    ...PipeItem<any, unknown, BaseIssue<unknown>>[],\n  ],\n> = Omit<FirstTupleItem<TPipe>, 'pipe' | '~standard' | '~run' | '~types'> & {\n  /**\n   * The pipe items.\n   */\n  readonly pipe: TPipe;\n  /**\n   * The Standard Schema properties.\n   *\n   * @internal\n   */\n  readonly '~standard': StandardProps<\n    InferInput<FirstTupleItem<TPipe>>,\n    InferOutput<LastTupleItem<TPipe>>\n  >;\n  /**\n   * Parses unknown input values.\n   *\n   * @param dataset The input dataset.\n   * @param config The configuration.\n   *\n   * @returns The output dataset.\n   *\n   * @internal\n   */\n  readonly '~run': (\n    dataset: UnknownDataset,\n    config: Config<BaseIssue<unknown>>\n  ) => OutputDataset<\n    InferOutput<LastTupleItem<TPipe>>,\n    InferIssue<TPipe[number]>\n  >;\n  /**\n   * The input, output and issue type.\n   *\n   * @internal\n   */\n  readonly '~types'?:\n    | {\n        readonly input: InferInput<FirstTupleItem<TPipe>>;\n        readonly output: InferOutput<LastTupleItem<TPipe>>;\n        readonly issue: InferIssue<TPipe[number]>;\n      }\n    | undefined;\n};\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipe<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends PipeItem<\n    InferOutput<TSchema>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>\n): SchemaWithPipe<readonly [TSchema, TItem1]>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipe<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends PipeItem<\n    InferOutput<TSchema>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem2 extends PipeItem<\n    InferOutput<TItem1>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>\n): SchemaWithPipe<readonly [TSchema, TItem1, TItem2]>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipe<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends PipeItem<\n    InferOutput<TSchema>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem2 extends PipeItem<\n    InferOutput<TItem1>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem3 extends PipeItem<\n    InferOutput<TItem2>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>\n): SchemaWithPipe<readonly [TSchema, TItem1, TItem2, TItem3]>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipe<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends PipeItem<\n    InferOutput<TSchema>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem2 extends PipeItem<\n    InferOutput<TItem1>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem3 extends PipeItem<\n    InferOutput<TItem2>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem4 extends PipeItem<\n    InferOutput<TItem3>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>\n): SchemaWithPipe<readonly [TSchema, TItem1, TItem2, TItem3, TItem4]>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipe<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends PipeItem<\n    InferOutput<TSchema>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem2 extends PipeItem<\n    InferOutput<TItem1>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem3 extends PipeItem<\n    InferOutput<TItem2>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem4 extends PipeItem<\n    InferOutput<TItem3>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem5 extends PipeItem<\n    InferOutput<TItem4>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>\n): SchemaWithPipe<readonly [TSchema, TItem1, TItem2, TItem3, TItem4, TItem5]>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipe<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends PipeItem<\n    InferOutput<TSchema>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem2 extends PipeItem<\n    InferOutput<TItem1>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem3 extends PipeItem<\n    InferOutput<TItem2>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem4 extends PipeItem<\n    InferOutput<TItem3>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem5 extends PipeItem<\n    InferOutput<TItem4>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem6 extends PipeItem<\n    InferOutput<TItem5>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>\n): SchemaWithPipe<\n  readonly [TSchema, TItem1, TItem2, TItem3, TItem4, TItem5, TItem6]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n * @param item7 The seventh pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipe<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends PipeItem<\n    InferOutput<TSchema>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem2 extends PipeItem<\n    InferOutput<TItem1>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem3 extends PipeItem<\n    InferOutput<TItem2>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem4 extends PipeItem<\n    InferOutput<TItem3>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem5 extends PipeItem<\n    InferOutput<TItem4>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem6 extends PipeItem<\n    InferOutput<TItem5>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem7 extends PipeItem<\n    InferOutput<TItem6>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>,\n  item7:\n    | TItem7\n    | PipeAction<InferOutput<TItem6>, InferOutput<TItem7>, InferIssue<TItem7>>\n): SchemaWithPipe<\n  readonly [TSchema, TItem1, TItem2, TItem3, TItem4, TItem5, TItem6, TItem7]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n * @param item7 The seventh pipe item.\n * @param item8 The eighth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipe<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends PipeItem<\n    InferOutput<TSchema>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem2 extends PipeItem<\n    InferOutput<TItem1>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem3 extends PipeItem<\n    InferOutput<TItem2>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem4 extends PipeItem<\n    InferOutput<TItem3>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem5 extends PipeItem<\n    InferOutput<TItem4>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem6 extends PipeItem<\n    InferOutput<TItem5>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem7 extends PipeItem<\n    InferOutput<TItem6>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem8 extends PipeItem<\n    InferOutput<TItem7>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>,\n  item7:\n    | TItem7\n    | PipeAction<InferOutput<TItem6>, InferOutput<TItem7>, InferIssue<TItem7>>,\n  item8:\n    | TItem8\n    | PipeAction<InferOutput<TItem7>, InferOutput<TItem8>, InferIssue<TItem8>>\n): SchemaWithPipe<\n  readonly [\n    TSchema,\n    TItem1,\n    TItem2,\n    TItem3,\n    TItem4,\n    TItem5,\n    TItem6,\n    TItem7,\n    TItem8,\n  ]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n * @param item7 The seventh pipe item.\n * @param item8 The eighth pipe item.\n * @param item9 The ninth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipe<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends PipeItem<\n    InferOutput<TSchema>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem2 extends PipeItem<\n    InferOutput<TItem1>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem3 extends PipeItem<\n    InferOutput<TItem2>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem4 extends PipeItem<\n    InferOutput<TItem3>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem5 extends PipeItem<\n    InferOutput<TItem4>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem6 extends PipeItem<\n    InferOutput<TItem5>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem7 extends PipeItem<\n    InferOutput<TItem6>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem8 extends PipeItem<\n    InferOutput<TItem7>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem9 extends PipeItem<\n    InferOutput<TItem8>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>,\n  item7:\n    | TItem7\n    | PipeAction<InferOutput<TItem6>, InferOutput<TItem7>, InferIssue<TItem7>>,\n  item8:\n    | TItem8\n    | PipeAction<InferOutput<TItem7>, InferOutput<TItem8>, InferIssue<TItem8>>,\n  item9:\n    | TItem9\n    | PipeAction<InferOutput<TItem8>, InferOutput<TItem9>, InferIssue<TItem9>>\n): SchemaWithPipe<\n  readonly [\n    TSchema,\n    TItem1,\n    TItem2,\n    TItem3,\n    TItem4,\n    TItem5,\n    TItem6,\n    TItem7,\n    TItem8,\n    TItem9,\n  ]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n * @param item7 The seventh pipe item.\n * @param item8 The eighth pipe item.\n * @param item9 The ninth pipe item.\n * @param item10 The tenth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipe<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends PipeItem<\n    InferOutput<TSchema>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem2 extends PipeItem<\n    InferOutput<TItem1>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem3 extends PipeItem<\n    InferOutput<TItem2>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem4 extends PipeItem<\n    InferOutput<TItem3>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem5 extends PipeItem<\n    InferOutput<TItem4>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem6 extends PipeItem<\n    InferOutput<TItem5>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem7 extends PipeItem<\n    InferOutput<TItem6>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem8 extends PipeItem<\n    InferOutput<TItem7>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem9 extends PipeItem<\n    InferOutput<TItem8>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem10 extends PipeItem<\n    InferOutput<TItem9>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>,\n  item7:\n    | TItem7\n    | PipeAction<InferOutput<TItem6>, InferOutput<TItem7>, InferIssue<TItem7>>,\n  item8:\n    | TItem8\n    | PipeAction<InferOutput<TItem7>, InferOutput<TItem8>, InferIssue<TItem8>>,\n  item9:\n    | TItem9\n    | PipeAction<InferOutput<TItem8>, InferOutput<TItem9>, InferIssue<TItem9>>,\n  item10:\n    | TItem10\n    | PipeAction<InferOutput<TItem9>, InferOutput<TItem10>, InferIssue<TItem10>>\n): SchemaWithPipe<\n  readonly [\n    TSchema,\n    TItem1,\n    TItem2,\n    TItem3,\n    TItem4,\n    TItem5,\n    TItem6,\n    TItem7,\n    TItem8,\n    TItem9,\n    TItem10,\n  ]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n * @param item7 The seventh pipe item.\n * @param item8 The eighth pipe item.\n * @param item9 The ninth pipe item.\n * @param item10 The tenth pipe item.\n * @param item11 The eleventh pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipe<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends PipeItem<\n    InferOutput<TSchema>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem2 extends PipeItem<\n    InferOutput<TItem1>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem3 extends PipeItem<\n    InferOutput<TItem2>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem4 extends PipeItem<\n    InferOutput<TItem3>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem5 extends PipeItem<\n    InferOutput<TItem4>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem6 extends PipeItem<\n    InferOutput<TItem5>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem7 extends PipeItem<\n    InferOutput<TItem6>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem8 extends PipeItem<\n    InferOutput<TItem7>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem9 extends PipeItem<\n    InferOutput<TItem8>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem10 extends PipeItem<\n    InferOutput<TItem9>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem11 extends PipeItem<\n    InferOutput<TItem10>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>,\n  item7:\n    | TItem7\n    | PipeAction<InferOutput<TItem6>, InferOutput<TItem7>, InferIssue<TItem7>>,\n  item8:\n    | TItem8\n    | PipeAction<InferOutput<TItem7>, InferOutput<TItem8>, InferIssue<TItem8>>,\n  item9:\n    | TItem9\n    | PipeAction<InferOutput<TItem8>, InferOutput<TItem9>, InferIssue<TItem9>>,\n  item10:\n    | TItem10\n    | PipeAction<\n        InferOutput<TItem9>,\n        InferOutput<TItem10>,\n        InferIssue<TItem10>\n      >,\n  item11:\n    | TItem11\n    | PipeAction<\n        InferOutput<TItem10>,\n        InferOutput<TItem11>,\n        InferIssue<TItem11>\n      >\n): SchemaWithPipe<\n  readonly [\n    TSchema,\n    TItem1,\n    TItem2,\n    TItem3,\n    TItem4,\n    TItem5,\n    TItem6,\n    TItem7,\n    TItem8,\n    TItem9,\n    TItem10,\n    TItem11,\n  ]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n * @param item7 The seventh pipe item.\n * @param item8 The eighth pipe item.\n * @param item9 The ninth pipe item.\n * @param item10 The tenth pipe item.\n * @param item11 The eleventh pipe item.\n * @param item12 The twelfth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipe<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends PipeItem<\n    InferOutput<TSchema>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem2 extends PipeItem<\n    InferOutput<TItem1>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem3 extends PipeItem<\n    InferOutput<TItem2>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem4 extends PipeItem<\n    InferOutput<TItem3>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem5 extends PipeItem<\n    InferOutput<TItem4>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem6 extends PipeItem<\n    InferOutput<TItem5>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem7 extends PipeItem<\n    InferOutput<TItem6>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem8 extends PipeItem<\n    InferOutput<TItem7>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem9 extends PipeItem<\n    InferOutput<TItem8>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem10 extends PipeItem<\n    InferOutput<TItem9>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem11 extends PipeItem<\n    InferOutput<TItem10>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem12 extends PipeItem<\n    InferOutput<TItem11>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>,\n  item7:\n    | TItem7\n    | PipeAction<InferOutput<TItem6>, InferOutput<TItem7>, InferIssue<TItem7>>,\n  item8:\n    | TItem8\n    | PipeAction<InferOutput<TItem7>, InferOutput<TItem8>, InferIssue<TItem8>>,\n  item9:\n    | TItem9\n    | PipeAction<InferOutput<TItem8>, InferOutput<TItem9>, InferIssue<TItem9>>,\n  item10:\n    | TItem10\n    | PipeAction<\n        InferOutput<TItem9>,\n        InferOutput<TItem10>,\n        InferIssue<TItem10>\n      >,\n  item11:\n    | TItem11\n    | PipeAction<\n        InferOutput<TItem10>,\n        InferOutput<TItem11>,\n        InferIssue<TItem11>\n      >,\n  item12:\n    | TItem12\n    | PipeAction<\n        InferOutput<TItem11>,\n        InferOutput<TItem12>,\n        InferIssue<TItem12>\n      >\n): SchemaWithPipe<\n  readonly [\n    TSchema,\n    TItem1,\n    TItem2,\n    TItem3,\n    TItem4,\n    TItem5,\n    TItem6,\n    TItem7,\n    TItem8,\n    TItem9,\n    TItem10,\n    TItem11,\n    TItem12,\n  ]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n * @param item7 The seventh pipe item.\n * @param item8 The eighth pipe item.\n * @param item9 The ninth pipe item.\n * @param item10 The tenth pipe item.\n * @param item11 The eleventh pipe item.\n * @param item12 The twelfth pipe item.\n * @param item13 The thirteenth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipe<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends PipeItem<\n    InferOutput<TSchema>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem2 extends PipeItem<\n    InferOutput<TItem1>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem3 extends PipeItem<\n    InferOutput<TItem2>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem4 extends PipeItem<\n    InferOutput<TItem3>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem5 extends PipeItem<\n    InferOutput<TItem4>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem6 extends PipeItem<\n    InferOutput<TItem5>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem7 extends PipeItem<\n    InferOutput<TItem6>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem8 extends PipeItem<\n    InferOutput<TItem7>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem9 extends PipeItem<\n    InferOutput<TItem8>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem10 extends PipeItem<\n    InferOutput<TItem9>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem11 extends PipeItem<\n    InferOutput<TItem10>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem12 extends PipeItem<\n    InferOutput<TItem11>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem13 extends PipeItem<\n    InferOutput<TItem12>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>,\n  item7:\n    | TItem7\n    | PipeAction<InferOutput<TItem6>, InferOutput<TItem7>, InferIssue<TItem7>>,\n  item8:\n    | TItem8\n    | PipeAction<InferOutput<TItem7>, InferOutput<TItem8>, InferIssue<TItem8>>,\n  item9:\n    | TItem9\n    | PipeAction<InferOutput<TItem8>, InferOutput<TItem9>, InferIssue<TItem9>>,\n  item10:\n    | TItem10\n    | PipeAction<\n        InferOutput<TItem9>,\n        InferOutput<TItem10>,\n        InferIssue<TItem10>\n      >,\n  item11:\n    | TItem11\n    | PipeAction<\n        InferOutput<TItem10>,\n        InferOutput<TItem11>,\n        InferIssue<TItem11>\n      >,\n  item12:\n    | TItem12\n    | PipeAction<\n        InferOutput<TItem11>,\n        InferOutput<TItem12>,\n        InferIssue<TItem12>\n      >,\n  item13:\n    | TItem13\n    | PipeAction<\n        InferOutput<TItem12>,\n        InferOutput<TItem13>,\n        InferIssue<TItem13>\n      >\n): SchemaWithPipe<\n  readonly [\n    TSchema,\n    TItem1,\n    TItem2,\n    TItem3,\n    TItem4,\n    TItem5,\n    TItem6,\n    TItem7,\n    TItem8,\n    TItem9,\n    TItem10,\n    TItem11,\n    TItem12,\n    TItem13,\n  ]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n * @param item7 The seventh pipe item.\n * @param item8 The eighth pipe item.\n * @param item9 The ninth pipe item.\n * @param item10 The tenth pipe item.\n * @param item11 The eleventh pipe item.\n * @param item12 The twelfth pipe item.\n * @param item13 The thirteenth pipe item.\n * @param item14 The fourteenth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipe<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends PipeItem<\n    InferOutput<TSchema>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem2 extends PipeItem<\n    InferOutput<TItem1>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem3 extends PipeItem<\n    InferOutput<TItem2>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem4 extends PipeItem<\n    InferOutput<TItem3>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem5 extends PipeItem<\n    InferOutput<TItem4>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem6 extends PipeItem<\n    InferOutput<TItem5>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem7 extends PipeItem<\n    InferOutput<TItem6>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem8 extends PipeItem<\n    InferOutput<TItem7>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem9 extends PipeItem<\n    InferOutput<TItem8>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem10 extends PipeItem<\n    InferOutput<TItem9>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem11 extends PipeItem<\n    InferOutput<TItem10>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem12 extends PipeItem<\n    InferOutput<TItem11>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem13 extends PipeItem<\n    InferOutput<TItem12>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem14 extends PipeItem<\n    InferOutput<TItem13>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>,\n  item7:\n    | TItem7\n    | PipeAction<InferOutput<TItem6>, InferOutput<TItem7>, InferIssue<TItem7>>,\n  item8:\n    | TItem8\n    | PipeAction<InferOutput<TItem7>, InferOutput<TItem8>, InferIssue<TItem8>>,\n  item9:\n    | TItem9\n    | PipeAction<InferOutput<TItem8>, InferOutput<TItem9>, InferIssue<TItem9>>,\n  item10:\n    | TItem10\n    | PipeAction<\n        InferOutput<TItem9>,\n        InferOutput<TItem10>,\n        InferIssue<TItem10>\n      >,\n  item11:\n    | TItem11\n    | PipeAction<\n        InferOutput<TItem10>,\n        InferOutput<TItem11>,\n        InferIssue<TItem11>\n      >,\n  item12:\n    | TItem12\n    | PipeAction<\n        InferOutput<TItem11>,\n        InferOutput<TItem12>,\n        InferIssue<TItem12>\n      >,\n  item13:\n    | TItem13\n    | PipeAction<\n        InferOutput<TItem12>,\n        InferOutput<TItem13>,\n        InferIssue<TItem13>\n      >,\n  item14:\n    | TItem14\n    | PipeAction<\n        InferOutput<TItem13>,\n        InferOutput<TItem14>,\n        InferIssue<TItem14>\n      >\n): SchemaWithPipe<\n  readonly [\n    TSchema,\n    TItem1,\n    TItem2,\n    TItem3,\n    TItem4,\n    TItem5,\n    TItem6,\n    TItem7,\n    TItem8,\n    TItem9,\n    TItem10,\n    TItem11,\n    TItem12,\n    TItem13,\n    TItem14,\n  ]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n * @param item7 The seventh pipe item.\n * @param item8 The eighth pipe item.\n * @param item9 The ninth pipe item.\n * @param item10 The tenth pipe item.\n * @param item11 The eleventh pipe item.\n * @param item12 The twelfth pipe item.\n * @param item13 The thirteenth pipe item.\n * @param item14 The fourteenth pipe item.\n * @param item15 The fifteenth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipe<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends PipeItem<\n    InferOutput<TSchema>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem2 extends PipeItem<\n    InferOutput<TItem1>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem3 extends PipeItem<\n    InferOutput<TItem2>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem4 extends PipeItem<\n    InferOutput<TItem3>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem5 extends PipeItem<\n    InferOutput<TItem4>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem6 extends PipeItem<\n    InferOutput<TItem5>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem7 extends PipeItem<\n    InferOutput<TItem6>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem8 extends PipeItem<\n    InferOutput<TItem7>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem9 extends PipeItem<\n    InferOutput<TItem8>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem10 extends PipeItem<\n    InferOutput<TItem9>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem11 extends PipeItem<\n    InferOutput<TItem10>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem12 extends PipeItem<\n    InferOutput<TItem11>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem13 extends PipeItem<\n    InferOutput<TItem12>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem14 extends PipeItem<\n    InferOutput<TItem13>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem15 extends PipeItem<\n    InferOutput<TItem14>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>,\n  item7:\n    | TItem7\n    | PipeAction<InferOutput<TItem6>, InferOutput<TItem7>, InferIssue<TItem7>>,\n  item8:\n    | TItem8\n    | PipeAction<InferOutput<TItem7>, InferOutput<TItem8>, InferIssue<TItem8>>,\n  item9:\n    | TItem9\n    | PipeAction<InferOutput<TItem8>, InferOutput<TItem9>, InferIssue<TItem9>>,\n  item10:\n    | TItem10\n    | PipeAction<\n        InferOutput<TItem9>,\n        InferOutput<TItem10>,\n        InferIssue<TItem10>\n      >,\n  item11:\n    | TItem11\n    | PipeAction<\n        InferOutput<TItem10>,\n        InferOutput<TItem11>,\n        InferIssue<TItem11>\n      >,\n  item12:\n    | TItem12\n    | PipeAction<\n        InferOutput<TItem11>,\n        InferOutput<TItem12>,\n        InferIssue<TItem12>\n      >,\n  item13:\n    | TItem13\n    | PipeAction<\n        InferOutput<TItem12>,\n        InferOutput<TItem13>,\n        InferIssue<TItem13>\n      >,\n  item14:\n    | TItem14\n    | PipeAction<\n        InferOutput<TItem13>,\n        InferOutput<TItem14>,\n        InferIssue<TItem14>\n      >,\n  item15:\n    | TItem15\n    | PipeAction<\n        InferOutput<TItem14>,\n        InferOutput<TItem15>,\n        InferIssue<TItem15>\n      >\n): SchemaWithPipe<\n  readonly [\n    TSchema,\n    TItem1,\n    TItem2,\n    TItem3,\n    TItem4,\n    TItem5,\n    TItem6,\n    TItem7,\n    TItem8,\n    TItem9,\n    TItem10,\n    TItem11,\n    TItem12,\n    TItem13,\n    TItem14,\n    TItem15,\n  ]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n * @param item7 The seventh pipe item.\n * @param item8 The eighth pipe item.\n * @param item9 The ninth pipe item.\n * @param item10 The tenth pipe item.\n * @param item11 The eleventh pipe item.\n * @param item12 The twelfth pipe item.\n * @param item13 The thirteenth pipe item.\n * @param item14 The fourteenth pipe item.\n * @param item15 The fifteenth pipe item.\n * @param item16 The sixteenth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipe<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends PipeItem<\n    InferOutput<TSchema>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem2 extends PipeItem<\n    InferOutput<TItem1>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem3 extends PipeItem<\n    InferOutput<TItem2>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem4 extends PipeItem<\n    InferOutput<TItem3>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem5 extends PipeItem<\n    InferOutput<TItem4>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem6 extends PipeItem<\n    InferOutput<TItem5>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem7 extends PipeItem<\n    InferOutput<TItem6>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem8 extends PipeItem<\n    InferOutput<TItem7>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem9 extends PipeItem<\n    InferOutput<TItem8>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem10 extends PipeItem<\n    InferOutput<TItem9>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem11 extends PipeItem<\n    InferOutput<TItem10>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem12 extends PipeItem<\n    InferOutput<TItem11>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem13 extends PipeItem<\n    InferOutput<TItem12>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem14 extends PipeItem<\n    InferOutput<TItem13>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem15 extends PipeItem<\n    InferOutput<TItem14>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem16 extends PipeItem<\n    InferOutput<TItem15>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>,\n  item7:\n    | TItem7\n    | PipeAction<InferOutput<TItem6>, InferOutput<TItem7>, InferIssue<TItem7>>,\n  item8:\n    | TItem8\n    | PipeAction<InferOutput<TItem7>, InferOutput<TItem8>, InferIssue<TItem8>>,\n  item9:\n    | TItem9\n    | PipeAction<InferOutput<TItem8>, InferOutput<TItem9>, InferIssue<TItem9>>,\n  item10:\n    | TItem10\n    | PipeAction<\n        InferOutput<TItem9>,\n        InferOutput<TItem10>,\n        InferIssue<TItem10>\n      >,\n  item11:\n    | TItem11\n    | PipeAction<\n        InferOutput<TItem10>,\n        InferOutput<TItem11>,\n        InferIssue<TItem11>\n      >,\n  item12:\n    | TItem12\n    | PipeAction<\n        InferOutput<TItem11>,\n        InferOutput<TItem12>,\n        InferIssue<TItem12>\n      >,\n  item13:\n    | TItem13\n    | PipeAction<\n        InferOutput<TItem12>,\n        InferOutput<TItem13>,\n        InferIssue<TItem13>\n      >,\n  item14:\n    | TItem14\n    | PipeAction<\n        InferOutput<TItem13>,\n        InferOutput<TItem14>,\n        InferIssue<TItem14>\n      >,\n  item15:\n    | TItem15\n    | PipeAction<\n        InferOutput<TItem14>,\n        InferOutput<TItem15>,\n        InferIssue<TItem15>\n      >,\n  item16:\n    | TItem16\n    | PipeAction<\n        InferOutput<TItem15>,\n        InferOutput<TItem16>,\n        InferIssue<TItem16>\n      >\n): SchemaWithPipe<\n  readonly [\n    TSchema,\n    TItem1,\n    TItem2,\n    TItem3,\n    TItem4,\n    TItem5,\n    TItem6,\n    TItem7,\n    TItem8,\n    TItem9,\n    TItem10,\n    TItem11,\n    TItem12,\n    TItem13,\n    TItem14,\n    TItem15,\n    TItem16,\n  ]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n * @param item7 The seventh pipe item.\n * @param item8 The eighth pipe item.\n * @param item9 The ninth pipe item.\n * @param item10 The tenth pipe item.\n * @param item11 The eleventh pipe item.\n * @param item12 The twelfth pipe item.\n * @param item13 The thirteenth pipe item.\n * @param item14 The fourteenth pipe item.\n * @param item15 The fifteenth pipe item.\n * @param item16 The sixteenth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipe<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends PipeItem<\n    InferOutput<TSchema>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem2 extends PipeItem<\n    InferOutput<TItem1>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem3 extends PipeItem<\n    InferOutput<TItem2>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem4 extends PipeItem<\n    InferOutput<TItem3>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem5 extends PipeItem<\n    InferOutput<TItem4>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem6 extends PipeItem<\n    InferOutput<TItem5>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem7 extends PipeItem<\n    InferOutput<TItem6>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem8 extends PipeItem<\n    InferOutput<TItem7>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem9 extends PipeItem<\n    InferOutput<TItem8>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem10 extends PipeItem<\n    InferOutput<TItem9>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem11 extends PipeItem<\n    InferOutput<TItem10>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem12 extends PipeItem<\n    InferOutput<TItem11>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem13 extends PipeItem<\n    InferOutput<TItem12>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem14 extends PipeItem<\n    InferOutput<TItem13>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem15 extends PipeItem<\n    InferOutput<TItem14>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem16 extends PipeItem<\n    InferOutput<TItem15>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>,\n  item7:\n    | TItem7\n    | PipeAction<InferOutput<TItem6>, InferOutput<TItem7>, InferIssue<TItem7>>,\n  item8:\n    | TItem8\n    | PipeAction<InferOutput<TItem7>, InferOutput<TItem8>, InferIssue<TItem8>>,\n  item9:\n    | TItem9\n    | PipeAction<InferOutput<TItem8>, InferOutput<TItem9>, InferIssue<TItem9>>,\n  item10:\n    | TItem10\n    | PipeAction<\n        InferOutput<TItem9>,\n        InferOutput<TItem10>,\n        InferIssue<TItem10>\n      >,\n  item11:\n    | TItem11\n    | PipeAction<\n        InferOutput<TItem10>,\n        InferOutput<TItem11>,\n        InferIssue<TItem11>\n      >,\n  item12:\n    | TItem12\n    | PipeAction<\n        InferOutput<TItem11>,\n        InferOutput<TItem12>,\n        InferIssue<TItem12>\n      >,\n  item13:\n    | TItem13\n    | PipeAction<\n        InferOutput<TItem12>,\n        InferOutput<TItem13>,\n        InferIssue<TItem13>\n      >,\n  item14:\n    | TItem14\n    | PipeAction<\n        InferOutput<TItem13>,\n        InferOutput<TItem14>,\n        InferIssue<TItem14>\n      >,\n  item15:\n    | TItem15\n    | PipeAction<\n        InferOutput<TItem14>,\n        InferOutput<TItem15>,\n        InferIssue<TItem15>\n      >,\n  item16:\n    | TItem16\n    | PipeAction<\n        InferOutput<TItem15>,\n        InferOutput<TItem16>,\n        InferIssue<TItem16>\n      >\n): SchemaWithPipe<\n  readonly [\n    TSchema,\n    TItem1,\n    TItem2,\n    TItem3,\n    TItem4,\n    TItem5,\n    TItem6,\n    TItem7,\n    TItem8,\n    TItem9,\n    TItem10,\n    TItem11,\n    TItem12,\n    TItem13,\n    TItem14,\n    TItem15,\n    TItem16,\n  ]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n * @param item7 The seventh pipe item.\n * @param item8 The eighth pipe item.\n * @param item9 The ninth pipe item.\n * @param item10 The tenth pipe item.\n * @param item11 The eleventh pipe item.\n * @param item12 The twelfth pipe item.\n * @param item13 The thirteenth pipe item.\n * @param item14 The fourteenth pipe item.\n * @param item15 The fifteenth pipe item.\n * @param item16 The sixteenth pipe item.\n * @param item17 The seventeenth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipe<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends PipeItem<\n    InferOutput<TSchema>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem2 extends PipeItem<\n    InferOutput<TItem1>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem3 extends PipeItem<\n    InferOutput<TItem2>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem4 extends PipeItem<\n    InferOutput<TItem3>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem5 extends PipeItem<\n    InferOutput<TItem4>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem6 extends PipeItem<\n    InferOutput<TItem5>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem7 extends PipeItem<\n    InferOutput<TItem6>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem8 extends PipeItem<\n    InferOutput<TItem7>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem9 extends PipeItem<\n    InferOutput<TItem8>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem10 extends PipeItem<\n    InferOutput<TItem9>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem11 extends PipeItem<\n    InferOutput<TItem10>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem12 extends PipeItem<\n    InferOutput<TItem11>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem13 extends PipeItem<\n    InferOutput<TItem12>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem14 extends PipeItem<\n    InferOutput<TItem13>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem15 extends PipeItem<\n    InferOutput<TItem14>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem16 extends PipeItem<\n    InferOutput<TItem15>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem17 extends PipeItem<\n    InferOutput<TItem16>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>,\n  item7:\n    | TItem7\n    | PipeAction<InferOutput<TItem6>, InferOutput<TItem7>, InferIssue<TItem7>>,\n  item8:\n    | TItem8\n    | PipeAction<InferOutput<TItem7>, InferOutput<TItem8>, InferIssue<TItem8>>,\n  item9:\n    | TItem9\n    | PipeAction<InferOutput<TItem8>, InferOutput<TItem9>, InferIssue<TItem9>>,\n  item10:\n    | TItem10\n    | PipeAction<\n        InferOutput<TItem9>,\n        InferOutput<TItem10>,\n        InferIssue<TItem10>\n      >,\n  item11:\n    | TItem11\n    | PipeAction<\n        InferOutput<TItem10>,\n        InferOutput<TItem11>,\n        InferIssue<TItem11>\n      >,\n  item12:\n    | TItem12\n    | PipeAction<\n        InferOutput<TItem11>,\n        InferOutput<TItem12>,\n        InferIssue<TItem12>\n      >,\n  item13:\n    | TItem13\n    | PipeAction<\n        InferOutput<TItem12>,\n        InferOutput<TItem13>,\n        InferIssue<TItem13>\n      >,\n  item14:\n    | TItem14\n    | PipeAction<\n        InferOutput<TItem13>,\n        InferOutput<TItem14>,\n        InferIssue<TItem14>\n      >,\n  item15:\n    | TItem15\n    | PipeAction<\n        InferOutput<TItem14>,\n        InferOutput<TItem15>,\n        InferIssue<TItem15>\n      >,\n  item16:\n    | TItem16\n    | PipeAction<\n        InferOutput<TItem15>,\n        InferOutput<TItem16>,\n        InferIssue<TItem16>\n      >,\n  item17:\n    | TItem17\n    | PipeAction<\n        InferOutput<TItem16>,\n        InferOutput<TItem17>,\n        InferIssue<TItem17>\n      >\n): SchemaWithPipe<\n  readonly [\n    TSchema,\n    TItem1,\n    TItem2,\n    TItem3,\n    TItem4,\n    TItem5,\n    TItem6,\n    TItem7,\n    TItem8,\n    TItem9,\n    TItem10,\n    TItem11,\n    TItem12,\n    TItem13,\n    TItem14,\n    TItem15,\n    TItem16,\n    TItem17,\n  ]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n * @param item7 The seventh pipe item.\n * @param item8 The eighth pipe item.\n * @param item9 The ninth pipe item.\n * @param item10 The tenth pipe item.\n * @param item11 The eleventh pipe item.\n * @param item12 The twelfth pipe item.\n * @param item13 The thirteenth pipe item.\n * @param item14 The fourteenth pipe item.\n * @param item15 The fifteenth pipe item.\n * @param item16 The sixteenth pipe item.\n * @param item17 The seventeenth pipe item.\n * @param item18 The eighteenth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipe<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends PipeItem<\n    InferOutput<TSchema>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem2 extends PipeItem<\n    InferOutput<TItem1>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem3 extends PipeItem<\n    InferOutput<TItem2>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem4 extends PipeItem<\n    InferOutput<TItem3>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem5 extends PipeItem<\n    InferOutput<TItem4>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem6 extends PipeItem<\n    InferOutput<TItem5>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem7 extends PipeItem<\n    InferOutput<TItem6>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem8 extends PipeItem<\n    InferOutput<TItem7>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem9 extends PipeItem<\n    InferOutput<TItem8>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem10 extends PipeItem<\n    InferOutput<TItem9>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem11 extends PipeItem<\n    InferOutput<TItem10>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem12 extends PipeItem<\n    InferOutput<TItem11>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem13 extends PipeItem<\n    InferOutput<TItem12>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem14 extends PipeItem<\n    InferOutput<TItem13>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem15 extends PipeItem<\n    InferOutput<TItem14>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem16 extends PipeItem<\n    InferOutput<TItem15>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem17 extends PipeItem<\n    InferOutput<TItem16>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem18 extends PipeItem<\n    InferOutput<TItem17>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>,\n  item7:\n    | TItem7\n    | PipeAction<InferOutput<TItem6>, InferOutput<TItem7>, InferIssue<TItem7>>,\n  item8:\n    | TItem8\n    | PipeAction<InferOutput<TItem7>, InferOutput<TItem8>, InferIssue<TItem8>>,\n  item9:\n    | TItem9\n    | PipeAction<InferOutput<TItem8>, InferOutput<TItem9>, InferIssue<TItem9>>,\n  item10:\n    | TItem10\n    | PipeAction<\n        InferOutput<TItem9>,\n        InferOutput<TItem10>,\n        InferIssue<TItem10>\n      >,\n  item11:\n    | TItem11\n    | PipeAction<\n        InferOutput<TItem10>,\n        InferOutput<TItem11>,\n        InferIssue<TItem11>\n      >,\n  item12:\n    | TItem12\n    | PipeAction<\n        InferOutput<TItem11>,\n        InferOutput<TItem12>,\n        InferIssue<TItem12>\n      >,\n  item13:\n    | TItem13\n    | PipeAction<\n        InferOutput<TItem12>,\n        InferOutput<TItem13>,\n        InferIssue<TItem13>\n      >,\n  item14:\n    | TItem14\n    | PipeAction<\n        InferOutput<TItem13>,\n        InferOutput<TItem14>,\n        InferIssue<TItem14>\n      >,\n  item15:\n    | TItem15\n    | PipeAction<\n        InferOutput<TItem14>,\n        InferOutput<TItem15>,\n        InferIssue<TItem15>\n      >,\n  item16:\n    | TItem16\n    | PipeAction<\n        InferOutput<TItem15>,\n        InferOutput<TItem16>,\n        InferIssue<TItem16>\n      >,\n  item17:\n    | TItem17\n    | PipeAction<\n        InferOutput<TItem16>,\n        InferOutput<TItem17>,\n        InferIssue<TItem17>\n      >,\n  item18:\n    | TItem18\n    | PipeAction<\n        InferOutput<TItem17>,\n        InferOutput<TItem18>,\n        InferIssue<TItem18>\n      >\n): SchemaWithPipe<\n  readonly [\n    TSchema,\n    TItem1,\n    TItem2,\n    TItem3,\n    TItem4,\n    TItem5,\n    TItem6,\n    TItem7,\n    TItem8,\n    TItem9,\n    TItem10,\n    TItem11,\n    TItem12,\n    TItem13,\n    TItem14,\n    TItem15,\n    TItem16,\n    TItem17,\n    TItem18,\n  ]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n * @param item7 The seventh pipe item.\n * @param item8 The eighth pipe item.\n * @param item9 The ninth pipe item.\n * @param item10 The tenth pipe item.\n * @param item11 The eleventh pipe item.\n * @param item12 The twelfth pipe item.\n * @param item13 The thirteenth pipe item.\n * @param item14 The fourteenth pipe item.\n * @param item15 The fifteenth pipe item.\n * @param item16 The sixteenth pipe item.\n * @param item17 The seventeenth pipe item.\n * @param item18 The eighteenth pipe item.\n * @param item19 The nineteenth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipe<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends PipeItem<\n    InferOutput<TSchema>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem2 extends PipeItem<\n    InferOutput<TItem1>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem3 extends PipeItem<\n    InferOutput<TItem2>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem4 extends PipeItem<\n    InferOutput<TItem3>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem5 extends PipeItem<\n    InferOutput<TItem4>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem6 extends PipeItem<\n    InferOutput<TItem5>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem7 extends PipeItem<\n    InferOutput<TItem6>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem8 extends PipeItem<\n    InferOutput<TItem7>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem9 extends PipeItem<\n    InferOutput<TItem8>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem10 extends PipeItem<\n    InferOutput<TItem9>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem11 extends PipeItem<\n    InferOutput<TItem10>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem12 extends PipeItem<\n    InferOutput<TItem11>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem13 extends PipeItem<\n    InferOutput<TItem12>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem14 extends PipeItem<\n    InferOutput<TItem13>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem15 extends PipeItem<\n    InferOutput<TItem14>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem16 extends PipeItem<\n    InferOutput<TItem15>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem17 extends PipeItem<\n    InferOutput<TItem16>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem18 extends PipeItem<\n    InferOutput<TItem17>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n  const TItem19 extends PipeItem<\n    InferOutput<TItem18>,\n    unknown,\n    BaseIssue<unknown>\n  >,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>,\n  item7:\n    | TItem7\n    | PipeAction<InferOutput<TItem6>, InferOutput<TItem7>, InferIssue<TItem7>>,\n  item8:\n    | TItem8\n    | PipeAction<InferOutput<TItem7>, InferOutput<TItem8>, InferIssue<TItem8>>,\n  item9:\n    | TItem9\n    | PipeAction<InferOutput<TItem8>, InferOutput<TItem9>, InferIssue<TItem9>>,\n  item10:\n    | TItem10\n    | PipeAction<\n        InferOutput<TItem9>,\n        InferOutput<TItem10>,\n        InferIssue<TItem10>\n      >,\n  item11:\n    | TItem11\n    | PipeAction<\n        InferOutput<TItem10>,\n        InferOutput<TItem11>,\n        InferIssue<TItem11>\n      >,\n  item12:\n    | TItem12\n    | PipeAction<\n        InferOutput<TItem11>,\n        InferOutput<TItem12>,\n        InferIssue<TItem12>\n      >,\n  item13:\n    | TItem13\n    | PipeAction<\n        InferOutput<TItem12>,\n        InferOutput<TItem13>,\n        InferIssue<TItem13>\n      >,\n  item14:\n    | TItem14\n    | PipeAction<\n        InferOutput<TItem13>,\n        InferOutput<TItem14>,\n        InferIssue<TItem14>\n      >,\n  item15:\n    | TItem15\n    | PipeAction<\n        InferOutput<TItem14>,\n        InferOutput<TItem15>,\n        InferIssue<TItem15>\n      >,\n  item16:\n    | TItem16\n    | PipeAction<\n        InferOutput<TItem15>,\n        InferOutput<TItem16>,\n        InferIssue<TItem16>\n      >,\n  item17:\n    | TItem17\n    | PipeAction<\n        InferOutput<TItem16>,\n        InferOutput<TItem17>,\n        InferIssue<TItem17>\n      >,\n  item18:\n    | TItem18\n    | PipeAction<\n        InferOutput<TItem17>,\n        InferOutput<TItem18>,\n        InferIssue<TItem18>\n      >,\n  item19:\n    | TItem19\n    | PipeAction<\n        InferOutput<TItem18>,\n        InferOutput<TItem19>,\n        InferIssue<TItem19>\n      >\n): SchemaWithPipe<\n  readonly [\n    TSchema,\n    TItem1,\n    TItem2,\n    TItem3,\n    TItem4,\n    TItem5,\n    TItem6,\n    TItem7,\n    TItem8,\n    TItem9,\n    TItem10,\n    TItem11,\n    TItem12,\n    TItem13,\n    TItem14,\n    TItem15,\n    TItem16,\n    TItem17,\n    TItem18,\n    TItem19,\n  ]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param items The pipe items.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipe<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TItems extends readonly PipeItem<\n    InferOutput<TSchema>,\n    InferOutput<TSchema>,\n    BaseIssue<unknown>\n  >[],\n>(\n  schema: TSchema,\n  ...items: TItems\n): SchemaWithPipe<readonly [TSchema, ...TItems]>;\n\n// @__NO_SIDE_EFFECTS__\nexport function pipe<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TItems extends readonly PipeItem<\n    unknown,\n    unknown,\n    BaseIssue<unknown>\n  >[],\n>(\n  ...pipe: [TSchema, ...TItems]\n): SchemaWithPipe<readonly [TSchema, ...TItems]> {\n  return {\n    ...pipe[0],\n    pipe,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      // Execute pipeline items in sequence\n      for (const item of pipe) {\n        // Exclude metadata items from execution\n        if (item.kind !== 'metadata') {\n          // Mark dataset as untyped and break pipe if there are issues and pipe\n          // item is schema or transformation\n          if (\n            dataset.issues &&\n            (item.kind === 'schema' || item.kind === 'transformation')\n          ) {\n            dataset.typed = false;\n            break;\n          }\n\n          // Continue pipe execution if there is no reason to abort early\n          if (\n            !dataset.issues ||\n            (!config.abortEarly && !config.abortPipeEarly)\n          ) {\n            // @ts-expect-error\n            dataset = item['~run'](dataset, config);\n          }\n        }\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<unknown, BaseIssue<unknown>>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/methods/pipe/pipeAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport {\n  decimal,\n  type DecimalAction,\n  type DecimalIssue,\n  description,\n  type DescriptionAction,\n  minLength,\n  type MinLengthAction,\n  type MinLengthIssue,\n  minValue,\n  type MinValueAction,\n  type MinValueIssue,\n  type TransformActionAsync,\n  transformAsync,\n  trim,\n  type TrimAction,\n} from '../../actions/index.ts';\nimport {\n  number,\n  type NumberIssue,\n  type NumberSchema,\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../../schemas/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { pipeAsync, type SchemaWithPipeAsync } from './pipeAsync.ts';\n\ndescribe('pipeAsync', () => {\n  const schema = pipeAsync(\n    string(),\n    description('text'),\n    trim(),\n    minLength(1),\n    decimal(),\n    transformAsync(async (input) => parseInt(input)),\n    number(),\n    minValue(100)\n  );\n\n  test('should return schema object', () => {\n    expectTypeOf(schema).toEqualTypeOf<\n      SchemaWithPipeAsync<\n        readonly [\n          StringSchema<undefined>,\n          DescriptionAction<string, 'text'>,\n          TrimAction,\n          MinLengthAction<string, 1, undefined>,\n          DecimalAction<string, undefined>,\n          TransformActionAsync<string, number>,\n          NumberSchema<undefined>,\n          MinValueAction<number, 100, undefined>,\n        ]\n      >\n    >();\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = typeof schema;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<number>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        | StringIssue\n        | MinLengthIssue<string, 1>\n        | DecimalIssue<string>\n        | NumberIssue\n        | MinValueIssue<number, 100>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/pipe/pipeAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  decimal,\n  type DecimalIssue,\n  description,\n  minLength,\n  type MinLengthIssue,\n  minValue,\n  transform,\n  trim,\n} from '../../actions/index.ts';\nimport { DECIMAL_REGEX } from '../../regex.ts';\nimport { string } from '../../schemas/index.ts';\nimport { pipeAsync } from './pipeAsync.ts';\n\ndescribe('pipeAsync', () => {\n  const schema = pipeAsync(\n    string(),\n    description('text'),\n    trim(),\n    minLength(1),\n    decimal()\n  );\n\n  test('should return schema object', () => {\n    expect(schema).toStrictEqual({\n      kind: 'schema',\n      type: 'string',\n      reference: string,\n      expects: 'string',\n      message: undefined,\n      pipe: [\n        {\n          ...string(),\n          '~standard': {\n            version: 1,\n            vendor: 'valibot',\n            validate: expect.any(Function),\n          },\n          '~run': expect.any(Function),\n        },\n        description('text'),\n        {\n          ...trim(),\n          '~run': expect.any(Function),\n        },\n        {\n          ...minLength(1),\n          '~run': expect.any(Function),\n        },\n        {\n          ...decimal(),\n          '~run': expect.any(Function),\n        },\n      ],\n      async: true,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    } satisfies typeof schema);\n  });\n\n  test('should return dataset without issues', async () => {\n    expect(await schema['~run']({ value: ' 123 ' }, {})).toStrictEqual({\n      typed: true,\n      value: '123',\n    });\n  });\n\n  const baseInfo = {\n    message: expect.any(String),\n    path: undefined,\n    issues: undefined,\n    lang: undefined,\n    abortEarly: undefined,\n    abortPipeEarly: undefined,\n  };\n\n  const minLengthIssue: MinLengthIssue<string, 1> = {\n    ...baseInfo,\n    kind: 'validation',\n    type: 'min_length',\n    input: '',\n    expected: '>=1',\n    received: '0',\n    requirement: 1,\n  };\n\n  const decimalIssue: DecimalIssue<string> = {\n    ...baseInfo,\n    kind: 'validation',\n    type: 'decimal',\n    input: '',\n    expected: null,\n    received: '\"\"',\n    requirement: DECIMAL_REGEX,\n  };\n\n  test('should return dataset with issues', async () => {\n    expect(await schema['~run']({ value: '  ' }, {})).toStrictEqual({\n      typed: true,\n      value: '',\n      issues: [minLengthIssue, decimalIssue],\n    });\n  });\n\n  describe('should break pipe if necessary', () => {\n    test('for abort early config', async () => {\n      expect(\n        await schema['~run']({ value: '  ' }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: true,\n        value: '',\n        issues: [{ ...minLengthIssue, abortEarly: true }],\n      });\n    });\n\n    test('for abort pipe early config', async () => {\n      expect(\n        await schema['~run']({ value: '  ' }, { abortPipeEarly: true })\n      ).toStrictEqual({\n        typed: true,\n        value: '',\n        issues: [{ ...minLengthIssue, abortPipeEarly: true }],\n      });\n    });\n\n    test('if next action is schema', async () => {\n      expect(\n        await pipeAsync(schema, string(), minLength(10))['~run'](\n          { value: '  ' },\n          {}\n        )\n      ).toStrictEqual({\n        typed: false,\n        value: '',\n        issues: [minLengthIssue, decimalIssue],\n      });\n    });\n\n    test('if next action is transformation', async () => {\n      expect(\n        await pipeAsync(schema, transform(parseInt), minValue(999))['~run'](\n          { value: '  ' },\n          {}\n        )\n      ).toStrictEqual({\n        typed: false,\n        value: '',\n        issues: [minLengthIssue, decimalIssue],\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/pipe/pipeAsync.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  Config,\n  FirstTupleItem,\n  InferInput,\n  InferIssue,\n  InferOutput,\n  LastTupleItem,\n  OutputDataset,\n  PipeAction,\n  PipeActionAsync,\n  PipeItem,\n  PipeItemAsync,\n  StandardProps,\n  UnknownDataset,\n} from '../../types/index.ts';\nimport { _getStandardProps } from '../../utils/index.ts';\n\n/**\n * Schema with pipe async type.\n */\nexport type SchemaWithPipeAsync<\n  TPipe extends readonly [\n    (\n      | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n      | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n    ),\n    ...(\n      | PipeItem<any, unknown, BaseIssue<unknown>> // eslint-disable-line @typescript-eslint/no-explicit-any\n      | PipeItemAsync<any, unknown, BaseIssue<unknown>> // eslint-disable-line @typescript-eslint/no-explicit-any\n    )[],\n  ],\n> = Omit<\n  FirstTupleItem<TPipe>,\n  'async' | 'pipe' | '~standard' | '~run' | '~types'\n> & {\n  /**\n   * The pipe items.\n   */\n  readonly pipe: TPipe;\n  /**\n   * Whether it's async.\n   */\n  readonly async: true;\n  /**\n   * The Standard Schema properties.\n   *\n   * @internal\n   */\n  readonly '~standard': StandardProps<\n    InferInput<FirstTupleItem<TPipe>>,\n    InferOutput<LastTupleItem<TPipe>>\n  >;\n  /**\n   * Parses unknown input values.\n   *\n   * @param dataset The input dataset.\n   * @param config The configuration.\n   *\n   * @returns The output dataset.\n   *\n   * @internal\n   */\n  readonly '~run': (\n    dataset: UnknownDataset,\n    config: Config<BaseIssue<unknown>>\n  ) => Promise<\n    OutputDataset<InferOutput<LastTupleItem<TPipe>>, InferIssue<TPipe[number]>>\n  >;\n  /**\n   * The input, output and issue type.\n   *\n   * @internal\n   */\n  readonly '~types'?:\n    | {\n        readonly input: InferInput<FirstTupleItem<TPipe>>;\n        readonly output: InferOutput<LastTupleItem<TPipe>>;\n        readonly issue: InferIssue<TPipe[number]>;\n      }\n    | undefined;\n};\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipeAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends\n    | PipeItem<InferOutput<TSchema>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TSchema>, unknown, BaseIssue<unknown>>,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>\n    | PipeActionAsync<\n        InferOutput<TSchema>,\n        InferOutput<TItem1>,\n        InferIssue<TItem1>\n      >\n): SchemaWithPipeAsync<readonly [TSchema, TItem1]>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipeAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends\n    | PipeItem<InferOutput<TSchema>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TSchema>, unknown, BaseIssue<unknown>>,\n  const TItem2 extends\n    | PipeItem<InferOutput<TItem1>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem1>, unknown, BaseIssue<unknown>>,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>\n    | PipeActionAsync<\n        InferOutput<TSchema>,\n        InferOutput<TItem1>,\n        InferIssue<TItem1>\n      >,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>\n    | PipeActionAsync<\n        InferOutput<TItem1>,\n        InferOutput<TItem2>,\n        InferIssue<TItem2>\n      >\n): SchemaWithPipeAsync<readonly [TSchema, TItem1, TItem2]>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipeAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends\n    | PipeItem<InferOutput<TSchema>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TSchema>, unknown, BaseIssue<unknown>>,\n  const TItem2 extends\n    | PipeItem<InferOutput<TItem1>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem1>, unknown, BaseIssue<unknown>>,\n  const TItem3 extends\n    | PipeItem<InferOutput<TItem2>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem2>, unknown, BaseIssue<unknown>>,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>\n    | PipeActionAsync<\n        InferOutput<TSchema>,\n        InferOutput<TItem1>,\n        InferIssue<TItem1>\n      >,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>\n    | PipeActionAsync<\n        InferOutput<TItem1>,\n        InferOutput<TItem2>,\n        InferIssue<TItem2>\n      >,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>\n    | PipeActionAsync<\n        InferOutput<TItem2>,\n        InferOutput<TItem3>,\n        InferIssue<TItem3>\n      >\n): SchemaWithPipeAsync<readonly [TSchema, TItem1, TItem2, TItem3]>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipeAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends\n    | PipeItem<InferOutput<TSchema>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TSchema>, unknown, BaseIssue<unknown>>,\n  const TItem2 extends\n    | PipeItem<InferOutput<TItem1>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem1>, unknown, BaseIssue<unknown>>,\n  const TItem3 extends\n    | PipeItem<InferOutput<TItem2>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem2>, unknown, BaseIssue<unknown>>,\n  const TItem4 extends\n    | PipeItem<InferOutput<TItem3>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem3>, unknown, BaseIssue<unknown>>,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>\n    | PipeActionAsync<\n        InferOutput<TSchema>,\n        InferOutput<TItem1>,\n        InferIssue<TItem1>\n      >,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>\n    | PipeActionAsync<\n        InferOutput<TItem1>,\n        InferOutput<TItem2>,\n        InferIssue<TItem2>\n      >,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>\n    | PipeActionAsync<\n        InferOutput<TItem2>,\n        InferOutput<TItem3>,\n        InferIssue<TItem3>\n      >,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>\n    | PipeActionAsync<\n        InferOutput<TItem3>,\n        InferOutput<TItem4>,\n        InferIssue<TItem4>\n      >\n): SchemaWithPipeAsync<readonly [TSchema, TItem1, TItem2, TItem3, TItem4]>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipeAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends\n    | PipeItem<InferOutput<TSchema>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TSchema>, unknown, BaseIssue<unknown>>,\n  const TItem2 extends\n    | PipeItem<InferOutput<TItem1>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem1>, unknown, BaseIssue<unknown>>,\n  const TItem3 extends\n    | PipeItem<InferOutput<TItem2>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem2>, unknown, BaseIssue<unknown>>,\n  const TItem4 extends\n    | PipeItem<InferOutput<TItem3>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem3>, unknown, BaseIssue<unknown>>,\n  const TItem5 extends\n    | PipeItem<InferOutput<TItem4>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem4>, unknown, BaseIssue<unknown>>,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>\n    | PipeActionAsync<\n        InferOutput<TSchema>,\n        InferOutput<TItem1>,\n        InferIssue<TItem1>\n      >,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>\n    | PipeActionAsync<\n        InferOutput<TItem1>,\n        InferOutput<TItem2>,\n        InferIssue<TItem2>\n      >,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>\n    | PipeActionAsync<\n        InferOutput<TItem2>,\n        InferOutput<TItem3>,\n        InferIssue<TItem3>\n      >,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>\n    | PipeActionAsync<\n        InferOutput<TItem3>,\n        InferOutput<TItem4>,\n        InferIssue<TItem4>\n      >,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>\n    | PipeActionAsync<\n        InferOutput<TItem4>,\n        InferOutput<TItem5>,\n        InferIssue<TItem5>\n      >\n): SchemaWithPipeAsync<\n  readonly [TSchema, TItem1, TItem2, TItem3, TItem4, TItem5]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipeAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends\n    | PipeItem<InferOutput<TSchema>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TSchema>, unknown, BaseIssue<unknown>>,\n  const TItem2 extends\n    | PipeItem<InferOutput<TItem1>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem1>, unknown, BaseIssue<unknown>>,\n  const TItem3 extends\n    | PipeItem<InferOutput<TItem2>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem2>, unknown, BaseIssue<unknown>>,\n  const TItem4 extends\n    | PipeItem<InferOutput<TItem3>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem3>, unknown, BaseIssue<unknown>>,\n  const TItem5 extends\n    | PipeItem<InferOutput<TItem4>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem4>, unknown, BaseIssue<unknown>>,\n  const TItem6 extends\n    | PipeItem<InferOutput<TItem5>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem5>, unknown, BaseIssue<unknown>>,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>\n    | PipeActionAsync<\n        InferOutput<TSchema>,\n        InferOutput<TItem1>,\n        InferIssue<TItem1>\n      >,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>\n    | PipeActionAsync<\n        InferOutput<TItem1>,\n        InferOutput<TItem2>,\n        InferIssue<TItem2>\n      >,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>\n    | PipeActionAsync<\n        InferOutput<TItem2>,\n        InferOutput<TItem3>,\n        InferIssue<TItem3>\n      >,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>\n    | PipeActionAsync<\n        InferOutput<TItem3>,\n        InferOutput<TItem4>,\n        InferIssue<TItem4>\n      >,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>\n    | PipeActionAsync<\n        InferOutput<TItem4>,\n        InferOutput<TItem5>,\n        InferIssue<TItem5>\n      >,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>\n    | PipeActionAsync<\n        InferOutput<TItem5>,\n        InferOutput<TItem6>,\n        InferIssue<TItem6>\n      >\n): SchemaWithPipeAsync<\n  readonly [TSchema, TItem1, TItem2, TItem3, TItem4, TItem5, TItem6]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n * @param item7 The seventh pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipeAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends\n    | PipeItem<InferOutput<TSchema>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TSchema>, unknown, BaseIssue<unknown>>,\n  const TItem2 extends\n    | PipeItem<InferOutput<TItem1>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem1>, unknown, BaseIssue<unknown>>,\n  const TItem3 extends\n    | PipeItem<InferOutput<TItem2>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem2>, unknown, BaseIssue<unknown>>,\n  const TItem4 extends\n    | PipeItem<InferOutput<TItem3>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem3>, unknown, BaseIssue<unknown>>,\n  const TItem5 extends\n    | PipeItem<InferOutput<TItem4>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem4>, unknown, BaseIssue<unknown>>,\n  const TItem6 extends\n    | PipeItem<InferOutput<TItem5>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem5>, unknown, BaseIssue<unknown>>,\n  const TItem7 extends\n    | PipeItem<InferOutput<TItem6>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem6>, unknown, BaseIssue<unknown>>,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>\n    | PipeActionAsync<\n        InferOutput<TSchema>,\n        InferOutput<TItem1>,\n        InferIssue<TItem1>\n      >,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>\n    | PipeActionAsync<\n        InferOutput<TItem1>,\n        InferOutput<TItem2>,\n        InferIssue<TItem2>\n      >,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>\n    | PipeActionAsync<\n        InferOutput<TItem2>,\n        InferOutput<TItem3>,\n        InferIssue<TItem3>\n      >,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>\n    | PipeActionAsync<\n        InferOutput<TItem3>,\n        InferOutput<TItem4>,\n        InferIssue<TItem4>\n      >,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>\n    | PipeActionAsync<\n        InferOutput<TItem4>,\n        InferOutput<TItem5>,\n        InferIssue<TItem5>\n      >,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>\n    | PipeActionAsync<\n        InferOutput<TItem5>,\n        InferOutput<TItem6>,\n        InferIssue<TItem6>\n      >,\n  item7:\n    | TItem7\n    | PipeAction<InferOutput<TItem6>, InferOutput<TItem7>, InferIssue<TItem7>>\n    | PipeActionAsync<\n        InferOutput<TItem6>,\n        InferOutput<TItem7>,\n        InferIssue<TItem7>\n      >\n): SchemaWithPipeAsync<\n  readonly [TSchema, TItem1, TItem2, TItem3, TItem4, TItem5, TItem6, TItem7]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n * @param item7 The seventh pipe item.\n * @param item8 The eighth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipeAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends\n    | PipeItem<InferOutput<TSchema>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TSchema>, unknown, BaseIssue<unknown>>,\n  const TItem2 extends\n    | PipeItem<InferOutput<TItem1>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem1>, unknown, BaseIssue<unknown>>,\n  const TItem3 extends\n    | PipeItem<InferOutput<TItem2>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem2>, unknown, BaseIssue<unknown>>,\n  const TItem4 extends\n    | PipeItem<InferOutput<TItem3>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem3>, unknown, BaseIssue<unknown>>,\n  const TItem5 extends\n    | PipeItem<InferOutput<TItem4>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem4>, unknown, BaseIssue<unknown>>,\n  const TItem6 extends\n    | PipeItem<InferOutput<TItem5>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem5>, unknown, BaseIssue<unknown>>,\n  const TItem7 extends\n    | PipeItem<InferOutput<TItem6>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem6>, unknown, BaseIssue<unknown>>,\n  const TItem8 extends\n    | PipeItem<InferOutput<TItem7>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem7>, unknown, BaseIssue<unknown>>,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>\n    | PipeActionAsync<\n        InferOutput<TSchema>,\n        InferOutput<TItem1>,\n        InferIssue<TItem1>\n      >,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>\n    | PipeActionAsync<\n        InferOutput<TItem1>,\n        InferOutput<TItem2>,\n        InferIssue<TItem2>\n      >,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>\n    | PipeActionAsync<\n        InferOutput<TItem2>,\n        InferOutput<TItem3>,\n        InferIssue<TItem3>\n      >,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>\n    | PipeActionAsync<\n        InferOutput<TItem3>,\n        InferOutput<TItem4>,\n        InferIssue<TItem4>\n      >,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>\n    | PipeActionAsync<\n        InferOutput<TItem4>,\n        InferOutput<TItem5>,\n        InferIssue<TItem5>\n      >,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>\n    | PipeActionAsync<\n        InferOutput<TItem5>,\n        InferOutput<TItem6>,\n        InferIssue<TItem6>\n      >,\n  item7:\n    | TItem7\n    | PipeAction<InferOutput<TItem6>, InferOutput<TItem7>, InferIssue<TItem7>>\n    | PipeActionAsync<\n        InferOutput<TItem6>,\n        InferOutput<TItem7>,\n        InferIssue<TItem7>\n      >,\n  item8:\n    | TItem8\n    | PipeAction<InferOutput<TItem7>, InferOutput<TItem8>, InferIssue<TItem8>>\n    | PipeActionAsync<\n        InferOutput<TItem7>,\n        InferOutput<TItem8>,\n        InferIssue<TItem8>\n      >\n): SchemaWithPipeAsync<\n  readonly [\n    TSchema,\n    TItem1,\n    TItem2,\n    TItem3,\n    TItem4,\n    TItem5,\n    TItem6,\n    TItem7,\n    TItem8,\n  ]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n * @param item7 The seventh pipe item.\n * @param item8 The eighth pipe item.\n * @param item9 The ninth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipeAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends\n    | PipeItem<InferOutput<TSchema>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TSchema>, unknown, BaseIssue<unknown>>,\n  const TItem2 extends\n    | PipeItem<InferOutput<TItem1>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem1>, unknown, BaseIssue<unknown>>,\n  const TItem3 extends\n    | PipeItem<InferOutput<TItem2>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem2>, unknown, BaseIssue<unknown>>,\n  const TItem4 extends\n    | PipeItem<InferOutput<TItem3>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem3>, unknown, BaseIssue<unknown>>,\n  const TItem5 extends\n    | PipeItem<InferOutput<TItem4>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem4>, unknown, BaseIssue<unknown>>,\n  const TItem6 extends\n    | PipeItem<InferOutput<TItem5>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem5>, unknown, BaseIssue<unknown>>,\n  const TItem7 extends\n    | PipeItem<InferOutput<TItem6>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem6>, unknown, BaseIssue<unknown>>,\n  const TItem8 extends\n    | PipeItem<InferOutput<TItem7>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem7>, unknown, BaseIssue<unknown>>,\n  const TItem9 extends\n    | PipeItem<InferOutput<TItem8>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem8>, unknown, BaseIssue<unknown>>,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>\n    | PipeActionAsync<\n        InferOutput<TSchema>,\n        InferOutput<TItem1>,\n        InferIssue<TItem1>\n      >,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>\n    | PipeActionAsync<\n        InferOutput<TItem1>,\n        InferOutput<TItem2>,\n        InferIssue<TItem2>\n      >,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>\n    | PipeActionAsync<\n        InferOutput<TItem2>,\n        InferOutput<TItem3>,\n        InferIssue<TItem3>\n      >,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>\n    | PipeActionAsync<\n        InferOutput<TItem3>,\n        InferOutput<TItem4>,\n        InferIssue<TItem4>\n      >,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>\n    | PipeActionAsync<\n        InferOutput<TItem4>,\n        InferOutput<TItem5>,\n        InferIssue<TItem5>\n      >,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>\n    | PipeActionAsync<\n        InferOutput<TItem5>,\n        InferOutput<TItem6>,\n        InferIssue<TItem6>\n      >,\n  item7:\n    | TItem7\n    | PipeAction<InferOutput<TItem6>, InferOutput<TItem7>, InferIssue<TItem7>>\n    | PipeActionAsync<\n        InferOutput<TItem6>,\n        InferOutput<TItem7>,\n        InferIssue<TItem7>\n      >,\n  item8:\n    | TItem8\n    | PipeAction<InferOutput<TItem7>, InferOutput<TItem8>, InferIssue<TItem8>>\n    | PipeActionAsync<\n        InferOutput<TItem7>,\n        InferOutput<TItem8>,\n        InferIssue<TItem8>\n      >,\n  item9:\n    | TItem9\n    | PipeAction<InferOutput<TItem8>, InferOutput<TItem9>, InferIssue<TItem9>>\n    | PipeActionAsync<\n        InferOutput<TItem8>,\n        InferOutput<TItem9>,\n        InferIssue<TItem9>\n      >\n): SchemaWithPipeAsync<\n  readonly [\n    TSchema,\n    TItem1,\n    TItem2,\n    TItem3,\n    TItem4,\n    TItem5,\n    TItem6,\n    TItem7,\n    TItem8,\n    TItem9,\n  ]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n * @param item7 The seventh pipe item.\n * @param item8 The eighth pipe item.\n * @param item9 The ninth pipe item.\n * @param item10 The tenth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipeAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends\n    | PipeItem<InferOutput<TSchema>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TSchema>, unknown, BaseIssue<unknown>>,\n  const TItem2 extends\n    | PipeItem<InferOutput<TItem1>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem1>, unknown, BaseIssue<unknown>>,\n  const TItem3 extends\n    | PipeItem<InferOutput<TItem2>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem2>, unknown, BaseIssue<unknown>>,\n  const TItem4 extends\n    | PipeItem<InferOutput<TItem3>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem3>, unknown, BaseIssue<unknown>>,\n  const TItem5 extends\n    | PipeItem<InferOutput<TItem4>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem4>, unknown, BaseIssue<unknown>>,\n  const TItem6 extends\n    | PipeItem<InferOutput<TItem5>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem5>, unknown, BaseIssue<unknown>>,\n  const TItem7 extends\n    | PipeItem<InferOutput<TItem6>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem6>, unknown, BaseIssue<unknown>>,\n  const TItem8 extends\n    | PipeItem<InferOutput<TItem7>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem7>, unknown, BaseIssue<unknown>>,\n  const TItem9 extends\n    | PipeItem<InferOutput<TItem8>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem8>, unknown, BaseIssue<unknown>>,\n  const TItem10 extends\n    | PipeItem<InferOutput<TItem9>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem9>, unknown, BaseIssue<unknown>>,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>\n    | PipeActionAsync<\n        InferOutput<TSchema>,\n        InferOutput<TItem1>,\n        InferIssue<TItem1>\n      >,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>\n    | PipeActionAsync<\n        InferOutput<TItem1>,\n        InferOutput<TItem2>,\n        InferIssue<TItem2>\n      >,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>\n    | PipeActionAsync<\n        InferOutput<TItem2>,\n        InferOutput<TItem3>,\n        InferIssue<TItem3>\n      >,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>\n    | PipeActionAsync<\n        InferOutput<TItem3>,\n        InferOutput<TItem4>,\n        InferIssue<TItem4>\n      >,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>\n    | PipeActionAsync<\n        InferOutput<TItem4>,\n        InferOutput<TItem5>,\n        InferIssue<TItem5>\n      >,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>\n    | PipeActionAsync<\n        InferOutput<TItem5>,\n        InferOutput<TItem6>,\n        InferIssue<TItem6>\n      >,\n  item7:\n    | TItem7\n    | PipeAction<InferOutput<TItem6>, InferOutput<TItem7>, InferIssue<TItem7>>\n    | PipeActionAsync<\n        InferOutput<TItem6>,\n        InferOutput<TItem7>,\n        InferIssue<TItem7>\n      >,\n  item8:\n    | TItem8\n    | PipeAction<InferOutput<TItem7>, InferOutput<TItem8>, InferIssue<TItem8>>\n    | PipeActionAsync<\n        InferOutput<TItem7>,\n        InferOutput<TItem8>,\n        InferIssue<TItem8>\n      >,\n  item9:\n    | TItem9\n    | PipeAction<InferOutput<TItem8>, InferOutput<TItem9>, InferIssue<TItem9>>\n    | PipeActionAsync<\n        InferOutput<TItem8>,\n        InferOutput<TItem9>,\n        InferIssue<TItem9>\n      >,\n  item10:\n    | TItem10\n    | PipeAction<InferOutput<TItem9>, InferOutput<TItem10>, InferIssue<TItem10>>\n    | PipeActionAsync<\n        InferOutput<TItem9>,\n        InferOutput<TItem10>,\n        InferIssue<TItem10>\n      >\n): SchemaWithPipeAsync<\n  readonly [\n    TSchema,\n    TItem1,\n    TItem2,\n    TItem3,\n    TItem4,\n    TItem5,\n    TItem6,\n    TItem7,\n    TItem8,\n    TItem9,\n    TItem10,\n  ]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n * @param item7 The seventh pipe item.\n * @param item8 The eighth pipe item.\n * @param item9 The ninth pipe item.\n * @param item10 The tenth pipe item.\n * @param item11 The eleventh pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipeAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends\n    | PipeItem<InferOutput<TSchema>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TSchema>, unknown, BaseIssue<unknown>>,\n  const TItem2 extends\n    | PipeItem<InferOutput<TItem1>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem1>, unknown, BaseIssue<unknown>>,\n  const TItem3 extends\n    | PipeItem<InferOutput<TItem2>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem2>, unknown, BaseIssue<unknown>>,\n  const TItem4 extends\n    | PipeItem<InferOutput<TItem3>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem3>, unknown, BaseIssue<unknown>>,\n  const TItem5 extends\n    | PipeItem<InferOutput<TItem4>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem4>, unknown, BaseIssue<unknown>>,\n  const TItem6 extends\n    | PipeItem<InferOutput<TItem5>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem5>, unknown, BaseIssue<unknown>>,\n  const TItem7 extends\n    | PipeItem<InferOutput<TItem6>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem6>, unknown, BaseIssue<unknown>>,\n  const TItem8 extends\n    | PipeItem<InferOutput<TItem7>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem7>, unknown, BaseIssue<unknown>>,\n  const TItem9 extends\n    | PipeItem<InferOutput<TItem8>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem8>, unknown, BaseIssue<unknown>>,\n  const TItem10 extends\n    | PipeItem<InferOutput<TItem9>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem9>, unknown, BaseIssue<unknown>>,\n  const TItem11 extends\n    | PipeItem<InferOutput<TItem10>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem10>, unknown, BaseIssue<unknown>>,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>\n    | PipeActionAsync<\n        InferOutput<TSchema>,\n        InferOutput<TItem1>,\n        InferIssue<TItem1>\n      >,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>\n    | PipeActionAsync<\n        InferOutput<TItem1>,\n        InferOutput<TItem2>,\n        InferIssue<TItem2>\n      >,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>\n    | PipeActionAsync<\n        InferOutput<TItem2>,\n        InferOutput<TItem3>,\n        InferIssue<TItem3>\n      >,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>\n    | PipeActionAsync<\n        InferOutput<TItem3>,\n        InferOutput<TItem4>,\n        InferIssue<TItem4>\n      >,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>\n    | PipeActionAsync<\n        InferOutput<TItem4>,\n        InferOutput<TItem5>,\n        InferIssue<TItem5>\n      >,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>\n    | PipeActionAsync<\n        InferOutput<TItem5>,\n        InferOutput<TItem6>,\n        InferIssue<TItem6>\n      >,\n  item7:\n    | TItem7\n    | PipeAction<InferOutput<TItem6>, InferOutput<TItem7>, InferIssue<TItem7>>\n    | PipeActionAsync<\n        InferOutput<TItem6>,\n        InferOutput<TItem7>,\n        InferIssue<TItem7>\n      >,\n  item8:\n    | TItem8\n    | PipeAction<InferOutput<TItem7>, InferOutput<TItem8>, InferIssue<TItem8>>\n    | PipeActionAsync<\n        InferOutput<TItem7>,\n        InferOutput<TItem8>,\n        InferIssue<TItem8>\n      >,\n  item9:\n    | TItem9\n    | PipeAction<InferOutput<TItem8>, InferOutput<TItem9>, InferIssue<TItem9>>\n    | PipeActionAsync<\n        InferOutput<TItem8>,\n        InferOutput<TItem9>,\n        InferIssue<TItem9>\n      >,\n  item10:\n    | TItem10\n    | PipeAction<InferOutput<TItem9>, InferOutput<TItem10>, InferIssue<TItem10>>\n    | PipeActionAsync<\n        InferOutput<TItem9>,\n        InferOutput<TItem10>,\n        InferIssue<TItem10>\n      >,\n  item11:\n    | TItem11\n    | PipeAction<\n        InferOutput<TItem10>,\n        InferOutput<TItem11>,\n        InferIssue<TItem11>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem10>,\n        InferOutput<TItem11>,\n        InferIssue<TItem11>\n      >\n): SchemaWithPipeAsync<\n  readonly [\n    TSchema,\n    TItem1,\n    TItem2,\n    TItem3,\n    TItem4,\n    TItem5,\n    TItem6,\n    TItem7,\n    TItem8,\n    TItem9,\n    TItem10,\n    TItem11,\n  ]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n * @param item7 The seventh pipe item.\n * @param item8 The eighth pipe item.\n * @param item9 The ninth pipe item.\n * @param item10 The tenth pipe item.\n * @param item11 The eleventh pipe item.\n * @param item12 The twelfth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipeAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends\n    | PipeItem<InferOutput<TSchema>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TSchema>, unknown, BaseIssue<unknown>>,\n  const TItem2 extends\n    | PipeItem<InferOutput<TItem1>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem1>, unknown, BaseIssue<unknown>>,\n  const TItem3 extends\n    | PipeItem<InferOutput<TItem2>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem2>, unknown, BaseIssue<unknown>>,\n  const TItem4 extends\n    | PipeItem<InferOutput<TItem3>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem3>, unknown, BaseIssue<unknown>>,\n  const TItem5 extends\n    | PipeItem<InferOutput<TItem4>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem4>, unknown, BaseIssue<unknown>>,\n  const TItem6 extends\n    | PipeItem<InferOutput<TItem5>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem5>, unknown, BaseIssue<unknown>>,\n  const TItem7 extends\n    | PipeItem<InferOutput<TItem6>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem6>, unknown, BaseIssue<unknown>>,\n  const TItem8 extends\n    | PipeItem<InferOutput<TItem7>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem7>, unknown, BaseIssue<unknown>>,\n  const TItem9 extends\n    | PipeItem<InferOutput<TItem8>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem8>, unknown, BaseIssue<unknown>>,\n  const TItem10 extends\n    | PipeItem<InferOutput<TItem9>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem9>, unknown, BaseIssue<unknown>>,\n  const TItem11 extends\n    | PipeItem<InferOutput<TItem10>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem10>, unknown, BaseIssue<unknown>>,\n  const TItem12 extends\n    | PipeItem<InferOutput<TItem11>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem11>, unknown, BaseIssue<unknown>>,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>\n    | PipeActionAsync<\n        InferOutput<TSchema>,\n        InferOutput<TItem1>,\n        InferIssue<TItem1>\n      >,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>\n    | PipeActionAsync<\n        InferOutput<TItem1>,\n        InferOutput<TItem2>,\n        InferIssue<TItem2>\n      >,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>\n    | PipeActionAsync<\n        InferOutput<TItem2>,\n        InferOutput<TItem3>,\n        InferIssue<TItem3>\n      >,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>\n    | PipeActionAsync<\n        InferOutput<TItem3>,\n        InferOutput<TItem4>,\n        InferIssue<TItem4>\n      >,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>\n    | PipeActionAsync<\n        InferOutput<TItem4>,\n        InferOutput<TItem5>,\n        InferIssue<TItem5>\n      >,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>\n    | PipeActionAsync<\n        InferOutput<TItem5>,\n        InferOutput<TItem6>,\n        InferIssue<TItem6>\n      >,\n  item7:\n    | TItem7\n    | PipeAction<InferOutput<TItem6>, InferOutput<TItem7>, InferIssue<TItem7>>\n    | PipeActionAsync<\n        InferOutput<TItem6>,\n        InferOutput<TItem7>,\n        InferIssue<TItem7>\n      >,\n  item8:\n    | TItem8\n    | PipeAction<InferOutput<TItem7>, InferOutput<TItem8>, InferIssue<TItem8>>\n    | PipeActionAsync<\n        InferOutput<TItem7>,\n        InferOutput<TItem8>,\n        InferIssue<TItem8>\n      >,\n  item9:\n    | TItem9\n    | PipeAction<InferOutput<TItem8>, InferOutput<TItem9>, InferIssue<TItem9>>\n    | PipeActionAsync<\n        InferOutput<TItem8>,\n        InferOutput<TItem9>,\n        InferIssue<TItem9>\n      >,\n  item10:\n    | TItem10\n    | PipeAction<InferOutput<TItem9>, InferOutput<TItem10>, InferIssue<TItem10>>\n    | PipeActionAsync<\n        InferOutput<TItem9>,\n        InferOutput<TItem10>,\n        InferIssue<TItem10>\n      >,\n  item11:\n    | TItem11\n    | PipeAction<\n        InferOutput<TItem10>,\n        InferOutput<TItem11>,\n        InferIssue<TItem11>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem10>,\n        InferOutput<TItem11>,\n        InferIssue<TItem11>\n      >,\n  item12:\n    | TItem12\n    | PipeAction<\n        InferOutput<TItem11>,\n        InferOutput<TItem12>,\n        InferIssue<TItem12>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem11>,\n        InferOutput<TItem12>,\n        InferIssue<TItem12>\n      >\n): SchemaWithPipeAsync<\n  readonly [\n    TSchema,\n    TItem1,\n    TItem2,\n    TItem3,\n    TItem4,\n    TItem5,\n    TItem6,\n    TItem7,\n    TItem8,\n    TItem9,\n    TItem10,\n    TItem11,\n    TItem12,\n  ]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n * @param item7 The seventh pipe item.\n * @param item8 The eighth pipe item.\n * @param item9 The ninth pipe item.\n * @param item10 The tenth pipe item.\n * @param item11 The eleventh pipe item.\n * @param item12 The twelfth pipe item.\n * @param item13 The thirteenth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipeAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends\n    | PipeItem<InferOutput<TSchema>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TSchema>, unknown, BaseIssue<unknown>>,\n  const TItem2 extends\n    | PipeItem<InferOutput<TItem1>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem1>, unknown, BaseIssue<unknown>>,\n  const TItem3 extends\n    | PipeItem<InferOutput<TItem2>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem2>, unknown, BaseIssue<unknown>>,\n  const TItem4 extends\n    | PipeItem<InferOutput<TItem3>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem3>, unknown, BaseIssue<unknown>>,\n  const TItem5 extends\n    | PipeItem<InferOutput<TItem4>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem4>, unknown, BaseIssue<unknown>>,\n  const TItem6 extends\n    | PipeItem<InferOutput<TItem5>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem5>, unknown, BaseIssue<unknown>>,\n  const TItem7 extends\n    | PipeItem<InferOutput<TItem6>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem6>, unknown, BaseIssue<unknown>>,\n  const TItem8 extends\n    | PipeItem<InferOutput<TItem7>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem7>, unknown, BaseIssue<unknown>>,\n  const TItem9 extends\n    | PipeItem<InferOutput<TItem8>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem8>, unknown, BaseIssue<unknown>>,\n  const TItem10 extends\n    | PipeItem<InferOutput<TItem9>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem9>, unknown, BaseIssue<unknown>>,\n  const TItem11 extends\n    | PipeItem<InferOutput<TItem10>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem10>, unknown, BaseIssue<unknown>>,\n  const TItem12 extends\n    | PipeItem<InferOutput<TItem11>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem11>, unknown, BaseIssue<unknown>>,\n  const TItem13 extends\n    | PipeItem<InferOutput<TItem12>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem12>, unknown, BaseIssue<unknown>>,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>\n    | PipeActionAsync<\n        InferOutput<TSchema>,\n        InferOutput<TItem1>,\n        InferIssue<TItem1>\n      >,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>\n    | PipeActionAsync<\n        InferOutput<TItem1>,\n        InferOutput<TItem2>,\n        InferIssue<TItem2>\n      >,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>\n    | PipeActionAsync<\n        InferOutput<TItem2>,\n        InferOutput<TItem3>,\n        InferIssue<TItem3>\n      >,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>\n    | PipeActionAsync<\n        InferOutput<TItem3>,\n        InferOutput<TItem4>,\n        InferIssue<TItem4>\n      >,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>\n    | PipeActionAsync<\n        InferOutput<TItem4>,\n        InferOutput<TItem5>,\n        InferIssue<TItem5>\n      >,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>\n    | PipeActionAsync<\n        InferOutput<TItem5>,\n        InferOutput<TItem6>,\n        InferIssue<TItem6>\n      >,\n  item7:\n    | TItem7\n    | PipeAction<InferOutput<TItem6>, InferOutput<TItem7>, InferIssue<TItem7>>\n    | PipeActionAsync<\n        InferOutput<TItem6>,\n        InferOutput<TItem7>,\n        InferIssue<TItem7>\n      >,\n  item8:\n    | TItem8\n    | PipeAction<InferOutput<TItem7>, InferOutput<TItem8>, InferIssue<TItem8>>\n    | PipeActionAsync<\n        InferOutput<TItem7>,\n        InferOutput<TItem8>,\n        InferIssue<TItem8>\n      >,\n  item9:\n    | TItem9\n    | PipeAction<InferOutput<TItem8>, InferOutput<TItem9>, InferIssue<TItem9>>\n    | PipeActionAsync<\n        InferOutput<TItem8>,\n        InferOutput<TItem9>,\n        InferIssue<TItem9>\n      >,\n  item10:\n    | TItem10\n    | PipeAction<InferOutput<TItem9>, InferOutput<TItem10>, InferIssue<TItem10>>\n    | PipeActionAsync<\n        InferOutput<TItem9>,\n        InferOutput<TItem10>,\n        InferIssue<TItem10>\n      >,\n  item11:\n    | TItem11\n    | PipeAction<\n        InferOutput<TItem10>,\n        InferOutput<TItem11>,\n        InferIssue<TItem11>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem10>,\n        InferOutput<TItem11>,\n        InferIssue<TItem11>\n      >,\n  item12:\n    | TItem12\n    | PipeAction<\n        InferOutput<TItem11>,\n        InferOutput<TItem12>,\n        InferIssue<TItem12>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem11>,\n        InferOutput<TItem12>,\n        InferIssue<TItem12>\n      >,\n  item13:\n    | TItem13\n    | PipeAction<\n        InferOutput<TItem12>,\n        InferOutput<TItem13>,\n        InferIssue<TItem13>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem12>,\n        InferOutput<TItem13>,\n        InferIssue<TItem13>\n      >\n): SchemaWithPipeAsync<\n  readonly [\n    TSchema,\n    TItem1,\n    TItem2,\n    TItem3,\n    TItem4,\n    TItem5,\n    TItem6,\n    TItem7,\n    TItem8,\n    TItem9,\n    TItem10,\n    TItem11,\n    TItem12,\n    TItem13,\n  ]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n * @param item7 The seventh pipe item.\n * @param item8 The eighth pipe item.\n * @param item9 The ninth pipe item.\n * @param item10 The tenth pipe item.\n * @param item11 The eleventh pipe item.\n * @param item12 The twelfth pipe item.\n * @param item13 The thirteenth pipe item.\n * @param item14 The fourteenth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipeAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends\n    | PipeItem<InferOutput<TSchema>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TSchema>, unknown, BaseIssue<unknown>>,\n  const TItem2 extends\n    | PipeItem<InferOutput<TItem1>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem1>, unknown, BaseIssue<unknown>>,\n  const TItem3 extends\n    | PipeItem<InferOutput<TItem2>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem2>, unknown, BaseIssue<unknown>>,\n  const TItem4 extends\n    | PipeItem<InferOutput<TItem3>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem3>, unknown, BaseIssue<unknown>>,\n  const TItem5 extends\n    | PipeItem<InferOutput<TItem4>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem4>, unknown, BaseIssue<unknown>>,\n  const TItem6 extends\n    | PipeItem<InferOutput<TItem5>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem5>, unknown, BaseIssue<unknown>>,\n  const TItem7 extends\n    | PipeItem<InferOutput<TItem6>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem6>, unknown, BaseIssue<unknown>>,\n  const TItem8 extends\n    | PipeItem<InferOutput<TItem7>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem7>, unknown, BaseIssue<unknown>>,\n  const TItem9 extends\n    | PipeItem<InferOutput<TItem8>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem8>, unknown, BaseIssue<unknown>>,\n  const TItem10 extends\n    | PipeItem<InferOutput<TItem9>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem9>, unknown, BaseIssue<unknown>>,\n  const TItem11 extends\n    | PipeItem<InferOutput<TItem10>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem10>, unknown, BaseIssue<unknown>>,\n  const TItem12 extends\n    | PipeItem<InferOutput<TItem11>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem11>, unknown, BaseIssue<unknown>>,\n  const TItem13 extends\n    | PipeItem<InferOutput<TItem12>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem12>, unknown, BaseIssue<unknown>>,\n  const TItem14 extends\n    | PipeItem<InferOutput<TItem13>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem13>, unknown, BaseIssue<unknown>>,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>\n    | PipeActionAsync<\n        InferOutput<TSchema>,\n        InferOutput<TItem1>,\n        InferIssue<TItem1>\n      >,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>\n    | PipeActionAsync<\n        InferOutput<TItem1>,\n        InferOutput<TItem2>,\n        InferIssue<TItem2>\n      >,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>\n    | PipeActionAsync<\n        InferOutput<TItem2>,\n        InferOutput<TItem3>,\n        InferIssue<TItem3>\n      >,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>\n    | PipeActionAsync<\n        InferOutput<TItem3>,\n        InferOutput<TItem4>,\n        InferIssue<TItem4>\n      >,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>\n    | PipeActionAsync<\n        InferOutput<TItem4>,\n        InferOutput<TItem5>,\n        InferIssue<TItem5>\n      >,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>\n    | PipeActionAsync<\n        InferOutput<TItem5>,\n        InferOutput<TItem6>,\n        InferIssue<TItem6>\n      >,\n  item7:\n    | TItem7\n    | PipeAction<InferOutput<TItem6>, InferOutput<TItem7>, InferIssue<TItem7>>\n    | PipeActionAsync<\n        InferOutput<TItem6>,\n        InferOutput<TItem7>,\n        InferIssue<TItem7>\n      >,\n  item8:\n    | TItem8\n    | PipeAction<InferOutput<TItem7>, InferOutput<TItem8>, InferIssue<TItem8>>\n    | PipeActionAsync<\n        InferOutput<TItem7>,\n        InferOutput<TItem8>,\n        InferIssue<TItem8>\n      >,\n  item9:\n    | TItem9\n    | PipeAction<InferOutput<TItem8>, InferOutput<TItem9>, InferIssue<TItem9>>\n    | PipeActionAsync<\n        InferOutput<TItem8>,\n        InferOutput<TItem9>,\n        InferIssue<TItem9>\n      >,\n  item10:\n    | TItem10\n    | PipeAction<InferOutput<TItem9>, InferOutput<TItem10>, InferIssue<TItem10>>\n    | PipeActionAsync<\n        InferOutput<TItem9>,\n        InferOutput<TItem10>,\n        InferIssue<TItem10>\n      >,\n  item11:\n    | TItem11\n    | PipeAction<\n        InferOutput<TItem10>,\n        InferOutput<TItem11>,\n        InferIssue<TItem11>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem10>,\n        InferOutput<TItem11>,\n        InferIssue<TItem11>\n      >,\n  item12:\n    | TItem12\n    | PipeAction<\n        InferOutput<TItem11>,\n        InferOutput<TItem12>,\n        InferIssue<TItem12>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem11>,\n        InferOutput<TItem12>,\n        InferIssue<TItem12>\n      >,\n  item13:\n    | TItem13\n    | PipeAction<\n        InferOutput<TItem12>,\n        InferOutput<TItem13>,\n        InferIssue<TItem13>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem12>,\n        InferOutput<TItem13>,\n        InferIssue<TItem13>\n      >,\n  item14:\n    | TItem14\n    | PipeAction<\n        InferOutput<TItem13>,\n        InferOutput<TItem14>,\n        InferIssue<TItem14>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem13>,\n        InferOutput<TItem14>,\n        InferIssue<TItem14>\n      >\n): SchemaWithPipeAsync<\n  readonly [\n    TSchema,\n    TItem1,\n    TItem2,\n    TItem3,\n    TItem4,\n    TItem5,\n    TItem6,\n    TItem7,\n    TItem8,\n    TItem9,\n    TItem10,\n    TItem11,\n    TItem12,\n    TItem13,\n    TItem14,\n  ]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n * @param item7 The seventh pipe item.\n * @param item8 The eighth pipe item.\n * @param item9 The ninth pipe item.\n * @param item10 The tenth pipe item.\n * @param item11 The eleventh pipe item.\n * @param item12 The twelfth pipe item.\n * @param item13 The thirteenth pipe item.\n * @param item14 The fourteenth pipe item.\n * @param item15 The fifteenth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipeAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends\n    | PipeItem<InferOutput<TSchema>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TSchema>, unknown, BaseIssue<unknown>>,\n  const TItem2 extends\n    | PipeItem<InferOutput<TItem1>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem1>, unknown, BaseIssue<unknown>>,\n  const TItem3 extends\n    | PipeItem<InferOutput<TItem2>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem2>, unknown, BaseIssue<unknown>>,\n  const TItem4 extends\n    | PipeItem<InferOutput<TItem3>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem3>, unknown, BaseIssue<unknown>>,\n  const TItem5 extends\n    | PipeItem<InferOutput<TItem4>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem4>, unknown, BaseIssue<unknown>>,\n  const TItem6 extends\n    | PipeItem<InferOutput<TItem5>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem5>, unknown, BaseIssue<unknown>>,\n  const TItem7 extends\n    | PipeItem<InferOutput<TItem6>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem6>, unknown, BaseIssue<unknown>>,\n  const TItem8 extends\n    | PipeItem<InferOutput<TItem7>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem7>, unknown, BaseIssue<unknown>>,\n  const TItem9 extends\n    | PipeItem<InferOutput<TItem8>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem8>, unknown, BaseIssue<unknown>>,\n  const TItem10 extends\n    | PipeItem<InferOutput<TItem9>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem9>, unknown, BaseIssue<unknown>>,\n  const TItem11 extends\n    | PipeItem<InferOutput<TItem10>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem10>, unknown, BaseIssue<unknown>>,\n  const TItem12 extends\n    | PipeItem<InferOutput<TItem11>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem11>, unknown, BaseIssue<unknown>>,\n  const TItem13 extends\n    | PipeItem<InferOutput<TItem12>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem12>, unknown, BaseIssue<unknown>>,\n  const TItem14 extends\n    | PipeItem<InferOutput<TItem13>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem13>, unknown, BaseIssue<unknown>>,\n  const TItem15 extends\n    | PipeItem<InferOutput<TItem14>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem14>, unknown, BaseIssue<unknown>>,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>\n    | PipeActionAsync<\n        InferOutput<TSchema>,\n        InferOutput<TItem1>,\n        InferIssue<TItem1>\n      >,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>\n    | PipeActionAsync<\n        InferOutput<TItem1>,\n        InferOutput<TItem2>,\n        InferIssue<TItem2>\n      >,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>\n    | PipeActionAsync<\n        InferOutput<TItem2>,\n        InferOutput<TItem3>,\n        InferIssue<TItem3>\n      >,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>\n    | PipeActionAsync<\n        InferOutput<TItem3>,\n        InferOutput<TItem4>,\n        InferIssue<TItem4>\n      >,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>\n    | PipeActionAsync<\n        InferOutput<TItem4>,\n        InferOutput<TItem5>,\n        InferIssue<TItem5>\n      >,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>\n    | PipeActionAsync<\n        InferOutput<TItem5>,\n        InferOutput<TItem6>,\n        InferIssue<TItem6>\n      >,\n  item7:\n    | TItem7\n    | PipeAction<InferOutput<TItem6>, InferOutput<TItem7>, InferIssue<TItem7>>\n    | PipeActionAsync<\n        InferOutput<TItem6>,\n        InferOutput<TItem7>,\n        InferIssue<TItem7>\n      >,\n  item8:\n    | TItem8\n    | PipeAction<InferOutput<TItem7>, InferOutput<TItem8>, InferIssue<TItem8>>\n    | PipeActionAsync<\n        InferOutput<TItem7>,\n        InferOutput<TItem8>,\n        InferIssue<TItem8>\n      >,\n  item9:\n    | TItem9\n    | PipeAction<InferOutput<TItem8>, InferOutput<TItem9>, InferIssue<TItem9>>\n    | PipeActionAsync<\n        InferOutput<TItem8>,\n        InferOutput<TItem9>,\n        InferIssue<TItem9>\n      >,\n  item10:\n    | TItem10\n    | PipeAction<InferOutput<TItem9>, InferOutput<TItem10>, InferIssue<TItem10>>\n    | PipeActionAsync<\n        InferOutput<TItem9>,\n        InferOutput<TItem10>,\n        InferIssue<TItem10>\n      >,\n  item11:\n    | TItem11\n    | PipeAction<\n        InferOutput<TItem10>,\n        InferOutput<TItem11>,\n        InferIssue<TItem11>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem10>,\n        InferOutput<TItem11>,\n        InferIssue<TItem11>\n      >,\n  item12:\n    | TItem12\n    | PipeAction<\n        InferOutput<TItem11>,\n        InferOutput<TItem12>,\n        InferIssue<TItem12>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem11>,\n        InferOutput<TItem12>,\n        InferIssue<TItem12>\n      >,\n  item13:\n    | TItem13\n    | PipeAction<\n        InferOutput<TItem12>,\n        InferOutput<TItem13>,\n        InferIssue<TItem13>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem12>,\n        InferOutput<TItem13>,\n        InferIssue<TItem13>\n      >,\n  item14:\n    | TItem14\n    | PipeAction<\n        InferOutput<TItem13>,\n        InferOutput<TItem14>,\n        InferIssue<TItem14>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem13>,\n        InferOutput<TItem14>,\n        InferIssue<TItem14>\n      >,\n  item15:\n    | TItem15\n    | PipeAction<\n        InferOutput<TItem14>,\n        InferOutput<TItem15>,\n        InferIssue<TItem15>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem14>,\n        InferOutput<TItem15>,\n        InferIssue<TItem15>\n      >\n): SchemaWithPipeAsync<\n  readonly [\n    TSchema,\n    TItem1,\n    TItem2,\n    TItem3,\n    TItem4,\n    TItem5,\n    TItem6,\n    TItem7,\n    TItem8,\n    TItem9,\n    TItem10,\n    TItem11,\n    TItem12,\n    TItem13,\n    TItem14,\n    TItem15,\n  ]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n * @param item7 The seventh pipe item.\n * @param item8 The eighth pipe item.\n * @param item9 The ninth pipe item.\n * @param item10 The tenth pipe item.\n * @param item11 The eleventh pipe item.\n * @param item12 The twelfth pipe item.\n * @param item13 The thirteenth pipe item.\n * @param item14 The fourteenth pipe item.\n * @param item15 The fifteenth pipe item.\n * @param item16 The sixteenth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipeAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends\n    | PipeItem<InferOutput<TSchema>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TSchema>, unknown, BaseIssue<unknown>>,\n  const TItem2 extends\n    | PipeItem<InferOutput<TItem1>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem1>, unknown, BaseIssue<unknown>>,\n  const TItem3 extends\n    | PipeItem<InferOutput<TItem2>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem2>, unknown, BaseIssue<unknown>>,\n  const TItem4 extends\n    | PipeItem<InferOutput<TItem3>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem3>, unknown, BaseIssue<unknown>>,\n  const TItem5 extends\n    | PipeItem<InferOutput<TItem4>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem4>, unknown, BaseIssue<unknown>>,\n  const TItem6 extends\n    | PipeItem<InferOutput<TItem5>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem5>, unknown, BaseIssue<unknown>>,\n  const TItem7 extends\n    | PipeItem<InferOutput<TItem6>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem6>, unknown, BaseIssue<unknown>>,\n  const TItem8 extends\n    | PipeItem<InferOutput<TItem7>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem7>, unknown, BaseIssue<unknown>>,\n  const TItem9 extends\n    | PipeItem<InferOutput<TItem8>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem8>, unknown, BaseIssue<unknown>>,\n  const TItem10 extends\n    | PipeItem<InferOutput<TItem9>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem9>, unknown, BaseIssue<unknown>>,\n  const TItem11 extends\n    | PipeItem<InferOutput<TItem10>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem10>, unknown, BaseIssue<unknown>>,\n  const TItem12 extends\n    | PipeItem<InferOutput<TItem11>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem11>, unknown, BaseIssue<unknown>>,\n  const TItem13 extends\n    | PipeItem<InferOutput<TItem12>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem12>, unknown, BaseIssue<unknown>>,\n  const TItem14 extends\n    | PipeItem<InferOutput<TItem13>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem13>, unknown, BaseIssue<unknown>>,\n  const TItem15 extends\n    | PipeItem<InferOutput<TItem14>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem14>, unknown, BaseIssue<unknown>>,\n  const TItem16 extends\n    | PipeItem<InferOutput<TItem15>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem15>, unknown, BaseIssue<unknown>>,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>\n    | PipeActionAsync<\n        InferOutput<TSchema>,\n        InferOutput<TItem1>,\n        InferIssue<TItem1>\n      >,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>\n    | PipeActionAsync<\n        InferOutput<TItem1>,\n        InferOutput<TItem2>,\n        InferIssue<TItem2>\n      >,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>\n    | PipeActionAsync<\n        InferOutput<TItem2>,\n        InferOutput<TItem3>,\n        InferIssue<TItem3>\n      >,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>\n    | PipeActionAsync<\n        InferOutput<TItem3>,\n        InferOutput<TItem4>,\n        InferIssue<TItem4>\n      >,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>\n    | PipeActionAsync<\n        InferOutput<TItem4>,\n        InferOutput<TItem5>,\n        InferIssue<TItem5>\n      >,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>\n    | PipeActionAsync<\n        InferOutput<TItem5>,\n        InferOutput<TItem6>,\n        InferIssue<TItem6>\n      >,\n  item7:\n    | TItem7\n    | PipeAction<InferOutput<TItem6>, InferOutput<TItem7>, InferIssue<TItem7>>\n    | PipeActionAsync<\n        InferOutput<TItem6>,\n        InferOutput<TItem7>,\n        InferIssue<TItem7>\n      >,\n  item8:\n    | TItem8\n    | PipeAction<InferOutput<TItem7>, InferOutput<TItem8>, InferIssue<TItem8>>\n    | PipeActionAsync<\n        InferOutput<TItem7>,\n        InferOutput<TItem8>,\n        InferIssue<TItem8>\n      >,\n  item9:\n    | TItem9\n    | PipeAction<InferOutput<TItem8>, InferOutput<TItem9>, InferIssue<TItem9>>\n    | PipeActionAsync<\n        InferOutput<TItem8>,\n        InferOutput<TItem9>,\n        InferIssue<TItem9>\n      >,\n  item10:\n    | TItem10\n    | PipeAction<InferOutput<TItem9>, InferOutput<TItem10>, InferIssue<TItem10>>\n    | PipeActionAsync<\n        InferOutput<TItem9>,\n        InferOutput<TItem10>,\n        InferIssue<TItem10>\n      >,\n  item11:\n    | TItem11\n    | PipeAction<\n        InferOutput<TItem10>,\n        InferOutput<TItem11>,\n        InferIssue<TItem11>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem10>,\n        InferOutput<TItem11>,\n        InferIssue<TItem11>\n      >,\n  item12:\n    | TItem12\n    | PipeAction<\n        InferOutput<TItem11>,\n        InferOutput<TItem12>,\n        InferIssue<TItem12>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem11>,\n        InferOutput<TItem12>,\n        InferIssue<TItem12>\n      >,\n  item13:\n    | TItem13\n    | PipeAction<\n        InferOutput<TItem12>,\n        InferOutput<TItem13>,\n        InferIssue<TItem13>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem12>,\n        InferOutput<TItem13>,\n        InferIssue<TItem13>\n      >,\n  item14:\n    | TItem14\n    | PipeAction<\n        InferOutput<TItem13>,\n        InferOutput<TItem14>,\n        InferIssue<TItem14>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem13>,\n        InferOutput<TItem14>,\n        InferIssue<TItem14>\n      >,\n  item15:\n    | TItem15\n    | PipeAction<\n        InferOutput<TItem14>,\n        InferOutput<TItem15>,\n        InferIssue<TItem15>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem14>,\n        InferOutput<TItem15>,\n        InferIssue<TItem15>\n      >,\n  item16:\n    | TItem16\n    | PipeAction<\n        InferOutput<TItem15>,\n        InferOutput<TItem16>,\n        InferIssue<TItem16>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem15>,\n        InferOutput<TItem16>,\n        InferIssue<TItem16>\n      >\n): SchemaWithPipeAsync<\n  readonly [\n    TSchema,\n    TItem1,\n    TItem2,\n    TItem3,\n    TItem4,\n    TItem5,\n    TItem6,\n    TItem7,\n    TItem8,\n    TItem9,\n    TItem10,\n    TItem11,\n    TItem12,\n    TItem13,\n    TItem14,\n    TItem15,\n    TItem16,\n  ]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n * @param item7 The seventh pipe item.\n * @param item8 The eighth pipe item.\n * @param item9 The ninth pipe item.\n * @param item10 The tenth pipe item.\n * @param item11 The eleventh pipe item.\n * @param item12 The twelfth pipe item.\n * @param item13 The thirteenth pipe item.\n * @param item14 The fourteenth pipe item.\n * @param item15 The fifteenth pipe item.\n * @param item16 The sixteenth pipe item.\n * @param item17 The seventeenth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipeAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends\n    | PipeItem<InferOutput<TSchema>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TSchema>, unknown, BaseIssue<unknown>>,\n  const TItem2 extends\n    | PipeItem<InferOutput<TItem1>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem1>, unknown, BaseIssue<unknown>>,\n  const TItem3 extends\n    | PipeItem<InferOutput<TItem2>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem2>, unknown, BaseIssue<unknown>>,\n  const TItem4 extends\n    | PipeItem<InferOutput<TItem3>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem3>, unknown, BaseIssue<unknown>>,\n  const TItem5 extends\n    | PipeItem<InferOutput<TItem4>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem4>, unknown, BaseIssue<unknown>>,\n  const TItem6 extends\n    | PipeItem<InferOutput<TItem5>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem5>, unknown, BaseIssue<unknown>>,\n  const TItem7 extends\n    | PipeItem<InferOutput<TItem6>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem6>, unknown, BaseIssue<unknown>>,\n  const TItem8 extends\n    | PipeItem<InferOutput<TItem7>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem7>, unknown, BaseIssue<unknown>>,\n  const TItem9 extends\n    | PipeItem<InferOutput<TItem8>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem8>, unknown, BaseIssue<unknown>>,\n  const TItem10 extends\n    | PipeItem<InferOutput<TItem9>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem9>, unknown, BaseIssue<unknown>>,\n  const TItem11 extends\n    | PipeItem<InferOutput<TItem10>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem10>, unknown, BaseIssue<unknown>>,\n  const TItem12 extends\n    | PipeItem<InferOutput<TItem11>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem11>, unknown, BaseIssue<unknown>>,\n  const TItem13 extends\n    | PipeItem<InferOutput<TItem12>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem12>, unknown, BaseIssue<unknown>>,\n  const TItem14 extends\n    | PipeItem<InferOutput<TItem13>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem13>, unknown, BaseIssue<unknown>>,\n  const TItem15 extends\n    | PipeItem<InferOutput<TItem14>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem14>, unknown, BaseIssue<unknown>>,\n  const TItem16 extends\n    | PipeItem<InferOutput<TItem15>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem15>, unknown, BaseIssue<unknown>>,\n  const TItem17 extends\n    | PipeItem<InferOutput<TItem16>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem16>, unknown, BaseIssue<unknown>>,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>\n    | PipeActionAsync<\n        InferOutput<TSchema>,\n        InferOutput<TItem1>,\n        InferIssue<TItem1>\n      >,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>\n    | PipeActionAsync<\n        InferOutput<TItem1>,\n        InferOutput<TItem2>,\n        InferIssue<TItem2>\n      >,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>\n    | PipeActionAsync<\n        InferOutput<TItem2>,\n        InferOutput<TItem3>,\n        InferIssue<TItem3>\n      >,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>\n    | PipeActionAsync<\n        InferOutput<TItem3>,\n        InferOutput<TItem4>,\n        InferIssue<TItem4>\n      >,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>\n    | PipeActionAsync<\n        InferOutput<TItem4>,\n        InferOutput<TItem5>,\n        InferIssue<TItem5>\n      >,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>\n    | PipeActionAsync<\n        InferOutput<TItem5>,\n        InferOutput<TItem6>,\n        InferIssue<TItem6>\n      >,\n  item7:\n    | TItem7\n    | PipeAction<InferOutput<TItem6>, InferOutput<TItem7>, InferIssue<TItem7>>\n    | PipeActionAsync<\n        InferOutput<TItem6>,\n        InferOutput<TItem7>,\n        InferIssue<TItem7>\n      >,\n  item8:\n    | TItem8\n    | PipeAction<InferOutput<TItem7>, InferOutput<TItem8>, InferIssue<TItem8>>\n    | PipeActionAsync<\n        InferOutput<TItem7>,\n        InferOutput<TItem8>,\n        InferIssue<TItem8>\n      >,\n  item9:\n    | TItem9\n    | PipeAction<InferOutput<TItem8>, InferOutput<TItem9>, InferIssue<TItem9>>\n    | PipeActionAsync<\n        InferOutput<TItem8>,\n        InferOutput<TItem9>,\n        InferIssue<TItem9>\n      >,\n  item10:\n    | TItem10\n    | PipeAction<InferOutput<TItem9>, InferOutput<TItem10>, InferIssue<TItem10>>\n    | PipeActionAsync<\n        InferOutput<TItem9>,\n        InferOutput<TItem10>,\n        InferIssue<TItem10>\n      >,\n  item11:\n    | TItem11\n    | PipeAction<\n        InferOutput<TItem10>,\n        InferOutput<TItem11>,\n        InferIssue<TItem11>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem10>,\n        InferOutput<TItem11>,\n        InferIssue<TItem11>\n      >,\n  item12:\n    | TItem12\n    | PipeAction<\n        InferOutput<TItem11>,\n        InferOutput<TItem12>,\n        InferIssue<TItem12>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem11>,\n        InferOutput<TItem12>,\n        InferIssue<TItem12>\n      >,\n  item13:\n    | TItem13\n    | PipeAction<\n        InferOutput<TItem12>,\n        InferOutput<TItem13>,\n        InferIssue<TItem13>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem12>,\n        InferOutput<TItem13>,\n        InferIssue<TItem13>\n      >,\n  item14:\n    | TItem14\n    | PipeAction<\n        InferOutput<TItem13>,\n        InferOutput<TItem14>,\n        InferIssue<TItem14>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem13>,\n        InferOutput<TItem14>,\n        InferIssue<TItem14>\n      >,\n  item15:\n    | TItem15\n    | PipeAction<\n        InferOutput<TItem14>,\n        InferOutput<TItem15>,\n        InferIssue<TItem15>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem14>,\n        InferOutput<TItem15>,\n        InferIssue<TItem15>\n      >,\n  item16:\n    | TItem16\n    | PipeAction<\n        InferOutput<TItem15>,\n        InferOutput<TItem16>,\n        InferIssue<TItem16>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem15>,\n        InferOutput<TItem16>,\n        InferIssue<TItem16>\n      >,\n  item17:\n    | TItem17\n    | PipeAction<\n        InferOutput<TItem16>,\n        InferOutput<TItem17>,\n        InferIssue<TItem17>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem16>,\n        InferOutput<TItem17>,\n        InferIssue<TItem17>\n      >\n): SchemaWithPipeAsync<\n  readonly [\n    TSchema,\n    TItem1,\n    TItem2,\n    TItem3,\n    TItem4,\n    TItem5,\n    TItem6,\n    TItem7,\n    TItem8,\n    TItem9,\n    TItem10,\n    TItem11,\n    TItem12,\n    TItem13,\n    TItem14,\n    TItem15,\n    TItem16,\n    TItem17,\n  ]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n * @param item7 The seventh pipe item.\n * @param item8 The eighth pipe item.\n * @param item9 The ninth pipe item.\n * @param item10 The tenth pipe item.\n * @param item11 The eleventh pipe item.\n * @param item12 The twelfth pipe item.\n * @param item13 The thirteenth pipe item.\n * @param item14 The fourteenth pipe item.\n * @param item15 The fifteenth pipe item.\n * @param item16 The sixteenth pipe item.\n * @param item17 The seventeenth pipe item.\n * @param item18 The eighteenth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipeAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends\n    | PipeItem<InferOutput<TSchema>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TSchema>, unknown, BaseIssue<unknown>>,\n  const TItem2 extends\n    | PipeItem<InferOutput<TItem1>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem1>, unknown, BaseIssue<unknown>>,\n  const TItem3 extends\n    | PipeItem<InferOutput<TItem2>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem2>, unknown, BaseIssue<unknown>>,\n  const TItem4 extends\n    | PipeItem<InferOutput<TItem3>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem3>, unknown, BaseIssue<unknown>>,\n  const TItem5 extends\n    | PipeItem<InferOutput<TItem4>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem4>, unknown, BaseIssue<unknown>>,\n  const TItem6 extends\n    | PipeItem<InferOutput<TItem5>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem5>, unknown, BaseIssue<unknown>>,\n  const TItem7 extends\n    | PipeItem<InferOutput<TItem6>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem6>, unknown, BaseIssue<unknown>>,\n  const TItem8 extends\n    | PipeItem<InferOutput<TItem7>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem7>, unknown, BaseIssue<unknown>>,\n  const TItem9 extends\n    | PipeItem<InferOutput<TItem8>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem8>, unknown, BaseIssue<unknown>>,\n  const TItem10 extends\n    | PipeItem<InferOutput<TItem9>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem9>, unknown, BaseIssue<unknown>>,\n  const TItem11 extends\n    | PipeItem<InferOutput<TItem10>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem10>, unknown, BaseIssue<unknown>>,\n  const TItem12 extends\n    | PipeItem<InferOutput<TItem11>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem11>, unknown, BaseIssue<unknown>>,\n  const TItem13 extends\n    | PipeItem<InferOutput<TItem12>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem12>, unknown, BaseIssue<unknown>>,\n  const TItem14 extends\n    | PipeItem<InferOutput<TItem13>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem13>, unknown, BaseIssue<unknown>>,\n  const TItem15 extends\n    | PipeItem<InferOutput<TItem14>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem14>, unknown, BaseIssue<unknown>>,\n  const TItem16 extends\n    | PipeItem<InferOutput<TItem15>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem15>, unknown, BaseIssue<unknown>>,\n  const TItem17 extends\n    | PipeItem<InferOutput<TItem16>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem16>, unknown, BaseIssue<unknown>>,\n  const TItem18 extends\n    | PipeItem<InferOutput<TItem17>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem17>, unknown, BaseIssue<unknown>>,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>\n    | PipeActionAsync<\n        InferOutput<TSchema>,\n        InferOutput<TItem1>,\n        InferIssue<TItem1>\n      >,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>\n    | PipeActionAsync<\n        InferOutput<TItem1>,\n        InferOutput<TItem2>,\n        InferIssue<TItem2>\n      >,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>\n    | PipeActionAsync<\n        InferOutput<TItem2>,\n        InferOutput<TItem3>,\n        InferIssue<TItem3>\n      >,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>\n    | PipeActionAsync<\n        InferOutput<TItem3>,\n        InferOutput<TItem4>,\n        InferIssue<TItem4>\n      >,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>\n    | PipeActionAsync<\n        InferOutput<TItem4>,\n        InferOutput<TItem5>,\n        InferIssue<TItem5>\n      >,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>\n    | PipeActionAsync<\n        InferOutput<TItem5>,\n        InferOutput<TItem6>,\n        InferIssue<TItem6>\n      >,\n  item7:\n    | TItem7\n    | PipeAction<InferOutput<TItem6>, InferOutput<TItem7>, InferIssue<TItem7>>\n    | PipeActionAsync<\n        InferOutput<TItem6>,\n        InferOutput<TItem7>,\n        InferIssue<TItem7>\n      >,\n  item8:\n    | TItem8\n    | PipeAction<InferOutput<TItem7>, InferOutput<TItem8>, InferIssue<TItem8>>\n    | PipeActionAsync<\n        InferOutput<TItem7>,\n        InferOutput<TItem8>,\n        InferIssue<TItem8>\n      >,\n  item9:\n    | TItem9\n    | PipeAction<InferOutput<TItem8>, InferOutput<TItem9>, InferIssue<TItem9>>\n    | PipeActionAsync<\n        InferOutput<TItem8>,\n        InferOutput<TItem9>,\n        InferIssue<TItem9>\n      >,\n  item10:\n    | TItem10\n    | PipeAction<InferOutput<TItem9>, InferOutput<TItem10>, InferIssue<TItem10>>\n    | PipeActionAsync<\n        InferOutput<TItem9>,\n        InferOutput<TItem10>,\n        InferIssue<TItem10>\n      >,\n  item11:\n    | TItem11\n    | PipeAction<\n        InferOutput<TItem10>,\n        InferOutput<TItem11>,\n        InferIssue<TItem11>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem10>,\n        InferOutput<TItem11>,\n        InferIssue<TItem11>\n      >,\n  item12:\n    | TItem12\n    | PipeAction<\n        InferOutput<TItem11>,\n        InferOutput<TItem12>,\n        InferIssue<TItem12>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem11>,\n        InferOutput<TItem12>,\n        InferIssue<TItem12>\n      >,\n  item13:\n    | TItem13\n    | PipeAction<\n        InferOutput<TItem12>,\n        InferOutput<TItem13>,\n        InferIssue<TItem13>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem12>,\n        InferOutput<TItem13>,\n        InferIssue<TItem13>\n      >,\n  item14:\n    | TItem14\n    | PipeAction<\n        InferOutput<TItem13>,\n        InferOutput<TItem14>,\n        InferIssue<TItem14>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem13>,\n        InferOutput<TItem14>,\n        InferIssue<TItem14>\n      >,\n  item15:\n    | TItem15\n    | PipeAction<\n        InferOutput<TItem14>,\n        InferOutput<TItem15>,\n        InferIssue<TItem15>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem14>,\n        InferOutput<TItem15>,\n        InferIssue<TItem15>\n      >,\n  item16:\n    | TItem16\n    | PipeAction<\n        InferOutput<TItem15>,\n        InferOutput<TItem16>,\n        InferIssue<TItem16>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem15>,\n        InferOutput<TItem16>,\n        InferIssue<TItem16>\n      >,\n  item17:\n    | TItem17\n    | PipeAction<\n        InferOutput<TItem16>,\n        InferOutput<TItem17>,\n        InferIssue<TItem17>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem16>,\n        InferOutput<TItem17>,\n        InferIssue<TItem17>\n      >,\n  item18:\n    | TItem18\n    | PipeAction<\n        InferOutput<TItem17>,\n        InferOutput<TItem18>,\n        InferIssue<TItem18>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem17>,\n        InferOutput<TItem18>,\n        InferIssue<TItem18>\n      >\n): SchemaWithPipeAsync<\n  readonly [\n    TSchema,\n    TItem1,\n    TItem2,\n    TItem3,\n    TItem4,\n    TItem5,\n    TItem6,\n    TItem7,\n    TItem8,\n    TItem9,\n    TItem10,\n    TItem11,\n    TItem12,\n    TItem13,\n    TItem14,\n    TItem15,\n    TItem16,\n    TItem17,\n    TItem18,\n  ]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param item1 The first pipe item.\n * @param item2 The second pipe item.\n * @param item3 The third pipe item.\n * @param item4 The fourth pipe item.\n * @param item5 The fifth pipe item.\n * @param item6 The sixth pipe item.\n * @param item7 The seventh pipe item.\n * @param item8 The eighth pipe item.\n * @param item9 The ninth pipe item.\n * @param item10 The tenth pipe item.\n * @param item11 The eleventh pipe item.\n * @param item12 The twelfth pipe item.\n * @param item13 The thirteenth pipe item.\n * @param item14 The fourteenth pipe item.\n * @param item15 The fifteenth pipe item.\n * @param item16 The sixteenth pipe item.\n * @param item17 The seventeenth pipe item.\n * @param item18 The eighteenth pipe item.\n * @param item19 The nineteenth pipe item.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipeAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TItem1 extends\n    | PipeItem<InferOutput<TSchema>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TSchema>, unknown, BaseIssue<unknown>>,\n  const TItem2 extends\n    | PipeItem<InferOutput<TItem1>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem1>, unknown, BaseIssue<unknown>>,\n  const TItem3 extends\n    | PipeItem<InferOutput<TItem2>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem2>, unknown, BaseIssue<unknown>>,\n  const TItem4 extends\n    | PipeItem<InferOutput<TItem3>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem3>, unknown, BaseIssue<unknown>>,\n  const TItem5 extends\n    | PipeItem<InferOutput<TItem4>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem4>, unknown, BaseIssue<unknown>>,\n  const TItem6 extends\n    | PipeItem<InferOutput<TItem5>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem5>, unknown, BaseIssue<unknown>>,\n  const TItem7 extends\n    | PipeItem<InferOutput<TItem6>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem6>, unknown, BaseIssue<unknown>>,\n  const TItem8 extends\n    | PipeItem<InferOutput<TItem7>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem7>, unknown, BaseIssue<unknown>>,\n  const TItem9 extends\n    | PipeItem<InferOutput<TItem8>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem8>, unknown, BaseIssue<unknown>>,\n  const TItem10 extends\n    | PipeItem<InferOutput<TItem9>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem9>, unknown, BaseIssue<unknown>>,\n  const TItem11 extends\n    | PipeItem<InferOutput<TItem10>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem10>, unknown, BaseIssue<unknown>>,\n  const TItem12 extends\n    | PipeItem<InferOutput<TItem11>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem11>, unknown, BaseIssue<unknown>>,\n  const TItem13 extends\n    | PipeItem<InferOutput<TItem12>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem12>, unknown, BaseIssue<unknown>>,\n  const TItem14 extends\n    | PipeItem<InferOutput<TItem13>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem13>, unknown, BaseIssue<unknown>>,\n  const TItem15 extends\n    | PipeItem<InferOutput<TItem14>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem14>, unknown, BaseIssue<unknown>>,\n  const TItem16 extends\n    | PipeItem<InferOutput<TItem15>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem15>, unknown, BaseIssue<unknown>>,\n  const TItem17 extends\n    | PipeItem<InferOutput<TItem16>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem16>, unknown, BaseIssue<unknown>>,\n  const TItem18 extends\n    | PipeItem<InferOutput<TItem17>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem17>, unknown, BaseIssue<unknown>>,\n  const TItem19 extends\n    | PipeItem<InferOutput<TItem18>, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<InferOutput<TItem18>, unknown, BaseIssue<unknown>>,\n>(\n  schema: TSchema,\n  item1:\n    | TItem1\n    | PipeAction<InferOutput<TSchema>, InferOutput<TItem1>, InferIssue<TItem1>>\n    | PipeActionAsync<\n        InferOutput<TSchema>,\n        InferOutput<TItem1>,\n        InferIssue<TItem1>\n      >,\n  item2:\n    | TItem2\n    | PipeAction<InferOutput<TItem1>, InferOutput<TItem2>, InferIssue<TItem2>>\n    | PipeActionAsync<\n        InferOutput<TItem1>,\n        InferOutput<TItem2>,\n        InferIssue<TItem2>\n      >,\n  item3:\n    | TItem3\n    | PipeAction<InferOutput<TItem2>, InferOutput<TItem3>, InferIssue<TItem3>>\n    | PipeActionAsync<\n        InferOutput<TItem2>,\n        InferOutput<TItem3>,\n        InferIssue<TItem3>\n      >,\n  item4:\n    | TItem4\n    | PipeAction<InferOutput<TItem3>, InferOutput<TItem4>, InferIssue<TItem4>>\n    | PipeActionAsync<\n        InferOutput<TItem3>,\n        InferOutput<TItem4>,\n        InferIssue<TItem4>\n      >,\n  item5:\n    | TItem5\n    | PipeAction<InferOutput<TItem4>, InferOutput<TItem5>, InferIssue<TItem5>>\n    | PipeActionAsync<\n        InferOutput<TItem4>,\n        InferOutput<TItem5>,\n        InferIssue<TItem5>\n      >,\n  item6:\n    | TItem6\n    | PipeAction<InferOutput<TItem5>, InferOutput<TItem6>, InferIssue<TItem6>>\n    | PipeActionAsync<\n        InferOutput<TItem5>,\n        InferOutput<TItem6>,\n        InferIssue<TItem6>\n      >,\n  item7:\n    | TItem7\n    | PipeAction<InferOutput<TItem6>, InferOutput<TItem7>, InferIssue<TItem7>>\n    | PipeActionAsync<\n        InferOutput<TItem6>,\n        InferOutput<TItem7>,\n        InferIssue<TItem7>\n      >,\n  item8:\n    | TItem8\n    | PipeAction<InferOutput<TItem7>, InferOutput<TItem8>, InferIssue<TItem8>>\n    | PipeActionAsync<\n        InferOutput<TItem7>,\n        InferOutput<TItem8>,\n        InferIssue<TItem8>\n      >,\n  item9:\n    | TItem9\n    | PipeAction<InferOutput<TItem8>, InferOutput<TItem9>, InferIssue<TItem9>>\n    | PipeActionAsync<\n        InferOutput<TItem8>,\n        InferOutput<TItem9>,\n        InferIssue<TItem9>\n      >,\n  item10:\n    | TItem10\n    | PipeAction<InferOutput<TItem9>, InferOutput<TItem10>, InferIssue<TItem10>>\n    | PipeActionAsync<\n        InferOutput<TItem9>,\n        InferOutput<TItem10>,\n        InferIssue<TItem10>\n      >,\n  item11:\n    | TItem11\n    | PipeAction<\n        InferOutput<TItem10>,\n        InferOutput<TItem11>,\n        InferIssue<TItem11>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem10>,\n        InferOutput<TItem11>,\n        InferIssue<TItem11>\n      >,\n  item12:\n    | TItem12\n    | PipeAction<\n        InferOutput<TItem11>,\n        InferOutput<TItem12>,\n        InferIssue<TItem12>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem11>,\n        InferOutput<TItem12>,\n        InferIssue<TItem12>\n      >,\n  item13:\n    | TItem13\n    | PipeAction<\n        InferOutput<TItem12>,\n        InferOutput<TItem13>,\n        InferIssue<TItem13>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem12>,\n        InferOutput<TItem13>,\n        InferIssue<TItem13>\n      >,\n  item14:\n    | TItem14\n    | PipeAction<\n        InferOutput<TItem13>,\n        InferOutput<TItem14>,\n        InferIssue<TItem14>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem13>,\n        InferOutput<TItem14>,\n        InferIssue<TItem14>\n      >,\n  item15:\n    | TItem15\n    | PipeAction<\n        InferOutput<TItem14>,\n        InferOutput<TItem15>,\n        InferIssue<TItem15>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem14>,\n        InferOutput<TItem15>,\n        InferIssue<TItem15>\n      >,\n  item16:\n    | TItem16\n    | PipeAction<\n        InferOutput<TItem15>,\n        InferOutput<TItem16>,\n        InferIssue<TItem16>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem15>,\n        InferOutput<TItem16>,\n        InferIssue<TItem16>\n      >,\n  item17:\n    | TItem17\n    | PipeAction<\n        InferOutput<TItem16>,\n        InferOutput<TItem17>,\n        InferIssue<TItem17>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem16>,\n        InferOutput<TItem17>,\n        InferIssue<TItem17>\n      >,\n  item18:\n    | TItem18\n    | PipeAction<\n        InferOutput<TItem17>,\n        InferOutput<TItem18>,\n        InferIssue<TItem18>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem17>,\n        InferOutput<TItem18>,\n        InferIssue<TItem18>\n      >,\n  item19:\n    | TItem19\n    | PipeAction<\n        InferOutput<TItem18>,\n        InferOutput<TItem19>,\n        InferIssue<TItem19>\n      >\n    | PipeActionAsync<\n        InferOutput<TItem18>,\n        InferOutput<TItem19>,\n        InferIssue<TItem19>\n      >\n): SchemaWithPipeAsync<\n  readonly [\n    TSchema,\n    TItem1,\n    TItem2,\n    TItem3,\n    TItem4,\n    TItem5,\n    TItem6,\n    TItem7,\n    TItem8,\n    TItem9,\n    TItem10,\n    TItem11,\n    TItem12,\n    TItem13,\n    TItem14,\n    TItem15,\n    TItem16,\n    TItem17,\n    TItem18,\n    TItem19,\n  ]\n>;\n\n/**\n * Adds a pipeline to a schema, that can validate and transform its input.\n *\n * @param schema The root schema.\n * @param items The pipe items.\n *\n * @returns A schema with a pipeline.\n */\nexport function pipeAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TItems extends readonly (\n    | PipeItem<InferOutput<TSchema>, InferOutput<TSchema>, BaseIssue<unknown>>\n    | PipeItemAsync<\n        InferOutput<TSchema>,\n        InferOutput<TSchema>,\n        BaseIssue<unknown>\n      >\n  )[],\n>(\n  schema: TSchema,\n  ...items: TItems\n): SchemaWithPipeAsync<readonly [TSchema, ...TItems]>;\n\n// @__NO_SIDE_EFFECTS__\nexport function pipeAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TItems extends readonly (\n    | PipeItem<unknown, unknown, BaseIssue<unknown>>\n    | PipeItemAsync<unknown, unknown, BaseIssue<unknown>>\n  )[],\n>(\n  ...pipe: [TSchema, ...TItems]\n): SchemaWithPipeAsync<readonly [TSchema, ...TItems]> {\n  return {\n    ...pipe[0],\n    pipe,\n    async: true,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    async '~run'(dataset, config) {\n      // Execute pipeline items in sequence\n      for (const item of pipe) {\n        // Exclude metadata items from execution\n        if (item.kind !== 'metadata') {\n          // Mark dataset as untyped and break pipe if there are issues and pipe\n          // item is schema or transformation\n          if (\n            dataset.issues &&\n            (item.kind === 'schema' || item.kind === 'transformation')\n          ) {\n            dataset.typed = false;\n            break;\n          }\n\n          // Continue pipe execution if there is no reason to abort early\n          if (\n            !dataset.issues ||\n            (!config.abortEarly && !config.abortPipeEarly)\n          ) {\n            // @ts-expect-error\n            dataset = await item['~run'](dataset, config);\n          }\n        }\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<unknown, BaseIssue<unknown>>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/methods/required/index.ts",
    "content": "export * from './required.ts';\nexport * from './requiredAsync.ts';\n"
  },
  {
    "path": "library/src/methods/required/required.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport {\n  boolean,\n  type BooleanIssue,\n  type NonOptionalIssue,\n  nullish,\n  number,\n  type NumberIssue,\n  object,\n  type ObjectIssue,\n  objectWithRest,\n  type ObjectWithRestIssue,\n  optional,\n  string,\n  type StringIssue,\n} from '../../schemas/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { required, type SchemaWithRequired } from './required.ts';\n\ndescribe('required', () => {\n  const entries = {\n    key1: optional(string()),\n    key2: optional(number()),\n    key3: optional(string()),\n    key4: nullish(number(), () => 123),\n  };\n\n  describe('object', () => {\n    const wrapped = object(entries);\n    type Wrapped = typeof wrapped;\n    type Schema1 = SchemaWithRequired<Wrapped, undefined, undefined>;\n    type Schema2 = SchemaWithRequired<Wrapped, ['key1', 'key3'], undefined>;\n\n    describe('should return schema object', () => {\n      test('with undefined keys', () => {\n        expectTypeOf(required(wrapped)).toEqualTypeOf<Schema1>();\n        expectTypeOf(required(wrapped, undefined)).toEqualTypeOf<Schema1>();\n        expectTypeOf(required(wrapped, 'message')).toEqualTypeOf<\n          SchemaWithRequired<Wrapped, undefined, 'message'>\n        >();\n        expectTypeOf(required(wrapped, () => 'message')).toEqualTypeOf<\n          SchemaWithRequired<Wrapped, undefined, () => string>\n        >();\n      });\n\n      test('with specific keys', () => {\n        expectTypeOf(\n          required(wrapped, ['key1', 'key3'])\n        ).toEqualTypeOf<Schema2>();\n        expectTypeOf(\n          required(wrapped, ['key1', 'key3'], undefined)\n        ).toEqualTypeOf<Schema2>();\n        expectTypeOf(\n          required(wrapped, ['key1', 'key3'], 'message')\n        ).toEqualTypeOf<\n          SchemaWithRequired<Wrapped, ['key1', 'key3'], 'message'>\n        >();\n        expectTypeOf(\n          required(wrapped, ['key1', 'key3'], () => 'message')\n        ).toEqualTypeOf<\n          SchemaWithRequired<Wrapped, ['key1', 'key3'], () => string>\n        >();\n      });\n    });\n\n    describe('should infer correct types', () => {\n      test('of input', () => {\n        expectTypeOf<InferInput<Schema1>>().toEqualTypeOf<{\n          key1: string;\n          key2: number;\n          key3: string;\n          key4: number | null;\n        }>();\n        expectTypeOf<InferInput<Schema2>>().toEqualTypeOf<{\n          key1: string;\n          key2?: number;\n          key3: string;\n          key4?: number | null;\n        }>();\n      });\n\n      test('of output', () => {\n        expectTypeOf<InferOutput<Schema1>>().toEqualTypeOf<{\n          key1: string;\n          key2: number;\n          key3: string;\n          key4: number;\n        }>();\n        expectTypeOf<InferOutput<Schema2>>().toEqualTypeOf<{\n          key1: string;\n          key2?: number;\n          key3: string;\n          key4: number;\n        }>();\n      });\n\n      test('of issue', () => {\n        expectTypeOf<InferIssue<Schema1>>().toEqualTypeOf<\n          NonOptionalIssue | ObjectIssue | StringIssue | NumberIssue\n        >();\n        expectTypeOf<InferIssue<Schema2>>().toEqualTypeOf<\n          NonOptionalIssue | ObjectIssue | StringIssue | NumberIssue\n        >();\n      });\n    });\n  });\n\n  describe('objectWithRest', () => {\n    const wrapped = objectWithRest(entries, boolean());\n    type Wrapped = typeof wrapped;\n    type Schema1 = SchemaWithRequired<Wrapped, undefined, undefined>;\n    type Schema2 = SchemaWithRequired<Wrapped, ['key2', 'key3'], undefined>;\n\n    describe('should return schema object', () => {\n      test('with undefined keys', () => {\n        expectTypeOf(required(wrapped)).toEqualTypeOf<Schema1>();\n        expectTypeOf(required(wrapped, undefined)).toEqualTypeOf<Schema1>();\n        expectTypeOf(required(wrapped, 'message')).toEqualTypeOf<\n          SchemaWithRequired<Wrapped, undefined, 'message'>\n        >();\n        expectTypeOf(required(wrapped, () => 'message')).toEqualTypeOf<\n          SchemaWithRequired<Wrapped, undefined, () => string>\n        >();\n      });\n\n      test('with specific keys', () => {\n        expectTypeOf(\n          required(wrapped, ['key2', 'key3'])\n        ).toEqualTypeOf<Schema2>();\n        expectTypeOf(\n          required(wrapped, ['key2', 'key3'], undefined)\n        ).toEqualTypeOf<Schema2>();\n        expectTypeOf(\n          required(wrapped, ['key2', 'key3'], 'message')\n        ).toEqualTypeOf<\n          SchemaWithRequired<Wrapped, ['key2', 'key3'], 'message'>\n        >();\n        expectTypeOf(\n          required(wrapped, ['key2', 'key3'], () => 'message')\n        ).toEqualTypeOf<\n          SchemaWithRequired<Wrapped, ['key2', 'key3'], () => string>\n        >();\n      });\n    });\n\n    describe('should infer correct types', () => {\n      test('of input', () => {\n        expectTypeOf<InferInput<Schema1>>().toEqualTypeOf<\n          {\n            key1: string;\n            key2: number;\n            key3: string;\n            key4: number | null;\n          } & { [key: string]: boolean }\n        >();\n        expectTypeOf<InferInput<Schema2>>().toEqualTypeOf<\n          {\n            key1?: string;\n            key2: number;\n            key3: string;\n            key4?: number | null;\n          } & { [key: string]: boolean }\n        >();\n      });\n\n      test('of output', () => {\n        expectTypeOf<InferOutput<Schema1>>().toEqualTypeOf<\n          {\n            key1: string;\n            key2: number;\n            key3: string;\n            key4: number;\n          } & { [key: string]: boolean }\n        >();\n        expectTypeOf<InferOutput<Schema2>>().toEqualTypeOf<\n          {\n            key1?: string;\n            key2: number;\n            key3: string;\n            key4: number;\n          } & { [key: string]: boolean }\n        >();\n      });\n\n      test('of issue', () => {\n        expectTypeOf<InferIssue<Schema1>>().toEqualTypeOf<\n          | NonOptionalIssue\n          | ObjectWithRestIssue\n          | NumberIssue\n          | StringIssue\n          | BooleanIssue\n        >();\n        expectTypeOf<InferIssue<Schema2>>().toEqualTypeOf<\n          | NonOptionalIssue\n          | ObjectWithRestIssue\n          | NumberIssue\n          | StringIssue\n          | BooleanIssue\n        >();\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/required/required.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  boolean,\n  nonOptional,\n  nullish,\n  number,\n  object,\n  objectWithRest,\n  optional,\n  string,\n} from '../../schemas/index.ts';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport { expectNoSchemaIssue } from '../../vitest/index.ts';\nimport { required } from './required.ts';\n\ndescribe('required', () => {\n  const entries = {\n    key1: optional(string()),\n    key2: optional(number()),\n    key3: optional(string()),\n    key4: nullish(number(), () => 123),\n  };\n  const baseInfo = {\n    message: expect.any(String),\n    requirement: undefined,\n    issues: undefined,\n    lang: undefined,\n    abortEarly: undefined,\n    abortPipeEarly: undefined,\n  } as const;\n\n  describe('object', () => {\n    const wrapped = object(entries);\n    const schema1 = required(wrapped);\n    const schema2 = required(wrapped, ['key1', 'key3']);\n\n    describe('should return schema object', () => {\n      const baseObjectSchema = {\n        kind: 'schema',\n        type: 'object',\n        reference: object,\n        expects: 'Object',\n        async: false,\n        message: undefined,\n        '~standard': {\n          version: 1,\n          vendor: 'valibot',\n          validate: expect.any(Function),\n        },\n        '~run': expect.any(Function),\n      } as const;\n\n      test('with undefined keys and undefined message', () => {\n        const expected: typeof schema1 = {\n          ...baseObjectSchema,\n          entries: {\n            key1: {\n              ...nonOptional(entries.key1),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key2: {\n              ...nonOptional(entries.key2),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key3: {\n              ...nonOptional(entries.key3),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: {\n              ...nonOptional(entries.key4),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n          },\n        };\n        expect(schema1).toStrictEqual(expected);\n        expect(schema1, undefined).toStrictEqual(expected);\n      });\n\n      test('with undefined keys and string message', () => {\n        const message = 'message';\n        const schema = required(wrapped, message);\n        expect(schema).toStrictEqual({\n          ...baseObjectSchema,\n          entries: {\n            key1: {\n              ...nonOptional(entries.key1, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key2: {\n              ...nonOptional(entries.key2, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key3: {\n              ...nonOptional(entries.key3, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: {\n              ...nonOptional(entries.key4, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n          },\n        } satisfies typeof schema);\n      });\n\n      test('with undefined keys and function message', () => {\n        const message = () => 'message';\n        const schema = required(wrapped, message);\n        expect(schema).toStrictEqual({\n          ...baseObjectSchema,\n          entries: {\n            key1: {\n              ...nonOptional(entries.key1, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key2: {\n              ...nonOptional(entries.key2, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key3: {\n              ...nonOptional(entries.key3, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: {\n              ...nonOptional(entries.key4, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n          },\n        } satisfies typeof schema);\n      });\n\n      test('with specific keys and undefined message', () => {\n        const expected: typeof schema2 = {\n          ...baseObjectSchema,\n          entries: {\n            key1: {\n              ...nonOptional(entries.key1),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key2: entries.key2,\n            key3: {\n              ...nonOptional(entries.key3),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: entries.key4,\n          },\n        };\n        expect(schema2).toStrictEqual(expected);\n        expect(schema2, undefined).toStrictEqual(expected);\n      });\n\n      test('with specific keys and string message', () => {\n        const message = 'message';\n        const schema = required(wrapped, ['key1', 'key3'], message);\n        expect(schema).toStrictEqual({\n          ...baseObjectSchema,\n          entries: {\n            key1: {\n              ...nonOptional(entries.key1, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key2: entries.key2,\n            key3: {\n              ...nonOptional(entries.key3, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: entries.key4,\n          },\n        } satisfies typeof schema);\n      });\n\n      test('with specific keys and function message', () => {\n        const message = () => 'message';\n        const schema = required(wrapped, ['key1', 'key3'], message);\n        expect(schema).toStrictEqual({\n          ...baseObjectSchema,\n          entries: {\n            key1: {\n              ...nonOptional(entries.key1, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key2: entries.key2,\n            key3: {\n              ...nonOptional(entries.key3, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: entries.key4,\n          },\n        } satisfies typeof schema);\n      });\n    });\n\n    describe('should return dataset without nested issues', () => {\n      test('if required keys are present', () => {\n        const input1 = { key1: 'foo', key2: 123, key3: 'bar', key4: 123 };\n        expectNoSchemaIssue(schema1, [input1]);\n        expectNoSchemaIssue(schema2, [input1]);\n        const input2 = { key1: 'foo', key3: 'bar' };\n        expect(schema2['~run']({ value: input2 }, {})).toStrictEqual({\n          typed: true,\n          value: { ...input2, key4: 123 },\n        });\n      });\n    });\n\n    describe('should return dataset with nested issues', () => {\n      test('if required keys are missing', () => {\n        expect(schema1['~run']({ value: {} }, {})).toStrictEqual({\n          typed: false,\n          value: {},\n          issues: [\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'object',\n              input: undefined,\n              expected: '\"key1\"',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input: {},\n                  key: 'key1',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'object',\n              input: undefined,\n              expected: '\"key2\"',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input: {},\n                  key: 'key2',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'object',\n              input: undefined,\n              expected: '\"key3\"',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input: {},\n                  key: 'key3',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'object',\n              input: undefined,\n              expected: '\"key4\"',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input: {},\n                  key: 'key4',\n                  value: undefined,\n                },\n              ],\n            },\n          ],\n        } satisfies FailureDataset<InferIssue<typeof schema1>>);\n\n        const input = { key2: 123, key4: null };\n        expect(schema2['~run']({ value: input }, {})).toStrictEqual({\n          typed: false,\n          value: { ...input, key4: 123 },\n          issues: [\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'object',\n              input: undefined,\n              expected: '\"key1\"',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input,\n                  key: 'key1',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'object',\n              input: undefined,\n              expected: '\"key3\"',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input,\n                  key: 'key3',\n                  value: undefined,\n                },\n              ],\n            },\n          ],\n        } satisfies FailureDataset<InferIssue<typeof schema2>>);\n      });\n\n      test('if required keys are undefined', () => {\n        const input1 = {\n          key1: undefined,\n          key2: undefined,\n          key3: undefined,\n          key4: undefined,\n        };\n        expect(schema1['~run']({ value: input1 }, {})).toStrictEqual({\n          typed: false,\n          value: input1,\n          issues: [\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'non_optional',\n              input: undefined,\n              expected: '!undefined',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'value',\n                  input: input1,\n                  key: 'key1',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'non_optional',\n              input: undefined,\n              expected: '!undefined',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'value',\n                  input: input1,\n                  key: 'key2',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'non_optional',\n              input: undefined,\n              expected: '!undefined',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'value',\n                  input: input1,\n                  key: 'key3',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'non_optional',\n              input: undefined,\n              expected: '!undefined',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'value',\n                  input: input1,\n                  key: 'key4',\n                  value: undefined,\n                },\n              ],\n            },\n          ],\n        } satisfies FailureDataset<InferIssue<typeof schema1>>);\n\n        const input2 = {\n          key1: undefined,\n          key2: 123,\n          key3: undefined,\n          key4: null,\n        };\n        expect(schema2['~run']({ value: input2 }, {})).toStrictEqual({\n          typed: false,\n          value: { ...input2, key4: 123 },\n          issues: [\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'non_optional',\n              input: undefined,\n              expected: '!undefined',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'value',\n                  input: input2,\n                  key: 'key1',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'non_optional',\n              input: undefined,\n              expected: '!undefined',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'value',\n                  input: input2,\n                  key: 'key3',\n                  value: undefined,\n                },\n              ],\n            },\n          ],\n        } satisfies FailureDataset<InferIssue<typeof schema2>>);\n      });\n    });\n  });\n\n  describe('objectWithRest', () => {\n    const rest = boolean();\n    const wrapped = objectWithRest(entries, rest);\n    const schema1 = required(wrapped);\n    const schema2 = required(wrapped, ['key2', 'key3']);\n\n    describe('should return schema object', () => {\n      const baseObjectWithRestSchema = {\n        kind: 'schema',\n        type: 'object_with_rest',\n        reference: objectWithRest,\n        expects: 'Object',\n        rest,\n        message: undefined,\n        async: false,\n        '~standard': {\n          version: 1,\n          vendor: 'valibot',\n          validate: expect.any(Function),\n        },\n        '~run': expect.any(Function),\n      } as const;\n\n      test('with undefined keys and undefined message', () => {\n        const expected: typeof schema1 = {\n          ...baseObjectWithRestSchema,\n          entries: {\n            key1: {\n              ...nonOptional(entries.key1),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key2: {\n              ...nonOptional(entries.key2),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key3: {\n              ...nonOptional(entries.key3),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: {\n              ...nonOptional(entries.key4),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n          },\n        };\n        expect(schema1).toStrictEqual(expected);\n        expect(schema1, undefined).toStrictEqual(expected);\n      });\n\n      test('with undefined keys and string message', () => {\n        const message = 'message';\n        const schema = required(wrapped, message);\n        expect(schema).toStrictEqual({\n          ...baseObjectWithRestSchema,\n          entries: {\n            key1: {\n              ...nonOptional(entries.key1, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key2: {\n              ...nonOptional(entries.key2, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key3: {\n              ...nonOptional(entries.key3, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: {\n              ...nonOptional(entries.key4, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n          },\n        } satisfies typeof schema);\n      });\n\n      test('with undefined keys and function message', () => {\n        const message = () => 'message';\n        const schema = required(wrapped, message);\n        expect(schema).toStrictEqual({\n          ...baseObjectWithRestSchema,\n          entries: {\n            key1: {\n              ...nonOptional(entries.key1, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key2: {\n              ...nonOptional(entries.key2, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key3: {\n              ...nonOptional(entries.key3, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: {\n              ...nonOptional(entries.key4, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n          },\n        } satisfies typeof schema);\n      });\n\n      test('with specific keys and undefined message', () => {\n        const expected: typeof schema2 = {\n          ...baseObjectWithRestSchema,\n          entries: {\n            key1: entries.key1,\n            key2: {\n              ...nonOptional(entries.key2),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key3: {\n              ...nonOptional(entries.key3),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: entries.key4,\n          },\n        };\n        expect(schema2).toStrictEqual(expected);\n        expect(schema2, undefined).toStrictEqual(expected);\n      });\n\n      test('with specific keys and string message', () => {\n        const message = 'message';\n        const schema = required(wrapped, ['key2', 'key3'], message);\n        expect(schema).toStrictEqual({\n          ...baseObjectWithRestSchema,\n          entries: {\n            key1: entries.key1,\n            key2: {\n              ...nonOptional(entries.key2, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key3: {\n              ...nonOptional(entries.key3, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: entries.key4,\n          },\n        } satisfies typeof schema);\n      });\n\n      test('with specific keys and function message', () => {\n        const message = () => 'message';\n        const schema = required(wrapped, ['key2', 'key3'], message);\n        expect(schema).toStrictEqual({\n          ...baseObjectWithRestSchema,\n          entries: {\n            key1: entries.key1,\n            key2: {\n              ...nonOptional(entries.key2, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key3: {\n              ...nonOptional(entries.key3, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: entries.key4,\n          },\n        } satisfies typeof schema);\n      });\n    });\n\n    describe('should return dataset without nested issues', () => {\n      test('if required keys are present', () => {\n        const input1 = {\n          key1: 'foo',\n          key2: 123,\n          key3: 'bar',\n          key4: 123,\n          other: true,\n        };\n        // @ts-expect-error\n        expectNoSchemaIssue(schema1, [input1]);\n        // @ts-expect-error\n        expectNoSchemaIssue(schema2, [input1]);\n        const input2 = { key2: 123, key3: 'bar', other: true };\n        expect(schema2['~run']({ value: input2 }, {})).toStrictEqual({\n          typed: true,\n          value: { ...input2, key4: 123 },\n        });\n      });\n    });\n\n    describe('should return dataset with nested issues', () => {\n      test('if required keys are missing', () => {\n        expect(schema1['~run']({ value: {} }, {})).toStrictEqual({\n          typed: false,\n          value: {},\n          issues: [\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'object_with_rest',\n              input: undefined,\n              expected: '\"key1\"',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input: {},\n                  key: 'key1',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'object_with_rest',\n              input: undefined,\n              expected: '\"key2\"',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input: {},\n                  key: 'key2',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'object_with_rest',\n              input: undefined,\n              expected: '\"key3\"',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input: {},\n                  key: 'key3',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'object_with_rest',\n              input: undefined,\n              expected: '\"key4\"',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input: {},\n                  key: 'key4',\n                  value: undefined,\n                },\n              ],\n            },\n          ],\n        } satisfies FailureDataset<InferIssue<typeof schema1>>);\n\n        const input = { key1: 'foo', key4: null, other: true };\n        expect(schema2['~run']({ value: input }, {})).toStrictEqual({\n          typed: false,\n          value: { ...input, key4: 123 },\n          issues: [\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'object_with_rest',\n              input: undefined,\n              expected: '\"key2\"',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input,\n                  key: 'key2',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'object_with_rest',\n              input: undefined,\n              expected: '\"key3\"',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input,\n                  key: 'key3',\n                  value: undefined,\n                },\n              ],\n            },\n          ],\n        } satisfies FailureDataset<InferIssue<typeof schema2>>);\n      });\n\n      test('if required keys are undefined', () => {\n        const input1 = {\n          key1: undefined,\n          key2: undefined,\n          key3: undefined,\n          key4: undefined,\n        };\n        expect(schema1['~run']({ value: input1 }, {})).toStrictEqual({\n          typed: false,\n          value: input1,\n          issues: [\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'non_optional',\n              input: undefined,\n              expected: '!undefined',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'value',\n                  input: input1,\n                  key: 'key1',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'non_optional',\n              input: undefined,\n              expected: '!undefined',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'value',\n                  input: input1,\n                  key: 'key2',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'non_optional',\n              input: undefined,\n              expected: '!undefined',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'value',\n                  input: input1,\n                  key: 'key3',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'non_optional',\n              input: undefined,\n              expected: '!undefined',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'value',\n                  input: input1,\n                  key: 'key4',\n                  value: undefined,\n                },\n              ],\n            },\n          ],\n        } satisfies FailureDataset<InferIssue<typeof schema1>>);\n\n        const input2 = {\n          key1: 'foo',\n          key2: undefined,\n          key3: undefined,\n          key4: null,\n          other: true,\n        };\n        expect(schema2['~run']({ value: input2 }, {})).toStrictEqual({\n          typed: false,\n          value: { ...input2, key4: 123 },\n          issues: [\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'non_optional',\n              input: undefined,\n              expected: '!undefined',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'value',\n                  input: input2,\n                  key: 'key2',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'non_optional',\n              input: undefined,\n              expected: '!undefined',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'value',\n                  input: input2,\n                  key: 'key3',\n                  value: undefined,\n                },\n              ],\n            },\n          ],\n        } satisfies FailureDataset<InferIssue<typeof schema2>>);\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/required/required.ts",
    "content": "import {\n  type LooseObjectIssue,\n  type LooseObjectSchema,\n  nonOptional,\n  type NonOptionalIssue,\n  type NonOptionalSchema,\n  type ObjectIssue,\n  type ObjectSchema,\n  type ObjectWithRestIssue,\n  type ObjectWithRestSchema,\n  type StrictObjectIssue,\n  type StrictObjectSchema,\n} from '../../schemas/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  Config,\n  ErrorMessage,\n  InferInput,\n  InferIssue,\n  InferObjectInput,\n  InferObjectOutput,\n  InferOutput,\n  ObjectEntries,\n  ObjectKeys,\n  OutputDataset,\n  SchemaWithoutPipe,\n  StandardProps,\n  UnknownDataset,\n} from '../../types/index.ts';\nimport { _getStandardProps } from '../../utils/index.ts';\n\n/**\n * Schema type.\n */\ntype Schema = SchemaWithoutPipe<\n  | LooseObjectSchema<ObjectEntries, ErrorMessage<LooseObjectIssue> | undefined>\n  | ObjectSchema<ObjectEntries, ErrorMessage<ObjectIssue> | undefined>\n  | ObjectWithRestSchema<\n      ObjectEntries,\n      BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n      ErrorMessage<ObjectWithRestIssue> | undefined\n    >\n  | StrictObjectSchema<\n      ObjectEntries,\n      ErrorMessage<StrictObjectIssue> | undefined\n    >\n>;\n\n/**\n * Required entries type.\n */\ntype RequiredEntries<\n  TEntries extends ObjectEntries,\n  TKeys extends readonly (keyof TEntries)[] | undefined,\n  TMessage extends ErrorMessage<NonOptionalIssue> | undefined,\n> = {\n  [TKey in keyof TEntries]: TKeys extends readonly (keyof TEntries)[]\n    ? TKey extends TKeys[number]\n      ? NonOptionalSchema<TEntries[TKey], TMessage>\n      : TEntries[TKey]\n    : NonOptionalSchema<TEntries[TKey], TMessage>;\n};\n\n/**\n * Schema with required type.\n */\nexport type SchemaWithRequired<\n  TSchema extends Schema,\n  TKeys extends ObjectKeys<TSchema> | undefined,\n  TMessage extends ErrorMessage<NonOptionalIssue> | undefined,\n> = TSchema extends\n  | ObjectSchema<infer TEntries, ErrorMessage<ObjectIssue> | undefined>\n  | StrictObjectSchema<\n      infer TEntries,\n      ErrorMessage<StrictObjectIssue> | undefined\n    >\n  ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & {\n      /**\n       * The object entries.\n       */\n      readonly entries: RequiredEntries<TEntries, TKeys, TMessage>;\n      /**\n       * The Standard Schema properties.\n       *\n       * @internal\n       */\n      readonly '~standard': StandardProps<\n        InferObjectInput<RequiredEntries<TEntries, TKeys, TMessage>>,\n        InferObjectOutput<RequiredEntries<TEntries, TKeys, TMessage>>\n      >;\n      /**\n       * Parses unknown input.\n       *\n       * @param dataset The input dataset.\n       * @param config The configuration.\n       *\n       * @returns The output dataset.\n       *\n       * @internal\n       */\n      readonly '~run': (\n        dataset: UnknownDataset,\n        config: Config<BaseIssue<unknown>>\n      ) => OutputDataset<\n        InferObjectOutput<RequiredEntries<TEntries, TKeys, TMessage>>,\n        NonOptionalIssue | InferIssue<TSchema>\n      >;\n      /**\n       * The input, output and issue type.\n       *\n       * @internal\n       */\n      readonly '~types'?:\n        | {\n            readonly input: InferObjectInput<\n              RequiredEntries<TEntries, TKeys, TMessage>\n            >;\n            readonly output: InferObjectOutput<\n              RequiredEntries<TEntries, TKeys, TMessage>\n            >;\n            readonly issue: NonOptionalIssue | InferIssue<TSchema>;\n          }\n        | undefined;\n    }\n  : TSchema extends LooseObjectSchema<\n        infer TEntries,\n        ErrorMessage<LooseObjectIssue> | undefined\n      >\n    ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & {\n        /**\n         * The object entries.\n         */\n        readonly entries: RequiredEntries<TEntries, TKeys, TMessage>;\n        /**\n         * The Standard Schema properties.\n         *\n         * @internal\n         */\n        readonly '~standard': StandardProps<\n          InferObjectInput<RequiredEntries<TEntries, TKeys, TMessage>> & {\n            [key: string]: unknown;\n          },\n          InferObjectOutput<RequiredEntries<TEntries, TKeys, TMessage>> & {\n            [key: string]: unknown;\n          }\n        >;\n        /**\n         * Parses unknown input.\n         *\n         * @param dataset The input dataset.\n         * @param config The configuration.\n         *\n         * @returns The output dataset.\n         *\n         * @internal\n         */\n        readonly '~run': (\n          dataset: UnknownDataset,\n          config: Config<BaseIssue<unknown>>\n        ) => OutputDataset<\n          InferObjectOutput<RequiredEntries<TEntries, TKeys, TMessage>> & {\n            [key: string]: unknown;\n          },\n          NonOptionalIssue | InferIssue<TSchema>\n        >;\n        /**\n         * The input, output and issue type.\n         *\n         * @internal\n         */\n        readonly '~types'?:\n          | {\n              readonly input: InferObjectInput<\n                RequiredEntries<TEntries, TKeys, TMessage>\n              > & {\n                [key: string]: unknown;\n              };\n              readonly output: InferObjectOutput<\n                RequiredEntries<TEntries, TKeys, TMessage>\n              > & {\n                [key: string]: unknown;\n              };\n              readonly issue: NonOptionalIssue | InferIssue<TSchema>;\n            }\n          | undefined;\n      }\n    : TSchema extends ObjectWithRestSchema<\n          infer TEntries,\n          infer TRest,\n          ErrorMessage<ObjectWithRestIssue> | undefined\n        >\n      ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & {\n          /**\n           * The object entries.\n           */\n          readonly entries: RequiredEntries<TEntries, TKeys, TMessage>;\n          /**\n           * The Standard Schema properties.\n           *\n           * @internal\n           */\n          readonly '~standard': StandardProps<\n            InferObjectInput<RequiredEntries<TEntries, TKeys, TMessage>> & {\n              [key: string]: InferInput<TRest>;\n            },\n            InferObjectOutput<RequiredEntries<TEntries, TKeys, TMessage>> & {\n              [key: string]: InferOutput<TRest>;\n            }\n          >;\n          /**\n           * Parses unknown input.\n           *\n           * @param dataset The input dataset.\n           * @param config The configuration.\n           *\n           * @returns The output dataset.\n           *\n           * @internal\n           */\n          readonly '~run': (\n            dataset: UnknownDataset,\n            config: Config<BaseIssue<unknown>>\n          ) => OutputDataset<\n            InferObjectOutput<RequiredEntries<TEntries, TKeys, TMessage>> & {\n              [key: string]: InferOutput<TRest>;\n            },\n            NonOptionalIssue | InferIssue<TSchema>\n          >;\n          /**\n           * The input, output and issue type.\n           *\n           * @internal\n           */\n          readonly '~types'?:\n            | {\n                readonly input: InferObjectInput<\n                  RequiredEntries<TEntries, TKeys, TMessage>\n                > & {\n                  [key: string]: InferInput<TRest>;\n                };\n                readonly output: InferObjectOutput<\n                  RequiredEntries<TEntries, TKeys, TMessage>\n                > & { [key: string]: InferOutput<TRest> };\n                readonly issue: NonOptionalIssue | InferIssue<TSchema>;\n              }\n            | undefined;\n        }\n      : never;\n\n/**\n * Creates a modified copy of an object schema that marks all entries as required.\n *\n * @param schema The schema to modify.\n *\n * @returns An object schema.\n */\n// @ts-expect-error FIXME: TypeScript incorrectly claims that the overload\n// signature is not compatible with the implementation signature\nexport function required<const TSchema extends Schema>(\n  schema: TSchema\n): SchemaWithRequired<TSchema, undefined, undefined>;\n\n/**\n * Creates a modified copy of an object schema that marks all entries as required.\n *\n * @param schema The schema to modify.\n * @param message The error message.\n *\n * @returns An object schema.\n */\nexport function required<\n  const TSchema extends Schema,\n  const TMessage extends ErrorMessage<NonOptionalIssue> | undefined,\n>(\n  schema: TSchema,\n  message: TMessage\n): SchemaWithRequired<TSchema, undefined, TMessage>;\n\n/**\n * Creates a modified copy of an object schema that marks the selected entries\n * as required.\n *\n * @param schema The schema to modify.\n * @param keys The selected entries.\n *\n * @returns An object schema.\n */\nexport function required<\n  const TSchema extends Schema,\n  const TKeys extends ObjectKeys<TSchema>,\n>(schema: TSchema, keys: TKeys): SchemaWithRequired<TSchema, TKeys, undefined>;\n\n/**\n * Creates a modified copy of an object schema that marks the selected entries\n * as required.\n *\n * @param schema The schema to modify.\n * @param keys The selected entries.\n * @param message The error message.\n *\n * @returns An object schema.\n */\nexport function required<\n  const TSchema extends Schema,\n  const TKeys extends ObjectKeys<TSchema>,\n  const TMessage extends ErrorMessage<NonOptionalIssue> | undefined,\n>(\n  schema: TSchema,\n  keys: TKeys,\n  message: TMessage\n): SchemaWithRequired<TSchema, TKeys, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function required(\n  schema: Schema,\n  arg2?: ErrorMessage<NonOptionalIssue> | ObjectKeys<Schema>,\n  arg3?: ErrorMessage<NonOptionalIssue>\n): SchemaWithRequired<\n  Schema,\n  ObjectKeys<Schema> | undefined,\n  ErrorMessage<NonOptionalIssue> | undefined\n> {\n  // Get keys and message from arguments\n  const keys = Array.isArray(arg2) ? arg2 : undefined;\n  const message = (Array.isArray(arg2) ? arg3 : arg2) as\n    | ErrorMessage<NonOptionalIssue>\n    | undefined;\n\n  // Create modified object entries\n  const entries: RequiredEntries<\n    ObjectEntries,\n    ObjectKeys<Schema>,\n    ErrorMessage<NonOptionalIssue> | undefined\n  > = {};\n  for (const key in schema.entries) {\n    // @ts-expect-error\n    entries[key] =\n      !keys || keys.includes(key)\n        ? nonOptional(schema.entries[key], message)\n        : schema.entries[key];\n  }\n\n  // Return modified copy of schema\n  return {\n    ...schema,\n    entries,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/methods/required/requiredAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport {\n  boolean,\n  type BooleanIssue,\n  type NonOptionalIssue,\n  nullishAsync,\n  number,\n  type NumberIssue,\n  objectAsync,\n  type ObjectIssue,\n  objectWithRestAsync,\n  type ObjectWithRestIssue,\n  optional,\n  optionalAsync,\n  string,\n  type StringIssue,\n} from '../../schemas/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  requiredAsync,\n  type SchemaWithRequiredAsync,\n} from './requiredAsync.ts';\n\ndescribe('requiredAsync', () => {\n  const entries = {\n    key1: optional(string()),\n    key2: optional(number()),\n    key3: optionalAsync(string()),\n    key4: nullishAsync(number(), async () => 123),\n  };\n\n  describe('objectAsync', () => {\n    const wrapped = objectAsync(entries);\n    type Wrapped = typeof wrapped;\n    type Schema1 = SchemaWithRequiredAsync<Wrapped, undefined, undefined>;\n    type Schema2 = SchemaWithRequiredAsync<\n      Wrapped,\n      ['key1', 'key3'],\n      undefined\n    >;\n\n    describe('should return schema object', () => {\n      test('with undefined keys', () => {\n        expectTypeOf(requiredAsync(wrapped)).toEqualTypeOf<Schema1>();\n        expectTypeOf(\n          requiredAsync(wrapped, undefined)\n        ).toEqualTypeOf<Schema1>();\n        expectTypeOf(requiredAsync(wrapped, 'message')).toEqualTypeOf<\n          SchemaWithRequiredAsync<Wrapped, undefined, 'message'>\n        >();\n        expectTypeOf(requiredAsync(wrapped, () => 'message')).toEqualTypeOf<\n          SchemaWithRequiredAsync<Wrapped, undefined, () => string>\n        >();\n      });\n\n      test('with specific keys', () => {\n        expectTypeOf(\n          requiredAsync(wrapped, ['key1', 'key3'])\n        ).toEqualTypeOf<Schema2>();\n        expectTypeOf(\n          requiredAsync(wrapped, ['key1', 'key3'], undefined)\n        ).toEqualTypeOf<Schema2>();\n        expectTypeOf(\n          requiredAsync(wrapped, ['key1', 'key3'], 'message')\n        ).toEqualTypeOf<\n          SchemaWithRequiredAsync<Wrapped, ['key1', 'key3'], 'message'>\n        >();\n        expectTypeOf(\n          requiredAsync(wrapped, ['key1', 'key3'], () => 'message')\n        ).toEqualTypeOf<\n          SchemaWithRequiredAsync<Wrapped, ['key1', 'key3'], () => string>\n        >();\n      });\n    });\n\n    describe('should infer correct types', () => {\n      test('of input', () => {\n        expectTypeOf<InferInput<Schema1>>().toEqualTypeOf<{\n          key1: string;\n          key2: number;\n          key3: string;\n          key4: number | null;\n        }>();\n        expectTypeOf<InferInput<Schema2>>().toEqualTypeOf<{\n          key1: string;\n          key2?: number;\n          key3: string;\n          key4?: number | null;\n        }>();\n      });\n\n      test('of output', () => {\n        expectTypeOf<InferOutput<Schema1>>().toEqualTypeOf<{\n          key1: string;\n          key2: number;\n          key3: string;\n          key4: number;\n        }>();\n        expectTypeOf<InferOutput<Schema2>>().toEqualTypeOf<{\n          key1: string;\n          key2?: number;\n          key3: string;\n          key4: number;\n        }>();\n      });\n\n      test('of issue', () => {\n        expectTypeOf<InferIssue<Schema1>>().toEqualTypeOf<\n          NonOptionalIssue | ObjectIssue | StringIssue | NumberIssue\n        >();\n        expectTypeOf<InferIssue<Schema2>>().toEqualTypeOf<\n          NonOptionalIssue | ObjectIssue | StringIssue | NumberIssue\n        >();\n      });\n    });\n  });\n\n  describe('objectWithRestAsync', () => {\n    const wrapped = objectWithRestAsync(entries, boolean());\n    type Wrapped = typeof wrapped;\n    type Schema1 = SchemaWithRequiredAsync<Wrapped, undefined, undefined>;\n    type Schema2 = SchemaWithRequiredAsync<\n      Wrapped,\n      ['key2', 'key3'],\n      undefined\n    >;\n\n    describe('should return schema object', () => {\n      test('with undefined keys', () => {\n        expectTypeOf(requiredAsync(wrapped)).toEqualTypeOf<Schema1>();\n        expectTypeOf(\n          requiredAsync(wrapped, undefined)\n        ).toEqualTypeOf<Schema1>();\n        expectTypeOf(requiredAsync(wrapped, 'message')).toEqualTypeOf<\n          SchemaWithRequiredAsync<Wrapped, undefined, 'message'>\n        >();\n        expectTypeOf(requiredAsync(wrapped, () => 'message')).toEqualTypeOf<\n          SchemaWithRequiredAsync<Wrapped, undefined, () => string>\n        >();\n      });\n\n      test('with specific keys', () => {\n        expectTypeOf(\n          requiredAsync(wrapped, ['key2', 'key3'])\n        ).toEqualTypeOf<Schema2>();\n        expectTypeOf(\n          requiredAsync(wrapped, ['key2', 'key3'], undefined)\n        ).toEqualTypeOf<Schema2>();\n        expectTypeOf(\n          requiredAsync(wrapped, ['key2', 'key3'], 'message')\n        ).toEqualTypeOf<\n          SchemaWithRequiredAsync<Wrapped, ['key2', 'key3'], 'message'>\n        >();\n        expectTypeOf(\n          requiredAsync(wrapped, ['key2', 'key3'], () => 'message')\n        ).toEqualTypeOf<\n          SchemaWithRequiredAsync<Wrapped, ['key2', 'key3'], () => string>\n        >();\n      });\n    });\n\n    describe('should infer correct types', () => {\n      test('of input', () => {\n        expectTypeOf<InferInput<Schema1>>().toEqualTypeOf<\n          {\n            key1: string;\n            key2: number;\n            key3: string;\n            key4: number | null;\n          } & { [key: string]: boolean }\n        >();\n        expectTypeOf<InferInput<Schema2>>().toEqualTypeOf<\n          {\n            key1?: string;\n            key2: number;\n            key3: string;\n            key4?: number | null;\n          } & { [key: string]: boolean }\n        >();\n      });\n\n      test('of output', () => {\n        expectTypeOf<InferOutput<Schema1>>().toEqualTypeOf<\n          {\n            key1: string;\n            key2: number;\n            key3: string;\n            key4: number;\n          } & { [key: string]: boolean }\n        >();\n        expectTypeOf<InferOutput<Schema2>>().toEqualTypeOf<\n          {\n            key1?: string;\n            key2: number;\n            key3: string;\n            key4: number;\n          } & { [key: string]: boolean }\n        >();\n      });\n\n      test('of issue', () => {\n        expectTypeOf<InferIssue<Schema1>>().toEqualTypeOf<\n          | NonOptionalIssue\n          | ObjectWithRestIssue\n          | NumberIssue\n          | StringIssue\n          | BooleanIssue\n        >();\n        expectTypeOf<InferIssue<Schema2>>().toEqualTypeOf<\n          | NonOptionalIssue\n          | ObjectWithRestIssue\n          | NumberIssue\n          | StringIssue\n          | BooleanIssue\n        >();\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/required/requiredAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  boolean,\n  nonOptionalAsync,\n  nullishAsync,\n  number,\n  objectAsync,\n  objectWithRestAsync,\n  optional,\n  optionalAsync,\n  string,\n} from '../../schemas/index.ts';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport { expectNoSchemaIssueAsync } from '../../vitest/index.ts';\nimport { requiredAsync } from './requiredAsync.ts';\n\ndescribe('requiredAsync', () => {\n  const entries = {\n    key1: optional(string()),\n    key2: optional(number()),\n    key3: optionalAsync(string()),\n    key4: nullishAsync(number(), async () => 123),\n  };\n  const baseInfo = {\n    message: expect.any(String),\n    requirement: undefined,\n    issues: undefined,\n    lang: undefined,\n    abortEarly: undefined,\n    abortPipeEarly: undefined,\n  } as const;\n\n  describe('objectAsync', () => {\n    const wrapped = objectAsync(entries);\n    const schema1 = requiredAsync(wrapped);\n    const schema2 = requiredAsync(wrapped, ['key1', 'key3']);\n\n    describe('should return schema object', () => {\n      const baseObjectAsync = {\n        kind: 'schema',\n        type: 'object',\n        reference: objectAsync,\n        expects: 'Object',\n        message: undefined,\n        async: true,\n        '~standard': {\n          version: 1,\n          vendor: 'valibot',\n          validate: expect.any(Function),\n        },\n        '~run': expect.any(Function),\n      } as const;\n\n      test('with undefined keys and undefined message', () => {\n        const expected: typeof schema1 = {\n          ...baseObjectAsync,\n          entries: {\n            key1: {\n              ...nonOptionalAsync(entries.key1),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key2: {\n              ...nonOptionalAsync(entries.key2),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key3: {\n              ...nonOptionalAsync(entries.key3),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: {\n              ...nonOptionalAsync(entries.key4),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n          },\n        };\n        expect(schema1).toStrictEqual(expected);\n        expect(schema1, undefined).toStrictEqual(expected);\n      });\n\n      test('with undefined keys and string message', () => {\n        const message = 'message';\n        const schema = requiredAsync(wrapped, message);\n        expect(schema).toStrictEqual({\n          ...baseObjectAsync,\n          entries: {\n            key1: {\n              ...nonOptionalAsync(entries.key1, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key2: {\n              ...nonOptionalAsync(entries.key2, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key3: {\n              ...nonOptionalAsync(entries.key3, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: {\n              ...nonOptionalAsync(entries.key4, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n          },\n        } satisfies typeof schema);\n      });\n\n      test('with undefined keys and function message', () => {\n        const message = () => 'message';\n        const schema = requiredAsync(wrapped, message);\n        expect(schema).toStrictEqual({\n          ...baseObjectAsync,\n          entries: {\n            key1: {\n              ...nonOptionalAsync(entries.key1, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key2: {\n              ...nonOptionalAsync(entries.key2, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key3: {\n              ...nonOptionalAsync(entries.key3, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: {\n              ...nonOptionalAsync(entries.key4, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n          },\n        } satisfies typeof schema);\n      });\n\n      test('with specific keys and undefined message', () => {\n        const expected: typeof schema2 = {\n          ...baseObjectAsync,\n          entries: {\n            key1: {\n              ...nonOptionalAsync(entries.key1),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key2: entries.key2,\n            key3: {\n              ...nonOptionalAsync(entries.key3),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: entries.key4,\n          },\n        };\n        expect(schema2).toStrictEqual(expected);\n        expect(schema2, undefined).toStrictEqual(expected);\n      });\n\n      test('with specific keys and string message', () => {\n        const message = 'message';\n        const schema = requiredAsync(wrapped, ['key1', 'key3'], message);\n        expect(schema).toStrictEqual({\n          ...baseObjectAsync,\n          entries: {\n            key1: {\n              ...nonOptionalAsync(entries.key1, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key2: entries.key2,\n            key3: {\n              ...nonOptionalAsync(entries.key3, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: entries.key4,\n          },\n        } satisfies typeof schema);\n      });\n    });\n\n    describe('should return dataset without nested issues', () => {\n      test('if required keys are present', async () => {\n        const input1 = { key1: 'foo', key2: 123, key3: 'bar', key4: 123 };\n        await expectNoSchemaIssueAsync(schema1, [input1]);\n        await expectNoSchemaIssueAsync(schema2, [input1]);\n        const input2 = { key1: 'foo', key3: 'bar' };\n        expect(await schema2['~run']({ value: input2 }, {})).toStrictEqual({\n          typed: true,\n          value: { ...input2, key4: 123 },\n        });\n      });\n    });\n\n    describe('should return dataset with nested issues', () => {\n      test('if required keys are missing', async () => {\n        expect(await schema1['~run']({ value: {} }, {})).toStrictEqual({\n          typed: false,\n          value: {},\n          issues: [\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'object',\n              input: undefined,\n              expected: '\"key1\"',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input: {},\n                  key: 'key1',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'object',\n              input: undefined,\n              expected: '\"key2\"',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input: {},\n                  key: 'key2',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'object',\n              input: undefined,\n              expected: '\"key3\"',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input: {},\n                  key: 'key3',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'object',\n              input: undefined,\n              expected: '\"key4\"',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input: {},\n                  key: 'key4',\n                  value: undefined,\n                },\n              ],\n            },\n          ],\n        } satisfies FailureDataset<InferIssue<typeof schema1>>);\n\n        const input = { key2: 123, key4: null };\n        expect(await schema2['~run']({ value: input }, {})).toStrictEqual({\n          typed: false,\n          value: { ...input, key4: 123 },\n          issues: [\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'object',\n              input: undefined,\n              expected: '\"key1\"',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input,\n                  key: 'key1',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'object',\n              input: undefined,\n              expected: '\"key3\"',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input,\n                  key: 'key3',\n                  value: undefined,\n                },\n              ],\n            },\n          ],\n        } satisfies FailureDataset<InferIssue<typeof schema2>>);\n      });\n\n      test('if required keys are undefined', async () => {\n        const input1 = {\n          key1: undefined,\n          key2: undefined,\n          key3: undefined,\n          key4: undefined,\n        };\n        expect(await schema1['~run']({ value: input1 }, {})).toStrictEqual({\n          typed: false,\n          value: input1,\n          issues: [\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'non_optional',\n              input: undefined,\n              expected: '!undefined',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'value',\n                  input: input1,\n                  key: 'key1',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'non_optional',\n              input: undefined,\n              expected: '!undefined',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'value',\n                  input: input1,\n                  key: 'key2',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'non_optional',\n              input: undefined,\n              expected: '!undefined',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'value',\n                  input: input1,\n                  key: 'key3',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'non_optional',\n              input: undefined,\n              expected: '!undefined',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'value',\n                  input: input1,\n                  key: 'key4',\n                  value: undefined,\n                },\n              ],\n            },\n          ],\n        } satisfies FailureDataset<InferIssue<typeof schema1>>);\n\n        const input2 = {\n          key1: undefined,\n          key2: 123,\n          key3: undefined,\n          key4: null,\n        };\n        expect(await schema2['~run']({ value: input2 }, {})).toStrictEqual({\n          typed: false,\n          value: { ...input2, key4: 123 },\n          issues: [\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'non_optional',\n              input: undefined,\n              expected: '!undefined',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'value',\n                  input: input2,\n                  key: 'key1',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'non_optional',\n              input: undefined,\n              expected: '!undefined',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'value',\n                  input: input2,\n                  key: 'key3',\n                  value: undefined,\n                },\n              ],\n            },\n          ],\n        } satisfies FailureDataset<InferIssue<typeof schema2>>);\n      });\n    });\n  });\n\n  describe('objectWithRestAsync', () => {\n    const rest = boolean();\n    const wrapped = objectWithRestAsync(entries, rest);\n    const schema1 = requiredAsync(wrapped);\n    const schema2 = requiredAsync(wrapped, ['key2', 'key3']);\n\n    describe('should return schema object', () => {\n      const baseObjectWithRestAsync = {\n        kind: 'schema',\n        type: 'object_with_rest',\n        reference: objectWithRestAsync,\n        expects: 'Object',\n        rest,\n        message: undefined,\n        async: true,\n        '~standard': {\n          version: 1,\n          vendor: 'valibot',\n          validate: expect.any(Function),\n        },\n        '~run': expect.any(Function),\n      } as const;\n\n      test('with undefined keys and undefined message', () => {\n        const expected: typeof schema1 = {\n          ...baseObjectWithRestAsync,\n          entries: {\n            key1: {\n              ...nonOptionalAsync(entries.key1),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key2: {\n              ...nonOptionalAsync(entries.key2),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key3: {\n              ...nonOptionalAsync(entries.key3),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: {\n              ...nonOptionalAsync(entries.key4),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n          },\n        };\n        expect(schema1).toStrictEqual(expected);\n        expect(schema1, undefined).toStrictEqual(expected);\n      });\n\n      test('with undefined keys and string message', () => {\n        const message = 'message';\n        const schema = requiredAsync(wrapped, message);\n        expect(schema).toStrictEqual({\n          ...baseObjectWithRestAsync,\n          entries: {\n            key1: {\n              ...nonOptionalAsync(entries.key1, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key2: {\n              ...nonOptionalAsync(entries.key2, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key3: {\n              ...nonOptionalAsync(entries.key3, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: {\n              ...nonOptionalAsync(entries.key4, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n          },\n          rest,\n          message: undefined,\n          async: true,\n          '~standard': {\n            version: 1,\n            vendor: 'valibot',\n            validate: expect.any(Function),\n          },\n          '~run': expect.any(Function),\n        } satisfies typeof schema);\n      });\n\n      test('with undefined keys and function message', () => {\n        const message = () => 'message';\n        const schema = requiredAsync(wrapped, message);\n        expect(schema).toStrictEqual({\n          ...baseObjectWithRestAsync,\n          entries: {\n            key1: {\n              ...nonOptionalAsync(entries.key1, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key2: {\n              ...nonOptionalAsync(entries.key2, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key3: {\n              ...nonOptionalAsync(entries.key3, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: {\n              ...nonOptionalAsync(entries.key4, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n          },\n        } satisfies typeof schema);\n      });\n\n      test('with specific keys und undefined message', () => {\n        const expected: typeof schema2 = {\n          ...baseObjectWithRestAsync,\n          entries: {\n            key1: entries.key1,\n            key2: {\n              ...nonOptionalAsync(entries.key2),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key3: {\n              ...nonOptionalAsync(entries.key3),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: entries.key4,\n          },\n        };\n        expect(schema2).toStrictEqual(expected);\n        expect(schema2, undefined).toStrictEqual(expected);\n      });\n\n      test('with specific keys and string message', () => {\n        const message = 'message';\n        const schema = requiredAsync(wrapped, ['key2', 'key3'], message);\n        expect(schema).toStrictEqual({\n          ...baseObjectWithRestAsync,\n          entries: {\n            key1: entries.key1,\n            key2: {\n              ...nonOptionalAsync(entries.key2, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key3: {\n              ...nonOptionalAsync(entries.key3, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: entries.key4,\n          },\n        } satisfies typeof schema);\n      });\n\n      test('with specific keys and function message', () => {\n        const message = () => 'message';\n        const schema = requiredAsync(wrapped, ['key2', 'key3'], message);\n        expect(schema).toStrictEqual({\n          ...baseObjectWithRestAsync,\n          entries: {\n            key1: entries.key1,\n            key2: {\n              ...nonOptionalAsync(entries.key2, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key3: {\n              ...nonOptionalAsync(entries.key3, message),\n              '~standard': {\n                version: 1,\n                vendor: 'valibot',\n                validate: expect.any(Function),\n              },\n              '~run': expect.any(Function),\n            },\n            key4: entries.key4,\n          },\n        } satisfies typeof schema);\n      });\n    });\n\n    describe('should return dataset without nested issues', () => {\n      test('if required keys are present', async () => {\n        const input1 = {\n          key1: 'foo',\n          key2: 123,\n          key3: 'bar',\n          key4: 123,\n          other: true,\n        };\n        // @ts-expect-error\n        await expectNoSchemaIssueAsync(schema1, [input1]);\n        // @ts-expect-error\n        await expectNoSchemaIssueAsync(schema2, [input1]);\n        const input2 = { key2: 123, key3: 'bar', other: true };\n        expect(await schema2['~run']({ value: input2 }, {})).toStrictEqual({\n          typed: true,\n          value: { ...input2, key4: 123 },\n        });\n      });\n    });\n\n    describe('should return dataset with nested issues', () => {\n      test('if required keys are missing', async () => {\n        expect(await schema1['~run']({ value: {} }, {})).toStrictEqual({\n          typed: false,\n          value: {},\n          issues: [\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'object_with_rest',\n              input: undefined,\n              expected: '\"key1\"',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input: {},\n                  key: 'key1',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'object_with_rest',\n              input: undefined,\n              expected: '\"key2\"',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input: {},\n                  key: 'key2',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'object_with_rest',\n              input: undefined,\n              expected: '\"key3\"',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input: {},\n                  key: 'key3',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'object_with_rest',\n              input: undefined,\n              expected: '\"key4\"',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input: {},\n                  key: 'key4',\n                  value: undefined,\n                },\n              ],\n            },\n          ],\n        } satisfies FailureDataset<InferIssue<typeof schema1>>);\n\n        const input = { key1: 'foo', key4: null, other: true };\n        expect(await schema2['~run']({ value: input }, {})).toStrictEqual({\n          typed: false,\n          value: { ...input, key4: 123 },\n          issues: [\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'object_with_rest',\n              input: undefined,\n              expected: '\"key2\"',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input,\n                  key: 'key2',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'object_with_rest',\n              input: undefined,\n              expected: '\"key3\"',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input,\n                  key: 'key3',\n                  value: undefined,\n                },\n              ],\n            },\n          ],\n        } satisfies FailureDataset<InferIssue<typeof schema2>>);\n      });\n\n      test('if required keys are undefined', async () => {\n        const input1 = {\n          key1: undefined,\n          key2: undefined,\n          key3: undefined,\n          key4: undefined,\n        };\n        expect(await schema1['~run']({ value: input1 }, {})).toStrictEqual({\n          typed: false,\n          value: input1,\n          issues: [\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'non_optional',\n              input: undefined,\n              expected: '!undefined',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'value',\n                  input: input1,\n                  key: 'key1',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'non_optional',\n              input: undefined,\n              expected: '!undefined',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'value',\n                  input: input1,\n                  key: 'key2',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'non_optional',\n              input: undefined,\n              expected: '!undefined',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'value',\n                  input: input1,\n                  key: 'key3',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'non_optional',\n              input: undefined,\n              expected: '!undefined',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'value',\n                  input: input1,\n                  key: 'key4',\n                  value: undefined,\n                },\n              ],\n            },\n          ],\n        } satisfies FailureDataset<InferIssue<typeof schema1>>);\n\n        const input2 = {\n          key1: 'foo',\n          key2: undefined,\n          key3: undefined,\n          key4: null,\n          other: true,\n        };\n        expect(await schema2['~run']({ value: input2 }, {})).toStrictEqual({\n          typed: false,\n          value: { ...input2, key4: 123 },\n          issues: [\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'non_optional',\n              input: undefined,\n              expected: '!undefined',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'value',\n                  input: input2,\n                  key: 'key2',\n                  value: undefined,\n                },\n              ],\n            },\n            {\n              ...baseInfo,\n              kind: 'schema',\n              type: 'non_optional',\n              input: undefined,\n              expected: '!undefined',\n              received: 'undefined',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'value',\n                  input: input2,\n                  key: 'key3',\n                  value: undefined,\n                },\n              ],\n            },\n          ],\n        } satisfies FailureDataset<InferIssue<typeof schema2>>);\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/required/requiredAsync.ts",
    "content": "import {\n  type LooseObjectIssue,\n  type LooseObjectSchemaAsync,\n  nonOptionalAsync,\n  type NonOptionalIssue,\n  type NonOptionalSchemaAsync,\n  type ObjectIssue,\n  type ObjectSchemaAsync,\n  type ObjectWithRestIssue,\n  type ObjectWithRestSchemaAsync,\n  type StrictObjectIssue,\n  type StrictObjectSchemaAsync,\n} from '../../schemas/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  Config,\n  ErrorMessage,\n  InferInput,\n  InferIssue,\n  InferObjectInput,\n  InferObjectOutput,\n  InferOutput,\n  ObjectEntriesAsync,\n  ObjectKeys,\n  OutputDataset,\n  SchemaWithoutPipe,\n  StandardProps,\n  UnknownDataset,\n} from '../../types/index.ts';\nimport { _getStandardProps } from '../../utils/index.ts';\n\n/**\n * Schema type.\n */\ntype Schema = SchemaWithoutPipe<\n  | LooseObjectSchemaAsync<\n      ObjectEntriesAsync,\n      ErrorMessage<LooseObjectIssue> | undefined\n    >\n  | ObjectSchemaAsync<ObjectEntriesAsync, ErrorMessage<ObjectIssue> | undefined>\n  | ObjectWithRestSchemaAsync<\n      ObjectEntriesAsync,\n      | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n      | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n      ErrorMessage<ObjectWithRestIssue> | undefined\n    >\n  | StrictObjectSchemaAsync<\n      ObjectEntriesAsync,\n      ErrorMessage<StrictObjectIssue> | undefined\n    >\n>;\n\n/**\n * Required entries type.\n */\ntype RequiredEntries<\n  TEntries extends ObjectEntriesAsync,\n  TKeys extends readonly (keyof TEntries)[] | undefined,\n  TMessage extends ErrorMessage<NonOptionalIssue> | undefined,\n> = {\n  [TKey in keyof TEntries]: TKeys extends readonly (keyof TEntries)[]\n    ? TKey extends TKeys[number]\n      ? NonOptionalSchemaAsync<TEntries[TKey], TMessage>\n      : TEntries[TKey]\n    : NonOptionalSchemaAsync<TEntries[TKey], TMessage>;\n};\n\n/**\n * Schema with required type.\n */\nexport type SchemaWithRequiredAsync<\n  TSchema extends Schema,\n  TKeys extends ObjectKeys<TSchema> | undefined,\n  TMessage extends ErrorMessage<NonOptionalIssue> | undefined,\n> = TSchema extends\n  | ObjectSchemaAsync<infer TEntries, ErrorMessage<ObjectIssue> | undefined>\n  | StrictObjectSchemaAsync<\n      infer TEntries,\n      ErrorMessage<StrictObjectIssue> | undefined\n    >\n  ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & {\n      /**\n       * The object entries.\n       */\n      readonly entries: RequiredEntries<TEntries, TKeys, TMessage>;\n      /**\n       * The Standard Schema properties.\n       *\n       * @internal\n       */\n      readonly '~standard': StandardProps<\n        InferObjectInput<RequiredEntries<TEntries, TKeys, TMessage>>,\n        InferObjectOutput<RequiredEntries<TEntries, TKeys, TMessage>>\n      >;\n      /**\n       * Parses unknown input.\n       *\n       * @param dataset The input dataset.\n       * @param config The configuration.\n       *\n       * @returns The output dataset.\n       *\n       * @internal\n       */\n      readonly '~run': (\n        dataset: UnknownDataset,\n        config: Config<BaseIssue<unknown>>\n      ) => Promise<\n        OutputDataset<\n          InferObjectOutput<RequiredEntries<TEntries, TKeys, TMessage>>,\n          NonOptionalIssue | InferIssue<TSchema>\n        >\n      >;\n      /**\n       * The input, output and issue type.\n       *\n       * @internal\n       */\n      readonly '~types'?:\n        | {\n            readonly input: InferObjectInput<\n              RequiredEntries<TEntries, TKeys, TMessage>\n            >;\n            readonly output: InferObjectOutput<\n              RequiredEntries<TEntries, TKeys, TMessage>\n            >;\n            readonly issue: NonOptionalIssue | InferIssue<TSchema>;\n          }\n        | undefined;\n    }\n  : TSchema extends LooseObjectSchemaAsync<\n        infer TEntries,\n        ErrorMessage<LooseObjectIssue> | undefined\n      >\n    ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & {\n        /**\n         * The object entries.\n         */\n        readonly entries: RequiredEntries<TEntries, TKeys, TMessage>;\n        /**\n         * The Standard Schema properties.\n         *\n         * @internal\n         */\n        readonly '~standard': StandardProps<\n          InferObjectInput<RequiredEntries<TEntries, TKeys, TMessage>> & {\n            [key: string]: unknown;\n          },\n          InferObjectOutput<RequiredEntries<TEntries, TKeys, TMessage>> & {\n            [key: string]: unknown;\n          }\n        >;\n        /**\n         * Parses unknown input.\n         *\n         * @param dataset The input dataset.\n         * @param config The configuration.\n         *\n         * @returns The output dataset.\n         *\n         * @internal\n         */\n        readonly '~run': (\n          dataset: UnknownDataset,\n          config: Config<BaseIssue<unknown>>\n        ) => Promise<\n          OutputDataset<\n            InferObjectOutput<RequiredEntries<TEntries, TKeys, TMessage>> & {\n              [key: string]: unknown;\n            },\n            NonOptionalIssue | InferIssue<TSchema>\n          >\n        >;\n        /**\n         * The input, output and issue type.\n         *\n         * @internal\n         */\n        readonly '~types'?:\n          | {\n              readonly input: InferObjectInput<\n                RequiredEntries<TEntries, TKeys, TMessage>\n              > & {\n                [key: string]: unknown;\n              };\n              readonly output: InferObjectOutput<\n                RequiredEntries<TEntries, TKeys, TMessage>\n              > & {\n                [key: string]: unknown;\n              };\n              readonly issue: NonOptionalIssue | InferIssue<TSchema>;\n            }\n          | undefined;\n      }\n    : TSchema extends ObjectWithRestSchemaAsync<\n          infer TEntries,\n          infer TRest,\n          ErrorMessage<ObjectWithRestIssue> | undefined\n        >\n      ? Omit<TSchema, 'entries' | '~standard' | '~run' | '~types'> & {\n          /**\n           * The object entries.\n           */\n          readonly entries: RequiredEntries<TEntries, TKeys, TMessage>;\n          /**\n           * The Standard Schema properties.\n           *\n           * @internal\n           */\n          readonly '~standard': StandardProps<\n            InferObjectInput<RequiredEntries<TEntries, TKeys, TMessage>> & {\n              [key: string]: InferInput<TRest>;\n            },\n            InferObjectOutput<RequiredEntries<TEntries, TKeys, TMessage>> & {\n              [key: string]: InferOutput<TRest>;\n            }\n          >;\n          /**\n           * Parses unknown input.\n           *\n           * @param dataset The input dataset.\n           * @param config The configuration.\n           *\n           * @returns The output dataset.\n           *\n           * @internal\n           */\n          readonly '~run': (\n            dataset: UnknownDataset,\n            config: Config<BaseIssue<unknown>>\n          ) => Promise<\n            OutputDataset<\n              InferObjectOutput<RequiredEntries<TEntries, TKeys, TMessage>> & {\n                [key: string]: InferOutput<TRest>;\n              },\n              NonOptionalIssue | InferIssue<TSchema>\n            >\n          >;\n          /**\n           * The input, output and issue type.\n           *\n           * @internal\n           */\n          readonly '~types'?:\n            | {\n                readonly input: InferObjectInput<\n                  RequiredEntries<TEntries, TKeys, TMessage>\n                > & {\n                  [key: string]: InferInput<TRest>;\n                };\n                readonly output: InferObjectOutput<\n                  RequiredEntries<TEntries, TKeys, TMessage>\n                > & { [key: string]: InferOutput<TRest> };\n                readonly issue: NonOptionalIssue | InferIssue<TSchema>;\n              }\n            | undefined;\n        }\n      : never;\n\n/**\n * Creates a modified copy of an object schema that marks all entries as required.\n *\n * @param schema The schema to modify.\n *\n * @returns An object schema.\n */\n// @ts-expect-error FIXME: TypeScript incorrectly claims that the overload\n// signature is not compatible with the implementation signature\nexport function requiredAsync<const TSchema extends Schema>(\n  schema: TSchema\n): SchemaWithRequiredAsync<TSchema, undefined, undefined>;\n\n/**\n * Creates a modified copy of an object schema that marks all entries as required.\n *\n * @param schema The schema to modify.\n * @param message The error message.\n *\n * @returns An object schema.\n */\nexport function requiredAsync<\n  const TSchema extends Schema,\n  const TMessage extends ErrorMessage<NonOptionalIssue> | undefined,\n>(\n  schema: TSchema,\n  message: TMessage\n): SchemaWithRequiredAsync<TSchema, undefined, TMessage>;\n\n/**\n * Creates a modified copy of an object schema that marks the selected entries\n * as required.\n *\n * @param schema The schema to modify.\n * @param keys The selected entries.\n *\n * @returns An object schema.\n */\nexport function requiredAsync<\n  const TSchema extends Schema,\n  const TKeys extends ObjectKeys<TSchema>,\n>(\n  schema: TSchema,\n  keys: TKeys\n): SchemaWithRequiredAsync<TSchema, TKeys, undefined>;\n\n/**\n * Creates a modified copy of an object schema that marks the selected entries\n * as required.\n *\n * @param schema The schema to modify.\n * @param keys The selected entries.\n * @param message The error message.\n *\n * @returns An object schema.\n */\nexport function requiredAsync<\n  const TSchema extends Schema,\n  const TKeys extends ObjectKeys<TSchema>,\n  const TMessage extends ErrorMessage<NonOptionalIssue> | undefined,\n>(\n  schema: TSchema,\n  keys: TKeys,\n  message: TMessage\n): SchemaWithRequiredAsync<TSchema, TKeys, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function requiredAsync(\n  schema: Schema,\n  arg2?: ErrorMessage<NonOptionalIssue> | ObjectKeys<Schema>,\n  arg3?: ErrorMessage<NonOptionalIssue>\n): SchemaWithRequiredAsync<\n  Schema,\n  ObjectKeys<Schema> | undefined,\n  ErrorMessage<NonOptionalIssue> | undefined\n> {\n  // Get keys and message from arguments\n  const keys = Array.isArray(arg2) ? arg2 : undefined;\n  const message = (Array.isArray(arg2) ? arg3 : arg2) as\n    | ErrorMessage<NonOptionalIssue>\n    | undefined;\n\n  // Create modified object entries\n  const entries: RequiredEntries<\n    ObjectEntriesAsync,\n    ObjectKeys<Schema>,\n    ErrorMessage<NonOptionalIssue> | undefined\n  > = {};\n  for (const key in schema.entries) {\n    // @ts-expect-error\n    entries[key] =\n      !keys || keys.includes(key)\n        ? nonOptionalAsync(schema.entries[key], message)\n        : schema.entries[key];\n  }\n\n  // Return modified copy of schema\n  return {\n    ...schema,\n    entries,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/methods/safeParse/index.ts",
    "content": "export * from './safeParse.ts';\nexport * from './safeParseAsync.ts';\nexport * from './types.ts';\n"
  },
  {
    "path": "library/src/methods/safeParse/safeParse.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport { transform } from '../../actions/index.ts';\nimport { object, string } from '../../schemas/index.ts';\nimport { pipe } from '../pipe/pipe.ts';\nimport { safeParse } from './safeParse.ts';\nimport type { SafeParseResult } from './types.ts';\n\ndescribe('safeParse', () => {\n  test('should return safe parse result', () => {\n    const schema = object({\n      key: pipe(\n        string(),\n        transform((input) => input.length)\n      ),\n    });\n    expectTypeOf(safeParse(schema, { key: 'foo' })).toEqualTypeOf<\n      SafeParseResult<typeof schema>\n    >();\n  });\n});\n"
  },
  {
    "path": "library/src/methods/safeParse/safeParse.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { minLength, transform } from '../../actions/index.ts';\nimport { object, string } from '../../schemas/index.ts';\nimport { pipe } from '../pipe/index.ts';\nimport { safeParse } from './safeParse.ts';\n\ndescribe('safeParse', () => {\n  test('should return successful output', () => {\n    expect(\n      safeParse(\n        object({\n          key: pipe(\n            string(),\n            minLength(5),\n            transform((input) => input.length)\n          ),\n        }),\n        { key: 'foobar' }\n      )\n    ).toStrictEqual({\n      typed: true,\n      success: true,\n      output: { key: 6 },\n      issues: undefined,\n    });\n  });\n\n  test('should return typed output with issues', () => {\n    expect(\n      safeParse(object({ key: pipe(string(), minLength(5)) }), { key: 'foo' })\n    ).toStrictEqual({\n      typed: true,\n      success: false,\n      output: { key: 'foo' },\n      issues: [\n        {\n          kind: 'validation',\n          type: 'min_length',\n          input: 'foo',\n          expected: '>=5',\n          received: '3',\n          message: 'Invalid length: Expected >=5 but received 3',\n          requirement: 5,\n          path: [\n            {\n              type: 'object',\n              origin: 'value',\n              input: { key: 'foo' },\n              key: 'key',\n              value: 'foo',\n            },\n          ],\n          issues: undefined,\n          lang: undefined,\n          abortEarly: undefined,\n          abortPipeEarly: undefined,\n        },\n      ],\n    });\n  });\n\n  test('should return untyped output with issues', () => {\n    expect(safeParse(object({ key: string() }), { key: 123 })).toStrictEqual({\n      typed: false,\n      success: false,\n      output: { key: 123 },\n      issues: [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: 123,\n          expected: 'string',\n          received: '123',\n          message: 'Invalid type: Expected string but received 123',\n          requirement: undefined,\n          path: [\n            {\n              type: 'object',\n              origin: 'value',\n              input: { key: 123 },\n              key: 'key',\n              value: 123,\n            },\n          ],\n          issues: undefined,\n          lang: undefined,\n          abortEarly: undefined,\n          abortPipeEarly: undefined,\n        },\n      ],\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/safeParse/safeParse.ts",
    "content": "import { getGlobalConfig } from '../../storages/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  Config,\n  InferIssue,\n} from '../../types/index.ts';\nimport type { SafeParseResult } from './types.ts';\n\n/**\n * Parses an unknown input based on a schema.\n *\n * @param schema The schema to be used.\n * @param input The input to be parsed.\n * @param config The parse configuration.\n *\n * @returns The parse result.\n */\n// @__NO_SIDE_EFFECTS__\nexport function safeParse<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n>(\n  schema: TSchema,\n  input: unknown,\n  config?: Config<InferIssue<TSchema>>\n): SafeParseResult<TSchema> {\n  const dataset = schema['~run']({ value: input }, getGlobalConfig(config));\n  return {\n    typed: dataset.typed,\n    success: !dataset.issues,\n    output: dataset.value,\n    issues: dataset.issues,\n  } as SafeParseResult<TSchema>;\n}\n"
  },
  {
    "path": "library/src/methods/safeParse/safeParseAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport { transform } from '../../actions/index.ts';\nimport { object, string } from '../../schemas/index.ts';\nimport { pipe } from '../pipe/pipe.ts';\nimport { safeParseAsync } from './safeParseAsync.ts';\nimport type { SafeParseResult } from './types.ts';\n\ndescribe('safeParseAsync', () => {\n  test('should return safe parse result', () => {\n    const schema = object({\n      key: pipe(\n        string(),\n        transform((input) => input.length)\n      ),\n    });\n    expectTypeOf(safeParseAsync(schema, { key: 'foo' })).toEqualTypeOf<\n      Promise<SafeParseResult<typeof schema>>\n    >();\n  });\n});\n"
  },
  {
    "path": "library/src/methods/safeParse/safeParseAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { minLength, transform } from '../../actions/index.ts';\nimport { objectAsync, string } from '../../schemas/index.ts';\nimport { pipe } from '../pipe/index.ts';\nimport { safeParseAsync } from './safeParseAsync.ts';\n\ndescribe('safeParseAsync', () => {\n  test('should return successful output', async () => {\n    expect(\n      await safeParseAsync(\n        objectAsync({\n          key: pipe(\n            string(),\n            minLength(5),\n            transform((input) => input.length)\n          ),\n        }),\n        { key: 'foobar' }\n      )\n    ).toStrictEqual({\n      typed: true,\n      success: true,\n      output: { key: 6 },\n      issues: undefined,\n    });\n  });\n\n  test('should return typed output with issues', async () => {\n    expect(\n      await safeParseAsync(objectAsync({ key: pipe(string(), minLength(5)) }), {\n        key: 'foo',\n      })\n    ).toStrictEqual({\n      typed: true,\n      success: false,\n      output: { key: 'foo' },\n      issues: [\n        {\n          kind: 'validation',\n          type: 'min_length',\n          input: 'foo',\n          expected: '>=5',\n          received: '3',\n          message: 'Invalid length: Expected >=5 but received 3',\n          requirement: 5,\n          path: [\n            {\n              type: 'object',\n              origin: 'value',\n              input: { key: 'foo' },\n              key: 'key',\n              value: 'foo',\n            },\n          ],\n          issues: undefined,\n          lang: undefined,\n          abortEarly: undefined,\n          abortPipeEarly: undefined,\n        },\n      ],\n    });\n  });\n\n  test('should return untyped output with issues', async () => {\n    expect(\n      await safeParseAsync(objectAsync({ key: string() }), { key: 123 })\n    ).toStrictEqual({\n      typed: false,\n      success: false,\n      output: { key: 123 },\n      issues: [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: 123,\n          expected: 'string',\n          received: '123',\n          message: 'Invalid type: Expected string but received 123',\n          requirement: undefined,\n          path: [\n            {\n              type: 'object',\n              origin: 'value',\n              input: { key: 123 },\n              key: 'key',\n              value: 123,\n            },\n          ],\n          issues: undefined,\n          lang: undefined,\n          abortEarly: undefined,\n          abortPipeEarly: undefined,\n        },\n      ],\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/safeParse/safeParseAsync.ts",
    "content": "import { getGlobalConfig } from '../../storages/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  Config,\n  InferIssue,\n} from '../../types/index.ts';\nimport type { SafeParseResult } from './types.ts';\n\n/**\n * Parses an unknown input based on a schema.\n *\n * @param schema The schema to be used.\n * @param input The input to be parsed.\n * @param config The parse configuration.\n *\n * @returns The parse result.\n */\n// @__NO_SIDE_EFFECTS__\nexport async function safeParseAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(\n  schema: TSchema,\n  input: unknown,\n  config?: Config<InferIssue<TSchema>>\n): Promise<SafeParseResult<TSchema>> {\n  const dataset = await schema['~run'](\n    { value: input },\n    getGlobalConfig(config)\n  );\n  return {\n    typed: dataset.typed,\n    success: !dataset.issues,\n    output: dataset.value,\n    issues: dataset.issues,\n  } as SafeParseResult<TSchema>;\n}\n"
  },
  {
    "path": "library/src/methods/safeParse/types.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  InferIssue,\n  InferOutput,\n} from '../../types/index.ts';\n\n/**\n * Safe parse result type.\n */\nexport type SafeParseResult<\n  TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n> =\n  | {\n      /**\n       * Whether is's typed.\n       */\n      readonly typed: true;\n      /**\n       * Whether it's successful.\n       */\n      readonly success: true;\n      /**\n       * The output value.\n       */\n      readonly output: InferOutput<TSchema>;\n      /**\n       * The issues, if any.\n       */\n      readonly issues: undefined;\n    }\n  | {\n      readonly typed: true;\n      readonly success: false;\n      readonly output: InferOutput<TSchema>;\n      readonly issues: [InferIssue<TSchema>, ...InferIssue<TSchema>[]];\n    }\n  | {\n      readonly typed: false;\n      readonly success: false;\n      readonly output: unknown;\n      readonly issues: [InferIssue<TSchema>, ...InferIssue<TSchema>[]];\n    };\n"
  },
  {
    "path": "library/src/methods/safeParser/index.ts",
    "content": "export * from './safeParser.ts';\nexport * from './safeParserAsync.ts';\n"
  },
  {
    "path": "library/src/methods/safeParser/safeParser.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport { transform } from '../../actions/index.ts';\nimport { object, string } from '../../schemas/index.ts';\nimport type { Config, InferIssue } from '../../types/index.ts';\nimport { pipe } from '../pipe/pipe.ts';\nimport type { SafeParseResult } from '../safeParse/index.ts';\nimport { type SafeParser, safeParser } from './safeParser.ts';\n\ndescribe('safeParser', () => {\n  describe('should return function object', () => {\n    const schema = object({\n      key: pipe(\n        string(),\n        transform((input) => input.length)\n      ),\n    });\n    type Schema = typeof schema;\n\n    test('without config', () => {\n      expectTypeOf(safeParser(schema)).toEqualTypeOf<\n        SafeParser<Schema, undefined>\n      >();\n      expectTypeOf(safeParser(schema, undefined)).toEqualTypeOf<\n        SafeParser<Schema, undefined>\n      >();\n    });\n\n    test('with config', () => {\n      const config: Config<InferIssue<Schema>> = {\n        abortEarly: true,\n      };\n      expectTypeOf(safeParser(schema, config)).toEqualTypeOf<\n        SafeParser<Schema, typeof config>\n      >();\n    });\n  });\n\n  test('should return safe parse result', () => {\n    const schema = object({\n      key: pipe(\n        string(),\n        transform((input) => input.length)\n      ),\n    });\n    expectTypeOf(safeParser(schema)({ key: 'foo' })).toEqualTypeOf<\n      SafeParseResult<typeof schema>\n    >();\n  });\n});\n"
  },
  {
    "path": "library/src/methods/safeParser/safeParser.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { minLength, transform } from '../../actions/index.ts';\nimport { object, string } from '../../schemas/index.ts';\nimport type { Config, InferIssue } from '../../types/index.ts';\nimport { pipe } from '../pipe/index.ts';\nimport { safeParser } from './safeParser.ts';\n\ndescribe('safeParser', () => {\n  describe('should return function object', () => {\n    const schema = object({\n      key: pipe(\n        string(),\n        transform((input) => input.length)\n      ),\n    });\n\n    test('without config', () => {\n      const func1 = safeParser(schema);\n      expect(func1).toBeInstanceOf(Function);\n      expect(func1.schema).toBe(schema);\n      expect(func1.config).toBeUndefined();\n      const func2 = safeParser(schema, undefined);\n      expect(func2).toBeInstanceOf(Function);\n      expect(func2.schema).toBe(schema);\n      expect(func2.config).toBeUndefined();\n    });\n\n    test('with config', () => {\n      const config: Config<InferIssue<typeof schema>> = {\n        abortEarly: true,\n      };\n      const func = safeParser(schema, config);\n      expect(func).toBeInstanceOf(Function);\n      expect(func.schema).toBe(schema);\n      expect(func.config).toBe(config);\n    });\n  });\n\n  test('should return successful output', () => {\n    expect(\n      safeParser(\n        object({\n          key: pipe(\n            string(),\n            minLength(5),\n            transform((input) => input.length)\n          ),\n        })\n      )({ key: 'foobar' })\n    ).toStrictEqual({\n      typed: true,\n      success: true,\n      output: { key: 6 },\n      issues: undefined,\n    });\n  });\n\n  test('should return typed output with issues', () => {\n    expect(\n      safeParser(object({ key: pipe(string(), minLength(5)) }))({ key: 'foo' })\n    ).toStrictEqual({\n      typed: true,\n      success: false,\n      output: { key: 'foo' },\n      issues: [\n        {\n          kind: 'validation',\n          type: 'min_length',\n          input: 'foo',\n          expected: '>=5',\n          received: '3',\n          message: 'Invalid length: Expected >=5 but received 3',\n          requirement: 5,\n          path: [\n            {\n              type: 'object',\n              origin: 'value',\n              input: { key: 'foo' },\n              key: 'key',\n              value: 'foo',\n            },\n          ],\n          issues: undefined,\n          lang: undefined,\n          abortEarly: undefined,\n          abortPipeEarly: undefined,\n        },\n      ],\n    });\n  });\n\n  test('should return untyped output with issues', () => {\n    expect(safeParser(object({ key: string() }))({ key: 123 })).toStrictEqual({\n      typed: false,\n      success: false,\n      output: { key: 123 },\n      issues: [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: 123,\n          expected: 'string',\n          received: '123',\n          message: 'Invalid type: Expected string but received 123',\n          requirement: undefined,\n          path: [\n            {\n              type: 'object',\n              origin: 'value',\n              input: { key: 123 },\n              key: 'key',\n              value: 123,\n            },\n          ],\n          issues: undefined,\n          lang: undefined,\n          abortEarly: undefined,\n          abortPipeEarly: undefined,\n        },\n      ],\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/safeParser/safeParser.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  Config,\n  InferIssue,\n} from '../../types/index.ts';\nimport { safeParse, type SafeParseResult } from '../safeParse/index.ts';\n\n/**\n * The safe parser interface.\n */\nexport interface SafeParser<\n  TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  TConfig extends Config<InferIssue<TSchema>> | undefined,\n> {\n  /**\n   * Parses an unknown input based on the schema.\n   */\n  (input: unknown): SafeParseResult<TSchema>;\n  /**\n   * The schema to be used.\n   */\n  readonly schema: TSchema;\n  /**\n   * The parser configuration.\n   */\n  readonly config: TConfig;\n}\n\n/**\n * Returns a function that parses an unknown input based on a schema.\n *\n * @param schema The schema to be used.\n *\n * @returns The parser function.\n */\nexport function safeParser<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n>(schema: TSchema): SafeParser<TSchema, undefined>;\n\n/**\n * Returns a function that parses an unknown input based on a schema.\n *\n * @param schema The schema to be used.\n * @param config The parser configuration.\n *\n * @returns The parser function.\n */\nexport function safeParser<\n  const TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TConfig extends Config<InferIssue<TSchema>> | undefined,\n>(schema: TSchema, config: TConfig): SafeParser<TSchema, TConfig>;\n\n// @__NO_SIDE_EFFECTS__\nexport function safeParser(\n  schema: BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  config?: Config<InferIssue<BaseSchema<unknown, unknown, BaseIssue<unknown>>>>\n): SafeParser<\n  BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  Config<BaseIssue<unknown>> | undefined\n> {\n  const func: SafeParser<\n    BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n    Config<BaseIssue<unknown>> | undefined\n  > = (input: unknown) => safeParse(schema, input, config);\n  // @ts-expect-error\n  func.schema = schema;\n  // @ts-expect-error\n  func.config = config;\n  return func;\n}\n"
  },
  {
    "path": "library/src/methods/safeParser/safeParserAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport { transform } from '../../actions/index.ts';\nimport { object, string } from '../../schemas/index.ts';\nimport type { Config, InferIssue } from '../../types/index.ts';\nimport { pipe } from '../pipe/pipe.ts';\nimport type { SafeParseResult } from '../safeParse/index.ts';\nimport { type SafeParserAsync, safeParserAsync } from './safeParserAsync.ts';\n\ndescribe('safeParserAsync', () => {\n  describe('should return function object', () => {\n    const schema = object({\n      key: pipe(\n        string(),\n        transform((input) => input.length)\n      ),\n    });\n    type Schema = typeof schema;\n\n    test('without config', () => {\n      expectTypeOf(safeParserAsync(schema)).toEqualTypeOf<\n        SafeParserAsync<Schema, undefined>\n      >();\n      expectTypeOf(safeParserAsync(schema, undefined)).toEqualTypeOf<\n        SafeParserAsync<Schema, undefined>\n      >();\n    });\n\n    test('with config', () => {\n      const config: Config<InferIssue<Schema>> = {\n        abortEarly: true,\n      };\n      expectTypeOf(safeParserAsync(schema, config)).toEqualTypeOf<\n        SafeParserAsync<Schema, typeof config>\n      >();\n    });\n  });\n\n  test('should return safe parse result', () => {\n    const schema = object({\n      key: pipe(\n        string(),\n        transform((input) => input.length)\n      ),\n    });\n    expectTypeOf(safeParserAsync(schema)({ key: 'foo' })).toEqualTypeOf<\n      Promise<SafeParseResult<typeof schema>>\n    >();\n  });\n});\n"
  },
  {
    "path": "library/src/methods/safeParser/safeParserAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { minLength, transform } from '../../actions/index.ts';\nimport { objectAsync, string } from '../../schemas/index.ts';\nimport type { Config, InferIssue } from '../../types/index.ts';\nimport { pipe } from '../pipe/index.ts';\nimport { safeParserAsync } from './safeParserAsync.ts';\n\ndescribe('safeParserAsync', () => {\n  describe('should return function object', () => {\n    const schema = objectAsync({\n      key: pipe(\n        string(),\n        transform((input) => input.length)\n      ),\n    });\n\n    test('without config', () => {\n      const func1 = safeParserAsync(schema);\n      expect(func1).toBeInstanceOf(Function);\n      expect(func1.schema).toBe(schema);\n      expect(func1.config).toBeUndefined();\n      const func2 = safeParserAsync(schema, undefined);\n      expect(func2).toBeInstanceOf(Function);\n      expect(func2.schema).toBe(schema);\n      expect(func2.config).toBeUndefined();\n    });\n\n    test('with config', () => {\n      const config: Config<InferIssue<typeof schema>> = {\n        abortEarly: true,\n      };\n      const func = safeParserAsync(schema, config);\n      expect(func).toBeInstanceOf(Function);\n      expect(func.schema).toBe(schema);\n      expect(func.config).toBe(config);\n    });\n  });\n\n  test('should return successful output', async () => {\n    expect(\n      await safeParserAsync(\n        objectAsync({\n          key: pipe(\n            string(),\n            minLength(5),\n            transform((input) => input.length)\n          ),\n        })\n      )({ key: 'foobar' })\n    ).toStrictEqual({\n      typed: true,\n      success: true,\n      output: { key: 6 },\n      issues: undefined,\n    });\n  });\n\n  test('should return typed output with issues', async () => {\n    expect(\n      await safeParserAsync(objectAsync({ key: pipe(string(), minLength(5)) }))(\n        {\n          key: 'foo',\n        }\n      )\n    ).toStrictEqual({\n      typed: true,\n      success: false,\n      output: { key: 'foo' },\n      issues: [\n        {\n          kind: 'validation',\n          type: 'min_length',\n          input: 'foo',\n          expected: '>=5',\n          received: '3',\n          message: 'Invalid length: Expected >=5 but received 3',\n          requirement: 5,\n          path: [\n            {\n              type: 'object',\n              origin: 'value',\n              input: { key: 'foo' },\n              key: 'key',\n              value: 'foo',\n            },\n          ],\n          issues: undefined,\n          lang: undefined,\n          abortEarly: undefined,\n          abortPipeEarly: undefined,\n        },\n      ],\n    });\n  });\n\n  test('should return untyped output with issues', async () => {\n    expect(\n      await safeParserAsync(objectAsync({ key: string() }))({ key: 123 })\n    ).toStrictEqual({\n      typed: false,\n      success: false,\n      output: { key: 123 },\n      issues: [\n        {\n          kind: 'schema',\n          type: 'string',\n          input: 123,\n          expected: 'string',\n          received: '123',\n          message: 'Invalid type: Expected string but received 123',\n          requirement: undefined,\n          path: [\n            {\n              type: 'object',\n              origin: 'value',\n              input: { key: 123 },\n              key: 'key',\n              value: 123,\n            },\n          ],\n          issues: undefined,\n          lang: undefined,\n          abortEarly: undefined,\n          abortPipeEarly: undefined,\n        },\n      ],\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/methods/safeParser/safeParserAsync.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  Config,\n  InferIssue,\n} from '../../types/index.ts';\nimport { safeParseAsync, type SafeParseResult } from '../safeParse/index.ts';\n\n/**\n * The safe parser async interface.\n */\nexport interface SafeParserAsync<\n  TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  TConfig extends Config<InferIssue<TSchema>> | undefined,\n> {\n  /**\n   * Parses an unknown input based on the schema.\n   */\n  (input: unknown): Promise<SafeParseResult<TSchema>>;\n  /**\n   * The schema to be used.\n   */\n  readonly schema: TSchema;\n  /**\n   * The parser configuration.\n   */\n  readonly config: TConfig;\n}\n\n/**\n * Returns a function that parses an unknown input based on a schema.\n *\n * @param schema The schema to be used.\n *\n * @returns The parser function.\n */\nexport function safeParserAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(schema: TSchema): SafeParserAsync<TSchema, undefined>;\n\n/**\n * Returns a function that parses an unknown input based on a schema.\n *\n * @param schema The schema to be used.\n * @param config The parser configuration.\n *\n * @returns The parser function.\n */\nexport function safeParserAsync<\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TConfig extends Config<InferIssue<TSchema>> | undefined,\n>(schema: TSchema, config: TConfig): SafeParserAsync<TSchema, TConfig>;\n\n// @__NO_SIDE_EFFECTS__\nexport function safeParserAsync(\n  schema:\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  config?: Config<\n    InferIssue<\n      | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n      | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n    >\n  >\n): SafeParserAsync<\n  | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n  | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  Config<BaseIssue<unknown>> | undefined\n> {\n  const func: SafeParserAsync<\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n    Config<BaseIssue<unknown>> | undefined\n  > = (input: unknown) => safeParseAsync(schema, input, config);\n  // @ts-expect-error\n  func.schema = schema;\n  // @ts-expect-error\n  func.config = config;\n  return func;\n}\n"
  },
  {
    "path": "library/src/methods/summarize/index.ts",
    "content": "export * from './summarize.ts';\n"
  },
  {
    "path": "library/src/methods/summarize/summarize.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { IncludesIssue, MinLengthIssue } from '../../actions/index.ts';\nimport type { NumberIssue, StringIssue } from '../../schemas/index.ts';\nimport type { ArrayPathItem, ObjectPathItem } from '../../types/issue.ts';\nimport { summarize } from './summarize.ts';\n\ndescribe('summarize', () => {\n  const commonIssueInfo = {\n    abortEarly: undefined,\n    abortPipeEarly: undefined,\n    issues: undefined,\n    lang: undefined,\n  };\n\n  test('should return single error without path', () => {\n    const rootIssues1: [StringIssue] = [\n      {\n        ...commonIssueInfo,\n        kind: 'schema',\n        type: 'string',\n        input: 123,\n        expected: 'string',\n        received: '123',\n        message: 'Invalid type: Expected string but received 123',\n        path: undefined,\n      },\n    ];\n    expect(summarize(rootIssues1)).toBe(\n      '× Invalid type: Expected string but received 123'\n    );\n  });\n\n  test('should return multiple errors without path', () => {\n    const rootIssues2: [\n      IncludesIssue<string, 'foo'>,\n      MinLengthIssue<string, 5>,\n    ] = [\n      {\n        ...commonIssueInfo,\n        kind: 'validation',\n        type: 'includes',\n        input: '123',\n        expected: '\"foo\"',\n        received: '!\"foo\"',\n        message: 'Invalid content: Expected \"foo\" but received !\"foo\"',\n        requirement: 'foo',\n        path: undefined,\n      },\n      {\n        ...commonIssueInfo,\n        kind: 'validation',\n        type: 'min_length',\n        input: '123',\n        expected: '>=5',\n        received: '3',\n        message: 'Invalid length: Expected >=5 but received 3',\n        requirement: 5,\n        path: undefined,\n      },\n    ];\n    expect(summarize(rootIssues2)).toBe(\n      '× Invalid content: Expected \"foo\" but received !\"foo\"\\n' +\n        '× Invalid length: Expected >=5 but received 3'\n    );\n  });\n\n  test('should return single error with path', () => {\n    const nestedIssue: NumberIssue = {\n      ...commonIssueInfo,\n      kind: 'schema',\n      type: 'number',\n      input: '1',\n      expected: 'number',\n      received: '\"1\"',\n      message: 'Invalid type: Expected number but received \"1\"',\n      path: [\n        {\n          type: 'array',\n          origin: 'value',\n          input: ['1'],\n          key: 0,\n          value: '1',\n        } satisfies ArrayPathItem,\n      ],\n    };\n    expect(summarize([nestedIssue])).toBe(\n      '× Invalid type: Expected number but received \"1\"\\n  → at 0'\n    );\n  });\n\n  test('should return multiple errors with path', () => {\n    const input = {\n      key1: 'bar',\n      key2: '21',\n    };\n    const nestedIssues: [\n      IncludesIssue<string, 'foo'>,\n      MinLengthIssue<string, 5>,\n      NumberIssue,\n    ] = [\n      {\n        ...commonIssueInfo,\n        kind: 'validation',\n        type: 'includes',\n        input: '123',\n        expected: '\"foo\"',\n        received: '!\"foo\"',\n        message: 'Invalid content: Expected \"foo\" but received !\"foo\"',\n        requirement: 'foo',\n        path: [\n          {\n            type: 'object',\n            origin: 'value',\n            input,\n            key: 'key1',\n            value: input.key1,\n          } satisfies ObjectPathItem,\n        ],\n      },\n      {\n        ...commonIssueInfo,\n        kind: 'validation',\n        type: 'min_length',\n        input: '123',\n        expected: '>=5',\n        received: '3',\n        message: 'Invalid length: Expected >=5 but received 3',\n        requirement: 5,\n        path: [\n          {\n            type: 'object',\n            origin: 'value',\n            input,\n            key: 'key1',\n            value: input.key1,\n          } satisfies ObjectPathItem,\n        ],\n      },\n      {\n        expected: 'number',\n        input: '21',\n        kind: 'schema',\n        message: 'Invalid type: Expected number but received \"21\"',\n        path: [\n          {\n            type: 'object',\n            origin: 'value',\n            input,\n            key: 'key2',\n            value: input.key2,\n          } satisfies ObjectPathItem,\n        ],\n        received: '\"21\"',\n        type: 'number',\n      },\n    ];\n    expect(summarize(nestedIssues)).toBe(\n      '× Invalid content: Expected \"foo\" but received !\"foo\"\\n' +\n        '  → at key1\\n' +\n        '× Invalid length: Expected >=5 but received 3\\n' +\n        '  → at key1\\n' +\n        '× Invalid type: Expected number but received \"21\"\\n' +\n        '  → at key2'\n    );\n  });\n\n  test('should return single error with dot path', () => {\n    const nestedIssue: NumberIssue = {\n      ...commonIssueInfo,\n      kind: 'schema',\n      type: 'number',\n      input: 'foo',\n      expected: 'number',\n      received: '\"foo\"',\n      message: 'Invalid type: Expected number but received \"foo\"',\n      path: [\n        {\n          type: 'object',\n          origin: 'value',\n          input: { dot: [{ path: 'foo' }] },\n          key: 'dot',\n          value: [{ path: 'foo' }],\n        } satisfies ObjectPathItem,\n        {\n          type: 'array',\n          origin: 'value',\n          input: [{ path: 'foo' }],\n          key: 0,\n          value: { path: 'foo' },\n        } satisfies ArrayPathItem,\n        {\n          type: 'object',\n          origin: 'value',\n          input: { path: 'foo' },\n          key: 'path',\n          value: 'foo',\n        } satisfies ObjectPathItem,\n      ],\n    };\n    expect(summarize([nestedIssue])).toBe(\n      '× Invalid type: Expected number but received \"foo\"\\n' +\n        '  → at dot.0.path'\n    );\n  });\n});\n"
  },
  {
    "path": "library/src/methods/summarize/summarize.ts",
    "content": "import type { BaseIssue } from '../../types/index.ts';\nimport { getDotPath } from '../../utils/index.ts';\n\n/**\n * Summarize the error messages of issues in a pretty-printable multi-line string.\n *\n * @param issues The list of issues.\n *\n * @returns A summary of the issues.\n *\n * @beta\n */\n// @__NO_SIDE_EFFECTS__\nexport function summarize(\n  issues: [BaseIssue<unknown>, ...BaseIssue<unknown>[]]\n): string {\n  // Create variable to store summary\n  let summary = '';\n\n  // Add message of each issue to summary\n  for (const issue of issues) {\n    // Add newline if summary is not empty\n    if (summary) {\n      summary += '\\n';\n    }\n\n    // Add message to summary\n    summary += `× ${issue.message}`;\n\n    // Get dot path from issue\n    const dotPath = getDotPath(issue);\n\n    // If dot path is available, add it to summary\n    if (dotPath) {\n      summary += `\\n  → at ${dotPath}`;\n    }\n  }\n\n  // Return summary\n  return summary;\n}\n"
  },
  {
    "path": "library/src/methods/unwrap/index.ts",
    "content": "export * from './unwrap.ts';\n"
  },
  {
    "path": "library/src/methods/unwrap/unwrap.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport {\n  exactOptional,\n  exactOptionalAsync,\n  nonNullable,\n  nonNullableAsync,\n  nonNullish,\n  nonNullishAsync,\n  nonOptional,\n  nonOptionalAsync,\n  nullable,\n  nullableAsync,\n  nullish,\n  nullishAsync,\n  optional,\n  optionalAsync,\n  string,\n  undefinedable,\n  undefinedableAsync,\n} from '../../schemas/index.ts';\nimport { fallback, fallbackAsync } from '../fallback/index.ts';\nimport { pipe, pipeAsync } from '../pipe/index.ts';\nimport { unwrap } from './unwrap.ts';\n\ndescribe('unwrap', () => {\n  const wrapped = string();\n  type Wrapped = typeof wrapped;\n\n  test('should unwrap exactOptional', () => {\n    expectTypeOf(unwrap(exactOptional(wrapped))).toEqualTypeOf<Wrapped>();\n  });\n\n  test('should unwrap exactOptionalAsync', () => {\n    expectTypeOf(unwrap(exactOptionalAsync(wrapped))).toEqualTypeOf<Wrapped>();\n  });\n\n  test('should unwrap nonNullable', () => {\n    expectTypeOf(unwrap(nonNullable(wrapped))).toEqualTypeOf<Wrapped>();\n  });\n\n  test('should unwrap nonNullableAsync', () => {\n    expectTypeOf(unwrap(nonNullableAsync(wrapped))).toEqualTypeOf<Wrapped>();\n  });\n\n  test('should unwrap nonNullish', () => {\n    expectTypeOf(unwrap(nonNullish(wrapped))).toEqualTypeOf<Wrapped>();\n  });\n\n  test('should unwrap nonNullishAsync', () => {\n    expectTypeOf(unwrap(nonNullishAsync(wrapped))).toEqualTypeOf<Wrapped>();\n  });\n\n  test('should unwrap nonOptional', () => {\n    expectTypeOf(unwrap(nonOptional(wrapped))).toEqualTypeOf<Wrapped>();\n  });\n\n  test('should unwrap nonOptionalAsync', () => {\n    expectTypeOf(unwrap(nonOptionalAsync(wrapped))).toEqualTypeOf<Wrapped>();\n  });\n\n  test('should unwrap nullable', () => {\n    expectTypeOf(unwrap(nullable(wrapped))).toEqualTypeOf<Wrapped>();\n  });\n\n  test('should unwrap nullableAsync', () => {\n    expectTypeOf(unwrap(nullableAsync(wrapped))).toEqualTypeOf<Wrapped>();\n  });\n\n  test('should unwrap nullish', () => {\n    expectTypeOf(unwrap(nullish(wrapped))).toEqualTypeOf<Wrapped>();\n  });\n\n  test('should unwrap nullishAsync', () => {\n    expectTypeOf(unwrap(nullishAsync(wrapped))).toEqualTypeOf<Wrapped>();\n  });\n\n  test('should unwrap optional', () => {\n    expectTypeOf(unwrap(optional(wrapped))).toEqualTypeOf<Wrapped>();\n  });\n\n  test('should unwrap optionalAsync', () => {\n    expectTypeOf(unwrap(optionalAsync(wrapped))).toEqualTypeOf<Wrapped>();\n  });\n\n  test('should unwrap undefinedable', () => {\n    expectTypeOf(unwrap(undefinedable(wrapped))).toEqualTypeOf<Wrapped>();\n  });\n\n  test('should unwrap undefinedableAsync', () => {\n    expectTypeOf(unwrap(undefinedableAsync(wrapped))).toEqualTypeOf<Wrapped>();\n  });\n\n  test('should unwrap schema with pipe', () => {\n    expectTypeOf(unwrap(pipe(optional(wrapped)))).toEqualTypeOf<Wrapped>();\n    expectTypeOf(unwrap(pipeAsync(optional(wrapped)))).toEqualTypeOf<Wrapped>();\n    expectTypeOf(\n      unwrap(pipeAsync(optionalAsync(wrapped)))\n    ).toEqualTypeOf<Wrapped>();\n  });\n\n  test('should unwrap schema with fallback', () => {\n    expectTypeOf(\n      unwrap(fallback(optional(wrapped), 'foo'))\n    ).toEqualTypeOf<Wrapped>();\n    expectTypeOf(\n      unwrap(fallbackAsync(optional(wrapped), 'foo'))\n    ).toEqualTypeOf<Wrapped>();\n    expectTypeOf(\n      unwrap(fallbackAsync(optionalAsync(wrapped), 'foo'))\n    ).toEqualTypeOf<Wrapped>();\n  });\n});\n"
  },
  {
    "path": "library/src/methods/unwrap/unwrap.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  exactOptional,\n  exactOptionalAsync,\n  nonNullable,\n  nonNullableAsync,\n  nonNullish,\n  nonNullishAsync,\n  nonOptional,\n  nonOptionalAsync,\n  nullable,\n  nullableAsync,\n  nullish,\n  nullishAsync,\n  optional,\n  optionalAsync,\n  string,\n  undefinedable,\n  undefinedableAsync,\n} from '../../schemas/index.ts';\nimport { fallback, fallbackAsync } from '../fallback/index.ts';\nimport { pipe, pipeAsync } from '../pipe/index.ts';\nimport { unwrap } from './unwrap.ts';\n\ndescribe('unwrap', () => {\n  const wrapped = string();\n\n  test('should unwrap exactOptional', () => {\n    expect(unwrap(exactOptional(wrapped))).toBe(wrapped);\n  });\n\n  test('should unwrap exactOptionalAsync', () => {\n    expect(unwrap(exactOptionalAsync(wrapped))).toBe(wrapped);\n  });\n\n  test('should unwrap nonNullable', () => {\n    expect(unwrap(nonNullable(wrapped))).toBe(wrapped);\n  });\n\n  test('should unwrap nonNullableAsync', () => {\n    expect(unwrap(nonNullableAsync(wrapped))).toBe(wrapped);\n  });\n\n  test('should unwrap nonNullish', () => {\n    expect(unwrap(nonNullish(wrapped))).toBe(wrapped);\n  });\n\n  test('should unwrap nonNullishAsync', () => {\n    expect(unwrap(nonNullishAsync(wrapped))).toBe(wrapped);\n  });\n\n  test('should unwrap nonOptional', () => {\n    expect(unwrap(nonOptional(wrapped))).toBe(wrapped);\n  });\n\n  test('should unwrap nonOptionalAsync', () => {\n    expect(unwrap(nonOptionalAsync(wrapped))).toBe(wrapped);\n  });\n\n  test('should unwrap nullable', () => {\n    expect(unwrap(nullable(wrapped))).toBe(wrapped);\n  });\n\n  test('should unwrap nullableAsync', () => {\n    expect(unwrap(nullableAsync(wrapped))).toBe(wrapped);\n  });\n\n  test('should unwrap nullish', () => {\n    expect(unwrap(nullish(wrapped))).toBe(wrapped);\n  });\n\n  test('should unwrap nullishAsync', () => {\n    expect(unwrap(nullishAsync(wrapped))).toBe(wrapped);\n  });\n\n  test('should unwrap optional', () => {\n    expect(unwrap(optional(wrapped))).toBe(wrapped);\n  });\n\n  test('should unwrap optionalAsync', () => {\n    expect(unwrap(optionalAsync(wrapped))).toBe(wrapped);\n  });\n\n  test('should unwrap undefinedable', () => {\n    expect(unwrap(undefinedable(wrapped))).toBe(wrapped);\n  });\n\n  test('should unwrap undefinedableAsync', () => {\n    expect(unwrap(undefinedableAsync(wrapped))).toBe(wrapped);\n  });\n\n  test('should unwrap schema with pipe', () => {\n    expect(unwrap(pipe(optional(wrapped)))).toBe(wrapped);\n    expect(unwrap(pipeAsync(optional(wrapped)))).toBe(wrapped);\n    expect(unwrap(pipeAsync(optionalAsync(wrapped)))).toBe(wrapped);\n  });\n\n  test('should unwrap schema with fallback', () => {\n    expect(unwrap(fallback(optional(wrapped), 'foo'))).toBe(wrapped);\n    expect(unwrap(fallbackAsync(optional(wrapped), 'foo'))).toBe(wrapped);\n    expect(unwrap(fallbackAsync(optionalAsync(wrapped), 'foo'))).toBe(wrapped);\n  });\n});\n"
  },
  {
    "path": "library/src/methods/unwrap/unwrap.ts",
    "content": "import type {\n  ExactOptionalSchema,\n  ExactOptionalSchemaAsync,\n  NonNullableIssue,\n  NonNullableSchema,\n  NonNullableSchemaAsync,\n  NonNullishIssue,\n  NonNullishSchema,\n  NonNullishSchemaAsync,\n  NonOptionalIssue,\n  NonOptionalSchema,\n  NonOptionalSchemaAsync,\n  NullableSchema,\n  NullableSchemaAsync,\n  NullishSchema,\n  NullishSchemaAsync,\n  OptionalSchema,\n  OptionalSchemaAsync,\n  UndefinedableSchema,\n  UndefinedableSchemaAsync,\n} from '../../schemas/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  ErrorMessage,\n} from '../../types/index.ts';\n\n/**\n * Unwraps the wrapped schema.\n *\n * @param schema The schema to be unwrapped.\n *\n * @returns The unwrapped schema.\n */\n// @__NO_SIDE_EFFECTS__\nexport function unwrap<\n  TSchema extends\n    | ExactOptionalSchema<\n        BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n        unknown\n      >\n    | ExactOptionalSchemaAsync<\n        | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n        | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n        unknown\n      >\n    | NonNullableSchema<\n        BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n        ErrorMessage<NonNullableIssue> | undefined\n      >\n    | NonNullableSchemaAsync<\n        | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n        | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n        ErrorMessage<NonNullableIssue> | undefined\n      >\n    | NonNullishSchema<\n        BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n        ErrorMessage<NonNullishIssue> | undefined\n      >\n    | NonNullishSchemaAsync<\n        | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n        | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n        ErrorMessage<NonNullishIssue> | undefined\n      >\n    | NonOptionalSchema<\n        BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n        ErrorMessage<NonOptionalIssue> | undefined\n      >\n    | NonOptionalSchemaAsync<\n        | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n        | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n        ErrorMessage<NonOptionalIssue> | undefined\n      >\n    | NullableSchema<BaseSchema<unknown, unknown, BaseIssue<unknown>>, unknown>\n    | NullableSchemaAsync<\n        | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n        | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n        unknown\n      >\n    | NullishSchema<BaseSchema<unknown, unknown, BaseIssue<unknown>>, unknown>\n    | NullishSchemaAsync<\n        | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n        | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n        unknown\n      >\n    | OptionalSchema<BaseSchema<unknown, unknown, BaseIssue<unknown>>, unknown>\n    | OptionalSchemaAsync<\n        | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n        | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n        unknown\n      >\n    | UndefinedableSchema<\n        BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n        unknown\n      >\n    | UndefinedableSchemaAsync<\n        | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n        | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n        unknown\n      >,\n>(schema: TSchema): TSchema['wrapped'] {\n  return schema.wrapped;\n}\n"
  },
  {
    "path": "library/src/regex.ts",
    "content": "/**\n * [Base64](https://en.wikipedia.org/wiki/Base64) regex.\n */\nexport const BASE64_REGEX: RegExp =\n  /^(?:[\\da-z+/]{4})*(?:[\\da-z+/]{2}==|[\\da-z+/]{3}=)?$/iu;\n\n/**\n * [BIC](https://en.wikipedia.org/wiki/ISO_9362) regex.\n */\nexport const BIC_REGEX: RegExp = /^[A-Z]{6}(?!00)[\\dA-Z]{2}(?:[\\dA-Z]{3})?$/u;\n\n/**\n * [Cuid2](https://github.com/paralleldrive/cuid2) regex.\n */\nexport const CUID2_REGEX: RegExp = /^[a-z][\\da-z]*$/u;\n\n/**\n * [Decimal](https://en.wikipedia.org/wiki/Decimal) regex.\n */\n// eslint-disable-next-line redos-detector/no-unsafe-regex -- false positive\nexport const DECIMAL_REGEX: RegExp = /^[+-]?(?:\\d*\\.)?\\d+$/u;\n\n/**\n * [Digits](https://en.wikipedia.org/wiki/Numerical_digit) regex.\n */\nexport const DIGITS_REGEX: RegExp = /^\\d+$/u;\n\n/**\n * [Domain name](https://en.wikipedia.org/wiki/Domain_name) regex.\n *\n * Hint: We decided against the `i` flag for better JSON Schema compatibility.\n * ASCII-only validation. Internationalized domain names (IDNs) are not\n * supported, including Punycode-encoded labels.\n */\nexport const DOMAIN_REGEX: RegExp =\n  /^(?=.{1,253}$)(?:(?![Xx][Nn]--)[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\\.)+[A-Za-z]{2,63}$/u;\n\n/**\n * [Email address](https://en.wikipedia.org/wiki/Email_address) regex.\n */\nexport const EMAIL_REGEX: RegExp =\n  /^[\\w+-]+(?:\\.[\\w+-]+)*@[\\da-z]+(?:[.-][\\da-z]+)*\\.[a-z]{2,}$/iu;\n\n/**\n * Emoji regex from [emoji-regex-xs](https://github.com/slevithan/emoji-regex-xs) v1.0.0 (MIT license).\n *\n * Hint: We decided against the newer `/^\\p{RGI_Emoji}+$/v` regex because it is\n * not supported in older runtimes and does not match all emoji.\n */\nexport const EMOJI_REGEX: RegExp =\n  // eslint-disable-next-line redos-detector/no-unsafe-regex -- false positives\n  /^(?:[\\u{1F1E6}-\\u{1F1FF}]{2}|\\u{1F3F4}[\\u{E0061}-\\u{E007A}]{2}[\\u{E0030}-\\u{E0039}\\u{E0061}-\\u{E007A}]{1,3}\\u{E007F}|(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|(?![\\p{Emoji_Modifier_Base}\\u{1F1E6}-\\u{1F1FF}])\\p{Emoji_Presentation})(?:\\u200D(?:\\p{Emoji}\\uFE0F\\u20E3?|\\p{Emoji_Modifier_Base}\\p{Emoji_Modifier}?|(?![\\p{Emoji_Modifier_Base}\\u{1F1E6}-\\u{1F1FF}])\\p{Emoji_Presentation}))*)+$/u;\n\n/**\n * [Hexadecimal](https://en.wikipedia.org/wiki/Hexadecimal) regex.\n *\n * Hint: We decided against the `i` flag for better JSON Schema compatibility.\n */\nexport const HEXADECIMAL_REGEX: RegExp = /^(?:0[hx])?[\\da-fA-F]+$/u;\n\n/**\n * [Hex color](https://en.wikipedia.org/wiki/Web_colors#Hex_triplet) regex.\n *\n * Hint: We decided against the `i` flag for better JSON Schema compatibility.\n */\nexport const HEX_COLOR_REGEX: RegExp =\n  /^#(?:[\\da-fA-F]{3,4}|[\\da-fA-F]{6}|[\\da-fA-F]{8})$/u;\n\n/**\n * [IMEI](https://en.wikipedia.org/wiki/International_Mobile_Equipment_Identity) regex.\n */\nexport const IMEI_REGEX: RegExp = /^\\d{15}$|^\\d{2}-\\d{6}-\\d{6}-\\d$/u;\n\n/**\n * [IPv4](https://en.wikipedia.org/wiki/IPv4) regex.\n */\nexport const IPV4_REGEX: RegExp =\n  // eslint-disable-next-line redos-detector/no-unsafe-regex -- false positive\n  /^(?:(?:[1-9]|1\\d|2[0-4])?\\d|25[0-5])(?:\\.(?:(?:[1-9]|1\\d|2[0-4])?\\d|25[0-5])){3}$/u;\n\n/**\n * [IPv6](https://en.wikipedia.org/wiki/IPv6) regex.\n */\nexport const IPV6_REGEX: RegExp =\n  /^(?:(?:[\\da-f]{1,4}:){7}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,7}:|(?:[\\da-f]{1,4}:){1,6}:[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,5}(?::[\\da-f]{1,4}){1,2}|(?:[\\da-f]{1,4}:){1,4}(?::[\\da-f]{1,4}){1,3}|(?:[\\da-f]{1,4}:){1,3}(?::[\\da-f]{1,4}){1,4}|(?:[\\da-f]{1,4}:){1,2}(?::[\\da-f]{1,4}){1,5}|[\\da-f]{1,4}:(?::[\\da-f]{1,4}){1,6}|:(?:(?::[\\da-f]{1,4}){1,7}|:)|fe80:(?::[\\da-f]{0,4}){0,4}%[\\da-z]+|::(?:f{4}(?::0{1,4})?:)?(?:(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)\\.){3}(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)|(?:[\\da-f]{1,4}:){1,4}:(?:(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)\\.){3}(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d))$/iu;\n\n/**\n * [IP](https://en.wikipedia.org/wiki/IP_address) regex.\n */\nexport const IP_REGEX: RegExp =\n  /^(?:(?:[1-9]|1\\d|2[0-4])?\\d|25[0-5])(?:\\.(?:(?:[1-9]|1\\d|2[0-4])?\\d|25[0-5])){3}$|^(?:(?:[\\da-f]{1,4}:){7}[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,7}:|(?:[\\da-f]{1,4}:){1,6}:[\\da-f]{1,4}|(?:[\\da-f]{1,4}:){1,5}(?::[\\da-f]{1,4}){1,2}|(?:[\\da-f]{1,4}:){1,4}(?::[\\da-f]{1,4}){1,3}|(?:[\\da-f]{1,4}:){1,3}(?::[\\da-f]{1,4}){1,4}|(?:[\\da-f]{1,4}:){1,2}(?::[\\da-f]{1,4}){1,5}|[\\da-f]{1,4}:(?::[\\da-f]{1,4}){1,6}|:(?:(?::[\\da-f]{1,4}){1,7}|:)|fe80:(?::[\\da-f]{0,4}){0,4}%[\\da-z]+|::(?:f{4}(?::0{1,4})?:)?(?:(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)\\.){3}(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)|(?:[\\da-f]{1,4}:){1,4}:(?:(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d)\\.){3}(?:25[0-5]|(?:2[0-4]|1?\\d)?\\d))$/iu;\n\n/**\n * [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date regex.\n */\nexport const ISO_DATE_REGEX: RegExp =\n  /^\\d{4}-(?:0[1-9]|1[0-2])-(?:[12]\\d|0[1-9]|3[01])$/u;\n\n/**\n * [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) date-time regex.\n */\nexport const ISO_DATE_TIME_REGEX: RegExp =\n  /^\\d{4}-(?:0[1-9]|1[0-2])-(?:[12]\\d|0[1-9]|3[01])[T ](?:0\\d|1\\d|2[0-3]):[0-5]\\d$/u;\n\n/**\n * [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) time regex.\n */\nexport const ISO_TIME_REGEX: RegExp = /^(?:0\\d|1\\d|2[0-3]):[0-5]\\d$/u;\n\n/**\n * [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) time with seconds regex.\n */\nexport const ISO_TIME_SECOND_REGEX: RegExp =\n  /^(?:0\\d|1\\d|2[0-3])(?::[0-5]\\d){2}$/u;\n\n/**\n * [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) timestamp regex. Allows a\n * space as a date/time separator and an optional space before the UTC offset.\n */\nexport const ISO_TIMESTAMP_REGEX: RegExp =\n  /^\\d{4}-(?:0[1-9]|1[0-2])-(?:[12]\\d|0[1-9]|3[01])[T ](?:0\\d|1\\d|2[0-3])(?::[0-5]\\d){2}(?:\\.\\d{1,9})?(?:Z| ?[+-](?:0\\d|1\\d|2[0-3])(?::?[0-5]\\d)?)$/u;\n\n/**\n * [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) week regex.\n */\nexport const ISO_WEEK_REGEX: RegExp = /^\\d{4}-W(?:0[1-9]|[1-4]\\d|5[0-3])$/u;\n\n/**\n * [JWS compact serialization](https://datatracker.ietf.org/doc/html/rfc7515#section-3.1)\n * regex.\n *\n * Hint: Empty payload and signature segments are allowed because the\n * Base64URL-encoded representation of an empty octet sequence is an empty\n * string.\n */\nexport const JWS_COMPACT_REGEX: RegExp =\n  /^(?:[\\w-]{2,3}|(?:[\\w-]{4})+(?:[\\w-]{2,3})?)\\.(?:[\\w-]{2,3}|(?:[\\w-]{4})+(?:[\\w-]{2,3})?)?\\.(?:[\\w-]{2,3}|(?:[\\w-]{4})+(?:[\\w-]{2,3})?)?$/u;\n\n/**\n * [ISRC](https://en.wikipedia.org/wiki/International_Standard_Recording_Code) regex.\n */\nexport const ISRC_REGEX: RegExp =\n  /^(?:[A-Z]{2}[A-Z\\d]{3}\\d{7}|[A-Z]{2}-[A-Z\\d]{3}-\\d{2}-\\d{5})$/u;\n\n/**\n * [MAC](https://en.wikipedia.org/wiki/MAC_address) 48 bit regex.\n *\n * Hint: We decided against the `i` flag for better JSON Schema compatibility.\n */\nexport const MAC48_REGEX: RegExp =\n  /^(?:[\\da-fA-F]{2}:){5}[\\da-fA-F]{2}$|^(?:[\\da-fA-F]{2}-){5}[\\da-fA-F]{2}$|^(?:[\\da-fA-F]{4}\\.){2}[\\da-fA-F]{4}$/u;\n\n/**\n * [MAC](https://en.wikipedia.org/wiki/MAC_address) 64 bit regex.\n *\n * Hint: We decided against the `i` flag for better JSON Schema compatibility.\n */\nexport const MAC64_REGEX: RegExp =\n  /^(?:[\\da-fA-F]{2}:){7}[\\da-fA-F]{2}$|^(?:[\\da-fA-F]{2}-){7}[\\da-fA-F]{2}$|^(?:[\\da-fA-F]{4}\\.){3}[\\da-fA-F]{4}$|^(?:[\\da-fA-F]{4}:){3}[\\da-fA-F]{4}$/u;\n\n/**\n * [MAC](https://en.wikipedia.org/wiki/MAC_address) regex.\n *\n * Hint: We decided against the `i` flag for better JSON Schema compatibility.\n */\nexport const MAC_REGEX: RegExp =\n  /^(?:[\\da-fA-F]{2}:){5}[\\da-fA-F]{2}$|^(?:[\\da-fA-F]{2}-){5}[\\da-fA-F]{2}$|^(?:[\\da-fA-F]{4}\\.){2}[\\da-fA-F]{4}$|^(?:[\\da-fA-F]{2}:){7}[\\da-fA-F]{2}$|^(?:[\\da-fA-F]{2}-){7}[\\da-fA-F]{2}$|^(?:[\\da-fA-F]{4}\\.){3}[\\da-fA-F]{4}$|^(?:[\\da-fA-F]{4}:){3}[\\da-fA-F]{4}$/u;\n\n/**\n * [Nano ID](https://github.com/ai/nanoid) regex.\n */\nexport const NANO_ID_REGEX: RegExp = /^[\\w-]+$/u;\n\n/**\n * [Octal](https://en.wikipedia.org/wiki/Octal) regex.\n */\nexport const OCTAL_REGEX: RegExp = /^(?:0o)?[0-7]+$/u;\n\n/**\n * [RFC 5322 email address](https://datatracker.ietf.org/doc/html/rfc5322#section-3.4.1) regex.\n *\n * Hint: This regex was taken from the [HTML Living Standard Specification](https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address) and does not perfectly represent RFC 5322.\n */\nexport const RFC_EMAIL_REGEX: RegExp =\n  // eslint-disable-next-line regexp/prefer-w, no-useless-escape, regexp/no-useless-escape, regexp/require-unicode-regexp\n  /^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n\n/**\n * [Slug](https://en.wikipedia.org/wiki/Clean_URL#Slug) regex.\n */\nexport const SLUG_REGEX: RegExp = /^[\\da-z]+(?:[-_][\\da-z]+)*$/u;\n\n/**\n * [ULID](https://github.com/ulid/spec) regex.\n *\n * Hint: We decided against the `i` flag for better JSON Schema compatibility.\n */\nexport const ULID_REGEX: RegExp = /^[\\da-hjkmnp-tv-zA-HJKMNP-TV-Z]{26}$/u;\n\n/**\n * [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) regex.\n */\nexport const UUID_REGEX: RegExp =\n  /^[\\da-f]{8}(?:-[\\da-f]{4}){3}-[\\da-f]{12}$/iu;\n"
  },
  {
    "path": "library/src/schemas/any/any.test-d.ts",
    "content": "/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { any, type AnySchema } from './any.ts';\n\ndescribe('any', () => {\n  test('should return schema object', () => {\n    expectTypeOf(any()).toEqualTypeOf<AnySchema>();\n  });\n\n  describe('should infer correct types', () => {\n    test('of input', () => {\n      expectTypeOf<InferInput<AnySchema>>().toEqualTypeOf<any>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<AnySchema>>().toEqualTypeOf<any>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<AnySchema>>().toEqualTypeOf<never>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/any/any.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { expectNoSchemaIssue } from '../../vitest/index.ts';\nimport { any, type AnySchema } from './any.ts';\n\ndescribe('any', () => {\n  test('should return schema object', () => {\n    expect(any()).toStrictEqual({\n      kind: 'schema',\n      type: 'any',\n      reference: any,\n      expects: 'any',\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    } satisfies AnySchema);\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = any();\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectNoSchemaIssue(schema, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectNoSchemaIssue(schema, [true, false]);\n    });\n\n    test('for null', () => {\n      expectNoSchemaIssue(schema, [null]);\n    });\n\n    test('for numbers', () => {\n      expectNoSchemaIssue(schema, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectNoSchemaIssue(schema, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectNoSchemaIssue(schema, ['', 'foo', '123']);\n    });\n\n    test('for symbols', () => {\n      expectNoSchemaIssue(schema, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    test('for arrays', () => {\n      expectNoSchemaIssue(schema, [[], ['value']]);\n    });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectNoSchemaIssue(schema, [() => {}, function () {}]);\n    });\n\n    test('for objects', () => {\n      expectNoSchemaIssue(schema, [{}, { key: 'value' }]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/any/any.ts",
    "content": "/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { BaseSchema, SuccessDataset } from '../../types/index.ts';\nimport { _getStandardProps } from '../../utils/index.ts';\n\n/**\n * Any schema interface.\n */\nexport interface AnySchema extends BaseSchema<any, any, never> {\n  /**\n   * The schema type.\n   */\n  readonly type: 'any';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof any;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'any';\n}\n\n/**\n * Creates an any schema.\n *\n * Hint: This schema function exists only for completeness and is not\n * recommended in practice. Instead, `unknown` should be used to accept\n * unknown data.\n *\n * @returns An any schema.\n */\n// @__NO_SIDE_EFFECTS__\nexport function any(): AnySchema {\n  return {\n    kind: 'schema',\n    type: 'any',\n    reference: any,\n    expects: 'any',\n    async: false,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset) {\n      // @ts-expect-error\n      dataset.typed = true;\n      // @ts-expect-error\n      return dataset as SuccessDataset<any>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/any/index.ts",
    "content": "export * from './any.ts';\n"
  },
  {
    "path": "library/src/schemas/array/array.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { OptionalSchema } from '../optional/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { array, type ArraySchema } from './array.ts';\nimport type { ArrayIssue } from './types.ts';\n\ndescribe('array', () => {\n  describe('should return schema object', () => {\n    const item = string();\n    type Item = typeof item;\n\n    test('with undefined message', () => {\n      type Schema = ArraySchema<Item, undefined>;\n      expectTypeOf(array(item)).toEqualTypeOf<Schema>();\n      expectTypeOf(array(item, undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(array(item, 'message')).toEqualTypeOf<\n        ArraySchema<Item, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(array(item, () => 'message')).toEqualTypeOf<\n        ArraySchema<Item, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = ArraySchema<\n      OptionalSchema<StringSchema<undefined>, 'foo'>,\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<\n        (string | undefined)[]\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<string[]>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        ArrayIssue | StringIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/array/array.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { string, type StringIssue } from '../string/index.ts';\nimport { array, type ArraySchema } from './array.ts';\nimport type { ArrayIssue } from './types.ts';\n\ndescribe('array', () => {\n  describe('should return schema object', () => {\n    const item = string();\n    type Item = typeof item;\n    const baseSchema: Omit<ArraySchema<Item, never>, 'message'> = {\n      kind: 'schema',\n      type: 'array',\n      reference: array,\n      expects: 'Array',\n      item,\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: ArraySchema<Item, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(array(item)).toStrictEqual(schema);\n      expect(array(item, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(array(item, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies ArraySchema<Item, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(array(item, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies ArraySchema<Item, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = array(string());\n\n    test('for empty array', () => {\n      expectNoSchemaIssue(schema, [[]]);\n    });\n\n    test('for simple array', () => {\n      expectNoSchemaIssue(schema, [['foo', 'bar', 'baz']]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = array(string(), 'message');\n    const baseIssue: Omit<ArrayIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'array',\n      expected: 'Array',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', 'abc', '123']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n\n    test('for objects', () => {\n      expectSchemaIssue(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n\n  describe('should return dataset without nested issues', () => {\n    const schema = array(string());\n\n    test('for simple array', () => {\n      expectNoSchemaIssue(schema, [['foo', 'bar', 'baz']]);\n    });\n\n    test('for nested array', () => {\n      expectNoSchemaIssue(array(schema), [[['foo', 'bar'], ['baz']]]);\n    });\n  });\n\n  describe('should return dataset with nested issues', () => {\n    const schema = array(string());\n\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    const stringIssue: StringIssue = {\n      ...baseInfo,\n      kind: 'schema',\n      type: 'string',\n      input: 123,\n      expected: 'string',\n      received: '123',\n      path: [\n        {\n          type: 'array',\n          origin: 'value',\n          input: ['foo', 123, 'baz', null],\n          key: 1,\n          value: 123,\n        },\n      ],\n    };\n\n    test('for wrong items', () => {\n      expect(\n        schema['~run']({ value: ['foo', 123, 'baz', null] }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: ['foo', 123, 'baz', null],\n        issues: [\n          stringIssue,\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: null,\n            expected: 'string',\n            received: 'null',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: ['foo', 123, 'baz', null],\n                key: 3,\n                value: null,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('with abort early', () => {\n      expect(\n        schema['~run'](\n          { value: ['foo', 123, 'baz', null] },\n          { abortEarly: true }\n        )\n      ).toStrictEqual({\n        typed: false,\n        value: ['foo'],\n        issues: [{ ...stringIssue, abortEarly: true }],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for wrong nested items', () => {\n      const nestedSchema = array(schema);\n      expect(\n        nestedSchema['~run']({ value: [[123, 'foo'], 'bar', []] }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: [[123, 'foo'], 'bar', []],\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: 123,\n            expected: 'string',\n            received: '123',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: [[123, 'foo'], 'bar', []],\n                key: 0,\n                value: [123, 'foo'],\n              },\n              {\n                type: 'array',\n                origin: 'value',\n                input: [123, 'foo'],\n                key: 0,\n                value: 123,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'array',\n            input: 'bar',\n            expected: 'Array',\n            received: '\"bar\"',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: [[123, 'foo'], 'bar', []],\n                key: 1,\n                value: 'bar',\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof nestedSchema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/array/array.ts",
    "content": "import type {\n  ArrayPathItem,\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  InferInput,\n  InferIssue,\n  InferOutput,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\nimport type { ArrayIssue } from './types.ts';\n\n/**\n * Array schema interface.\n */\nexport interface ArraySchema<\n  TItem extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  TMessage extends ErrorMessage<ArrayIssue> | undefined,\n> extends BaseSchema<\n    InferInput<TItem>[],\n    InferOutput<TItem>[],\n    ArrayIssue | InferIssue<TItem>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'array';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof array;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Array';\n  /**\n   * The array item schema.\n   */\n  readonly item: TItem;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an array schema.\n *\n * @param item The item schema.\n *\n * @returns An array schema.\n */\nexport function array<\n  const TItem extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n>(item: TItem): ArraySchema<TItem, undefined>;\n\n/**\n * Creates an array schema.\n *\n * @param item The item schema.\n * @param message The error message.\n *\n * @returns An array schema.\n */\nexport function array<\n  const TItem extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TMessage extends ErrorMessage<ArrayIssue> | undefined,\n>(item: TItem, message: TMessage): ArraySchema<TItem, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function array(\n  item: BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  message?: ErrorMessage<ArrayIssue>\n): ArraySchema<\n  BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  ErrorMessage<ArrayIssue> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'array',\n    reference: array,\n    expects: 'Array',\n    async: false,\n    item,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      // Get input value from dataset\n      const input = dataset.value;\n\n      // If root type is valid, check nested types\n      if (Array.isArray(input)) {\n        // Set typed to `true` and value to empty array\n        // @ts-expect-error\n        dataset.typed = true;\n        dataset.value = [];\n\n        // Parse schema of each array item\n        for (let key = 0; key < input.length; key++) {\n          const value = input[key];\n          const itemDataset = this.item['~run']({ value }, config);\n\n          // If there are issues, capture them\n          if (itemDataset.issues) {\n            // Create array path item\n            const pathItem: ArrayPathItem = {\n              type: 'array',\n              origin: 'value',\n              input,\n              key,\n              value,\n            };\n\n            // Add modified item dataset issues to issues\n            for (const issue of itemDataset.issues) {\n              if (issue.path) {\n                issue.path.unshift(pathItem);\n              } else {\n                // @ts-expect-error\n                issue.path = [pathItem];\n              }\n              // @ts-expect-error\n              dataset.issues?.push(issue);\n            }\n            if (!dataset.issues) {\n              // @ts-expect-error\n              dataset.issues = itemDataset.issues;\n            }\n\n            // If necessary, abort early\n            if (config.abortEarly) {\n              dataset.typed = false;\n              break;\n            }\n          }\n\n          // If not typed, set typed to `false`\n          if (!itemDataset.typed) {\n            dataset.typed = false;\n          }\n\n          // Add item to dataset\n          // @ts-expect-error\n          dataset.value.push(itemDataset.value);\n        }\n\n        // Otherwise, add array issue\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        unknown[],\n        ArrayIssue | BaseIssue<unknown>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/array/arrayAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { OptionalSchema } from '../optional/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { arrayAsync, type ArraySchemaAsync } from './arrayAsync.ts';\nimport type { ArrayIssue } from './types.ts';\n\ndescribe('arrayAsync', () => {\n  describe('should return schema object', () => {\n    const item = string();\n    type Item = typeof item;\n\n    test('with undefined message', () => {\n      type Schema = ArraySchemaAsync<Item, undefined>;\n      expectTypeOf(arrayAsync(item)).toEqualTypeOf<Schema>();\n      expectTypeOf(arrayAsync(item, undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(arrayAsync(item, 'message')).toEqualTypeOf<\n        ArraySchemaAsync<Item, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(arrayAsync(item, () => 'message')).toEqualTypeOf<\n        ArraySchemaAsync<Item, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = ArraySchemaAsync<\n      OptionalSchema<StringSchema<undefined>, 'foo'>,\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<\n        (string | undefined)[]\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<string[]>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        ArrayIssue | StringIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/array/arrayAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport {\n  expectNoSchemaIssueAsync,\n  expectSchemaIssueAsync,\n} from '../../vitest/index.ts';\nimport { string, type StringIssue } from '../string/index.ts';\nimport { arrayAsync, type ArraySchemaAsync } from './arrayAsync.ts';\nimport type { ArrayIssue } from './types.ts';\n\ndescribe('array', () => {\n  describe('should return schema object', () => {\n    const item = string();\n    type Item = typeof item;\n    const baseSchema: Omit<ArraySchemaAsync<Item, never>, 'message'> = {\n      kind: 'schema',\n      type: 'array',\n      reference: arrayAsync,\n      expects: 'Array',\n      item,\n      async: true,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: ArraySchemaAsync<Item, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(arrayAsync(item)).toStrictEqual(schema);\n      expect(arrayAsync(item, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(arrayAsync(item, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies ArraySchemaAsync<Item, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(arrayAsync(item, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies ArraySchemaAsync<Item, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = arrayAsync(string());\n\n    test('for empty array', async () => {\n      await expectNoSchemaIssueAsync(schema, [[]]);\n    });\n\n    test('for simple array', async () => {\n      await expectNoSchemaIssueAsync(schema, [['foo', 'bar', 'baz']]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = arrayAsync(string(), 'message');\n    const baseIssue: Omit<ArrayIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'array',\n      expected: 'Array',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, ['', 'abc', '123']);\n    });\n\n    test('for symbols', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        Symbol(),\n        Symbol('foo'),\n      ]);\n    });\n\n    // Complex types\n\n    test('for functions', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        () => {},\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        function () {},\n      ]);\n    });\n\n    test('for objects', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n\n  describe('should return dataset without nested issues', () => {\n    const schema = arrayAsync(string());\n\n    test('for simple array', async () => {\n      await expectNoSchemaIssueAsync(schema, [['foo', 'bar', 'baz']]);\n    });\n\n    test('for nested array', async () => {\n      await expectNoSchemaIssueAsync(arrayAsync(schema), [\n        [['foo', 'bar'], ['baz']],\n      ]);\n    });\n  });\n\n  describe('should return dataset with nested issues', () => {\n    const schema = arrayAsync(string());\n\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    const stringIssue: StringIssue = {\n      ...baseInfo,\n      kind: 'schema',\n      type: 'string',\n      input: 123,\n      expected: 'string',\n      received: '123',\n      path: [\n        {\n          type: 'array',\n          origin: 'value',\n          input: ['foo', 123, 'baz', null],\n          key: 1,\n          value: 123,\n        },\n      ],\n    };\n\n    test('for wrong items', async () => {\n      expect(\n        await schema['~run']({ value: ['foo', 123, 'baz', null] }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: ['foo', 123, 'baz', null],\n        issues: [\n          stringIssue,\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: null,\n            expected: 'string',\n            received: 'null',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: ['foo', 123, 'baz', null],\n                key: 3,\n                value: null,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('with abort early', async () => {\n      expect(\n        await schema['~run'](\n          { value: ['foo', 123, 'baz', null] },\n          { abortEarly: true }\n        )\n      ).toStrictEqual({\n        typed: false,\n        value: ['foo'],\n        issues: [{ ...stringIssue, abortEarly: true }],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for wrong nested items', async () => {\n      const nestedSchema = arrayAsync(schema);\n      expect(\n        await nestedSchema['~run']({ value: [[123, 'foo'], 'bar', []] }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: [[123, 'foo'], 'bar', []],\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: 123,\n            expected: 'string',\n            received: '123',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: [[123, 'foo'], 'bar', []],\n                key: 0,\n                value: [123, 'foo'],\n              },\n              {\n                type: 'array',\n                origin: 'value',\n                input: [123, 'foo'],\n                key: 0,\n                value: 123,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'array',\n            input: 'bar',\n            expected: 'Array',\n            received: '\"bar\"',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: [[123, 'foo'], 'bar', []],\n                key: 1,\n                value: 'bar',\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof nestedSchema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/array/arrayAsync.ts",
    "content": "import type {\n  ArrayPathItem,\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  ErrorMessage,\n  InferInput,\n  InferIssue,\n  InferOutput,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\nimport type { array } from './array.ts';\nimport type { ArrayIssue } from './types.ts';\n\n/**\n * Array schema interface.\n */\nexport interface ArraySchemaAsync<\n  TItem extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  TMessage extends ErrorMessage<ArrayIssue> | undefined,\n> extends BaseSchemaAsync<\n    InferInput<TItem>[],\n    InferOutput<TItem>[],\n    ArrayIssue | InferIssue<TItem>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'array';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof array | typeof arrayAsync;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Array';\n  /**\n   * The array item schema.\n   */\n  readonly item: TItem;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an array schema.\n *\n * @param item The item schema.\n *\n * @returns An array schema.\n */\nexport function arrayAsync<\n  const TItem extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(item: TItem): ArraySchemaAsync<TItem, undefined>;\n\n/**\n * Creates an array schema.\n *\n * @param item The item schema.\n * @param message The error message.\n *\n * @returns An array schema.\n */\nexport function arrayAsync<\n  const TItem extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TMessage extends ErrorMessage<ArrayIssue> | undefined,\n>(item: TItem, message: TMessage): ArraySchemaAsync<TItem, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function arrayAsync(\n  item:\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  message?: ErrorMessage<ArrayIssue>\n): ArraySchemaAsync<\n  | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n  | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  ErrorMessage<ArrayIssue> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'array',\n    reference: arrayAsync,\n    expects: 'Array',\n    async: true,\n    item,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    async '~run'(dataset, config) {\n      // Get input value from dataset\n      const input = dataset.value;\n\n      // If root type is valid, check nested types\n      if (Array.isArray(input)) {\n        // Set typed to `true` and value to empty array\n        // @ts-expect-error\n        dataset.typed = true;\n        dataset.value = [];\n\n        // Parse schema of each item async\n        const itemDatasets = await Promise.all(\n          input.map((value) => this.item['~run']({ value }, config))\n        );\n\n        // Process each item dataset\n        for (let key = 0; key < itemDatasets.length; key++) {\n          // Get item dataset\n          const itemDataset = itemDatasets[key];\n\n          // If there are issues, capture them\n          if (itemDataset.issues) {\n            // Create array path item\n            const pathItem: ArrayPathItem = {\n              type: 'array',\n              origin: 'value',\n              input,\n              key,\n              value: input[key],\n            };\n\n            // Add modified item dataset issues to issues\n            for (const issue of itemDataset.issues) {\n              if (issue.path) {\n                issue.path.unshift(pathItem);\n              } else {\n                // @ts-expect-error\n                issue.path = [pathItem];\n              }\n              // @ts-expect-error\n              dataset.issues?.push(issue);\n            }\n            if (!dataset.issues) {\n              // @ts-expect-error\n              dataset.issues = itemDataset.issues;\n            }\n\n            // If necessary, abort early\n            if (config.abortEarly) {\n              dataset.typed = false;\n              break;\n            }\n          }\n\n          // If not typed, set typed to `false`\n          if (!itemDataset.typed) {\n            dataset.typed = false;\n          }\n\n          // Add item to dataset\n          // @ts-expect-error\n          dataset.value.push(itemDataset.value);\n        }\n\n        // Otherwise, add array issue\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        unknown[],\n        ArrayIssue | BaseIssue<unknown>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/array/index.ts",
    "content": "export * from './array.ts';\nexport * from './arrayAsync.ts';\nexport * from './types.ts';\n"
  },
  {
    "path": "library/src/schemas/array/types.ts",
    "content": "import type { BaseIssue } from '../../types/index.ts';\n\n/**\n * Array issue interface.\n */\nexport interface ArrayIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'array';\n  /**\n   * The expected property.\n   */\n  readonly expected: 'Array';\n}\n"
  },
  {
    "path": "library/src/schemas/bigint/bigint.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { bigint, type BigintIssue, type BigintSchema } from './bigint.ts';\n\ndescribe('bigint', () => {\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = BigintSchema<undefined>;\n      expectTypeOf(bigint()).toEqualTypeOf<Schema>();\n      expectTypeOf(bigint(undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(bigint('message')).toEqualTypeOf<BigintSchema<'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(bigint(() => 'message')).toEqualTypeOf<\n        BigintSchema<() => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = BigintSchema<undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<bigint>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<bigint>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<BigintIssue>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/bigint/bigint.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { bigint, type BigintIssue, type BigintSchema } from './bigint.ts';\n\ndescribe('bigint', () => {\n  describe('should return schema object', () => {\n    const baseSchema: Omit<BigintSchema<never>, 'message'> = {\n      kind: 'schema',\n      type: 'bigint',\n      reference: bigint,\n      expects: 'bigint',\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: BigintSchema<undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(bigint()).toStrictEqual(schema);\n      expect(bigint(undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(bigint('message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies BigintSchema<'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(bigint(message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies BigintSchema<typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = bigint();\n\n    test('for bigint zero', () => {\n      expectNoSchemaIssue(schema, [0n, -0n]);\n    });\n\n    test('for positive bigints', () => {\n      expectNoSchemaIssue(schema, [1n, 23n, 456n]);\n    });\n\n    test('for negative bigints', () => {\n      expectNoSchemaIssue(schema, [-1n, -23n, -456n]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = bigint('message');\n    const baseIssue: Omit<BigintIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'bigint',\n      expected: 'bigint',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', '0', '-2', '12.34']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    test('for arrays', () => {\n      expectSchemaIssue(schema, baseIssue, [[], ['value']]);\n    });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n\n    test('for objects', () => {\n      expectSchemaIssue(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/bigint/bigint.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\n\n/**\n * Bigint issue interface.\n */\nexport interface BigintIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'bigint';\n  /**\n   * The expected property.\n   */\n  readonly expected: 'bigint';\n}\n\n/**\n * Bigint schema interface.\n */\nexport interface BigintSchema<\n  TMessage extends ErrorMessage<BigintIssue> | undefined,\n> extends BaseSchema<bigint, bigint, BigintIssue> {\n  /**\n   * The schema type.\n   */\n  readonly type: 'bigint';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof bigint;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'bigint';\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a bigint schema.\n *\n * @returns A bigint schema.\n */\nexport function bigint(): BigintSchema<undefined>;\n\n/**\n * Creates a bigint schema.\n *\n * @param message The error message.\n *\n * @returns A bigint schema.\n */\nexport function bigint<\n  const TMessage extends ErrorMessage<BigintIssue> | undefined,\n>(message: TMessage): BigintSchema<TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function bigint(\n  message?: ErrorMessage<BigintIssue>\n): BigintSchema<ErrorMessage<BigintIssue> | undefined> {\n  return {\n    kind: 'schema',\n    type: 'bigint',\n    reference: bigint,\n    expects: 'bigint',\n    async: false,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      if (typeof dataset.value === 'bigint') {\n        // @ts-expect-error\n        dataset.typed = true;\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n      // @ts-expect-error\n      return dataset as OutputDataset<bigint, BigintIssue>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/bigint/index.ts",
    "content": "export * from './bigint.ts';\n"
  },
  {
    "path": "library/src/schemas/blob/blob.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { blob, type BlobIssue, type BlobSchema } from './blob.ts';\n\ndescribe('blob', () => {\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = BlobSchema<undefined>;\n      expectTypeOf(blob()).toEqualTypeOf<Schema>();\n      expectTypeOf(blob(undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(blob('message')).toEqualTypeOf<BlobSchema<'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(blob(() => 'message')).toEqualTypeOf<\n        BlobSchema<() => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = BlobSchema<undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<Blob>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<Blob>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<BlobIssue>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/blob/blob.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { blob, type BlobIssue, type BlobSchema } from './blob.ts';\n\ndescribe('blob', () => {\n  describe('should return schema object', () => {\n    const baseSchema: Omit<BlobSchema<never>, 'message'> = {\n      kind: 'schema',\n      type: 'blob',\n      reference: blob,\n      expects: 'Blob',\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: BlobSchema<undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(blob()).toStrictEqual(schema);\n      expect(blob(undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(blob('message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies BlobSchema<'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(blob(message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies BlobSchema<typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = blob();\n\n    test('for Blob objects', () => {\n      expectNoSchemaIssue(schema, [new Blob(), new Blob(['foo'])]);\n    });\n\n    test('for File objects', () => {\n      expectNoSchemaIssue(schema, [new File(['foo'], 'foo.jpg')]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = blob('message');\n    const baseIssue: Omit<BlobIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'blob',\n      expected: 'Blob',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', 'foo', '123']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    test('for arrays', () => {\n      expectSchemaIssue(schema, baseIssue, [[], ['value']]);\n    });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n\n    test('for objects', () => {\n      expectSchemaIssue(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/blob/blob.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\n\n/**\n * Blob issue interface.\n */\nexport interface BlobIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'blob';\n  /**\n   * The expected property.\n   */\n  readonly expected: 'Blob';\n}\n\n/**\n * Blob schema interface.\n */\nexport interface BlobSchema<\n  TMessage extends ErrorMessage<BlobIssue> | undefined,\n> extends BaseSchema<Blob, Blob, BlobIssue> {\n  /**\n   * The schema type.\n   */\n  readonly type: 'blob';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof blob;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Blob';\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a blob schema.\n *\n * @returns A blob schema.\n */\nexport function blob(): BlobSchema<undefined>;\n\n/**\n * Creates a blob schema.\n *\n * @param message The error message.\n *\n * @returns A blob schema.\n */\nexport function blob<\n  const TMessage extends ErrorMessage<BlobIssue> | undefined,\n>(message: TMessage): BlobSchema<TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function blob(\n  message?: ErrorMessage<BlobIssue>\n): BlobSchema<ErrorMessage<BlobIssue> | undefined> {\n  return {\n    kind: 'schema',\n    type: 'blob',\n    reference: blob,\n    expects: 'Blob',\n    async: false,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      if (dataset.value instanceof Blob) {\n        // @ts-expect-error\n        dataset.typed = true;\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n      // @ts-expect-error\n      return dataset as OutputDataset<Blob, BlobIssue>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/blob/index.ts",
    "content": "export * from './blob.ts';\n"
  },
  {
    "path": "library/src/schemas/boolean/boolean.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { boolean, type BooleanIssue, type BooleanSchema } from './boolean.ts';\n\ndescribe('boolean', () => {\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = BooleanSchema<undefined>;\n      expectTypeOf(boolean()).toEqualTypeOf<Schema>();\n      expectTypeOf(boolean(undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(boolean('message')).toEqualTypeOf<\n        BooleanSchema<'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(boolean(() => 'message')).toEqualTypeOf<\n        BooleanSchema<() => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = BooleanSchema<undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<boolean>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<boolean>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<BooleanIssue>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/boolean/boolean.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { boolean, type BooleanIssue, type BooleanSchema } from './boolean.ts';\n\ndescribe('boolean', () => {\n  describe('should return schema object', () => {\n    const baseSchema: Omit<BooleanSchema<never>, 'message'> = {\n      kind: 'schema',\n      type: 'boolean',\n      reference: boolean,\n      expects: 'boolean',\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: BooleanSchema<undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(boolean()).toStrictEqual(schema);\n      expect(boolean(undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(boolean('message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies BooleanSchema<'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(boolean(message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies BooleanSchema<typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = boolean();\n\n    test('for true boolean', () => {\n      expectNoSchemaIssue(schema, [true]);\n    });\n\n    test('for false boolean', () => {\n      expectNoSchemaIssue(schema, [false]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = boolean('message');\n    const baseIssue: Omit<BooleanIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'boolean',\n      expected: 'boolean',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', '0', 'true', 'false']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    test('for arrays', () => {\n      expectSchemaIssue(schema, baseIssue, [[], ['value']]);\n    });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n\n    test('for objects', () => {\n      expectSchemaIssue(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/boolean/boolean.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\n\n/**\n * Boolean issue interface.\n */\nexport interface BooleanIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'boolean';\n  /**\n   * The expected property.\n   */\n  readonly expected: 'boolean';\n}\n\n/**\n * Boolean schema interface.\n */\nexport interface BooleanSchema<\n  TMessage extends ErrorMessage<BooleanIssue> | undefined,\n> extends BaseSchema<boolean, boolean, BooleanIssue> {\n  /**\n   * The schema type.\n   */\n  readonly type: 'boolean';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof boolean;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'boolean';\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a boolean schema.\n *\n * @returns A boolean schema.\n */\nexport function boolean(): BooleanSchema<undefined>;\n\n/**\n * Creates a boolean schema.\n *\n * @param message The error message.\n *\n * @returns A boolean schema.\n */\nexport function boolean<\n  const TMessage extends ErrorMessage<BooleanIssue> | undefined,\n>(message: TMessage): BooleanSchema<TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function boolean(\n  message?: ErrorMessage<BooleanIssue>\n): BooleanSchema<ErrorMessage<BooleanIssue> | undefined> {\n  return {\n    kind: 'schema',\n    type: 'boolean',\n    reference: boolean,\n    expects: 'boolean',\n    async: false,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      if (typeof dataset.value === 'boolean') {\n        // @ts-expect-error\n        dataset.typed = true;\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n      // @ts-expect-error\n      return dataset as OutputDataset<boolean, BooleanIssue>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/boolean/index.ts",
    "content": "export * from './boolean.ts';\n"
  },
  {
    "path": "library/src/schemas/custom/custom.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { custom, type CustomSchema } from './custom.ts';\nimport type { CustomIssue } from './types.ts';\n\ndescribe('custom', () => {\n  type PixelString = `${number}px`;\n  const isPixelString = (input: unknown) =>\n    typeof input === 'string' && /^\\d+px$/u.test(input);\n\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = CustomSchema<PixelString, undefined>;\n      expectTypeOf(custom<PixelString>(isPixelString)).toEqualTypeOf<Schema>();\n      expectTypeOf(\n        custom<PixelString, undefined>(isPixelString, undefined)\n      ).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        custom<PixelString, 'message'>(isPixelString, 'message')\n      ).toEqualTypeOf<CustomSchema<PixelString, 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        custom<PixelString, () => string>(isPixelString, () => 'message')\n      ).toEqualTypeOf<CustomSchema<PixelString, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = CustomSchema<PixelString, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<PixelString>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<PixelString>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<CustomIssue>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/custom/custom.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { custom, type CustomSchema } from './custom.ts';\nimport type { CustomIssue } from './types.ts';\n\ndescribe('custom', () => {\n  type PixelString = `${number}px`;\n  const isPixelString = (input: unknown) =>\n    typeof input === 'string' && /^\\d+px$/u.test(input);\n\n  describe('should return schema object', () => {\n    const baseSchema: Omit<CustomSchema<PixelString, never>, 'message'> = {\n      kind: 'schema',\n      type: 'custom',\n      reference: custom,\n      expects: 'unknown',\n      check: isPixelString,\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: CustomSchema<PixelString, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(custom(isPixelString)).toStrictEqual(schema);\n      expect(custom(isPixelString, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(custom(isPixelString, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies CustomSchema<PixelString, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(custom(isPixelString, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies CustomSchema<PixelString, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = custom<PixelString>(isPixelString);\n\n    test('for pixel strings', () => {\n      expectNoSchemaIssue(schema, ['0px', '123px', '456789px']);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = custom<PixelString>(isPixelString, 'message');\n    const baseIssue: Omit<CustomIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'custom',\n      expected: 'unknown',\n      message: 'message',\n    };\n\n    // Special values\n\n    test('for invalid pixel strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['0', '0p', '0pxl', 'px', 'px0']);\n    });\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', 'foo', '123']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    test('for arrays', () => {\n      expectSchemaIssue(schema, baseIssue, [[], ['value']]);\n    });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n\n    test('for objects', () => {\n      expectSchemaIssue(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/custom/custom.ts",
    "content": "import type {\n  BaseSchema,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\nimport type { CustomIssue } from './types.ts';\n\n/**\n * Check type.\n */\ntype Check = (input: unknown) => boolean;\n\n/**\n * Custom schema interface.\n */\nexport interface CustomSchema<\n  TInput,\n  TMessage extends ErrorMessage<CustomIssue> | undefined,\n> extends BaseSchema<TInput, TInput, CustomIssue> {\n  /**\n   * The schema type.\n   */\n  readonly type: 'custom';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof custom;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'unknown';\n  /**\n   * The type check function.\n   */\n  readonly check: Check;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a custom schema.\n *\n * @param check The type check function.\n *\n * @returns A custom schema.\n */\nexport function custom<TInput>(check: Check): CustomSchema<TInput, undefined>;\n\n/**\n * Creates a custom schema.\n *\n * @param check The type check function.\n * @param message The error message.\n *\n * @returns A custom schema.\n */\nexport function custom<\n  TInput,\n  const TMessage extends ErrorMessage<CustomIssue> | undefined =\n    | ErrorMessage<CustomIssue>\n    | undefined,\n>(check: Check, message: TMessage): CustomSchema<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function custom<TInput>(\n  check: Check,\n  message?: ErrorMessage<CustomIssue>\n): CustomSchema<TInput, ErrorMessage<CustomIssue> | undefined> {\n  return {\n    kind: 'schema',\n    type: 'custom',\n    reference: custom,\n    expects: 'unknown',\n    async: false,\n    check,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      if (this.check(dataset.value)) {\n        // @ts-expect-error\n        dataset.typed = true;\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n      // @ts-expect-error\n      return dataset as OutputDataset<TInput, CustomIssue>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/custom/customAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { customAsync, type CustomSchemaAsync } from './customAsync.ts';\nimport type { CustomIssue } from './types.ts';\n\ndescribe('customAsync', () => {\n  type PixelString = `${number}px`;\n  const isPixelString = async (input: unknown) =>\n    typeof input === 'string' && /^\\d+px$/u.test(input);\n\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = CustomSchemaAsync<PixelString, undefined>;\n      expectTypeOf(\n        customAsync<PixelString>(isPixelString)\n      ).toEqualTypeOf<Schema>();\n      expectTypeOf(\n        customAsync<PixelString, undefined>(isPixelString, undefined)\n      ).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        customAsync<PixelString, 'message'>(isPixelString, 'message')\n      ).toEqualTypeOf<CustomSchemaAsync<PixelString, 'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        customAsync<PixelString, () => string>(isPixelString, () => 'message')\n      ).toEqualTypeOf<CustomSchemaAsync<PixelString, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = CustomSchemaAsync<PixelString, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<PixelString>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<PixelString>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<CustomIssue>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/custom/customAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  expectNoSchemaIssueAsync,\n  expectSchemaIssueAsync,\n} from '../../vitest/index.ts';\nimport { customAsync, type CustomSchemaAsync } from './customAsync.ts';\nimport type { CustomIssue } from './types.ts';\n\ndescribe('customAsync', () => {\n  type PixelString = `${number}px`;\n  const isPixelString = async (input: unknown) =>\n    typeof input === 'string' && /^\\d+px$/u.test(input);\n\n  describe('should return schema object', () => {\n    const baseSchema: Omit<CustomSchemaAsync<PixelString, never>, 'message'> = {\n      kind: 'schema',\n      type: 'custom',\n      reference: customAsync,\n      expects: 'unknown',\n      check: isPixelString,\n      async: true,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: CustomSchemaAsync<PixelString, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(customAsync(isPixelString)).toStrictEqual(schema);\n      expect(customAsync(isPixelString, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(customAsync(isPixelString, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies CustomSchemaAsync<PixelString, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(customAsync(isPixelString, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies CustomSchemaAsync<PixelString, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = customAsync<PixelString>(isPixelString);\n\n    test('for pixel strings', async () => {\n      await expectNoSchemaIssueAsync(schema, ['0px', '123px', '456789px']);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = customAsync<PixelString>(isPixelString, 'message');\n    const baseIssue: Omit<CustomIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'custom',\n      expected: 'unknown',\n      message: 'message',\n    };\n\n    // Special values\n\n    test('for invalid pixel strings', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        '0',\n        '0p',\n        '0pxl',\n        'px',\n        'px0',\n      ]);\n    });\n\n    // Primitive types\n\n    test('for bigints', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, ['', 'foo', '123']);\n    });\n\n    test('for symbols', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        Symbol(),\n        Symbol('foo'),\n      ]);\n    });\n\n    // Complex types\n\n    test('for arrays', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [[], ['value']]);\n    });\n\n    test('for functions', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        () => {},\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        function () {},\n      ]);\n    });\n\n    test('for objects', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/custom/customAsync.ts",
    "content": "import type {\n  BaseSchemaAsync,\n  ErrorMessage,\n  MaybePromise,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\nimport type { custom } from './custom.ts';\nimport type { CustomIssue } from './types.ts';\n\n/**\n * Check async type.\n */\ntype CheckAsync = (input: unknown) => MaybePromise<boolean>;\n\n/**\n * Custom schema async interface.\n */\nexport interface CustomSchemaAsync<\n  TInput,\n  TMessage extends ErrorMessage<CustomIssue> | undefined,\n> extends BaseSchemaAsync<TInput, TInput, CustomIssue> {\n  /**\n   * The schema type.\n   */\n  readonly type: 'custom';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof custom | typeof customAsync;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'unknown';\n  /**\n   * The type check function.\n   */\n  readonly check: CheckAsync;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a custom schema.\n *\n * @param check The type check function.\n *\n * @returns A custom schema.\n */\nexport function customAsync<TInput>(\n  check: CheckAsync\n): CustomSchemaAsync<TInput, undefined>;\n\n/**\n * Creates a custom schema.\n *\n * @param check The type check function.\n * @param message The error message.\n *\n * @returns A custom schema.\n */\nexport function customAsync<\n  TInput,\n  const TMessage extends ErrorMessage<CustomIssue> | undefined =\n    | ErrorMessage<CustomIssue>\n    | undefined,\n>(check: CheckAsync, message: TMessage): CustomSchemaAsync<TInput, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function customAsync<TInput>(\n  check: CheckAsync,\n  message?: ErrorMessage<CustomIssue>\n): CustomSchemaAsync<TInput, ErrorMessage<CustomIssue> | undefined> {\n  return {\n    kind: 'schema',\n    type: 'custom',\n    reference: customAsync,\n    expects: 'unknown',\n    async: true,\n    check,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    async '~run'(dataset, config) {\n      if (await this.check(dataset.value)) {\n        // @ts-expect-error\n        dataset.typed = true;\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n      // @ts-expect-error\n      return dataset as OutputDataset<TInput, CustomIssue>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/custom/index.ts",
    "content": "export * from './custom.ts';\nexport * from './customAsync.ts';\nexport * from './types.ts';\n"
  },
  {
    "path": "library/src/schemas/custom/types.ts",
    "content": "import type { BaseIssue } from '../../types/index.ts';\n\n/**\n * Custom issue interface.\n */\nexport interface CustomIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'custom';\n  /**\n   * The expected property.\n   */\n  readonly expected: 'unknown';\n}\n"
  },
  {
    "path": "library/src/schemas/date/date.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { date, type DateIssue, type DateSchema } from './date.ts';\n\ndescribe('date', () => {\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = DateSchema<undefined>;\n      expectTypeOf(date()).toEqualTypeOf<Schema>();\n      expectTypeOf(date(undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(date('message')).toEqualTypeOf<DateSchema<'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(date(() => 'message')).toEqualTypeOf<\n        DateSchema<() => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = DateSchema<undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<Date>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<Date>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<DateIssue>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/date/date.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { date, type DateIssue, type DateSchema } from './date.ts';\n\ndescribe('date', () => {\n  describe('should return schema object', () => {\n    const baseSchema: Omit<DateSchema<never>, 'message'> = {\n      kind: 'schema',\n      type: 'date',\n      reference: date,\n      expects: 'Date',\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: DateSchema<undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(date()).toStrictEqual(schema);\n      expect(date(undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(date('message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies DateSchema<'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(date(message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies DateSchema<typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = date();\n\n    test('for current date', () => {\n      expectNoSchemaIssue(schema, [new Date()]);\n    });\n\n    test('for past date', () => {\n      expectNoSchemaIssue(schema, [new Date(0)]);\n    });\n\n    test('for future date', () => {\n      expectNoSchemaIssue(schema, [new Date(8640000000000000)]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = date('message');\n    const baseIssue: Omit<DateIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'date',\n      expected: 'Date',\n      message: 'message',\n    };\n\n    // Special values\n\n    test('for invalid dates', () => {\n      expectSchemaIssue(schema, baseIssue, [new Date('foo')], '\"Invalid Date\"');\n    });\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', 'foo', '123']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    test('for arrays', () => {\n      expectSchemaIssue(schema, baseIssue, [[], ['value']]);\n    });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n\n    test('for objects', () => {\n      expectSchemaIssue(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/date/date.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\n\n/**\n * Date issue interface.\n */\nexport interface DateIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'date';\n  /**\n   * The expected property.\n   */\n  readonly expected: 'Date';\n}\n\n/**\n * Date schema interface.\n */\nexport interface DateSchema<\n  TMessage extends ErrorMessage<DateIssue> | undefined,\n> extends BaseSchema<Date, Date, DateIssue> {\n  /**\n   * The schema type.\n   */\n  readonly type: 'date';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof date;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Date';\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a date schema.\n *\n * @returns A date schema.\n */\nexport function date(): DateSchema<undefined>;\n\n/**\n * Creates a date schema.\n *\n * @param message The error message.\n *\n * @returns A date schema.\n */\nexport function date<\n  const TMessage extends ErrorMessage<DateIssue> | undefined,\n>(message: TMessage): DateSchema<TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function date(\n  message?: ErrorMessage<DateIssue>\n): DateSchema<ErrorMessage<DateIssue> | undefined> {\n  return {\n    kind: 'schema',\n    type: 'date',\n    reference: date,\n    expects: 'Date',\n    async: false,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      if (dataset.value instanceof Date) {\n        // @ts-expect-error\n        if (!isNaN(dataset.value)) {\n          // @ts-expect-error\n          dataset.typed = true;\n        } else {\n          _addIssue(this, 'type', dataset, config, {\n            received: '\"Invalid Date\"',\n          });\n        }\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n      // @ts-expect-error\n      return dataset as OutputDataset<Date, DateIssue>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/date/index.ts",
    "content": "export * from './date.ts';\n"
  },
  {
    "path": "library/src/schemas/enum/enum.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { enum_, type EnumIssue, type EnumSchema } from './enum.ts';\n\ndescribe('enum_', () => {\n  enum normalEnum {\n    option1 = 'foo',\n    option2 = 'bar',\n    option3 = 'baz',\n  }\n  type NormalEnum = typeof normalEnum;\n\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = EnumSchema<NormalEnum, undefined>;\n      expectTypeOf(enum_(normalEnum)).toEqualTypeOf<Schema>();\n      expectTypeOf(enum_(normalEnum, undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(enum_(normalEnum, 'message')).toEqualTypeOf<\n        EnumSchema<NormalEnum, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(enum_(normalEnum, () => 'message')).toEqualTypeOf<\n        EnumSchema<NormalEnum, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type NormalEnumSchema = EnumSchema<NormalEnum, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<NormalEnumSchema>>().toEqualTypeOf<normalEnum>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<NormalEnumSchema>>().toEqualTypeOf<normalEnum>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<NormalEnumSchema>>().toEqualTypeOf<EnumIssue>();\n    });\n  });\n\n  describe('should filter reverse mappings', () => {\n    test('of special enums', () => {\n      enum specialEnum {\n        option1 = 'foo',\n        option2 = 0,\n        option3,\n        'Infinity',\n        '-Infinity',\n        'NaN',\n      }\n      type SpecialEnum = typeof specialEnum;\n      type SpecialEnumSchema = EnumSchema<SpecialEnum, undefined>;\n      expectTypeOf<\n        InferInput<SpecialEnumSchema>\n      >().toEqualTypeOf<specialEnum>();\n      expectTypeOf<\n        InferOutput<SpecialEnumSchema>\n      >().toEqualTypeOf<specialEnum>();\n    });\n\n    test('of normal enum-like object', () => {\n      // eslint-disable-next-line @typescript-eslint/no-unused-vars\n      const normalEnumLike = {\n        option0: 'foo',\n        option1: 1111,\n        option2: 2222,\n        option3: 3333,\n        option4: 4444,\n        option5: 5555,\n        option6: -6666,\n\n        // No reverse mappings\n        foo: 'option0', // Key is not a number\n        '+1111': 'option1', // Key is not a reverse mapped number\n        1234: 'option2', // Key does not match with reverse mapped value `2222`\n        '5678': 'option3', // Key does not match with reverse mapped value `3333`\n\n        // Reverse mappings\n        4444: 'option4',\n        '5555': 'option5',\n        '-6666': 'option6',\n      } as const;\n      type NormalEnumLike = typeof normalEnumLike;\n      type NormalEnumLikeSchema = EnumSchema<NormalEnumLike, undefined>;\n      expectTypeOf<InferInput<NormalEnumLikeSchema>>().toEqualTypeOf<\n        | 'foo'\n        | 1111\n        | 2222\n        | 3333\n        | 4444\n        | 5555\n        | -6666\n        | 'option0'\n        | 'option1'\n        | 'option2'\n        | 'option3'\n      >();\n      expectTypeOf<InferOutput<NormalEnumLikeSchema>>().toEqualTypeOf<\n        | 'foo'\n        | 1111\n        | 2222\n        | 3333\n        | 4444\n        | 5555\n        | -6666\n        | 'option0'\n        | 'option1'\n        | 'option2'\n        | 'option3'\n      >();\n    });\n\n    test('of special enum-like object', () => {\n      // eslint-disable-next-line @typescript-eslint/no-unused-vars\n      const specialEnumLike = {\n        option0: 'foo',\n        option1: 1234,\n        option2: Infinity,\n        option3: -Infinity,\n        option4: NaN,\n\n        // Reverse mappings\n        '1234': 'option1',\n        Infinity: 'option2',\n        '-Infinity': 'option3',\n        NaN: 'option4',\n      } as const;\n      type SpecialEnumLike = typeof specialEnumLike;\n      type SpecialEnumLikeSchema = EnumSchema<SpecialEnumLike, undefined>;\n      expectTypeOf<InferInput<SpecialEnumLikeSchema>>().toEqualTypeOf<\n        'foo' | number\n      >();\n      expectTypeOf<InferOutput<SpecialEnumLikeSchema>>().toEqualTypeOf<\n        'foo' | number\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/enum/enum.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { enum_, type EnumIssue, type EnumSchema } from './enum.ts';\n\ndescribe('enum_', () => {\n  enum normalEnum {\n    option1 = 'foo',\n    option2 = 'bar',\n    option3 = 'baz',\n  }\n  type Options = typeof normalEnum;\n\n  describe('should return schema object', () => {\n    const baseSchema: Omit<EnumSchema<Options, never>, 'message'> = {\n      kind: 'schema',\n      type: 'enum',\n      reference: enum_,\n      expects: '(\"foo\" | \"bar\" | \"baz\")',\n      enum: normalEnum,\n      options: [normalEnum.option1, normalEnum.option2, normalEnum.option3],\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: EnumSchema<Options, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(enum_(normalEnum)).toStrictEqual(schema);\n      expect(enum_(normalEnum, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(enum_(normalEnum, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies EnumSchema<Options, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(enum_(normalEnum, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies EnumSchema<Options, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for valid options', () => {\n      expectNoSchemaIssue(enum_(normalEnum), [\n        normalEnum.option1,\n        normalEnum.option2,\n        normalEnum.option3,\n      ]);\n    });\n\n    test('for valid values', () => {\n      // @ts-expect-error\n      expectNoSchemaIssue(enum_(normalEnum), ['foo', 'bar', 'baz']);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = enum_(normalEnum, 'message');\n    const baseIssue: Omit<EnumIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'enum',\n      expected: '(\"foo\" | \"bar\" | \"baz\")',\n      message: 'message',\n    };\n\n    // Special values\n\n    test('for empty options', () => {\n      enum Empty {}\n      expectSchemaIssue(\n        enum_(Empty, 'message'),\n        { ...baseIssue, expected: 'never' },\n        ['foo', 'bar', 'baz']\n      );\n    });\n\n    test('for invalid options', () => {\n      expectSchemaIssue(schema, baseIssue, ['fo', 'fooo', 'foobar']);\n    });\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', 'hello', '123']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    test('for arrays', () => {\n      expectSchemaIssue(schema, baseIssue, [[], ['value']]);\n    });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n\n    test('for objects', () => {\n      expectSchemaIssue(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n\n  describe('should filter reverse mappings', () => {\n    test('of special enums', () => {\n      enum specialEnum {\n        option1 = 'foo',\n        option2 = 0,\n        option3,\n        'Infinity',\n        '-Infinity',\n        'NaN',\n      }\n      expect(enum_(specialEnum)).toMatchObject({\n        enum: specialEnum,\n        expects: '(\"foo\" | 0 | 1 | 2 | 3 | 4)',\n        options: [\n          specialEnum.option1,\n          specialEnum.option2,\n          specialEnum.option3,\n          specialEnum['Infinity'],\n          specialEnum['-Infinity'],\n          specialEnum['NaN'],\n        ],\n      } satisfies Pick<\n        EnumSchema<typeof specialEnum, undefined>,\n        'enum' | 'expects' | 'options'\n      >);\n    });\n\n    test('of normal enum-like object', () => {\n      const normalEnumLike = {\n        option0: 'foo',\n        option1: 1111,\n        option2: 2222,\n        option3: 3333,\n        option4: 4444,\n        option5: 5555,\n        option6: -6666,\n\n        // No reverse mappings\n        foo: 'option0', // Key is not a number\n        '+1111': 'option1', // Key is not a reverse mapped number\n        1234: 'option2', // Key does not match with reverse mapped value `2222`\n        '5678': 'option3', // Key does not match with reverse mapped value `3333`\n\n        // Reverse mappings\n        4444: 'option4',\n        '5555': 'option5',\n        '-6666': 'option6',\n      } as const;\n      expect(enum_(normalEnumLike)).toMatchObject({\n        enum: normalEnumLike,\n        expects:\n          '(\"option2\" | \"option3\" | \"foo\" | 1111 | 2222 | 3333 | 4444 | 5555 | -6666 | \"option0\" | \"option1\")',\n        options: [\n          'option2',\n          'option3',\n          'foo',\n          1111,\n          2222,\n          3333,\n          4444,\n          5555,\n          -6666,\n          'option0',\n          'option1',\n        ],\n      } satisfies Pick<\n        EnumSchema<typeof normalEnumLike, undefined>,\n        'expects' | 'enum' | 'options'\n      >);\n    });\n\n    test('of special enum-like object', () => {\n      const specialEnumLike = {\n        option0: 'foo',\n        option1: 1234,\n        option2: Infinity,\n        option3: -Infinity,\n        option4: NaN,\n\n        // Reverse mappings\n        '1234': 'option1',\n        Infinity: 'option2',\n        '-Infinity': 'option3',\n        NaN: 'option4',\n      } as const;\n      expect(enum_(specialEnumLike)).toMatchObject({\n        enum: specialEnumLike,\n        expects: '(\"foo\" | 1234 | Infinity | -Infinity | NaN)',\n        options: ['foo', 1234, Infinity, -Infinity, NaN],\n      } satisfies Pick<\n        EnumSchema<typeof specialEnumLike, undefined>,\n        'expects' | 'enum' | 'options'\n      >);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/enum/enum.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport {\n  _addIssue,\n  _getStandardProps,\n  _joinExpects,\n  _stringify,\n} from '../../utils/index.ts';\n\n/**\n * Enum interface.\n */\nexport interface Enum {\n  [key: string]: string | number;\n}\n\n/**\n * Enum values type.\n */\nexport type EnumValues<TEnum extends Enum> = {\n  [TKey in keyof TEnum]: TKey extends number\n    ? TEnum[TKey] extends string\n      ? TEnum[TEnum[TKey]] extends TKey\n        ? never\n        : TEnum[TKey]\n      : TEnum[TKey]\n    : TKey extends 'NaN' | 'Infinity' | '-Infinity'\n      ? TEnum[TKey] extends string\n        ? TEnum[TEnum[TKey]] extends number\n          ? never\n          : TEnum[TKey]\n        : TEnum[TKey]\n      : TKey extends `+${number}`\n        ? TEnum[TKey]\n        : TKey extends `${infer TNumber extends number}`\n          ? TEnum[TKey] extends string\n            ? TEnum[TEnum[TKey]] extends TNumber\n              ? never\n              : TEnum[TKey]\n            : TEnum[TKey]\n          : TEnum[TKey];\n}[keyof TEnum];\n\n/**\n * Enum issue interface.\n */\nexport interface EnumIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'enum';\n  /**\n   * The expected property.\n   */\n  readonly expected: string;\n}\n\n/**\n * Enum schema interface.\n */\nexport interface EnumSchema<\n  TEnum extends Enum,\n  TMessage extends ErrorMessage<EnumIssue> | undefined,\n> extends BaseSchema<EnumValues<TEnum>, EnumValues<TEnum>, EnumIssue> {\n  /**\n   * The schema type.\n   */\n  readonly type: 'enum';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof enum_;\n  /**\n   * The enum object.\n   */\n  readonly enum: TEnum;\n  /**\n   * The enum options.\n   */\n  readonly options: EnumValues<TEnum>[];\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an enum schema.\n *\n * @param enum__ The enum object.\n *\n * @returns An enum schema.\n */\nexport function enum_<const TEnum extends Enum>(\n  enum__: TEnum\n): EnumSchema<TEnum, undefined>;\n\n/**\n * Creates an enum schema.\n *\n * @param enum__ The enum object.\n * @param message The error message.\n *\n * @returns An enum schema.\n */\nexport function enum_<\n  const TEnum extends Enum,\n  const TMessage extends ErrorMessage<EnumIssue> | undefined,\n>(enum__: TEnum, message: TMessage): EnumSchema<TEnum, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function enum_(\n  enum__: Enum,\n  message?: ErrorMessage<EnumIssue>\n): EnumSchema<Enum, ErrorMessage<EnumIssue> | undefined> {\n  const options: EnumValues<Enum>[] = [];\n  for (const key in enum__) {\n    if (\n      `${+key}` !== key ||\n      typeof enum__[key] !== 'string' ||\n      !Object.is(enum__[enum__[key]], +key)\n    ) {\n      options.push(enum__[key]);\n    }\n  }\n  return {\n    kind: 'schema',\n    type: 'enum',\n    reference: enum_,\n    expects: _joinExpects(options.map(_stringify), '|'),\n    async: false,\n    enum: enum__,\n    options,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      // @ts-expect-error\n      if (this.options.includes(dataset.value)) {\n        // @ts-expect-error\n        dataset.typed = true;\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n      // @ts-expect-error\n      return dataset as OutputDataset<string | number, EnumIssue>;\n    },\n  };\n}\n\nexport { enum_ as enum };\n"
  },
  {
    "path": "library/src/schemas/enum/index.ts",
    "content": "export * from './enum.ts';\n"
  },
  {
    "path": "library/src/schemas/exactOptional/exactOptional.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { TransformAction } from '../../actions/index.ts';\nimport type { SchemaWithPipe } from '../../methods/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { ArrayIssue, ArraySchema } from '../array/index.ts';\nimport type { ObjectIssue, ObjectSchema } from '../object/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { exactOptional, type ExactOptionalSchema } from './exactOptional.ts';\n\ndescribe('exactOptional', () => {\n  describe('should return schema object', () => {\n    test('with undefined default', () => {\n      type Schema = ExactOptionalSchema<StringSchema<undefined>, undefined>;\n      expectTypeOf(exactOptional(string())).toEqualTypeOf<Schema>();\n      expectTypeOf(exactOptional(string(), undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with value default', () => {\n      expectTypeOf(exactOptional(string(), 'foo')).toEqualTypeOf<\n        ExactOptionalSchema<StringSchema<undefined>, 'foo'>\n      >();\n    });\n\n    test('with value getter default', () => {\n      expectTypeOf(exactOptional(string(), () => 'foo')).toEqualTypeOf<\n        ExactOptionalSchema<StringSchema<undefined>, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema1 = ExactOptionalSchema<StringSchema<undefined>, undefined>;\n    type Schema2 = ExactOptionalSchema<StringSchema<undefined>, 'foo'>;\n    type Schema3 = ExactOptionalSchema<StringSchema<undefined>, () => 'foo'>;\n    type Schema4 = ExactOptionalSchema<\n      SchemaWithPipe<\n        [StringSchema<undefined>, TransformAction<string, number>]\n      >,\n      'foo'\n    >;\n    type Schema5 = ExactOptionalSchema<\n      ObjectSchema<\n        { foo: ArraySchema<StringSchema<undefined>, undefined> },\n        undefined\n      >,\n      { foo: string[] }\n    >;\n    type Schema6 = ExactOptionalSchema<\n      ObjectSchema<\n        { foo: ArraySchema<StringSchema<undefined>, undefined> },\n        undefined\n      >,\n      () => { foo: string[] }\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema1>>().toEqualTypeOf<string>();\n      expectTypeOf<InferInput<Schema2>>().toEqualTypeOf<string>();\n      expectTypeOf<InferInput<Schema3>>().toEqualTypeOf<string>();\n      expectTypeOf<InferInput<Schema4>>().toEqualTypeOf<string>();\n      expectTypeOf<InferInput<Schema5>>().toEqualTypeOf<{ foo: string[] }>();\n      expectTypeOf<InferInput<Schema6>>().toEqualTypeOf<{ foo: string[] }>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema1>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema2>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema3>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema4>>().toEqualTypeOf<number>();\n      expectTypeOf<InferOutput<Schema5>>().toEqualTypeOf<{ foo: string[] }>();\n      expectTypeOf<InferOutput<Schema6>>().toEqualTypeOf<{ foo: string[] }>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema1>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema2>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema3>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema4>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema5>>().toEqualTypeOf<\n        ObjectIssue | ArrayIssue | StringIssue\n      >();\n      expectTypeOf<InferIssue<Schema6>>().toEqualTypeOf<\n        ObjectIssue | ArrayIssue | StringIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/exactOptional/exactOptional.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { exactOptional, type ExactOptionalSchema } from './exactOptional.ts';\n\ndescribe('exactOptional', () => {\n  describe('should return schema object', () => {\n    const baseSchema: Omit<\n      ExactOptionalSchema<StringSchema<undefined>, string>,\n      'default'\n    > = {\n      kind: 'schema',\n      type: 'exact_optional',\n      reference: exactOptional,\n      expects: 'string',\n      wrapped: {\n        ...string(),\n        '~standard': {\n          version: 1,\n          vendor: 'valibot',\n          validate: expect.any(Function),\n        },\n        '~run': expect.any(Function),\n      },\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined default', () => {\n      const expected: ExactOptionalSchema<\n        StringSchema<undefined>,\n        undefined\n      > = {\n        ...baseSchema,\n        default: undefined,\n      };\n      expect(exactOptional(string())).toStrictEqual(expected);\n      expect(exactOptional(string(), undefined)).toStrictEqual(expected);\n    });\n\n    test('with value default', () => {\n      expect(exactOptional(string(), 'foo')).toStrictEqual({\n        ...baseSchema,\n        default: 'foo',\n      } satisfies ExactOptionalSchema<StringSchema<undefined>, 'foo'>);\n    });\n\n    test('with value getter default', () => {\n      const getter = () => 'foo';\n      expect(exactOptional(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies ExactOptionalSchema<StringSchema<undefined>, typeof getter>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = exactOptional(string());\n\n    test('for wrapper type', () => {\n      expectNoSchemaIssue(schema, ['', 'foo', '#$%']);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = exactOptional(string('message'));\n    const baseIssue: Omit<StringIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'string',\n      expected: 'string',\n      message: 'message',\n    };\n\n    test('for invalid wrapper type', () => {\n      expectSchemaIssue(schema, baseIssue, [123, true, {}]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n  });\n\n  describe('should return dataset without default', () => {\n    test('for undefined default', () => {\n      expectNoSchemaIssue(exactOptional(string()), ['foo']);\n      expectNoSchemaIssue(exactOptional(string(), undefined), ['foo']);\n    });\n\n    test('for wrapper type', () => {\n      expectNoSchemaIssue(exactOptional(string(), 'foo'), ['', 'bar', '#$%']);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/exactOptional/exactOptional.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  Default,\n  InferInput,\n  InferIssue,\n  InferOutput,\n} from '../../types/index.ts';\nimport { _getStandardProps } from '../../utils/index.ts';\n\n/**\n * Exact optional schema interface.\n */\nexport interface ExactOptionalSchema<\n  TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  TDefault extends Default<TWrapped, never>,\n> extends BaseSchema<\n    InferInput<TWrapped>,\n    InferOutput<TWrapped>,\n    InferIssue<TWrapped>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'exact_optional';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof exactOptional;\n  /**\n   * The expected property.\n   */\n  readonly expects: TWrapped['expects'];\n  /**\n   * The wrapped schema.\n   */\n  readonly wrapped: TWrapped;\n  /**\n   * The default value.\n   */\n  readonly default: TDefault;\n}\n\n/**\n * Creates an exact optional schema.\n *\n * @param wrapped The wrapped schema.\n *\n * @returns An exact optional schema.\n */\nexport function exactOptional<\n  const TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n>(wrapped: TWrapped): ExactOptionalSchema<TWrapped, undefined>;\n\n/**\n * Creates an exact optional schema.\n *\n * @param wrapped The wrapped schema.\n * @param default_ The default value.\n *\n * @returns An exact optional schema.\n */\nexport function exactOptional<\n  const TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TDefault extends Default<TWrapped, never>,\n>(\n  wrapped: TWrapped,\n  default_: TDefault\n): ExactOptionalSchema<TWrapped, TDefault>;\n\n// @__NO_SIDE_EFFECTS__\nexport function exactOptional(\n  wrapped: BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  default_?: unknown\n): ExactOptionalSchema<\n  BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  unknown\n> {\n  return {\n    kind: 'schema',\n    type: 'exact_optional',\n    reference: exactOptional,\n    expects: wrapped.expects,\n    async: false,\n    wrapped,\n    default: default_,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      return this.wrapped['~run'](dataset, config);\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/exactOptional/exactOptionalAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { TransformActionAsync } from '../../actions/index.ts';\nimport type { SchemaWithPipeAsync } from '../../methods/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { ArrayIssue, ArraySchema } from '../array/index.ts';\nimport type { ObjectIssue, ObjectSchema } from '../object/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport {\n  exactOptionalAsync,\n  type ExactOptionalSchemaAsync,\n} from './exactOptionalAsync.ts';\n\ndescribe('exactOptionalAsync', () => {\n  describe('should return schema object', () => {\n    test('with undefined default', () => {\n      type Schema = ExactOptionalSchemaAsync<\n        StringSchema<undefined>,\n        undefined\n      >;\n      expectTypeOf(exactOptionalAsync(string())).toEqualTypeOf<Schema>();\n      expectTypeOf(\n        exactOptionalAsync(string(), undefined)\n      ).toEqualTypeOf<Schema>();\n    });\n\n    test('with value default', () => {\n      expectTypeOf(exactOptionalAsync(string(), 'foo')).toEqualTypeOf<\n        ExactOptionalSchemaAsync<StringSchema<undefined>, 'foo'>\n      >();\n    });\n\n    test('with value getter default', () => {\n      expectTypeOf(exactOptionalAsync(string(), () => 'foo')).toEqualTypeOf<\n        ExactOptionalSchemaAsync<StringSchema<undefined>, () => string>\n      >();\n    });\n\n    test('with async value getter default', () => {\n      expectTypeOf(\n        exactOptionalAsync(string(), async () => 'foo')\n      ).toEqualTypeOf<\n        ExactOptionalSchemaAsync<StringSchema<undefined>, () => Promise<string>>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema1 = ExactOptionalSchemaAsync<StringSchema<undefined>, undefined>;\n    type Schema2 = ExactOptionalSchemaAsync<StringSchema<undefined>, 'foo'>;\n    type Schema3 = ExactOptionalSchemaAsync<\n      StringSchema<undefined>,\n      () => 'foo'\n    >;\n    type Schema4 = ExactOptionalSchemaAsync<\n      StringSchema<undefined>,\n      () => Promise<'foo'>\n    >;\n    type Schema5 = ExactOptionalSchemaAsync<\n      SchemaWithPipeAsync<\n        [StringSchema<undefined>, TransformActionAsync<string, number>]\n      >,\n      'foo'\n    >;\n    type Schema6 = ExactOptionalSchemaAsync<\n      ObjectSchema<\n        { foo: ArraySchema<StringSchema<undefined>, undefined> },\n        undefined\n      >,\n      { foo: string[] }\n    >;\n    type Schema7 = ExactOptionalSchemaAsync<\n      ObjectSchema<\n        { foo: ArraySchema<StringSchema<undefined>, undefined> },\n        undefined\n      >,\n      () => { foo: string[] }\n    >;\n    type Schema8 = ExactOptionalSchemaAsync<\n      ObjectSchema<\n        { foo: ArraySchema<StringSchema<undefined>, undefined> },\n        undefined\n      >,\n      () => Promise<{ foo: string[] }>\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema1>>().toEqualTypeOf<string>();\n      expectTypeOf<InferInput<Schema2>>().toEqualTypeOf<string>();\n      expectTypeOf<InferInput<Schema3>>().toEqualTypeOf<string>();\n      expectTypeOf<InferInput<Schema4>>().toEqualTypeOf<string>();\n      expectTypeOf<InferInput<Schema5>>().toEqualTypeOf<string>();\n      expectTypeOf<InferInput<Schema6>>().toEqualTypeOf<{ foo: string[] }>();\n      expectTypeOf<InferInput<Schema7>>().toEqualTypeOf<{ foo: string[] }>();\n      expectTypeOf<InferInput<Schema8>>().toEqualTypeOf<{ foo: string[] }>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema1>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema2>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema3>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema4>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema5>>().toEqualTypeOf<number>();\n      expectTypeOf<InferOutput<Schema6>>().toEqualTypeOf<{ foo: string[] }>();\n      expectTypeOf<InferOutput<Schema7>>().toEqualTypeOf<{ foo: string[] }>();\n      expectTypeOf<InferOutput<Schema8>>().toEqualTypeOf<{ foo: string[] }>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema1>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema2>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema3>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema4>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema5>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema6>>().toEqualTypeOf<\n        ObjectIssue | ArrayIssue | StringIssue\n      >();\n      expectTypeOf<InferIssue<Schema7>>().toEqualTypeOf<\n        ObjectIssue | ArrayIssue | StringIssue\n      >();\n      expectTypeOf<InferIssue<Schema8>>().toEqualTypeOf<\n        ObjectIssue | ArrayIssue | StringIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/exactOptional/exactOptionalAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  expectNoSchemaIssueAsync,\n  expectSchemaIssueAsync,\n} from '../../vitest/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport {\n  exactOptionalAsync,\n  type ExactOptionalSchemaAsync,\n} from './exactOptionalAsync.ts';\n\ndescribe('exactOptionalAsync', () => {\n  describe('should return schema object', () => {\n    const baseSchema: Omit<\n      ExactOptionalSchemaAsync<StringSchema<undefined>, string>,\n      'default'\n    > = {\n      kind: 'schema',\n      type: 'exact_optional',\n      reference: exactOptionalAsync,\n      expects: 'string',\n      wrapped: {\n        ...string(),\n        '~standard': {\n          version: 1,\n          vendor: 'valibot',\n          validate: expect.any(Function),\n        },\n        '~run': expect.any(Function),\n      },\n      async: true,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined default', () => {\n      const expected: ExactOptionalSchemaAsync<\n        StringSchema<undefined>,\n        undefined\n      > = {\n        ...baseSchema,\n        default: undefined,\n      };\n      expect(exactOptionalAsync(string())).toStrictEqual(expected);\n      expect(exactOptionalAsync(string(), undefined)).toStrictEqual(expected);\n    });\n\n    test('with value default', () => {\n      expect(exactOptionalAsync(string(), 'foo')).toStrictEqual({\n        ...baseSchema,\n        default: 'foo',\n      } satisfies ExactOptionalSchemaAsync<StringSchema<undefined>, 'foo'>);\n    });\n\n    test('with value getter default', () => {\n      const getter = () => 'foo';\n      expect(exactOptionalAsync(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies ExactOptionalSchemaAsync<\n        StringSchema<undefined>,\n        typeof getter\n      >);\n    });\n\n    test('with async value getter default', () => {\n      const getter = async () => 'foo';\n      expect(exactOptionalAsync(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies ExactOptionalSchemaAsync<\n        StringSchema<undefined>,\n        typeof getter\n      >);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = exactOptionalAsync(string());\n\n    test('for wrapper type', async () => {\n      await expectNoSchemaIssueAsync(schema, ['', 'foo', '#$%']);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = exactOptionalAsync(string('message'));\n    const baseIssue: Omit<StringIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'string',\n      expected: 'string',\n      message: 'message',\n    };\n\n    test('for invalid wrapper type', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [123, true, {}]);\n    });\n\n    test('for null', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [null]);\n    });\n\n    test('for undefined', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [undefined]);\n    });\n  });\n\n  describe('should return dataset without default', () => {\n    test('for undefined default', async () => {\n      await expectNoSchemaIssueAsync(exactOptionalAsync(string()), ['foo']);\n      await expectNoSchemaIssueAsync(exactOptionalAsync(string(), undefined), [\n        'foo',\n      ]);\n    });\n\n    test('for wrapper type', async () => {\n      await expectNoSchemaIssueAsync(exactOptionalAsync(string(), 'foo'), [\n        '',\n        'bar',\n        '#$%',\n      ]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/exactOptional/exactOptionalAsync.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  DefaultAsync,\n  InferInput,\n  InferIssue,\n  InferOutput,\n} from '../../types/index.ts';\nimport { _getStandardProps } from '../../utils/index.ts';\nimport type { exactOptional } from './exactOptional.ts';\n\n/**\n * Exact optional schema async interface.\n */\nexport interface ExactOptionalSchemaAsync<\n  TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  TDefault extends DefaultAsync<TWrapped, never>,\n> extends BaseSchemaAsync<\n    InferInput<TWrapped>,\n    InferOutput<TWrapped>,\n    InferIssue<TWrapped>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'exact_optional';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof exactOptional | typeof exactOptionalAsync;\n  /**\n   * The expected property.\n   */\n  readonly expects: TWrapped['expects'];\n  /**\n   * The wrapped schema.\n   */\n  readonly wrapped: TWrapped;\n  /**\n   * The default value.\n   */\n  readonly default: TDefault;\n}\n\n/**\n * Creates an exact optional schema.\n *\n * @param wrapped The wrapped schema.\n *\n * @returns An exact optional schema.\n */\nexport function exactOptionalAsync<\n  const TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(wrapped: TWrapped): ExactOptionalSchemaAsync<TWrapped, undefined>;\n\n/**\n * Creates an exact optional schema.\n *\n * @param wrapped The wrapped schema.\n * @param default_ The default value.\n *\n * @returns An exact optional schema.\n */\nexport function exactOptionalAsync<\n  const TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TDefault extends DefaultAsync<TWrapped, never>,\n>(\n  wrapped: TWrapped,\n  default_: TDefault\n): ExactOptionalSchemaAsync<TWrapped, TDefault>;\n\n// @__NO_SIDE_EFFECTS__\nexport function exactOptionalAsync(\n  wrapped:\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  default_?: unknown\n): ExactOptionalSchemaAsync<\n  | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n  | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  unknown\n> {\n  return {\n    kind: 'schema',\n    type: 'exact_optional',\n    reference: exactOptionalAsync,\n    expects: wrapped.expects,\n    async: true,\n    wrapped,\n    default: default_,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    async '~run'(dataset, config) {\n      return this.wrapped['~run'](dataset, config);\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/exactOptional/index.ts",
    "content": "export * from './exactOptional.ts';\nexport * from './exactOptionalAsync.ts';\n"
  },
  {
    "path": "library/src/schemas/file/file.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { file, type FileIssue, type FileSchema } from './file.ts';\n\ndescribe('file', () => {\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = FileSchema<undefined>;\n      expectTypeOf(file()).toEqualTypeOf<Schema>();\n      expectTypeOf(file(undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(file('message')).toEqualTypeOf<FileSchema<'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(file(() => 'message')).toEqualTypeOf<\n        FileSchema<() => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = FileSchema<undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<File>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<File>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<FileIssue>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/file/file.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { file, type FileIssue, type FileSchema } from './file.ts';\n\ndescribe('file', () => {\n  describe('should return schema object', () => {\n    const baseSchema: Omit<FileSchema<never>, 'message'> = {\n      kind: 'schema',\n      type: 'file',\n      reference: file,\n      expects: 'File',\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: FileSchema<undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(file()).toStrictEqual(schema);\n      expect(file(undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(file('message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies FileSchema<'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(file(message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies FileSchema<typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = file();\n\n    test('for File objects', () => {\n      expectNoSchemaIssue(schema, [\n        new File([], 'empty.txt'),\n        new File(['foo'], 'foo.jpg'),\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = file('message');\n    const baseIssue: Omit<FileIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'file',\n      expected: 'File',\n      message: 'message',\n    };\n\n    // Special values\n\n    test('for blobs', () => {\n      expectSchemaIssue(schema, baseIssue, [new Blob(), new Blob(['foo'])]);\n    });\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', 'foo', '123']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    test('for arrays', () => {\n      expectSchemaIssue(schema, baseIssue, [[], ['value']]);\n    });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n\n    test('for objects', () => {\n      expectSchemaIssue(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/file/file.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\n\n/**\n * File issue interface.\n */\nexport interface FileIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'file';\n  /**\n   * The expected property.\n   */\n  readonly expected: 'File';\n}\n\n/**\n * File schema interface.\n */\nexport interface FileSchema<\n  TMessage extends ErrorMessage<FileIssue> | undefined,\n> extends BaseSchema<File, File, FileIssue> {\n  /**\n   * The schema type.\n   */\n  readonly type: 'file';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof file;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'File';\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a file schema.\n *\n * @returns A file schema.\n */\nexport function file(): FileSchema<undefined>;\n\n/**\n * Creates a file schema.\n *\n * @param message The error message.\n *\n * @returns A file schema.\n */\nexport function file<\n  const TMessage extends ErrorMessage<FileIssue> | undefined,\n>(message: TMessage): FileSchema<TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function file(\n  message?: ErrorMessage<FileIssue>\n): FileSchema<ErrorMessage<FileIssue> | undefined> {\n  return {\n    kind: 'schema',\n    type: 'file',\n    reference: file,\n    expects: 'File',\n    async: false,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      if (dataset.value instanceof File) {\n        // @ts-expect-error\n        dataset.typed = true;\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n      // @ts-expect-error\n      return dataset as OutputDataset<File, FileIssue>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/file/index.ts",
    "content": "export * from './file.ts';\n"
  },
  {
    "path": "library/src/schemas/function/function.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  function_,\n  type FunctionIssue,\n  type FunctionSchema,\n} from './function.ts';\n\ndescribe('function', () => {\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = FunctionSchema<undefined>;\n      expectTypeOf(function_()).toEqualTypeOf<Schema>();\n      expectTypeOf(function_(undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(function_('message')).toEqualTypeOf<\n        FunctionSchema<'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(function_(() => 'message')).toEqualTypeOf<\n        FunctionSchema<() => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = FunctionSchema<undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<\n        (...args: unknown[]) => unknown\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<\n        (...args: unknown[]) => unknown\n      >();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<FunctionIssue>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/function/function.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport {\n  function_,\n  type FunctionIssue,\n  type FunctionSchema,\n} from './function.ts';\n\ndescribe('function', () => {\n  describe('should return schema object', () => {\n    const baseSchema: Omit<FunctionSchema<never>, 'message'> = {\n      kind: 'schema',\n      type: 'function',\n      reference: function_,\n      expects: 'Function',\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: FunctionSchema<undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(function_()).toStrictEqual(schema);\n      expect(function_(undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(function_('message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies FunctionSchema<'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(function_(message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies FunctionSchema<typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = function_();\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectNoSchemaIssue(schema, [() => {}, function () {}]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = function_('message');\n    const baseIssue: Omit<FunctionIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'function',\n      expected: 'Function',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', 'foo', '123']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    test('for arrays', () => {\n      expectSchemaIssue(schema, baseIssue, [[], ['value']]);\n    });\n\n    test('for objects', () => {\n      expectSchemaIssue(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/function/function.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\n\n/**\n * Function issue interface.\n */\nexport interface FunctionIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'function';\n  /**\n   * The expected property.\n   */\n  readonly expected: 'Function';\n}\n\n/**\n * Function schema interface.\n */\nexport interface FunctionSchema<\n  TMessage extends ErrorMessage<FunctionIssue> | undefined,\n> extends BaseSchema<\n    (...args: unknown[]) => unknown,\n    (...args: unknown[]) => unknown,\n    FunctionIssue\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'function';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof function_;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Function';\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a function schema.\n *\n * @returns A function schema.\n */\nexport function function_(): FunctionSchema<undefined>;\n\n/**\n * Creates a function schema.\n *\n * @param message The error message.\n *\n * @returns A function schema.\n */\nexport function function_<\n  const TMessage extends ErrorMessage<FunctionIssue> | undefined,\n>(message: TMessage): FunctionSchema<TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function function_(\n  message?: ErrorMessage<FunctionIssue>\n): FunctionSchema<ErrorMessage<FunctionIssue> | undefined> {\n  return {\n    kind: 'schema',\n    type: 'function',\n    reference: function_,\n    expects: 'Function',\n    async: false,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      if (typeof dataset.value === 'function') {\n        // @ts-expect-error\n        dataset.typed = true;\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        (...args: unknown[]) => unknown,\n        FunctionIssue\n      >;\n    },\n  };\n}\n\nexport { function_ as function };\n"
  },
  {
    "path": "library/src/schemas/function/index.ts",
    "content": "export * from './function.ts';\n"
  },
  {
    "path": "library/src/schemas/index.ts",
    "content": "export * from './any/index.ts';\nexport * from './array/index.ts';\nexport * from './bigint/index.ts';\nexport * from './blob/index.ts';\nexport * from './boolean/index.ts';\nexport * from './custom/index.ts';\nexport * from './date/index.ts';\nexport * from './enum/index.ts';\nexport * from './exactOptional/index.ts';\nexport * from './file/index.ts';\nexport * from './function/index.ts';\nexport * from './instance/index.ts';\nexport * from './intersect/index.ts';\nexport * from './lazy/index.ts';\nexport * from './literal/index.ts';\nexport * from './looseObject/index.ts';\nexport * from './looseTuple/index.ts';\nexport * from './map/index.ts';\nexport * from './nan/index.ts';\nexport * from './never/index.ts';\nexport * from './nonNullable/index.ts';\nexport * from './nonNullish/index.ts';\nexport * from './nonOptional/index.ts';\nexport * from './null/index.ts';\nexport * from './nullable/index.ts';\nexport * from './nullish/index.ts';\nexport * from './number/index.ts';\nexport * from './object/index.ts';\nexport * from './objectWithRest/index.ts';\nexport * from './optional/index.ts';\nexport * from './picklist/index.ts';\nexport * from './promise/index.ts';\nexport * from './record/index.ts';\nexport * from './set/index.ts';\nexport * from './strictObject/index.ts';\nexport * from './strictTuple/index.ts';\nexport * from './string/index.ts';\nexport * from './symbol/index.ts';\nexport * from './tuple/index.ts';\nexport * from './tupleWithRest/index.ts';\nexport * from './undefined/index.ts';\nexport * from './undefinedable/index.ts';\nexport * from './union/index.ts';\nexport * from './unknown/index.ts';\nexport * from './variant/index.ts';\nexport * from './void/index.ts';\n"
  },
  {
    "path": "library/src/schemas/instance/index.ts",
    "content": "export * from './instance.ts';\n"
  },
  {
    "path": "library/src/schemas/instance/instance.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  instance,\n  type InstanceIssue,\n  type InstanceSchema,\n} from './instance.ts';\n\ndescribe('DateConstructor', () => {\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = InstanceSchema<DateConstructor, undefined>;\n      expectTypeOf(instance(Date)).toEqualTypeOf<Schema>();\n      expectTypeOf(instance(Date, undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(instance(Date, 'message')).toEqualTypeOf<\n        InstanceSchema<DateConstructor, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(instance(Date, () => 'message')).toEqualTypeOf<\n        InstanceSchema<DateConstructor, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = InstanceSchema<DateConstructor, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<Date>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<Date>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<InstanceIssue>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/instance/instance.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport {\n  instance,\n  type InstanceIssue,\n  type InstanceSchema,\n} from './instance.ts';\n\ndescribe('instance', () => {\n  describe('should return schema object', () => {\n    const baseSchema: Omit<\n      InstanceSchema<DateConstructor, never>,\n      'message'\n    > = {\n      kind: 'schema',\n      type: 'instance',\n      reference: instance,\n      expects: 'Date',\n      class: Date,\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: InstanceSchema<DateConstructor, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(instance(Date)).toStrictEqual(schema);\n      expect(instance(Date, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(instance(Date, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies InstanceSchema<DateConstructor, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(instance(Date, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies InstanceSchema<DateConstructor, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = instance(Date);\n\n    test('for valid instances', () => {\n      expectNoSchemaIssue(schema, [new Date(), new Date(123456789)]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = instance(Date, 'message');\n    const baseIssue: Omit<InstanceIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'instance',\n      expected: 'Date',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', 'foo', '123']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    test('for arrays', () => {\n      expectSchemaIssue(schema, baseIssue, [[], ['value']]);\n    });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n\n    test('for objects', () => {\n      expectSchemaIssue(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/instance/instance.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\n\n/**\n * Class type.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type Class = new (...args: any[]) => any;\n\n/**\n * Instance issue interface.\n */\nexport interface InstanceIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'instance';\n  /**\n   * The expected property.\n   */\n  readonly expected: string;\n}\n\n/**\n * Instance schema interface.\n */\nexport interface InstanceSchema<\n  TClass extends Class,\n  TMessage extends ErrorMessage<InstanceIssue> | undefined,\n> extends BaseSchema<\n    InstanceType<TClass>,\n    InstanceType<TClass>,\n    InstanceIssue\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'instance';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof instance;\n  /**\n   * The class of the instance.\n   */\n  readonly class: TClass;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an instance schema.\n *\n * @param class_ The class of the instance.\n *\n * @returns An instance schema.\n */\nexport function instance<TClass extends Class>(\n  class_: TClass\n): InstanceSchema<TClass, undefined>;\n\n/**\n * Creates an instance schema.\n *\n * @param class_ The class of the instance.\n * @param message The error message.\n *\n * @returns An instance schema.\n */\nexport function instance<\n  TClass extends Class,\n  const TMessage extends ErrorMessage<InstanceIssue> | undefined,\n>(class_: TClass, message: TMessage): InstanceSchema<TClass, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function instance(\n  class_: Class,\n  message?: ErrorMessage<InstanceIssue>\n): InstanceSchema<Class, ErrorMessage<InstanceIssue> | undefined> {\n  return {\n    kind: 'schema',\n    type: 'instance',\n    reference: instance,\n    expects: class_.name,\n    async: false,\n    class: class_,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      if (dataset.value instanceof this.class) {\n        // @ts-expect-error\n        dataset.typed = true;\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n      // @ts-expect-error\n      return dataset as OutputDataset<InstanceType<Class>, InstanceIssue>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/intersect/index.ts",
    "content": "export * from './intersect.ts';\nexport * from './intersectAsync.ts';\nexport type {\n  IntersectIssue,\n  IntersectOptions,\n  IntersectOptionsAsync,\n} from './types.ts';\n"
  },
  {
    "path": "library/src/schemas/intersect/intersect.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { array, type ArrayIssue } from '../array/index.ts';\nimport { number, type NumberIssue } from '../number/index.ts';\nimport { object, type ObjectIssue } from '../object/index.ts';\nimport { optional } from '../optional/optional.ts';\nimport { string, type StringIssue } from '../string/index.ts';\nimport { intersect, type IntersectSchema } from './intersect.ts';\nimport type { IntersectIssue } from './types.ts';\n\ndescribe('intersect', () => {\n  const options = [\n    array(object({ key1: string() })),\n    array(object({ key2: optional(number(), 123) })),\n  ] as const;\n  type Options = typeof options;\n\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = IntersectSchema<Options, undefined>;\n      expectTypeOf(intersect(options)).toEqualTypeOf<Schema>();\n      expectTypeOf(intersect(options, undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(intersect(options, 'message')).toEqualTypeOf<\n        IntersectSchema<Options, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(intersect(options, () => 'message')).toEqualTypeOf<\n        IntersectSchema<Options, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = IntersectSchema<Options, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<\n        { key1: string }[] & { key2?: number | undefined }[]\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<\n        { key1: string }[] & { key2: number }[]\n      >();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        IntersectIssue | ArrayIssue | ObjectIssue | StringIssue | NumberIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/intersect/intersect.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { minLength, minValue, transform } from '../../actions/index.ts';\nimport { pipe } from '../../methods/index.ts';\nimport type {\n  FailureDataset,\n  InferIssue,\n  InferOutput,\n  PartialDataset,\n} from '../../types/index.ts';\nimport { expectNoSchemaIssue } from '../../vitest/index.ts';\nimport { array } from '../array/array.ts';\nimport { date } from '../date/index.ts';\nimport { number } from '../number/index.ts';\nimport { object } from '../object/index.ts';\nimport { string } from '../string/index.ts';\nimport { intersect, type IntersectSchema } from './intersect.ts';\n\ndescribe('intersect', () => {\n  describe('should return schema object', () => {\n    const options = [\n      object({ key1: string() }),\n      object({ key2: number() }),\n    ] as const;\n    type Options = typeof options;\n    const baseSchema: Omit<IntersectSchema<Options, never>, 'message'> = {\n      kind: 'schema',\n      type: 'intersect',\n      reference: intersect,\n      expects: 'Object',\n      options,\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: IntersectSchema<Options, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(intersect(options)).toStrictEqual(schema);\n      expect(intersect(options, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(intersect(options, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies IntersectSchema<Options, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(intersect(options, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies IntersectSchema<Options, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for valid values', () => {\n      expectNoSchemaIssue(\n        intersect([\n          array(object({ key1: string(), key2: number() })),\n          array(object({ key3: date(), key4: array(string()) })),\n        ]),\n        [\n          [\n            { key1: 'foo', key2: 123, key3: new Date(), key4: ['foo', 'bar'] },\n            { key1: 'bar', key2: -456, key3: new Date(), key4: ['baz'] },\n          ],\n        ]\n      );\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      path: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    test('for empty options', () => {\n      const schema = intersect([]);\n      const input = 'foo';\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'intersect',\n            input,\n            expected: 'never',\n            received: `\"${input}\"`,\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('with untyped output', () => {\n      const schema = intersect([string(), number()]);\n      const input = 'foo';\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input,\n            expected: 'number',\n            received: `\"${input}\"`,\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('with typed output', () => {\n      const schema = intersect([\n        object({ key1: pipe(string(), minLength(10)) }),\n        object({ key2: pipe(number(), minValue(100)) }),\n      ]);\n      type Schema = typeof schema;\n      const input = { key1: 'foo', key2: -123 };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: true,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'validation',\n            type: 'min_length',\n            input: input.key1,\n            expected: '>=10',\n            received: '3',\n            requirement: 10,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key1',\n                value: input.key1,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'validation',\n            type: 'min_value',\n            input: input.key2,\n            expected: '>=100',\n            received: '-123',\n            requirement: 100,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key2',\n                value: input.key2,\n              },\n            ],\n          },\n        ],\n      } satisfies PartialDataset<InferOutput<Schema>, InferIssue<Schema>>);\n    });\n\n    test('with abort early', () => {\n      const schema = intersect([\n        object({ key1: pipe(string(), minLength(10)) }),\n        object({ key2: pipe(number(), minValue(100)) }),\n      ]);\n      const input = { key1: 'foo', key2: -123 };\n      expect(\n        schema['~run']({ value: input }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            abortEarly: true,\n            kind: 'validation',\n            type: 'min_length',\n            input: input.key1,\n            expected: '>=10',\n            received: '3',\n            requirement: 10,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key1',\n                value: input.key1,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for merge error', () => {\n      const schema = intersect([\n        object({ key: string() }),\n        object({\n          key: pipe(\n            string(),\n            transform((input) => input.length)\n          ),\n        }),\n      ]);\n      const input = { key: 'foo' };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'intersect',\n            input: input,\n            expected: 'Object',\n            received: 'unknown',\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/intersect/intersect.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  InferIssue,\n  OutputDataset,\n} from '../../types/index.ts';\nimport {\n  _addIssue,\n  _getStandardProps,\n  _joinExpects,\n} from '../../utils/index.ts';\nimport type {\n  InferIntersectInput,\n  InferIntersectOutput,\n  IntersectIssue,\n  IntersectOptions,\n} from './types.ts';\nimport { _merge } from './utils/index.ts';\n\n/**\n * Intersect schema interface.\n */\nexport interface IntersectSchema<\n  TOptions extends IntersectOptions,\n  TMessage extends ErrorMessage<IntersectIssue> | undefined,\n> extends BaseSchema<\n    InferIntersectInput<TOptions>,\n    InferIntersectOutput<TOptions>,\n    IntersectIssue | InferIssue<TOptions[number]>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'intersect';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof intersect;\n  /**\n   * The intersect options.\n   */\n  readonly options: TOptions;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an intersect schema.\n *\n * @param options The intersect options.\n *\n * @returns An intersect schema.\n */\nexport function intersect<const TOptions extends IntersectOptions>(\n  options: TOptions\n): IntersectSchema<TOptions, undefined>;\n\n/**\n * Creates an intersect schema.\n *\n * @param options The intersect options.\n * @param message The error message.\n *\n * @returns An intersect schema.\n */\nexport function intersect<\n  const TOptions extends IntersectOptions,\n  const TMessage extends ErrorMessage<IntersectIssue> | undefined,\n>(options: TOptions, message: TMessage): IntersectSchema<TOptions, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function intersect(\n  options: IntersectOptions,\n  message?: ErrorMessage<IntersectIssue>\n): IntersectSchema<IntersectOptions, ErrorMessage<IntersectIssue> | undefined> {\n  return {\n    kind: 'schema',\n    type: 'intersect',\n    reference: intersect,\n    expects: _joinExpects(\n      options.map((option) => option.expects),\n      '&'\n    ),\n    async: false,\n    options,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      // Parse input with schema of options, if not empty\n      if (this.options.length) {\n        // Get input value from dataset\n        const input = dataset.value;\n\n        // Create variable to store outputs\n        let outputs: unknown[] | undefined;\n\n        // Set typed initially to `true`\n        // @ts-expect-error\n        dataset.typed = true;\n\n        // Parse schema of each option and collect outputs\n        for (const schema of this.options) {\n          const optionDataset = schema['~run']({ value: input }, config);\n\n          // If there are issues, capture them\n          if (optionDataset.issues) {\n            if (dataset.issues) {\n              // @ts-expect-error\n              dataset.issues.push(...optionDataset.issues);\n            } else {\n              // @ts-expect-error\n              dataset.issues = optionDataset.issues;\n            }\n\n            // If necessary, abort early\n            if (config.abortEarly) {\n              dataset.typed = false;\n              break;\n            }\n          }\n\n          // If not typed, set typed to `false`\n          if (!optionDataset.typed) {\n            dataset.typed = false;\n          }\n\n          // Add output of option if necessary\n          if (dataset.typed) {\n            if (outputs) {\n              outputs.push(optionDataset.value);\n            } else {\n              outputs = [optionDataset.value];\n            }\n          }\n        }\n\n        // If outputs are typed, merge them\n        if (dataset.typed) {\n          // Set first output as initial output\n          dataset.value = outputs![0];\n\n          // Merge outputs into one final output\n          for (let index = 1; index < outputs!.length; index++) {\n            const mergeDataset = _merge(dataset.value, outputs![index]);\n\n            // If outputs can't be merged, add issue and break loop\n            if (mergeDataset.issue) {\n              _addIssue(this, 'type', dataset, config, {\n                received: 'unknown',\n              });\n              break;\n            }\n\n            // Otherwise, set merged output\n            dataset.value = mergeDataset.value;\n          }\n        }\n\n        // Otherwise, add intersect issue\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        never,\n        IntersectIssue | BaseIssue<unknown>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/intersect/intersectAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { array, arrayAsync, type ArrayIssue } from '../array/index.ts';\nimport { number, type NumberIssue } from '../number/index.ts';\nimport { object, objectAsync, type ObjectIssue } from '../object/index.ts';\nimport { optional } from '../optional/optional.ts';\nimport { string, type StringIssue } from '../string/index.ts';\nimport { intersectAsync, type IntersectSchemaAsync } from './intersectAsync.ts';\nimport type { IntersectIssue } from './types.ts';\n\ndescribe('intersectAsync', () => {\n  const options = [\n    array(object({ key1: string() })),\n    arrayAsync(objectAsync({ key2: optional(number(), 123) })),\n  ] as const;\n  type Options = typeof options;\n\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = IntersectSchemaAsync<Options, undefined>;\n      expectTypeOf(intersectAsync(options)).toEqualTypeOf<Schema>();\n      expectTypeOf(intersectAsync(options, undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(intersectAsync(options, 'message')).toEqualTypeOf<\n        IntersectSchemaAsync<Options, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(intersectAsync(options, () => 'message')).toEqualTypeOf<\n        IntersectSchemaAsync<Options, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = IntersectSchemaAsync<Options, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<\n        { key1: string }[] & { key2?: number | undefined }[]\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<\n        { key1: string }[] & { key2: number }[]\n      >();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        IntersectIssue | ArrayIssue | ObjectIssue | StringIssue | NumberIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/intersect/intersectAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { minLength, minValue, transform } from '../../actions/index.ts';\nimport { pipe } from '../../methods/index.ts';\nimport type {\n  FailureDataset,\n  InferIssue,\n  InferOutput,\n  PartialDataset,\n} from '../../types/index.ts';\nimport { expectNoSchemaIssueAsync } from '../../vitest/index.ts';\nimport { array } from '../array/array.ts';\nimport { arrayAsync } from '../array/arrayAsync.ts';\nimport { date } from '../date/index.ts';\nimport { number } from '../number/index.ts';\nimport { object, objectAsync } from '../object/index.ts';\nimport { string } from '../string/index.ts';\nimport { intersectAsync, type IntersectSchemaAsync } from './intersectAsync.ts';\n\ndescribe('intersectAsync', () => {\n  describe('should return schema object', () => {\n    const options = [\n      object({ key1: string() }),\n      objectAsync({ key2: number() }),\n    ] as const;\n    type Options = typeof options;\n    const baseSchema: Omit<IntersectSchemaAsync<Options, never>, 'message'> = {\n      kind: 'schema',\n      type: 'intersect',\n      reference: intersectAsync,\n      expects: 'Object',\n      options,\n      async: true,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: IntersectSchemaAsync<Options, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(intersectAsync(options)).toStrictEqual(schema);\n      expect(intersectAsync(options, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(intersectAsync(options, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies IntersectSchemaAsync<Options, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(intersectAsync(options, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies IntersectSchemaAsync<Options, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for valid values', async () => {\n      await expectNoSchemaIssueAsync(\n        intersectAsync([\n          array(object({ key1: string(), key2: number() })),\n          arrayAsync(objectAsync({ key3: date(), key4: array(string()) })),\n        ]),\n        [\n          [\n            { key1: 'foo', key2: 123, key3: new Date(), key4: ['foo', 'bar'] },\n            { key1: 'bar', key2: -456, key3: new Date(), key4: ['baz'] },\n          ],\n        ]\n      );\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      path: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    test('for empty options', async () => {\n      const schema = intersectAsync([]);\n      const input = 'foo';\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'intersect',\n            input,\n            expected: 'never',\n            received: `\"${input}\"`,\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('with untyped output', async () => {\n      const schema = intersectAsync([string(), number()]);\n      const input = 'foo';\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input,\n            expected: 'number',\n            received: `\"${input}\"`,\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('with typed output', async () => {\n      const schema = intersectAsync([\n        object({ key1: pipe(string(), minLength(10)) }),\n        objectAsync({ key2: pipe(number(), minValue(100)) }),\n      ]);\n      type Schema = typeof schema;\n      const input = { key1: 'foo', key2: -123 };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: true,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'validation',\n            type: 'min_length',\n            input: input.key1,\n            expected: '>=10',\n            received: '3',\n            requirement: 10,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key1',\n                value: input.key1,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'validation',\n            type: 'min_value',\n            input: input.key2,\n            expected: '>=100',\n            received: '-123',\n            requirement: 100,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key2',\n                value: input.key2,\n              },\n            ],\n          },\n        ],\n      } satisfies PartialDataset<InferOutput<Schema>, InferIssue<Schema>>);\n    });\n\n    test('with abort early', async () => {\n      const schema = intersectAsync([\n        object({ key1: pipe(string(), minLength(10)) }),\n        objectAsync({ key2: pipe(number(), minValue(100)) }),\n      ]);\n      const input = { key1: 'foo', key2: -123 };\n      expect(\n        await schema['~run']({ value: input }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            abortEarly: true,\n            kind: 'validation',\n            type: 'min_length',\n            input: input.key1,\n            expected: '>=10',\n            received: '3',\n            requirement: 10,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key1',\n                value: input.key1,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for merge error', async () => {\n      const schema = intersectAsync([\n        object({ key: string() }),\n        objectAsync({\n          key: pipe(\n            string(),\n            transform((input) => input.length)\n          ),\n        }),\n      ]);\n      const input = { key: 'foo' };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'intersect',\n            input: input,\n            expected: 'Object',\n            received: 'unknown',\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/intersect/intersectAsync.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchemaAsync,\n  ErrorMessage,\n  InferIssue,\n  OutputDataset,\n} from '../../types/index.ts';\nimport {\n  _addIssue,\n  _getStandardProps,\n  _joinExpects,\n} from '../../utils/index.ts';\nimport type { intersect } from './intersect.ts';\nimport type {\n  InferIntersectInput,\n  InferIntersectOutput,\n  IntersectIssue,\n  IntersectOptionsAsync,\n} from './types.ts';\nimport { _merge } from './utils/index.ts';\n\n/**\n * Intersect schema async interface.\n */\nexport interface IntersectSchemaAsync<\n  TOptions extends IntersectOptionsAsync,\n  TMessage extends ErrorMessage<IntersectIssue> | undefined,\n> extends BaseSchemaAsync<\n    InferIntersectInput<TOptions>,\n    InferIntersectOutput<TOptions>,\n    IntersectIssue | InferIssue<TOptions[number]>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'intersect';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof intersect | typeof intersectAsync;\n  /**\n   * The intersect options.\n   */\n  readonly options: TOptions;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an intersect schema.\n *\n * @param options The intersect options.\n *\n * @returns An intersect schema.\n */\nexport function intersectAsync<const TOptions extends IntersectOptionsAsync>(\n  options: TOptions\n): IntersectSchemaAsync<TOptions, undefined>;\n\n/**\n * Creates an intersect schema.\n *\n * @param options The intersect options.\n * @param message The error message.\n *\n * @returns An intersect schema.\n */\nexport function intersectAsync<\n  const TOptions extends IntersectOptionsAsync,\n  const TMessage extends ErrorMessage<IntersectIssue> | undefined,\n>(\n  options: TOptions,\n  message: TMessage\n): IntersectSchemaAsync<TOptions, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function intersectAsync(\n  options: IntersectOptionsAsync,\n  message?: ErrorMessage<IntersectIssue>\n): IntersectSchemaAsync<\n  IntersectOptionsAsync,\n  ErrorMessage<IntersectIssue> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'intersect',\n    reference: intersectAsync,\n    expects: _joinExpects(\n      options.map((option) => option.expects),\n      '&'\n    ),\n    async: true,\n    options,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    async '~run'(dataset, config) {\n      // Parse input with schema of options, if not empty\n      if (this.options.length) {\n        // Get input value from dataset\n        const input = dataset.value;\n\n        // Create variable to store outputs\n        let outputs: unknown[] | undefined;\n\n        // Set typed initially to `true`\n        // @ts-expect-error\n        dataset.typed = true;\n\n        // Parse schema of each option async\n        const optionDatasets = await Promise.all(\n          this.options.map((schema) => schema['~run']({ value: input }, config))\n        );\n\n        // Collect outputs of option datasets\n        for (const optionDataset of optionDatasets) {\n          // If there are issues, capture them\n          if (optionDataset.issues) {\n            if (dataset.issues) {\n              // @ts-expect-error\n              dataset.issues.push(...optionDataset.issues);\n            } else {\n              // @ts-expect-error\n              dataset.issues = optionDataset.issues;\n            }\n\n            // If necessary, abort early\n            if (config.abortEarly) {\n              dataset.typed = false;\n              break;\n            }\n          }\n\n          // If not typed, set typed to `false`\n          if (!optionDataset.typed) {\n            dataset.typed = false;\n          }\n\n          // Add output of option if necessary\n          if (dataset.typed) {\n            if (outputs) {\n              outputs.push(optionDataset.value);\n            } else {\n              outputs = [optionDataset.value];\n            }\n          }\n        }\n\n        // If outputs are typed, merge them\n        if (dataset.typed) {\n          // Set first output as initial output\n          dataset.value = outputs![0];\n\n          // Merge outputs into one final output\n          for (let index = 1; index < outputs!.length; index++) {\n            const mergeDataset = _merge(dataset.value, outputs![index]);\n\n            // If outputs can't be merged, add issue and break loop\n            if (mergeDataset.issue) {\n              _addIssue(this, 'type', dataset, config, {\n                received: 'unknown',\n              });\n              break;\n            }\n\n            // Otherwise, set merged output\n            dataset.value = mergeDataset.value;\n          }\n        }\n\n        // Otherwise, add intersect issue\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        never,\n        IntersectIssue | BaseIssue<unknown>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/intersect/types.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  MaybeReadonly,\n} from '../../types/index.ts';\n\n/**\n * Intersect issue interface.\n */\nexport interface IntersectIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'intersect';\n  /**\n   * The expected property.\n   */\n  readonly expected: string;\n}\n\n/**\n * Intersect options type.\n */\nexport type IntersectOptions = MaybeReadonly<\n  BaseSchema<unknown, unknown, BaseIssue<unknown>>[]\n>;\n\n/**\n * Intersect options async type.\n */\nexport type IntersectOptionsAsync = MaybeReadonly<\n  (\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n  )[]\n>;\n\n/**\n * Infer option type.\n */\ntype InferOption<TInput, TOutput> =\n  | BaseSchema<TInput, TOutput, BaseIssue<unknown>>\n  | BaseSchemaAsync<TInput, TOutput, BaseIssue<unknown>>;\n\n/**\n * Infer intersect input type.\n */\nexport type InferIntersectInput<\n  TOptions extends IntersectOptions | IntersectOptionsAsync,\n> = TOptions extends readonly [\n  InferOption<infer TInput, unknown>,\n  ...infer TRest,\n]\n  ? TRest extends readonly [\n      InferOption<unknown, unknown>,\n      ...InferOption<unknown, unknown>[],\n    ]\n    ? TInput & InferIntersectInput<TRest>\n    : TInput\n  : never;\n\n/**\n * Infer intersect output type.\n */\nexport type InferIntersectOutput<\n  TOptions extends IntersectOptions | IntersectOptionsAsync,\n> = TOptions extends readonly [\n  InferOption<unknown, infer TOutput>,\n  ...infer TRest,\n]\n  ? TRest extends readonly [\n      InferOption<unknown, unknown>,\n      ...InferOption<unknown, unknown>[],\n    ]\n    ? TOutput & InferIntersectOutput<TRest>\n    : TOutput\n  : never;\n"
  },
  {
    "path": "library/src/schemas/intersect/utils/_merge/_merge.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { _merge } from './_merge.ts';\n\ndescribe('_merge', () => {\n  describe('should return dataset with value', () => {\n    test('for valid primitives', () => {\n      const date = new Date();\n      expect(_merge(1, 1)).toStrictEqual({ value: 1 });\n      expect(_merge('foo', 'foo')).toStrictEqual({ value: 'foo' });\n      expect(_merge(date, date)).toStrictEqual({ value: date });\n      expect(_merge(new Date(+date), new Date(+date))).toStrictEqual({\n        value: date,\n      });\n    });\n\n    test('for valid dates', () => {\n      const date = new Date();\n      expect(_merge(date, date)).toStrictEqual({ value: date });\n      expect(_merge(new Date(+date), new Date(+date))).toStrictEqual({\n        value: date,\n      });\n    });\n\n    test('for valid objects', () => {\n      expect(_merge({ key: 1 }, { key: 1 })).toStrictEqual({\n        value: { key: 1 },\n      });\n      expect(_merge({ a: 1 }, { b: 2 })).toStrictEqual({\n        value: { a: 1, b: 2 },\n      });\n      expect(_merge({ key: { a: 1 } }, { key: { b: 2 } })).toStrictEqual({\n        value: { key: { a: 1, b: 2 } },\n      });\n    });\n\n    test('for valid arrays', () => {\n      expect(_merge([1, 2, 3], [1, 2, 3])).toStrictEqual({ value: [1, 2, 3] });\n      expect(_merge([{ a: 1 }, { a: 1 }], [{ b: 2 }, { b: 2 }])).toStrictEqual({\n        value: [\n          { a: 1, b: 2 },\n          { a: 1, b: 2 },\n        ],\n      });\n    });\n  });\n\n  describe('should return dataset with issue', () => {\n    test('for invalid primitives', () => {\n      expect(_merge(1, 2)).toStrictEqual({ issue: true });\n      expect(_merge('foo', 'bar')).toStrictEqual({ issue: true });\n      expect(_merge(1, 'foo')).toStrictEqual({ issue: true });\n    });\n\n    test('for invalid dates', () => {\n      const date = new Date();\n      expect(_merge(date, new Date(+date + 1234))).toStrictEqual({\n        issue: true,\n      });\n    });\n\n    test('for invalid objects', () => {\n      expect(_merge({ key: 1 }, { key: '1' })).toStrictEqual({ issue: true });\n    });\n\n    test('for invalid arrays', () => {\n      expect(_merge([1], [1, 2])).toStrictEqual({ issue: true });\n      expect(_merge([1], ['1'])).toStrictEqual({ issue: true });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/intersect/utils/_merge/_merge.ts",
    "content": "/**\n * Merge dataset type.\n */\ntype MergeDataset =\n  | { value: unknown; issue?: undefined }\n  | { value?: undefined; issue: true };\n\n/**\n * Merges two values into one single output.\n *\n * @param value1 First value.\n * @param value2 Second value.\n *\n * @returns The merge dataset.\n *\n * @internal\n */\n// @__NO_SIDE_EFFECTS__\nexport function _merge(value1: unknown, value2: unknown): MergeDataset {\n  // Continue if data type of values match\n  if (typeof value1 === typeof value2) {\n    // Return first value if both are equal\n    if (\n      value1 === value2 ||\n      (value1 instanceof Date && value2 instanceof Date && +value1 === +value2)\n    ) {\n      return { value: value1 };\n    }\n\n    // Return deeply merged object\n    if (\n      value1 &&\n      value2 &&\n      value1.constructor === Object &&\n      value2.constructor === Object\n    ) {\n      // Deeply merge entries of `value2` into `value1`\n      for (const key in value2) {\n        // @ts-expect-error\n        if (key in value1) {\n          // @ts-expect-error\n          const dataset = _merge(value1[key], value2[key]);\n\n          // If dataset has issue, return it\n          if (dataset.issue) {\n            return dataset;\n          }\n\n          // Otherwise, replace merged entry\n          // @ts-expect-error\n          value1[key] = dataset.value;\n\n          // Otherwise, just add entry\n        } else {\n          // @ts-expect-error\n          value1[key] = value2[key];\n        }\n      }\n\n      // Return deeply merged object\n      return { value: value1 };\n    }\n\n    // Return deeply merged array\n    if (Array.isArray(value1) && Array.isArray(value2)) {\n      // Continue if arrays have same length\n      if (value1.length === value2.length) {\n        // Merge item of `value2` into `value1`\n        for (let index = 0; index < value1.length; index++) {\n          const dataset = _merge(value1[index], value2[index]);\n\n          // If dataset has issue, return it\n          if (dataset.issue) {\n            return dataset;\n          }\n\n          // Otherwise, replace merged items\n          value1[index] = dataset.value;\n        }\n\n        // Return deeply merged array\n        return { value: value1 };\n      }\n    }\n  }\n\n  // Otherwise, return that values can't be merged\n  return { issue: true };\n}\n"
  },
  {
    "path": "library/src/schemas/intersect/utils/_merge/index.ts",
    "content": "export * from './_merge.ts';\n"
  },
  {
    "path": "library/src/schemas/intersect/utils/index.ts",
    "content": "export * from './_merge/index.ts';\n"
  },
  {
    "path": "library/src/schemas/lazy/index.ts",
    "content": "export * from './lazy.ts';\nexport * from './lazyAsync.ts';\n"
  },
  {
    "path": "library/src/schemas/lazy/lazy.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { lazy, type LazySchema } from './lazy.ts';\n\ndescribe('lazy', () => {\n  test('should return schema object', () => {\n    expectTypeOf(lazy(() => string())).toEqualTypeOf<\n      LazySchema<StringSchema<undefined>>\n    >();\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = LazySchema<StringSchema<undefined>>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<StringIssue>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/lazy/lazy.test.ts",
    "content": "import { describe, expect, test, vi } from 'vitest';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { lazy, type LazySchema } from './lazy.ts';\n\ndescribe('lazy', () => {\n  test('should return schema object', () => {\n    const getter = () => string();\n    expect(lazy(getter)).toStrictEqual({\n      kind: 'schema',\n      type: 'lazy',\n      reference: lazy,\n      expects: 'unknown',\n      getter,\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    } satisfies LazySchema<StringSchema<undefined>>);\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = lazy(() => string());\n\n    test('for strings', () => {\n      expectNoSchemaIssue(schema, ['', 'foo', '123']);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = lazy(() => string('message'));\n    const baseIssue: Omit<StringIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'string',\n      expected: 'string',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    test('for arrays', () => {\n      expectSchemaIssue(schema, baseIssue, [[], ['value']]);\n    });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n\n    test('for objects', () => {\n      expectSchemaIssue(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n\n  test('should call getter with input', () => {\n    const getter = vi.fn(() => string());\n    const dataset = { value: 'foo' };\n    lazy(getter)['~run'](dataset, {});\n    expect(getter).toHaveBeenCalledWith(dataset.value);\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/lazy/lazy.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  InferInput,\n  InferIssue,\n  InferOutput,\n} from '../../types/index.ts';\nimport { _getStandardProps } from '../../utils/index.ts';\n\n/**\n * Lazy schema interface.\n */\nexport interface LazySchema<\n  TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n> extends BaseSchema<\n    InferInput<TWrapped>,\n    InferOutput<TWrapped>,\n    InferIssue<TWrapped>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'lazy';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof lazy;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'unknown';\n  /**\n   * The schema getter.\n   */\n  readonly getter: (input: unknown) => TWrapped;\n}\n\n/**\n * Creates a lazy schema.\n *\n * @param getter The schema getter.\n *\n * @returns A lazy schema.\n */\n// @__NO_SIDE_EFFECTS__\nexport function lazy<\n  const TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n>(getter: (input: unknown) => TWrapped): LazySchema<TWrapped> {\n  return {\n    kind: 'schema',\n    type: 'lazy',\n    reference: lazy,\n    expects: 'unknown',\n    async: false,\n    getter,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      return this.getter(dataset.value)['~run'](dataset, config);\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/lazy/lazyAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { lazyAsync, type LazySchemaAsync } from './lazyAsync.ts';\n\ndescribe('lazyAsync', () => {\n  test('should return schema object', () => {\n    expectTypeOf(lazyAsync(async () => string())).toEqualTypeOf<\n      LazySchemaAsync<StringSchema<undefined>>\n    >();\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = LazySchemaAsync<StringSchema<undefined>>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<StringIssue>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/lazy/lazyAsync.test.ts",
    "content": "import { describe, expect, test, vi } from 'vitest';\nimport {\n  expectNoSchemaIssueAsync,\n  expectSchemaIssueAsync,\n} from '../../vitest/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { lazyAsync, type LazySchemaAsync } from './lazyAsync.ts';\n\ndescribe('lazyAsync', () => {\n  test('should return schema object', () => {\n    const getter = async () => string();\n    expect(lazyAsync(getter)).toStrictEqual({\n      kind: 'schema',\n      type: 'lazy',\n      reference: lazyAsync,\n      expects: 'unknown',\n      getter,\n      async: true,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    } satisfies LazySchemaAsync<StringSchema<undefined>>);\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = lazyAsync(() => string());\n\n    test('for strings', async () => {\n      await expectNoSchemaIssueAsync(schema, ['', 'foo', '123']);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = lazyAsync(() => string('message'));\n    const baseIssue: Omit<StringIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'string',\n      expected: 'string',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [undefined]);\n    });\n\n    test('for symbols', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        Symbol(),\n        Symbol('foo'),\n      ]);\n    });\n\n    // Complex types\n\n    test('for arrays', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [[], ['value']]);\n    });\n\n    test('for functions', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        () => {},\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        function () {},\n      ]);\n    });\n\n    test('for objects', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n\n  test('should call getter with input', () => {\n    const getter = vi.fn(() => string());\n    const dataset = { value: 'foo' };\n    lazyAsync(getter)['~run'](dataset, {});\n    expect(getter).toHaveBeenCalledWith(dataset.value);\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/lazy/lazyAsync.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  InferInput,\n  InferIssue,\n  InferOutput,\n  MaybePromise,\n} from '../../types/index.ts';\nimport { _getStandardProps } from '../../utils/index.ts';\nimport type { lazy } from './lazy.ts';\n\n/**\n * Lazy schema async interface.\n */\nexport interface LazySchemaAsync<\n  TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n> extends BaseSchemaAsync<\n    InferInput<TWrapped>,\n    InferOutput<TWrapped>,\n    InferIssue<TWrapped>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'lazy';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof lazy | typeof lazyAsync;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'unknown';\n  /**\n   * The schema getter.\n   */\n  readonly getter: (input: unknown) => MaybePromise<TWrapped>;\n}\n\n/**\n * Creates a lazy schema.\n *\n * @param getter The schema getter.\n *\n * @returns A lazy schema.\n */\n// @__NO_SIDE_EFFECTS__\nexport function lazyAsync<\n  const TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(\n  getter: (input: unknown) => MaybePromise<TWrapped>\n): LazySchemaAsync<TWrapped> {\n  return {\n    kind: 'schema',\n    type: 'lazy',\n    reference: lazyAsync,\n    expects: 'unknown',\n    async: true,\n    getter,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    async '~run'(dataset, config) {\n      return (await this.getter(dataset.value))['~run'](dataset, config);\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/literal/index.ts",
    "content": "export * from './literal.ts';\n"
  },
  {
    "path": "library/src/schemas/literal/literal.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { literal, type LiteralIssue, type LiteralSchema } from './literal.ts';\n\ndescribe('literal', () => {\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = LiteralSchema<'foo', undefined>;\n      expectTypeOf(literal('foo')).toEqualTypeOf<Schema>();\n      expectTypeOf(literal('foo', undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(literal(123, 'message')).toEqualTypeOf<\n        LiteralSchema<123, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(literal(true, () => 'message')).toEqualTypeOf<\n        LiteralSchema<true, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = LiteralSchema<'foo', undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<'foo'>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<'foo'>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<LiteralIssue>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/literal/literal.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { literal, type LiteralIssue, type LiteralSchema } from './literal.ts';\n\ndescribe('literal', () => {\n  describe('should return schema object', () => {\n    const baseSchema: Omit<LiteralSchema<123, never>, 'message'> = {\n      kind: 'schema',\n      type: 'literal',\n      reference: literal,\n      literal: 123,\n      expects: '123',\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: LiteralSchema<123, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(literal(123)).toStrictEqual(schema);\n      expect(literal(123, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(literal(123, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies LiteralSchema<123, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(literal(123, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies LiteralSchema<123, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for valid bigint literal', () => {\n      expectNoSchemaIssue(literal(-1n), [-1n]);\n      expectNoSchemaIssue(literal(0n), [0n]);\n      expectNoSchemaIssue(literal(123n), [123n]);\n    });\n\n    test('for valid boolean literal', () => {\n      expectNoSchemaIssue(literal(true), [true]);\n      expectNoSchemaIssue(literal(false), [false]);\n    });\n\n    test('for valid number literal', () => {\n      expectNoSchemaIssue(literal(-1), [-1]);\n      expectNoSchemaIssue(literal(0), [0]);\n      expectNoSchemaIssue(literal(123), [123]);\n      expectNoSchemaIssue(literal(45.67), [45.67]);\n    });\n\n    test('for valid string literal', () => {\n      expectNoSchemaIssue(literal(''), ['']);\n      expectNoSchemaIssue(literal('foo'), ['foo']);\n      expectNoSchemaIssue(literal('123'), ['123']);\n    });\n\n    test('for valid symbol literal', () => {\n      const symbol1 = Symbol();\n      expectNoSchemaIssue(literal(symbol1), [symbol1]);\n      const symbol2 = Symbol('foo');\n      expectNoSchemaIssue(literal(symbol2), [symbol2]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const baseIssue: Omit<LiteralIssue, 'input' | 'expected' | 'received'> = {\n      kind: 'schema',\n      type: 'literal',\n      message: 'message',\n    };\n\n    test('for invalid bigint literal', () => {\n      expectSchemaIssue(\n        literal(123n, 'message'),\n        { ...baseIssue, expected: '123' },\n        [\n          -1n,\n          0n,\n          132n,\n          true,\n          false,\n          null,\n          123,\n          undefined,\n          '123',\n          Symbol('123'),\n          {},\n          [],\n          // eslint-disable-next-line @typescript-eslint/no-empty-function\n          () => {},\n        ]\n      );\n    });\n\n    test('for invalid boolean literal', () => {\n      expectSchemaIssue(\n        literal(false, 'message'),\n        { ...baseIssue, expected: 'false' },\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        [0n, true, null, 0, undefined, '', Symbol(), {}, [], () => {}]\n      );\n    });\n\n    test('for invalid number literal', () => {\n      expectSchemaIssue(\n        literal(123, 'message'),\n        { ...baseIssue, expected: '123' },\n        [\n          123n,\n          true,\n          false,\n          null,\n          -123,\n          0,\n          45.67,\n          undefined,\n          '123',\n          Symbol('123'),\n          {},\n          [],\n          // eslint-disable-next-line @typescript-eslint/no-empty-function\n          () => {},\n        ]\n      );\n    });\n\n    test('for invalid string literal', () => {\n      expectSchemaIssue(\n        literal('123', 'message'),\n        { ...baseIssue, expected: '\"123\"' },\n        [\n          123n,\n          true,\n          false,\n          null,\n          -123,\n          undefined,\n          '',\n          'foo',\n          Symbol('123'),\n          {},\n          [],\n          // eslint-disable-next-line @typescript-eslint/no-empty-function\n          () => {},\n        ]\n      );\n    });\n\n    test('for invalid symbol literal', () => {\n      expectSchemaIssue(\n        literal(Symbol('123'), 'message'),\n        { ...baseIssue, expected: 'symbol' },\n        [\n          123n,\n          true,\n          false,\n          null,\n          -123,\n          undefined,\n          '123',\n          Symbol(),\n          {},\n          [],\n          // eslint-disable-next-line @typescript-eslint/no-empty-function\n          () => {},\n        ]\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/literal/literal.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps, _stringify } from '../../utils/index.ts';\n\n/**\n * Literal type.\n */\nexport type Literal = bigint | boolean | number | string | symbol;\n\n/**\n * Literal issue interface.\n */\nexport interface LiteralIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'literal';\n  /**\n   * The expected property.\n   */\n  readonly expected: string;\n}\n\n/**\n * Literal schema interface.\n */\nexport interface LiteralSchema<\n  TLiteral extends Literal,\n  TMessage extends ErrorMessage<LiteralIssue> | undefined,\n> extends BaseSchema<TLiteral, TLiteral, LiteralIssue> {\n  /**\n   * The schema type.\n   */\n  readonly type: 'literal';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof literal;\n  /**\n   * The literal value.\n   */\n  readonly literal: TLiteral;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a literal schema.\n *\n * @param literal_ The literal value.\n *\n * @returns A literal schema.\n */\nexport function literal<const TLiteral extends Literal>(\n  literal_: TLiteral\n): LiteralSchema<TLiteral, undefined>;\n\n/**\n * Creates a literal schema.\n *\n * @param literal_ The literal value.\n * @param message The error message.\n *\n * @returns A literal schema.\n */\nexport function literal<\n  const TLiteral extends Literal,\n  const TMessage extends ErrorMessage<LiteralIssue> | undefined,\n>(literal_: TLiteral, message: TMessage): LiteralSchema<TLiteral, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function literal(\n  literal_: Literal,\n  message?: ErrorMessage<LiteralIssue>\n): LiteralSchema<Literal, ErrorMessage<LiteralIssue> | undefined> {\n  return {\n    kind: 'schema',\n    type: 'literal',\n    reference: literal,\n    expects: _stringify(literal_),\n    async: false,\n    literal: literal_,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      if (dataset.value === this.literal) {\n        // @ts-expect-error\n        dataset.typed = true;\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n      // @ts-expect-error\n      return dataset as OutputDataset<Literal, LiteralIssue>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/looseObject/index.ts",
    "content": "export * from './looseObject.ts';\nexport * from './looseObjectAsync.ts';\nexport * from './types.ts';\n"
  },
  {
    "path": "library/src/schemas/looseObject/looseObject.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type {\n  Brand,\n  BrandAction,\n  DescriptionAction,\n  ReadonlyAction,\n  TransformAction,\n} from '../../actions/index.ts';\nimport type { SchemaWithPipe } from '../../methods/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { AnySchema } from '../any/index.ts';\nimport type { CustomIssue, CustomSchema } from '../custom/index.ts';\nimport type { ExactOptionalSchema } from '../exactOptional/index.ts';\nimport type { NullishSchema } from '../nullish/index.ts';\nimport type { NumberIssue, NumberSchema } from '../number/index.ts';\nimport type { ObjectIssue, ObjectSchema } from '../object/index.ts';\nimport type { OptionalSchema } from '../optional/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport type { UndefinedableSchema } from '../undefinedable/index.ts';\nimport type { UnknownSchema } from '../unknown/index.ts';\nimport { looseObject, type LooseObjectSchema } from './looseObject.ts';\nimport type { LooseObjectIssue } from './types.ts';\n\ndescribe('looseObject', () => {\n  describe('should return schema object', () => {\n    const entries = { key: string() };\n    type Entries = typeof entries;\n\n    test('with undefined message', () => {\n      type Schema = LooseObjectSchema<Entries, undefined>;\n      expectTypeOf(looseObject(entries)).toEqualTypeOf<Schema>();\n      expectTypeOf(looseObject(entries, undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(looseObject(entries, 'message')).toEqualTypeOf<\n        LooseObjectSchema<Entries, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(looseObject(entries, () => 'message')).toEqualTypeOf<\n        LooseObjectSchema<Entries, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = LooseObjectSchema<\n      {\n        key00: StringSchema<undefined>;\n        key01: AnySchema;\n        key02: UnknownSchema;\n        key03: ObjectSchema<{ key: NumberSchema<undefined> }, undefined>;\n        key04: SchemaWithPipe<\n          [StringSchema<undefined>, ReadonlyAction<string>]\n        >;\n        key05: UndefinedableSchema<StringSchema<undefined>, 'bar'>;\n        key06: SchemaWithPipe<\n          [\n            OptionalSchema<StringSchema<undefined>, undefined>,\n            TransformAction<undefined | string, number>,\n          ]\n        >;\n        key07: CustomSchema<`a${string}` | `b${string}`, undefined>;\n        key08: SchemaWithPipe<\n          [StringSchema<undefined>, BrandAction<string, 'foo'>]\n        >;\n\n        // ExactOptionalSchema\n        key10: ExactOptionalSchema<StringSchema<undefined>, undefined>;\n        key11: ExactOptionalSchema<StringSchema<undefined>, 'foo'>;\n        key12: ExactOptionalSchema<StringSchema<undefined>, () => 'foo'>;\n\n        // OptionalSchema\n        key20: OptionalSchema<StringSchema<undefined>, undefined>;\n        key21: OptionalSchema<StringSchema<undefined>, 'foo'>;\n        key22: OptionalSchema<StringSchema<undefined>, () => undefined>;\n        key23: OptionalSchema<StringSchema<undefined>, () => 'foo'>;\n\n        // NullishSchema\n        key30: NullishSchema<StringSchema<undefined>, undefined>;\n        key31: NullishSchema<StringSchema<undefined>, null>;\n        key32: NullishSchema<StringSchema<undefined>, 'foo'>;\n        key33: NullishSchema<StringSchema<undefined>, () => undefined>;\n        key34: NullishSchema<StringSchema<undefined>, () => null>;\n        key35: NullishSchema<StringSchema<undefined>, () => 'foo'>;\n\n        // SchemaWithPipe\n        key40: SchemaWithPipe<\n          [ExactOptionalSchema<StringSchema<undefined>, undefined>]\n        >;\n        key41: SchemaWithPipe<\n          [\n            ExactOptionalSchema<StringSchema<undefined>, undefined>,\n            DescriptionAction<string, 'foo'>,\n          ]\n        >;\n        key42: SchemaWithPipe<\n          [OptionalSchema<StringSchema<undefined>, undefined>]\n        >;\n        key43: SchemaWithPipe<\n          [\n            OptionalSchema<StringSchema<undefined>, undefined>,\n            DescriptionAction<string | undefined, 'foo'>,\n          ]\n        >;\n        key44: SchemaWithPipe<\n          [NullishSchema<StringSchema<undefined>, undefined>]\n        >;\n        key45: SchemaWithPipe<\n          [\n            NullishSchema<StringSchema<undefined>, undefined>,\n            DescriptionAction<string | null | undefined, 'foo'>,\n          ]\n        >;\n        key46: SchemaWithPipe<\n          [\n            NullishSchema<StringSchema<undefined>, undefined>,\n            TransformAction<string | null | undefined, string[]>,\n          ]\n        >;\n      },\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<\n        {\n          key00: string;\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\n          key01: any;\n          key02: unknown;\n          key03: { key: number };\n          key04: string;\n          key05: string | undefined;\n          key06?: string | undefined;\n          key07: `a${string}` | `b${string}`;\n          key08: string;\n\n          // ExactOptionalSchema\n          key10?: string;\n          key11?: string;\n          key12?: string;\n\n          // OptionalSchema\n          key20?: string | undefined;\n          key21?: string | undefined;\n          key22?: string | undefined;\n          key23?: string | undefined;\n\n          // NullishSchema\n          key30?: string | null | undefined;\n          key31?: string | null | undefined;\n          key32?: string | null | undefined;\n          key33?: string | null | undefined;\n          key34?: string | null | undefined;\n          key35?: string | null | undefined;\n\n          // SchemaWithPipe\n          key40?: string;\n          key41?: string;\n          key42?: string | undefined;\n          key43?: string | undefined;\n          key44?: string | null | undefined;\n          key45?: string | null | undefined;\n          key46?: string | null | undefined;\n        } & { [key: string]: unknown }\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<\n        {\n          key00: string;\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\n          key01: any;\n          key02: unknown;\n          key03: { key: number };\n          readonly key04: string;\n          key05: string;\n          key06?: number;\n          key07: `a${string}` | `b${string}`;\n          key08: string & Brand<'foo'>;\n\n          // ExactOptionalSchema\n          key10?: string;\n          key11: string;\n          key12: string;\n\n          // OptionalSchema\n          key20?: string | undefined;\n          key21: string;\n          key22: string | undefined;\n          key23: string;\n\n          // NullishSchema\n          key30?: string | null | undefined;\n          key31: string | null;\n          key32: string;\n          key33: string | undefined;\n          key34: string | null;\n          key35: string;\n\n          // SchemaWithPipe\n          key40?: string;\n          key41?: string;\n          key42?: string | undefined;\n          key43?: string | undefined;\n          key44?: string | null | undefined;\n          key45?: string | null | undefined;\n          key46?: string[];\n        } & { [key: string]: unknown }\n      >();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        LooseObjectIssue | ObjectIssue | StringIssue | NumberIssue | CustomIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/looseObject/looseObject.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { fallback } from '../../methods/index.ts';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { any } from '../any/index.ts';\nimport { exactOptional } from '../exactOptional/index.ts';\nimport { nullish } from '../nullish/index.ts';\nimport { number } from '../number/index.ts';\nimport { object } from '../object/index.ts';\nimport { optional } from '../optional/index.ts';\nimport { string } from '../string/index.ts';\nimport { unknown } from '../unknown/index.ts';\nimport { looseObject, type LooseObjectSchema } from './looseObject.ts';\nimport type { LooseObjectIssue } from './types.ts';\n\ndescribe('looseObject', () => {\n  describe('should return schema object', () => {\n    const entries = { key: string() };\n    type Entries = typeof entries;\n    const baseSchema: Omit<LooseObjectSchema<Entries, never>, 'message'> = {\n      kind: 'schema',\n      type: 'loose_object',\n      reference: looseObject,\n      expects: 'Object',\n      entries,\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: LooseObjectSchema<Entries, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(looseObject(entries)).toStrictEqual(schema);\n      expect(looseObject(entries, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(looseObject(entries, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies LooseObjectSchema<Entries, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(looseObject(entries, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies LooseObjectSchema<Entries, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for empty object', () => {\n      expectNoSchemaIssue(looseObject({}), [{}]);\n    });\n\n    test('for simple object', () => {\n      expectNoSchemaIssue(looseObject({ key1: string(), key2: number() }), [\n        { key1: 'foo', key2: 123 },\n      ]);\n    });\n\n    test('for unknown entries', () => {\n      expectNoSchemaIssue(looseObject({ key1: string(), key2: number() }), [\n        { key1: 'foo', key2: 123, other1: 'bar', other2: null },\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = looseObject({}, 'message');\n    const baseIssue: Omit<LooseObjectIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'loose_object',\n      expected: 'Object',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', 'abc', '123']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    // TODO: Enable this test again in case we find a reliable way to check for\n    // plain objects\n    // test('for arrays', () => {\n    //   expectSchemaIssue(schema, baseIssue, [[], ['value']]);\n    // });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n  });\n\n  describe('should return dataset without nested issues', () => {\n    test('for simple object', () => {\n      expectNoSchemaIssue(looseObject({ key1: string(), key2: number() }), [\n        { key1: 'foo', key2: 123 },\n      ]);\n    });\n\n    test('for nested object', () => {\n      expectNoSchemaIssue(looseObject({ nested: object({ key: string() }) }), [\n        { nested: { key: 'foo' } },\n      ]);\n    });\n\n    test('for missing entries with fallback', () => {\n      expect(\n        looseObject({\n          key1: fallback(string(), 'foo'),\n          key2: fallback(number(), () => 123),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key1: 'foo', key2: 123 },\n      });\n    });\n\n    test('for exact optional entry', () => {\n      expectNoSchemaIssue(looseObject({ key: exactOptional(string()) }), [\n        {},\n        { key: 'foo' },\n      ]);\n    });\n\n    test('for exact optional entry with default', () => {\n      expect(\n        looseObject({ key: exactOptional(string(), 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        looseObject({ key: exactOptional(string(), () => 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n    });\n\n    test('for optional entry', () => {\n      expectNoSchemaIssue(looseObject({ key: optional(string()) }), [\n        {},\n        { key: undefined },\n        { key: 'foo' },\n      ]);\n    });\n\n    test('for optional entry with default', () => {\n      expect(\n        looseObject({ key: optional(string(), 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        looseObject({ key: optional(string(), () => 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        looseObject({\n          key: optional(string(), () => undefined),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n    });\n\n    test('for nullish entry', () => {\n      expectNoSchemaIssue(looseObject({ key: nullish(number()) }), [\n        {},\n        { key: undefined },\n        { key: null },\n        { key: 123 },\n      ]);\n    });\n\n    test('for nullish entry with default', () => {\n      expect(\n        looseObject({ key: nullish(string(), 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        looseObject({ key: nullish(string(), null) })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: null },\n      });\n      expect(\n        looseObject({ key: nullish(string(), () => 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        looseObject({ key: nullish(string(), () => null) })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: null },\n      });\n      expect(\n        looseObject({ key: nullish(string(), () => undefined) })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n    });\n\n    test('for unknown entries', () => {\n      expectNoSchemaIssue(looseObject({ key1: string(), key2: number() }), [\n        { key1: 'foo', key2: 123, other1: 'bar', other2: null },\n      ]);\n    });\n  });\n\n  describe('should return dataset with nested issues', () => {\n    const schema = looseObject({\n      key1: string(),\n      key2: number(),\n      nested: looseObject({ key1: string(), key2: number() }),\n    });\n\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    test('for missing entries', () => {\n      const input = { key2: 123 };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'loose_object',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'loose_object',\n            input: undefined,\n            expected: '\"nested\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'nested',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for missing nested entries', () => {\n      const input = { key1: 'value', nested: {} };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'loose_object',\n            input: undefined,\n            expected: '\"key2\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'key2',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'loose_object',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: {},\n              },\n              {\n                type: 'object',\n                origin: 'key',\n                input: input.nested,\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'loose_object',\n            input: undefined,\n            expected: '\"key2\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: {},\n              },\n              {\n                type: 'object',\n                origin: 'key',\n                input: input.nested,\n                key: 'key2',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for missing entries with abort early', () => {\n      const input = { key2: 123 };\n      expect(\n        schema['~run']({ value: input }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: {},\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'loose_object',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n            abortEarly: true,\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for missing any and unknown entry', () => {\n      const schema = looseObject({ key1: any(), key2: unknown() });\n      expect(schema['~run']({ value: {} }, {})).toStrictEqual({\n        typed: false,\n        value: {},\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'loose_object',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input: {},\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'loose_object',\n            input: undefined,\n            expected: '\"key2\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input: {},\n                key: 'key2',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid entries', () => {\n      const input = { key1: false, key2: 123, nested: null };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: false,\n            expected: 'string',\n            received: 'false',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key1',\n                value: false,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'loose_object',\n            input: null,\n            expected: 'Object',\n            received: 'null',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: null,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid nested entries', () => {\n      const input = {\n        key1: 'value',\n        key2: 'value',\n        nested: {\n          key1: 123,\n          key2: null,\n        },\n      };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: 'value',\n            expected: 'number',\n            received: '\"value\"',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key2',\n                value: input.key2,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: 123,\n            expected: 'string',\n            received: '123',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: input.nested,\n              },\n              {\n                type: 'object',\n                origin: 'value',\n                input: input.nested,\n                key: 'key1',\n                value: input.nested.key1,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: null,\n            expected: 'number',\n            received: 'null',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: input.nested,\n              },\n              {\n                type: 'object',\n                origin: 'value',\n                input: input.nested,\n                key: 'key2',\n                value: input.nested.key2,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid entries with abort early', () => {\n      const input = { key1: false, key2: 123, nested: null };\n      expect(\n        schema['~run']({ value: input }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: {},\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: false,\n            expected: 'string',\n            received: 'false',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key1',\n                value: false,\n              },\n            ],\n            abortEarly: true,\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid exact optional entry', () => {\n      const schema = looseObject({ key: exactOptional(string()) });\n      const input = { key: undefined };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: undefined,\n            expected: 'string',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/looseObject/looseObject.ts",
    "content": "import { getDefault, getFallback } from '../../methods/index.ts';\nimport type {\n  BaseSchema,\n  ErrorMessage,\n  InferObjectInput,\n  InferObjectIssue,\n  InferObjectOutput,\n  ObjectEntries,\n  ObjectPathItem,\n  OutputDataset,\n} from '../../types/index.ts';\nimport {\n  _addIssue,\n  _getStandardProps,\n  _isValidObjectKey,\n} from '../../utils/index.ts';\nimport type { LooseObjectIssue } from './types.ts';\n\n/**\n * Loose object schema interface.\n */\nexport interface LooseObjectSchema<\n  TEntries extends ObjectEntries,\n  TMessage extends ErrorMessage<LooseObjectIssue> | undefined,\n> extends BaseSchema<\n    InferObjectInput<TEntries> & { [key: string]: unknown },\n    InferObjectOutput<TEntries> & { [key: string]: unknown },\n    LooseObjectIssue | InferObjectIssue<TEntries>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'loose_object';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof looseObject;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Object';\n  /**\n   * The entries schema.\n   */\n  readonly entries: TEntries;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a loose object schema.\n *\n * @param entries The entries schema.\n *\n * @returns A loose object schema.\n */\nexport function looseObject<const TEntries extends ObjectEntries>(\n  entries: TEntries\n): LooseObjectSchema<TEntries, undefined>;\n\n/**\n * Creates a loose object schema.\n *\n * @param entries The entries schema.\n * @param message The error message.\n *\n * @returns A loose object schema.\n */\nexport function looseObject<\n  const TEntries extends ObjectEntries,\n  const TMessage extends ErrorMessage<LooseObjectIssue> | undefined,\n>(entries: TEntries, message: TMessage): LooseObjectSchema<TEntries, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function looseObject(\n  entries: ObjectEntries,\n  message?: ErrorMessage<LooseObjectIssue>\n): LooseObjectSchema<\n  ObjectEntries,\n  ErrorMessage<LooseObjectIssue> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'loose_object',\n    reference: looseObject,\n    expects: 'Object',\n    async: false,\n    entries,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      // Get input value from dataset\n      const input = dataset.value;\n\n      // If root type is valid, check nested types\n      if (input && typeof input === 'object') {\n        // Set typed to `true` and value to blank object\n        // @ts-expect-error\n        dataset.typed = true;\n        dataset.value = {};\n\n        // Process each object entry of schema\n        for (const key in this.entries) {\n          const valueSchema = this.entries[key];\n\n          // If key is present or its an optional schema with a default value,\n          // parse input of key or default value\n          if (\n            key in input ||\n            ((valueSchema.type === 'exact_optional' ||\n              valueSchema.type === 'optional' ||\n              valueSchema.type === 'nullish') &&\n              // @ts-expect-error\n              valueSchema.default !== undefined)\n          ) {\n            const value: unknown =\n              key in input\n                ? // @ts-expect-error\n                  input[key]\n                : getDefault(valueSchema);\n            const valueDataset = valueSchema['~run']({ value }, config);\n\n            // If there are issues, capture them\n            if (valueDataset.issues) {\n              // Create object path item\n              const pathItem: ObjectPathItem = {\n                type: 'object',\n                origin: 'value',\n                input: input as Record<string, unknown>,\n                key,\n                value,\n              };\n\n              // Add modified entry dataset issues to issues\n              for (const issue of valueDataset.issues) {\n                if (issue.path) {\n                  issue.path.unshift(pathItem);\n                } else {\n                  // @ts-expect-error\n                  issue.path = [pathItem];\n                }\n                // @ts-expect-error\n                dataset.issues?.push(issue);\n              }\n              if (!dataset.issues) {\n                // @ts-expect-error\n                dataset.issues = valueDataset.issues;\n              }\n\n              // If necessary, abort early\n              if (config.abortEarly) {\n                dataset.typed = false;\n                break;\n              }\n            }\n\n            // If not typed, set typed to `false`\n            if (!valueDataset.typed) {\n              dataset.typed = false;\n            }\n\n            // Add entry to dataset\n            // @ts-expect-error\n            dataset.value[key] = valueDataset.value;\n\n            // Otherwise, if key is missing but has a fallback, use it\n            // @ts-expect-error\n          } else if (valueSchema.fallback !== undefined) {\n            // @ts-expect-error\n            dataset.value[key] = getFallback(valueSchema);\n\n            // Otherwise, if key is missing and required, add issue\n          } else if (\n            valueSchema.type !== 'exact_optional' &&\n            valueSchema.type !== 'optional' &&\n            valueSchema.type !== 'nullish'\n          ) {\n            _addIssue(this, 'key', dataset, config, {\n              input: undefined,\n              expected: `\"${key}\"`,\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input: input as Record<string, unknown>,\n                  key,\n                  // @ts-expect-error\n                  value: input[key],\n                },\n              ],\n            });\n\n            // If necessary, abort early\n            if (config.abortEarly) {\n              break;\n            }\n          }\n        }\n\n        // Add rest to dataset if necessary\n        // Hint: We exclude specific keys for security reasons\n        if (!dataset.issues || !config.abortEarly) {\n          for (const key in input) {\n            if (_isValidObjectKey(input, key) && !(key in this.entries)) {\n              // @ts-expect-error\n              dataset.value[key] = input[key];\n            }\n          }\n        }\n\n        // Otherwise, add object issue\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        InferObjectOutput<ObjectEntries> & { [key: string]: unknown },\n        LooseObjectIssue | InferObjectIssue<ObjectEntries>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/looseObject/looseObjectAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type {\n  Brand,\n  BrandAction,\n  DescriptionAction,\n  ReadonlyAction,\n  TransformAction,\n} from '../../actions/index.ts';\nimport type {\n  SchemaWithPipe,\n  SchemaWithPipeAsync,\n} from '../../methods/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { AnySchema } from '../any/index.ts';\nimport type { CustomIssue, CustomSchemaAsync } from '../custom/index.ts';\nimport type {\n  ExactOptionalSchema,\n  ExactOptionalSchemaAsync,\n} from '../exactOptional/index.ts';\nimport type { NullishSchema, NullishSchemaAsync } from '../nullish/index.ts';\nimport type { NumberIssue, NumberSchema } from '../number/index.ts';\nimport type { ObjectIssue, ObjectSchemaAsync } from '../object/index.ts';\nimport type { OptionalSchema, OptionalSchemaAsync } from '../optional/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport type { UndefinedableSchema } from '../undefinedable/index.ts';\nimport type { UnknownSchema } from '../unknown/index.ts';\nimport {\n  looseObjectAsync,\n  type LooseObjectSchemaAsync,\n} from './looseObjectAsync.ts';\nimport type { LooseObjectIssue } from './types.ts';\n\ndescribe('looseObjectAsync', () => {\n  describe('should return schema object', () => {\n    const entries = { key: string() };\n    type Entries = typeof entries;\n\n    test('with undefined message', () => {\n      type Schema = LooseObjectSchemaAsync<Entries, undefined>;\n      expectTypeOf(looseObjectAsync(entries)).toEqualTypeOf<Schema>();\n      expectTypeOf(\n        looseObjectAsync(entries, undefined)\n      ).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(looseObjectAsync(entries, 'message')).toEqualTypeOf<\n        LooseObjectSchemaAsync<Entries, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(looseObjectAsync(entries, () => 'message')).toEqualTypeOf<\n        LooseObjectSchemaAsync<Entries, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = LooseObjectSchemaAsync<\n      {\n        key00: StringSchema<undefined>;\n        key01: AnySchema;\n        key02: UnknownSchema;\n        key03: ObjectSchemaAsync<{ key: NumberSchema<undefined> }, undefined>;\n        key04: SchemaWithPipe<\n          [StringSchema<undefined>, ReadonlyAction<string>]\n        >;\n        key05: UndefinedableSchema<StringSchema<undefined>, 'bar'>;\n        key06: SchemaWithPipe<\n          [\n            OptionalSchema<StringSchema<undefined>, undefined>,\n            TransformAction<undefined | string, number>,\n          ]\n        >;\n        key07: SchemaWithPipeAsync<\n          [\n            OptionalSchema<StringSchema<undefined>, undefined>,\n            TransformAction<undefined | string, number>,\n          ]\n        >;\n        key08: SchemaWithPipeAsync<\n          [\n            OptionalSchemaAsync<StringSchema<undefined>, undefined>,\n            TransformAction<undefined | string, number>,\n          ]\n        >;\n        key09: CustomSchemaAsync<`a${string}` | `b${string}`, undefined>;\n        key10: SchemaWithPipe<\n          [StringSchema<undefined>, BrandAction<string, 'foo'>]\n        >;\n\n        // ExactOptionalSchema\n        key20: ExactOptionalSchema<StringSchema<undefined>, undefined>;\n        key21: ExactOptionalSchema<StringSchema<undefined>, 'foo'>;\n        key22: ExactOptionalSchema<StringSchema<undefined>, () => 'foo'>;\n\n        // ExactOptionalSchemaAsync\n        key30: ExactOptionalSchemaAsync<StringSchema<undefined>, undefined>;\n        key31: ExactOptionalSchemaAsync<StringSchema<undefined>, 'foo'>;\n        key32: ExactOptionalSchemaAsync<StringSchema<undefined>, () => 'foo'>;\n        key33: ExactOptionalSchemaAsync<\n          StringSchema<undefined>,\n          () => Promise<'foo'>\n        >;\n\n        // OptionalSchema\n        key40: OptionalSchema<StringSchema<undefined>, undefined>;\n        key41: OptionalSchema<StringSchema<undefined>, 'foo'>;\n        key42: OptionalSchema<StringSchema<undefined>, () => undefined>;\n        key43: OptionalSchema<StringSchema<undefined>, () => 'foo'>;\n\n        // OptionalSchemaAsync\n        key50: OptionalSchemaAsync<StringSchema<undefined>, undefined>;\n        key51: OptionalSchemaAsync<StringSchema<undefined>, 'foo'>;\n        key52: OptionalSchemaAsync<StringSchema<undefined>, () => undefined>;\n        key53: OptionalSchemaAsync<StringSchema<undefined>, () => 'foo'>;\n        key54: OptionalSchemaAsync<\n          StringSchema<undefined>,\n          () => Promise<undefined>\n        >;\n        key55: OptionalSchemaAsync<\n          StringSchema<undefined>,\n          () => Promise<'foo'>\n        >;\n\n        // NullishSchema\n        key60: NullishSchema<StringSchema<undefined>, undefined>;\n        key61: NullishSchema<StringSchema<undefined>, null>;\n        key62: NullishSchema<StringSchema<undefined>, 'foo'>;\n        key63: NullishSchema<StringSchema<undefined>, () => undefined>;\n        key64: NullishSchema<StringSchema<undefined>, () => null>;\n        key65: NullishSchema<StringSchema<undefined>, () => 'foo'>;\n\n        // NullishSchemaAsync\n        key70: NullishSchemaAsync<StringSchema<undefined>, undefined>;\n        key71: NullishSchemaAsync<StringSchema<undefined>, null>;\n        key72: NullishSchemaAsync<StringSchema<undefined>, 'foo'>;\n        key73: NullishSchemaAsync<StringSchema<undefined>, () => undefined>;\n        key74: NullishSchemaAsync<StringSchema<undefined>, () => null>;\n        key75: NullishSchemaAsync<StringSchema<undefined>, () => 'foo'>;\n        key76: NullishSchemaAsync<\n          StringSchema<undefined>,\n          () => Promise<undefined>\n        >;\n        key77: NullishSchemaAsync<StringSchema<undefined>, () => Promise<null>>;\n        key78: NullishSchemaAsync<\n          StringSchema<undefined>,\n          () => Promise<'foo'>\n        >;\n\n        // SchemaWithPipe\n        key80: SchemaWithPipe<\n          [ExactOptionalSchema<StringSchema<undefined>, undefined>]\n        >;\n        key81: SchemaWithPipe<\n          [\n            ExactOptionalSchema<StringSchema<undefined>, undefined>,\n            DescriptionAction<string, 'foo'>,\n          ]\n        >;\n        key82: SchemaWithPipe<\n          [OptionalSchema<StringSchema<undefined>, undefined>]\n        >;\n        key83: SchemaWithPipe<\n          [\n            OptionalSchema<StringSchema<undefined>, undefined>,\n            DescriptionAction<string | undefined, 'foo'>,\n          ]\n        >;\n        key84: SchemaWithPipe<\n          [NullishSchema<StringSchema<undefined>, undefined>]\n        >;\n        key85: SchemaWithPipe<\n          [\n            NullishSchema<StringSchema<undefined>, undefined>,\n            DescriptionAction<string | null | undefined, 'foo'>,\n          ]\n        >;\n        key86: SchemaWithPipe<\n          [\n            NullishSchema<StringSchema<undefined>, undefined>,\n            TransformAction<string | null | undefined, string[]>,\n          ]\n        >;\n        key87: SchemaWithPipeAsync<\n          [\n            NullishSchemaAsync<StringSchema<undefined>, undefined>,\n            TransformAction<string | null | undefined, string[]>,\n          ]\n        >;\n      },\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<\n        {\n          key00: string;\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\n          key01: any;\n          key02: unknown;\n          key03: { key: number };\n          key04: string;\n          key05: string | undefined;\n          key06?: string | undefined;\n          key07?: string | undefined;\n          key08?: string | undefined;\n          key09: `a${string}` | `b${string}`;\n          key10: string;\n\n          // ExactOptionalSchema\n          key20?: string;\n          key21?: string;\n          key22?: string;\n\n          // ExactOptionalSchemaAsync\n          key30?: string;\n          key31?: string;\n          key32?: string;\n          key33?: string;\n\n          // OptionalSchema\n          key40?: string | undefined;\n          key41?: string | undefined;\n          key42?: string | undefined;\n          key43?: string | undefined;\n\n          // OptionalSchemaAsync\n          key50?: string | undefined;\n          key51?: string | undefined;\n          key52?: string | undefined;\n          key53?: string | undefined;\n          key54?: string | undefined;\n          key55?: string | undefined;\n\n          // NullishSchema\n          key60?: string | null | undefined;\n          key61?: string | null | undefined;\n          key62?: string | null | undefined;\n          key63?: string | null | undefined;\n          key64?: string | null | undefined;\n          key65?: string | null | undefined;\n\n          // NullishSchemaAsync\n          key70?: string | null | undefined;\n          key71?: string | null | undefined;\n          key72?: string | null | undefined;\n          key73?: string | null | undefined;\n          key74?: string | null | undefined;\n          key75?: string | null | undefined;\n          key76?: string | null | undefined;\n          key77?: string | null | undefined;\n          key78?: string | null | undefined;\n\n          // SchemaWithPipe\n          key80?: string;\n          key81?: string;\n          key82?: string | undefined;\n          key83?: string | undefined;\n          key84?: string | null | undefined;\n          key85?: string | null | undefined;\n          key86?: string | null | undefined;\n          key87?: string | null | undefined;\n        } & { [key: string]: unknown }\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<\n        {\n          key00: string;\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\n          key01: any;\n          key02: unknown;\n          key03: { key: number };\n          readonly key04: string;\n          key05: string;\n          key06?: number;\n          key07?: number;\n          key08?: number;\n          key09: `a${string}` | `b${string}`;\n          key10: string & Brand<'foo'>;\n\n          // ExactOptionalSchema\n          key20?: string;\n          key21: string;\n          key22: string;\n\n          // ExactOptionalSchemaAsync\n          key30?: string;\n          key31: string;\n          key32: string;\n          key33: string;\n\n          // OptionalSchema\n          key40?: string | undefined;\n          key41: string;\n          key42: string | undefined;\n          key43: string;\n\n          // OptionalSchemaAsync\n          key50?: string | undefined;\n          key51: string;\n          key52: string | undefined;\n          key53: string;\n          key54: string | undefined;\n          key55: string;\n\n          // NullishSchema\n          key60?: string | null | undefined;\n          key61: string | null;\n          key62: string;\n          key63: string | undefined;\n          key64: string | null;\n          key65: string;\n\n          // NullishSchemaAsync\n          key70?: string | null | undefined;\n          key71: string | null;\n          key72: string;\n          key73: string | undefined;\n          key74: string | null;\n          key75: string;\n          key76: string | undefined;\n          key77: string | null;\n          key78: string;\n\n          // SchemaWithPipe\n          key80?: string;\n          key81?: string;\n          key82?: string | undefined;\n          key83?: string | undefined;\n          key84?: string | null | undefined;\n          key85?: string | null | undefined;\n          key86?: string[];\n          key87?: string[];\n        } & { [key: string]: unknown }\n      >();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        LooseObjectIssue | ObjectIssue | StringIssue | NumberIssue | CustomIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/looseObject/looseObjectAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { fallback, fallbackAsync } from '../../methods/index.ts';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport {\n  expectNoSchemaIssueAsync,\n  expectSchemaIssueAsync,\n} from '../../vitest/index.ts';\nimport { any } from '../any/index.ts';\nimport { exactOptional, exactOptionalAsync } from '../exactOptional/index.ts';\nimport { nullish, nullishAsync } from '../nullish/index.ts';\nimport { number } from '../number/index.ts';\nimport { objectAsync } from '../object/index.ts';\nimport { optional, optionalAsync } from '../optional/index.ts';\nimport { string } from '../string/index.ts';\nimport { unknown } from '../unknown/index.ts';\nimport {\n  looseObjectAsync,\n  type LooseObjectSchemaAsync,\n} from './looseObjectAsync.ts';\nimport type { LooseObjectIssue } from './types.ts';\n\ndescribe('looseObjectAsync', () => {\n  describe('should return schema object', () => {\n    const entries = { key: string() };\n    type Entries = typeof entries;\n    const baseSchema: Omit<\n      LooseObjectSchemaAsync<Entries, never>,\n      'message'\n    > = {\n      kind: 'schema',\n      type: 'loose_object',\n      reference: looseObjectAsync,\n      expects: 'Object',\n      entries,\n      async: true,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: LooseObjectSchemaAsync<Entries, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(looseObjectAsync(entries)).toStrictEqual(schema);\n      expect(looseObjectAsync(entries, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(looseObjectAsync(entries, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies LooseObjectSchemaAsync<Entries, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(looseObjectAsync(entries, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies LooseObjectSchemaAsync<Entries, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for empty object', async () => {\n      await expectNoSchemaIssueAsync(looseObjectAsync({}), [{}]);\n    });\n\n    test('for simple object', async () => {\n      await expectNoSchemaIssueAsync(\n        looseObjectAsync({ key1: string(), key2: number() }),\n        [{ key1: 'foo', key2: 123 }]\n      );\n    });\n\n    test('for unknown entries', async () => {\n      await expectNoSchemaIssueAsync(\n        looseObjectAsync({ key1: string(), key2: number() }),\n        [{ key1: 'foo', key2: 123, other1: 'bar', other2: null }]\n      );\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = looseObjectAsync({}, 'message');\n    const baseIssue: Omit<LooseObjectIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'loose_object',\n      expected: 'Object',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, ['', 'abc', '123']);\n    });\n\n    test('for symbols', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        Symbol(),\n        Symbol('foo'),\n      ]);\n    });\n\n    // Complex types\n\n    // TODO: Enable this test again in case we find a reliable way to check for\n    // plain objects\n    // test('for arrays', async () => {\n    //   await expectSchemaIssueAsync(schema, baseIssue, [[], ['value']]);\n    // });\n\n    test('for functions', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        () => {},\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        function () {},\n      ]);\n    });\n  });\n\n  describe('should return dataset without nested issues', () => {\n    test('for simple object', async () => {\n      await expectNoSchemaIssueAsync(\n        looseObjectAsync({ key1: string(), key2: number() }),\n        [{ key1: 'foo', key2: 123 }]\n      );\n    });\n\n    test('for nested object', async () => {\n      await expectNoSchemaIssueAsync(\n        looseObjectAsync({ nested: objectAsync({ key: string() }) }),\n        [{ nested: { key: 'foo' } }]\n      );\n    });\n\n    test('for missing entries with fallback', async () => {\n      expect(\n        await looseObjectAsync({\n          key1: fallback(string(), 'foo'),\n          key2: fallback(number(), () => 123),\n          key3: fallbackAsync(string(), 'bar'),\n          key4: fallbackAsync(number(), () => 456),\n          key5: fallbackAsync(string(), async () => 'baz'),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key1: 'foo', key2: 123, key3: 'bar', key4: 456, key5: 'baz' },\n      });\n    });\n\n    test('for exact optional entry', async () => {\n      await expectNoSchemaIssueAsync(\n        looseObjectAsync({ key: exactOptional(string()) }),\n        [{}, { key: 'foo' }]\n      );\n      await expectNoSchemaIssueAsync(\n        looseObjectAsync({ key: exactOptionalAsync(string()) }),\n        [{}, { key: 'foo' }]\n      );\n    });\n\n    test('for exact optional entry with default', async () => {\n      // Sync\n      expect(\n        await looseObjectAsync({ key: exactOptional(string(), 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await looseObjectAsync({ key: exactOptional(string(), () => 'foo') })[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n\n      // Async\n      expect(\n        await looseObjectAsync({ key: exactOptionalAsync(string(), 'foo') })[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await looseObjectAsync({\n          key: exactOptionalAsync(string(), () => 'foo'),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n    });\n\n    test('for optional entry', async () => {\n      await expectNoSchemaIssueAsync(\n        looseObjectAsync({ key: optional(string()) }),\n        [{}, { key: undefined }, { key: 'foo' }]\n      );\n      await expectNoSchemaIssueAsync(\n        looseObjectAsync({ key: optionalAsync(string()) }),\n        [{}, { key: undefined }, { key: 'foo' }]\n      );\n    });\n\n    test('for optional entry with default', async () => {\n      // Sync\n      expect(\n        await looseObjectAsync({ key: optional(string(), 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await looseObjectAsync({ key: optional(string(), () => 'foo') })[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await looseObjectAsync({\n          key: optional(string(), () => undefined),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n\n      // Async\n      expect(\n        await looseObjectAsync({ key: optionalAsync(string(), 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await looseObjectAsync({ key: optionalAsync(string(), () => 'foo') })[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await looseObjectAsync({\n          key: optionalAsync(string(), () => undefined),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n      expect(\n        await looseObjectAsync({\n          key: optionalAsync(string(), async () => 'foo'),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await looseObjectAsync({\n          key: optionalAsync(string(), async () => undefined),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n    });\n\n    test('for nullish entry', async () => {\n      await expectNoSchemaIssueAsync(\n        looseObjectAsync({ key: nullish(number()) }),\n        [{}, { key: undefined }, { key: null }, { key: 123 }]\n      );\n      await expectNoSchemaIssueAsync(\n        looseObjectAsync({ key: nullishAsync(number()) }),\n        [{}, { key: undefined }, { key: null }, { key: 123 }]\n      );\n    });\n\n    test('for nullish entry with default', async () => {\n      // Sync\n      expect(\n        await looseObjectAsync({ key: nullish(string(), 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await looseObjectAsync({ key: nullish(string(), null) })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: null },\n      });\n      expect(\n        await looseObjectAsync({ key: nullish(string(), () => 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await looseObjectAsync({ key: nullish(string(), () => null) })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: null },\n      });\n      expect(\n        await looseObjectAsync({ key: nullish(string(), () => undefined) })[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n\n      // Async\n      expect(\n        await looseObjectAsync({ key: nullishAsync(string(), 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await looseObjectAsync({ key: nullishAsync(string(), null) })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: null },\n      });\n      expect(\n        await looseObjectAsync({ key: nullishAsync(string(), () => 'foo') })[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await looseObjectAsync({ key: nullishAsync(string(), () => null) })[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: null },\n      });\n      expect(\n        await looseObjectAsync({\n          key: nullishAsync(string(), () => undefined),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n      expect(\n        await looseObjectAsync({\n          key: nullishAsync(string(), async () => 'foo'),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await looseObjectAsync({\n          key: nullishAsync(string(), async () => null),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: null },\n      });\n      expect(\n        await looseObjectAsync({\n          key: nullishAsync(string(), async () => undefined),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n    });\n\n    test('for unknown entries', async () => {\n      await expectNoSchemaIssueAsync(\n        looseObjectAsync({ key1: string(), key2: number() }),\n        [{ key1: 'foo', key2: 123, other1: 'bar', other2: null }]\n      );\n    });\n  });\n\n  describe('should return dataset with nested issues', () => {\n    const schema = looseObjectAsync({\n      key1: string(),\n      key2: number(),\n      nested: looseObjectAsync({ key1: string(), key2: number() }),\n    });\n\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    test('for missing entries', async () => {\n      const input = { key2: 123 };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'loose_object',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'loose_object',\n            input: undefined,\n            expected: '\"nested\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'nested',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for missing nested entries', async () => {\n      const input = { key1: 'value', nested: {} };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'loose_object',\n            input: undefined,\n            expected: '\"key2\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'key2',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'loose_object',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: {},\n              },\n              {\n                type: 'object',\n                origin: 'key',\n                input: input.nested,\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'loose_object',\n            input: undefined,\n            expected: '\"key2\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: {},\n              },\n              {\n                type: 'object',\n                origin: 'key',\n                input: input.nested,\n                key: 'key2',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for missing entries with abort early', async () => {\n      const input = { key2: 123 };\n      expect(\n        await schema['~run']({ value: input }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: {},\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'loose_object',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n            abortEarly: true,\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for missing any and unknown entry', async () => {\n      const schema = looseObjectAsync({ key1: any(), key2: unknown() });\n      expect(await schema['~run']({ value: {} }, {})).toStrictEqual({\n        typed: false,\n        value: {},\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'loose_object',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input: {},\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'loose_object',\n            input: undefined,\n            expected: '\"key2\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input: {},\n                key: 'key2',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid entries', async () => {\n      const input = { key1: false, key2: 123, nested: null };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: false,\n            expected: 'string',\n            received: 'false',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key1',\n                value: false,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'loose_object',\n            input: null,\n            expected: 'Object',\n            received: 'null',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: null,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid nested entries', async () => {\n      const input = {\n        key1: 'value',\n        key2: 'value',\n        nested: {\n          key1: 123,\n          key2: null,\n        },\n      };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: 'value',\n            expected: 'number',\n            received: '\"value\"',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key2',\n                value: input.key2,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: 123,\n            expected: 'string',\n            received: '123',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: input.nested,\n              },\n              {\n                type: 'object',\n                origin: 'value',\n                input: input.nested,\n                key: 'key1',\n                value: input.nested.key1,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: null,\n            expected: 'number',\n            received: 'null',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: input.nested,\n              },\n              {\n                type: 'object',\n                origin: 'value',\n                input: input.nested,\n                key: 'key2',\n                value: input.nested.key2,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid entries with abort early', async () => {\n      const input = { key1: false, key2: 123, nested: null };\n      expect(\n        await schema['~run']({ value: input }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: {},\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: false,\n            expected: 'string',\n            received: 'false',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key1',\n                value: false,\n              },\n            ],\n            abortEarly: true,\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid exact optional entry', async () => {\n      const schema = looseObjectAsync({\n        key1: exactOptional(string()),\n        key2: exactOptionalAsync(string()),\n      });\n      const input = { key1: undefined, key2: undefined };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: undefined,\n            expected: 'string',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: undefined,\n            expected: 'string',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key2',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/looseObject/looseObjectAsync.ts",
    "content": "import { getDefault, getFallback } from '../../methods/index.ts';\nimport type {\n  BaseSchemaAsync,\n  ErrorMessage,\n  InferObjectInput,\n  InferObjectIssue,\n  InferObjectOutput,\n  ObjectEntriesAsync,\n  ObjectPathItem,\n  OutputDataset,\n} from '../../types/index.ts';\nimport {\n  _addIssue,\n  _getStandardProps,\n  _isValidObjectKey,\n} from '../../utils/index.ts';\nimport type { looseObject } from './looseObject.ts';\nimport type { LooseObjectIssue } from './types.ts';\n\n/**\n * Object schema async interface.\n */\nexport interface LooseObjectSchemaAsync<\n  TEntries extends ObjectEntriesAsync,\n  TMessage extends ErrorMessage<LooseObjectIssue> | undefined,\n> extends BaseSchemaAsync<\n    InferObjectInput<TEntries> & { [key: string]: unknown },\n    InferObjectOutput<TEntries> & { [key: string]: unknown },\n    LooseObjectIssue | InferObjectIssue<TEntries>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'loose_object';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof looseObject | typeof looseObjectAsync;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Object';\n  /**\n   * The entries schema.\n   */\n  readonly entries: TEntries;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a loose object schema.\n *\n * @param entries The entries schema.\n *\n * @returns A loose object schema.\n */\nexport function looseObjectAsync<const TEntries extends ObjectEntriesAsync>(\n  entries: TEntries\n): LooseObjectSchemaAsync<TEntries, undefined>;\n\n/**\n * Creates a loose object schema.\n *\n * @param entries The entries schema.\n * @param message The error message.\n *\n * @returns A loose object schema.\n */\nexport function looseObjectAsync<\n  const TEntries extends ObjectEntriesAsync,\n  const TMessage extends ErrorMessage<LooseObjectIssue> | undefined,\n>(\n  entries: TEntries,\n  message: TMessage\n): LooseObjectSchemaAsync<TEntries, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function looseObjectAsync(\n  entries: ObjectEntriesAsync,\n  message?: ErrorMessage<LooseObjectIssue>\n): LooseObjectSchemaAsync<\n  ObjectEntriesAsync,\n  ErrorMessage<LooseObjectIssue> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'loose_object',\n    reference: looseObjectAsync,\n    expects: 'Object',\n    async: true,\n    entries,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    async '~run'(dataset, config) {\n      // Get input value from dataset\n      const input = dataset.value;\n\n      // If root type is valid, check nested types\n      if (input && typeof input === 'object') {\n        // Set typed to `true` and value to blank object\n        // @ts-expect-error\n        dataset.typed = true;\n        dataset.value = {};\n\n        // If key is present or its an optional schema with a default value,\n        // parse input of key or default value asynchronously\n        const valueDatasets = await Promise.all(\n          Object.entries(this.entries).map(async ([key, valueSchema]) => {\n            if (\n              key in input ||\n              ((valueSchema.type === 'exact_optional' ||\n                valueSchema.type === 'optional' ||\n                valueSchema.type === 'nullish') &&\n                // @ts-expect-error\n                valueSchema.default !== undefined)\n            ) {\n              const value: unknown =\n                key in input\n                  ? // @ts-expect-error\n                    input[key]\n                  : await getDefault(valueSchema);\n              return [\n                key,\n                value,\n                valueSchema,\n                await valueSchema['~run']({ value }, config),\n              ] as const;\n            }\n            return [\n              key,\n              // @ts-expect-error\n              input[key] as unknown,\n              valueSchema,\n              null,\n            ] as const;\n          })\n        );\n\n        // Process each object entry of schema\n        for (const [key, value, valueSchema, valueDataset] of valueDatasets) {\n          // If key is present or its an optional schema with a default value,\n          // process its value dataset\n          if (valueDataset) {\n            // If there are issues, capture them\n            if (valueDataset.issues) {\n              // Create object path item\n              const pathItem: ObjectPathItem = {\n                type: 'object',\n                origin: 'value',\n                input: input as Record<string, unknown>,\n                key,\n                value,\n              };\n\n              // Add modified entry dataset issues to issues\n              for (const issue of valueDataset.issues) {\n                if (issue.path) {\n                  issue.path.unshift(pathItem);\n                } else {\n                  // @ts-expect-error\n                  issue.path = [pathItem];\n                }\n                // @ts-expect-error\n                dataset.issues?.push(issue);\n              }\n              if (!dataset.issues) {\n                // @ts-expect-error\n                dataset.issues = valueDataset.issues;\n              }\n\n              // If necessary, abort early\n              if (config.abortEarly) {\n                dataset.typed = false;\n                break;\n              }\n            }\n\n            // If not typed, set typed to `false`\n            if (!valueDataset.typed) {\n              dataset.typed = false;\n            }\n\n            // Add entry to dataset\n            // @ts-expect-error\n            dataset.value[key] = valueDataset.value;\n\n            // Otherwise, if key is missing but has a fallback, use it\n            // @ts-expect-error\n          } else if (valueSchema.fallback !== undefined) {\n            // @ts-expect-error\n            dataset.value[key] = await getFallback(valueSchema);\n\n            // Otherwise, if key is missing and required, add issue\n          } else if (\n            valueSchema.type !== 'exact_optional' &&\n            valueSchema.type !== 'optional' &&\n            valueSchema.type !== 'nullish'\n          ) {\n            _addIssue(this, 'key', dataset, config, {\n              input: undefined,\n              expected: `\"${key}\"`,\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input: input as Record<string, unknown>,\n                  key,\n                  value,\n                },\n              ],\n            });\n\n            // If necessary, abort early\n            if (config.abortEarly) {\n              break;\n            }\n          }\n        }\n\n        // Add rest to dataset if necessary\n        // Hint: We exclude specific keys for security reasons\n        if (!dataset.issues || !config.abortEarly) {\n          for (const key in input) {\n            if (_isValidObjectKey(input, key) && !(key in this.entries)) {\n              // @ts-expect-error\n              dataset.value[key] = input[key];\n            }\n          }\n        }\n\n        // Otherwise, add object issue\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        InferObjectOutput<ObjectEntriesAsync> & { [key: string]: unknown },\n        LooseObjectIssue | InferObjectIssue<ObjectEntriesAsync>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/looseObject/types.ts",
    "content": "import type { BaseIssue } from '../../types/index.ts';\n\n/**\n * Loose object issue interface.\n */\nexport interface LooseObjectIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'loose_object';\n  /**\n   * The expected property.\n   */\n  readonly expected: 'Object' | `\"${string}\"`;\n}\n"
  },
  {
    "path": "library/src/schemas/looseTuple/index.ts",
    "content": "export * from './looseTuple.ts';\nexport * from './looseTupleAsync.ts';\nexport * from './types.ts';\n"
  },
  {
    "path": "library/src/schemas/looseTuple/looseTuple.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { boolean } from '../boolean/index.ts';\nimport {\n  number,\n  type NumberIssue,\n  type NumberSchema,\n} from '../number/index.ts';\nimport type { OptionalSchema } from '../optional/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { looseTuple, type LooseTupleSchema } from './looseTuple.ts';\nimport type { LooseTupleIssue } from './types.ts';\n\ndescribe('looseTuple', () => {\n  describe('should return schema object', () => {\n    const items = [string(), number(), boolean()] as const;\n    type Items = typeof items;\n\n    test('with undefined message', () => {\n      type Schema = LooseTupleSchema<Items, undefined>;\n      expectTypeOf(looseTuple(items)).toEqualTypeOf<Schema>();\n      expectTypeOf(looseTuple(items, undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(looseTuple(items, 'message')).toEqualTypeOf<\n        LooseTupleSchema<Items, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(looseTuple(items, () => 'message')).toEqualTypeOf<\n        LooseTupleSchema<Items, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = LooseTupleSchema<\n      [OptionalSchema<StringSchema<undefined>, 'foo'>, NumberSchema<undefined>],\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<\n        [string | undefined, number, ...unknown[]]\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<\n        [string, number, ...unknown[]]\n      >();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        LooseTupleIssue | StringIssue | NumberIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/looseTuple/looseTuple.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { boolean } from '../boolean/index.ts';\nimport { number } from '../number/index.ts';\nimport { optional } from '../optional/index.ts';\nimport { string, type StringIssue } from '../string/index.ts';\nimport { looseTuple, type LooseTupleSchema } from './looseTuple.ts';\nimport type { LooseTupleIssue } from './types.ts';\n\ndescribe('looseTuple', () => {\n  describe('should return schema object', () => {\n    const items = [optional(string()), number()] as const;\n    type Items = typeof items;\n    const baseSchema: Omit<LooseTupleSchema<Items, never>, 'message'> = {\n      kind: 'schema',\n      type: 'loose_tuple',\n      reference: looseTuple,\n      expects: 'Array',\n      items,\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: LooseTupleSchema<Items, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(looseTuple(items)).toStrictEqual(schema);\n      expect(looseTuple(items, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(looseTuple(items, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies LooseTupleSchema<Items, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(looseTuple(items, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies LooseTupleSchema<Items, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for empty tuple', () => {\n      expectNoSchemaIssue(looseTuple([]), [[]]);\n    });\n\n    const schema = looseTuple([optional(string()), number()]);\n\n    test('for simple tuple', () => {\n      expectNoSchemaIssue(schema, [\n        ['foo', 123],\n        [undefined, 123],\n      ]);\n    });\n\n    test('for unknown items', () => {\n      expectNoSchemaIssue(schema, [['foo', 123, null, true, undefined]]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = looseTuple([optional(string()), number()], 'message');\n    const baseIssue: Omit<LooseTupleIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'loose_tuple',\n      expected: 'Array',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', 'abc', '123']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n\n    test('for objects', () => {\n      expectSchemaIssue(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n\n  describe('should return dataset without nested issues', () => {\n    const schema = looseTuple([optional(string()), number()]);\n\n    test('for simple tuple', () => {\n      expectNoSchemaIssue(schema, [\n        ['foo', 123],\n        [undefined, 123],\n      ]);\n    });\n\n    test('for nested tuple', () => {\n      expectNoSchemaIssue(looseTuple([schema, schema]), [\n        [\n          ['foo', 123],\n          [undefined, 123],\n        ],\n      ]);\n    });\n\n    test('for unknown items', () => {\n      expectNoSchemaIssue(schema, [['foo', 123, null, true, undefined]]);\n    });\n  });\n\n  describe('should return dataset with nested issues', () => {\n    const schema = looseTuple([string(), number(), boolean()]);\n\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    const stringIssue: StringIssue = {\n      ...baseInfo,\n      kind: 'schema',\n      type: 'string',\n      input: 123,\n      expected: 'string',\n      received: '123',\n      path: [\n        {\n          type: 'array',\n          origin: 'value',\n          input: [123, 456, 'true'],\n          key: 0,\n          value: 123,\n        },\n      ],\n    };\n\n    test('for wrong items', () => {\n      const input = [123, 456, 'true'];\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          stringIssue,\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'boolean',\n            input: 'true',\n            expected: 'boolean',\n            received: '\"true\"',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 2,\n                value: input[2],\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('with abort early', () => {\n      expect(\n        schema['~run']({ value: [123, 456, 'true'] }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: [],\n        issues: [{ ...stringIssue, abortEarly: true }],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for wrong nested items', () => {\n      const nestedSchema = looseTuple([schema, schema]);\n      const input: [[string, string, boolean], null] = [\n        ['foo', '123', false],\n        null,\n      ];\n      expect(nestedSchema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: '123',\n            expected: 'number',\n            received: '\"123\"',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 0,\n                value: input[0],\n              },\n              {\n                type: 'array',\n                origin: 'value',\n                input: input[0],\n                key: 1,\n                value: input[0][1],\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'loose_tuple',\n            input: null,\n            expected: 'Array',\n            received: 'null',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 1,\n                value: input[1],\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof nestedSchema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/looseTuple/looseTuple.ts",
    "content": "import type {\n  ArrayPathItem,\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  InferTupleInput,\n  InferTupleIssue,\n  InferTupleOutput,\n  OutputDataset,\n  TupleItems,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\nimport type { LooseTupleIssue } from './types.ts';\n\n/**\n * Loose tuple schema interface.\n */\nexport interface LooseTupleSchema<\n  TItems extends TupleItems,\n  TMessage extends ErrorMessage<LooseTupleIssue> | undefined,\n> extends BaseSchema<\n    [...InferTupleInput<TItems>, ...unknown[]],\n    [...InferTupleOutput<TItems>, ...unknown[]],\n    LooseTupleIssue | InferTupleIssue<TItems>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'loose_tuple';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof looseTuple;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Array';\n  /**\n   * The items schema.\n   */\n  readonly items: TItems;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a loose tuple schema.\n *\n * @param items The items schema.\n *\n * @returns A loose tuple schema.\n */\nexport function looseTuple<const TItems extends TupleItems>(\n  items: TItems\n): LooseTupleSchema<TItems, undefined>;\n\n/**\n * Creates a loose tuple schema.\n *\n * @param items The items schema.\n * @param message The error message.\n *\n * @returns A loose tuple schema.\n */\nexport function looseTuple<\n  const TItems extends TupleItems,\n  const TMessage extends ErrorMessage<LooseTupleIssue> | undefined,\n>(items: TItems, message: TMessage): LooseTupleSchema<TItems, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function looseTuple(\n  items: TupleItems,\n  message?: ErrorMessage<LooseTupleIssue>\n): LooseTupleSchema<TupleItems, ErrorMessage<LooseTupleIssue> | undefined> {\n  return {\n    kind: 'schema',\n    type: 'loose_tuple',\n    reference: looseTuple,\n    expects: 'Array',\n    async: false,\n    items,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      // Get input value from dataset\n      const input = dataset.value;\n\n      // If root type is valid, check nested types\n      if (Array.isArray(input)) {\n        // Set typed to `true` and value to empty array\n        // @ts-expect-error\n        dataset.typed = true;\n        dataset.value = [];\n\n        // Parse schema of each tuple item\n        for (let key = 0; key < this.items.length; key++) {\n          const value = input[key];\n          const itemDataset = this.items[key]['~run']({ value }, config);\n\n          // If there are issues, capture them\n          if (itemDataset.issues) {\n            // Create tuple path item\n            const pathItem: ArrayPathItem = {\n              type: 'array',\n              origin: 'value',\n              input,\n              key,\n              value,\n            };\n\n            // Add modified item dataset issues to issues\n            for (const issue of itemDataset.issues) {\n              if (issue.path) {\n                issue.path.unshift(pathItem);\n              } else {\n                // @ts-expect-error\n                issue.path = [pathItem];\n              }\n              // @ts-expect-error\n              dataset.issues?.push(issue);\n            }\n            if (!dataset.issues) {\n              // @ts-expect-error\n              dataset.issues = itemDataset.issues;\n            }\n\n            // If necessary, abort early\n            if (config.abortEarly) {\n              dataset.typed = false;\n              break;\n            }\n          }\n\n          // If not typed, set typed to `false`\n          if (!itemDataset.typed) {\n            dataset.typed = false;\n          }\n\n          // Add item to dataset\n          // @ts-expect-error\n          dataset.value.push(itemDataset.value);\n        }\n\n        // Add rest to dataset if necessary\n        if (!dataset.issues || !config.abortEarly) {\n          for (let key = this.items.length; key < input.length; key++) {\n            // @ts-expect-error\n            dataset.value.push(input[key]);\n          }\n        }\n\n        // Otherwise, add tuple issue\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        unknown[],\n        LooseTupleIssue | BaseIssue<unknown>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/looseTuple/looseTupleAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { boolean } from '../boolean/index.ts';\nimport {\n  number,\n  type NumberIssue,\n  type NumberSchema,\n} from '../number/index.ts';\nimport type { OptionalSchemaAsync } from '../optional/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport {\n  looseTupleAsync,\n  type LooseTupleSchemaAsync,\n} from './looseTupleAsync.ts';\nimport type { LooseTupleIssue } from './types.ts';\n\ndescribe('looseTupleAsync', () => {\n  describe('should return schema object', () => {\n    const items = [string(), number(), boolean()] as const;\n    type Items = typeof items;\n\n    test('with undefined message', () => {\n      type Schema = LooseTupleSchemaAsync<Items, undefined>;\n      expectTypeOf(looseTupleAsync(items)).toEqualTypeOf<Schema>();\n      expectTypeOf(looseTupleAsync(items, undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(looseTupleAsync(items, 'message')).toEqualTypeOf<\n        LooseTupleSchemaAsync<Items, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(looseTupleAsync(items, () => 'message')).toEqualTypeOf<\n        LooseTupleSchemaAsync<Items, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = LooseTupleSchemaAsync<\n      [\n        OptionalSchemaAsync<StringSchema<undefined>, 'foo'>,\n        NumberSchema<undefined>,\n      ],\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<\n        [string | undefined, number, ...unknown[]]\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<\n        [string, number, ...unknown[]]\n      >();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        LooseTupleIssue | StringIssue | NumberIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/looseTuple/looseTupleAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport {\n  expectNoSchemaIssueAsync,\n  expectSchemaIssueAsync,\n} from '../../vitest/index.ts';\nimport { boolean } from '../boolean/index.ts';\nimport { number } from '../number/index.ts';\nimport { optionalAsync } from '../optional/index.ts';\nimport { string, type StringIssue } from '../string/index.ts';\nimport {\n  looseTupleAsync,\n  type LooseTupleSchemaAsync,\n} from './looseTupleAsync.ts';\nimport type { LooseTupleIssue } from './types.ts';\n\ndescribe('looseTupleAsync', () => {\n  describe('should return schema object', () => {\n    const items = [optionalAsync(string()), number()] as const;\n    type Items = typeof items;\n    const baseSchema: Omit<LooseTupleSchemaAsync<Items, never>, 'message'> = {\n      kind: 'schema',\n      type: 'loose_tuple',\n      reference: looseTupleAsync,\n      expects: 'Array',\n      items,\n      async: true,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: LooseTupleSchemaAsync<Items, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(looseTupleAsync(items)).toStrictEqual(schema);\n      expect(looseTupleAsync(items, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(looseTupleAsync(items, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies LooseTupleSchemaAsync<Items, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(looseTupleAsync(items, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies LooseTupleSchemaAsync<Items, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for empty tuple', async () => {\n      await expectNoSchemaIssueAsync(looseTupleAsync([]), [[]]);\n    });\n\n    const schema = looseTupleAsync([optionalAsync(string()), number()]);\n\n    test('for simple tuple', async () => {\n      await expectNoSchemaIssueAsync(schema, [\n        ['foo', 123],\n        [undefined, 123],\n      ]);\n    });\n\n    test('for unknown items', async () => {\n      await expectNoSchemaIssueAsync(schema, [\n        ['foo', 123, null, true, undefined],\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = looseTupleAsync(\n      [optionalAsync(string()), number()],\n      'message'\n    );\n    const baseIssue: Omit<LooseTupleIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'loose_tuple',\n      expected: 'Array',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, ['', 'abc', '123']);\n    });\n\n    test('for symbols', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        Symbol(),\n        Symbol('foo'),\n      ]);\n    });\n\n    // Complex types\n\n    test('for functions', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        () => {},\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        function () {},\n      ]);\n    });\n\n    test('for objects', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n\n  describe('should return dataset without nested issues', () => {\n    const schema = looseTupleAsync([optionalAsync(string()), number()]);\n\n    test('for simple tuple', async () => {\n      await expectNoSchemaIssueAsync(schema, [\n        ['foo', 123],\n        [undefined, 123],\n      ]);\n    });\n\n    test('for nested tuple', async () => {\n      await expectNoSchemaIssueAsync(looseTupleAsync([schema, schema]), [\n        [\n          ['foo', 123],\n          [undefined, 123],\n        ],\n      ]);\n    });\n\n    test('for unknown items', async () => {\n      await expectNoSchemaIssueAsync(schema, [\n        ['foo', 123, null, true, undefined],\n      ]);\n    });\n  });\n\n  describe('should return dataset with nested issues', () => {\n    const schema = looseTupleAsync([string(), number(), boolean()]);\n\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    const stringIssue: StringIssue = {\n      ...baseInfo,\n      kind: 'schema',\n      type: 'string',\n      input: 123,\n      expected: 'string',\n      received: '123',\n      path: [\n        {\n          type: 'array',\n          origin: 'value',\n          input: [123, 456, 'true'],\n          key: 0,\n          value: 123,\n        },\n      ],\n    };\n\n    test('for wrong items', async () => {\n      const input = [123, 456, 'true'];\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          stringIssue,\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'boolean',\n            input: 'true',\n            expected: 'boolean',\n            received: '\"true\"',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 2,\n                value: input[2],\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('with abort early', async () => {\n      expect(\n        await schema['~run'](\n          { value: [123, 456, 'true'] },\n          { abortEarly: true }\n        )\n      ).toStrictEqual({\n        typed: false,\n        value: [],\n        issues: [{ ...stringIssue, abortEarly: true }],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for wrong nested items', async () => {\n      const nestedSchema = looseTupleAsync([schema, schema]);\n      const input: [[string, string, boolean], null] = [\n        ['foo', '123', false],\n        null,\n      ];\n      expect(await nestedSchema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: '123',\n            expected: 'number',\n            received: '\"123\"',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 0,\n                value: input[0],\n              },\n              {\n                type: 'array',\n                origin: 'value',\n                input: input[0],\n                key: 1,\n                value: input[0][1],\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'loose_tuple',\n            input: null,\n            expected: 'Array',\n            received: 'null',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 1,\n                value: input[1],\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof nestedSchema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/looseTuple/looseTupleAsync.ts",
    "content": "import type {\n  ArrayPathItem,\n  BaseIssue,\n  BaseSchemaAsync,\n  ErrorMessage,\n  InferTupleInput,\n  InferTupleIssue,\n  InferTupleOutput,\n  OutputDataset,\n  TupleItemsAsync,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\nimport type { looseTuple } from './looseTuple.ts';\nimport type { LooseTupleIssue } from './types.ts';\n\n/**\n * Loose tuple schema async interface.\n */\nexport interface LooseTupleSchemaAsync<\n  TItems extends TupleItemsAsync,\n  TMessage extends ErrorMessage<LooseTupleIssue> | undefined,\n> extends BaseSchemaAsync<\n    [...InferTupleInput<TItems>, ...unknown[]],\n    [...InferTupleOutput<TItems>, ...unknown[]],\n    LooseTupleIssue | InferTupleIssue<TItems>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'loose_tuple';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof looseTuple | typeof looseTupleAsync;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Array';\n  /**\n   * The items schema.\n   */\n  readonly items: TItems;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a loose tuple schema.\n *\n * @param items The items schema.\n *\n * @returns A loose tuple schema.\n */\nexport function looseTupleAsync<const TItems extends TupleItemsAsync>(\n  items: TItems\n): LooseTupleSchemaAsync<TItems, undefined>;\n\n/**\n * Creates a loose tuple schema.\n *\n * @param items The items schema.\n * @param message The error message.\n *\n * @returns A loose tuple schema.\n */\nexport function looseTupleAsync<\n  const TItems extends TupleItemsAsync,\n  const TMessage extends ErrorMessage<LooseTupleIssue> | undefined,\n>(items: TItems, message: TMessage): LooseTupleSchemaAsync<TItems, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function looseTupleAsync(\n  items: TupleItemsAsync,\n  message?: ErrorMessage<LooseTupleIssue>\n): LooseTupleSchemaAsync<\n  TupleItemsAsync,\n  ErrorMessage<LooseTupleIssue> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'loose_tuple',\n    reference: looseTupleAsync,\n    expects: 'Array',\n    async: true,\n    items,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    async '~run'(dataset, config) {\n      // Get input value from dataset\n      const input = dataset.value;\n\n      // If root type is valid, check nested types\n      if (Array.isArray(input)) {\n        // Set typed to `true` and value to empty array\n        // @ts-expect-error\n        dataset.typed = true;\n        dataset.value = [];\n\n        // Parse schema of each tuple item\n        const itemDatasets = await Promise.all(\n          this.items.map(async (item, key) => {\n            const value = input[key];\n            return [key, value, await item['~run']({ value }, config)] as const;\n          })\n        );\n\n        // Process each tuple item dataset\n        for (const [key, value, itemDataset] of itemDatasets) {\n          // If there are issues, capture them\n          if (itemDataset.issues) {\n            // Create tuple path item\n            const pathItem: ArrayPathItem = {\n              type: 'array',\n              origin: 'value',\n              input,\n              key,\n              value,\n            };\n\n            // Add modified item dataset issues to issues\n            for (const issue of itemDataset.issues) {\n              if (issue.path) {\n                issue.path.unshift(pathItem);\n              } else {\n                // @ts-expect-error\n                issue.path = [pathItem];\n              }\n              // @ts-expect-error\n              dataset.issues?.push(issue);\n            }\n            if (!dataset.issues) {\n              // @ts-expect-error\n              dataset.issues = itemDataset.issues;\n            }\n\n            // If necessary, abort early\n            if (config.abortEarly) {\n              dataset.typed = false;\n              break;\n            }\n          }\n\n          // If not typed, set typed to `false`\n          if (!itemDataset.typed) {\n            dataset.typed = false;\n          }\n\n          // Add item to dataset\n          // @ts-expect-error\n          dataset.value.push(itemDataset.value);\n        }\n\n        // Add rest to dataset if necessary\n        if (!dataset.issues || !config.abortEarly) {\n          for (let key = this.items.length; key < input.length; key++) {\n            // @ts-expect-error\n            dataset.value.push(input[key]);\n          }\n        }\n\n        // Otherwise, add tuple issue\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        unknown[],\n        LooseTupleIssue | BaseIssue<unknown>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/looseTuple/types.ts",
    "content": "import type { BaseIssue } from '../../types/index.ts';\n\n/**\n * Loose tuple issue interface.\n */\nexport interface LooseTupleIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'loose_tuple';\n  /**\n   * The expected property.\n   */\n  readonly expected: 'Array';\n}\n"
  },
  {
    "path": "library/src/schemas/map/index.ts",
    "content": "export * from './map.ts';\nexport * from './mapAsync.ts';\nexport type { MapIssue } from './types.ts';\n"
  },
  {
    "path": "library/src/schemas/map/map.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  number,\n  type NumberIssue,\n  type NumberSchema,\n} from '../number/index.ts';\nimport type { OptionalSchema } from '../optional/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { map, type MapSchema } from './map.ts';\nimport type { MapIssue } from './types.ts';\n\ndescribe('map', () => {\n  describe('should return schema object', () => {\n    const key = number();\n    type Key = typeof key;\n    const value = string();\n    type Value = typeof value;\n\n    test('with undefined message', () => {\n      type Schema = MapSchema<Key, Value, undefined>;\n      expectTypeOf(map(key, value)).toEqualTypeOf<Schema>();\n      expectTypeOf(map(key, value, undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(map(key, value, 'message')).toEqualTypeOf<\n        MapSchema<Key, Value, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(map(key, value, () => 'message')).toEqualTypeOf<\n        MapSchema<Key, Value, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = MapSchema<\n      OptionalSchema<NumberSchema<undefined>, 123>,\n      OptionalSchema<StringSchema<undefined>, 'foo'>,\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<\n        Map<number | undefined, string | undefined>\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<Map<number, string>>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        MapIssue | NumberIssue | StringIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/map/map.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { number } from '../number/index.ts';\nimport { string, type StringIssue } from '../string/index.ts';\nimport { map, type MapSchema } from './map.ts';\nimport type { MapIssue } from './types.ts';\n\ndescribe('map', () => {\n  describe('should return schema object', () => {\n    const key = number();\n    type Key = typeof key;\n    const value = string();\n    type Value = typeof value;\n    const baseSchema: Omit<MapSchema<Key, Value, never>, 'message'> = {\n      kind: 'schema',\n      type: 'map',\n      reference: map,\n      expects: 'Map',\n      key,\n      value,\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: MapSchema<Key, Value, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(map(key, value)).toStrictEqual(schema);\n      expect(map(key, value, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(map(key, value, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies MapSchema<Key, Value, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(map(key, value, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies MapSchema<Key, Value, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = map(number(), string());\n\n    test('for empty map', () => {\n      expectNoSchemaIssue(schema, [new Map()]);\n    });\n\n    test('for simple map', () => {\n      expectNoSchemaIssue(schema, [\n        new Map([\n          [0, 'foo'],\n          [1, 'bar'],\n          [2, 'baz'],\n        ]),\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = map(number(), string(), 'message');\n    const baseIssue: Omit<MapIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'map',\n      expected: 'Map',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', 'abc', '123']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    test('for arrays', () => {\n      expectSchemaIssue(schema, baseIssue, [[], ['value']]);\n    });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n\n    test('for objects', () => {\n      expectSchemaIssue(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n\n  describe('should return dataset without nested issues', () => {\n    const schema = map(number(), string());\n\n    test('for simple map', () => {\n      expectNoSchemaIssue(schema, [\n        new Map([\n          [0, 'foo'],\n          [1, 'bar'],\n          [2, 'baz'],\n        ]),\n      ]);\n    });\n\n    test('for nested map', () => {\n      expectNoSchemaIssue(map(schema, schema), [\n        new Map([\n          [\n            new Map([\n              [0, 'foo'],\n              [1, 'bar'],\n            ]),\n            new Map([[3, 'baz']]),\n          ],\n        ]),\n      ]);\n    });\n  });\n\n  describe('should return dataset with nested issues', () => {\n    const schema = map(number(), string());\n\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    const input = new Map<unknown, unknown>([\n      [0, 'foo'],\n      [1, 123], // Invalid value\n      [2, 'baz'],\n      [null, 'bar'], // Invalid key\n      [4, null], // Invalid value\n    ]);\n\n    const stringIssue: StringIssue = {\n      ...baseInfo,\n      kind: 'schema',\n      type: 'string',\n      input: 123,\n      expected: 'string',\n      received: '123',\n      path: [\n        {\n          type: 'map',\n          origin: 'value',\n          input,\n          key: 1,\n          value: 123,\n        },\n      ],\n    };\n\n    test('for invalid values', () => {\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          stringIssue,\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: null,\n            expected: 'number',\n            received: 'null',\n            path: [\n              {\n                type: 'map',\n                origin: 'key',\n                input,\n                key: null,\n                value: 'bar',\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: null,\n            expected: 'string',\n            received: 'null',\n            path: [\n              {\n                type: 'map',\n                origin: 'value',\n                input,\n                key: 4,\n                value: null,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('with abort early for invalid key', () => {\n      const input = new Map<unknown, unknown>([\n        [0, 'foo'],\n        ['1', 'bar'], // Invalid key\n        [2, 'baz'],\n        [3, 123], // Invalid value\n      ]);\n      expect(\n        schema['~run']({ value: input }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: new Map([[0, 'foo']]),\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: '1',\n            expected: 'number',\n            received: '\"1\"',\n            path: [\n              {\n                type: 'map',\n                origin: 'key',\n                input,\n                key: '1',\n                value: 'bar',\n              },\n            ],\n            abortEarly: true,\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('with abort early for invalid value', () => {\n      expect(\n        schema['~run']({ value: input }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: new Map([[0, 'foo']]),\n        issues: [{ ...stringIssue, abortEarly: true }],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid nested values', () => {\n      const nestedSchema = map(schema, schema);\n      const input = new Map<unknown, unknown>([\n        [\n          new Map<unknown, unknown>([\n            [0, 123],\n            [1, 'foo'],\n          ]),\n          new Map(),\n        ],\n        [new Map(), 'bar'],\n        [\n          new Map(),\n          new Map<unknown, unknown>([\n            [0, 'foo'],\n            ['1', 'bar'],\n          ]),\n        ],\n      ]);\n      expect(nestedSchema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: 123,\n            expected: 'string',\n            received: '123',\n            path: [\n              {\n                type: 'map',\n                origin: 'key',\n                input,\n                key: new Map<unknown, unknown>([\n                  [0, 123],\n                  [1, 'foo'],\n                ]),\n                value: new Map(),\n              },\n              {\n                type: 'map',\n                origin: 'value',\n                input: new Map<unknown, unknown>([\n                  [0, 123],\n                  [1, 'foo'],\n                ]),\n                key: 0,\n                value: 123,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'map',\n            input: 'bar',\n            expected: 'Map',\n            received: '\"bar\"',\n            path: [\n              {\n                type: 'map',\n                origin: 'value',\n                input,\n                key: new Map(),\n                value: 'bar',\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: '1',\n            expected: 'number',\n            received: '\"1\"',\n            path: [\n              {\n                type: 'map',\n                origin: 'value',\n                input,\n                key: new Map(),\n                value: new Map<unknown, unknown>([\n                  [0, 'foo'],\n                  ['1', 'bar'],\n                ]),\n              },\n              {\n                type: 'map',\n                origin: 'key',\n                input: new Map<unknown, unknown>([\n                  [0, 'foo'],\n                  ['1', 'bar'],\n                ]),\n                key: '1',\n                value: 'bar',\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof nestedSchema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/map/map.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  InferIssue,\n  MapPathItem,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\nimport type { InferMapInput, InferMapOutput, MapIssue } from './types.ts';\n\n/**\n * Map schema interface.\n */\nexport interface MapSchema<\n  TKey extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  TValue extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  TMessage extends ErrorMessage<MapIssue> | undefined,\n> extends BaseSchema<\n    InferMapInput<TKey, TValue>,\n    InferMapOutput<TKey, TValue>,\n    MapIssue | InferIssue<TKey> | InferIssue<TValue>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'map';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof map;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Map';\n  /**\n   * The map key schema.\n   */\n  readonly key: TKey;\n  /**\n   * The map value schema.\n   */\n  readonly value: TValue;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a map schema.\n *\n * @param key The key schema.\n * @param value The value schema.\n *\n * @returns A map schema.\n */\nexport function map<\n  const TKey extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TValue extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n>(key: TKey, value: TValue): MapSchema<TKey, TValue, undefined>;\n\n/**\n * Creates a map schema.\n *\n * @param key The key schema.\n * @param value The value schema.\n * @param message The error message.\n *\n * @returns A map schema.\n */\nexport function map<\n  const TKey extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TValue extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TMessage extends ErrorMessage<MapIssue> | undefined,\n>(\n  key: TKey,\n  value: TValue,\n  message: TMessage\n): MapSchema<TKey, TValue, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function map(\n  key: BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  value: BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  message?: ErrorMessage<MapIssue>\n): MapSchema<\n  BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  ErrorMessage<MapIssue> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'map',\n    reference: map,\n    expects: 'Map',\n    async: false,\n    key,\n    value,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      // Get input value from dataset\n      const input = dataset.value;\n\n      // If root type is valid, check nested types\n      if (input instanceof Map) {\n        // Set typed to `true` and value to empty map\n        // @ts-expect-error\n        dataset.typed = true;\n        dataset.value = new Map();\n\n        // Parse schema of each map entry\n        for (const [inputKey, inputValue] of input) {\n          // Get dataset of key schema\n          const keyDataset = this.key['~run']({ value: inputKey }, config);\n\n          // If there are issues, capture them\n          if (keyDataset.issues) {\n            // Create map path item\n            const pathItem: MapPathItem = {\n              type: 'map',\n              origin: 'key',\n              input,\n              key: inputKey,\n              value: inputValue,\n            };\n\n            // Add modified item dataset issues to issues\n            for (const issue of keyDataset.issues) {\n              if (issue.path) {\n                issue.path.unshift(pathItem);\n              } else {\n                // @ts-expect-error\n                issue.path = [pathItem];\n              }\n              // @ts-expect-error\n              dataset.issues?.push(issue);\n            }\n            if (!dataset.issues) {\n              // @ts-expect-error\n              dataset.issues = keyDataset.issues;\n            }\n\n            // If necessary, abort early\n            if (config.abortEarly) {\n              dataset.typed = false;\n              break;\n            }\n          }\n\n          // Get dataset of value schema\n          const valueDataset = this.value['~run'](\n            { value: inputValue },\n            config\n          );\n\n          // If there are issues, capture them\n          if (valueDataset.issues) {\n            // Create map path item\n            const pathItem: MapPathItem = {\n              type: 'map',\n              origin: 'value',\n              input,\n              key: inputKey,\n              value: inputValue,\n            };\n\n            // Add modified item dataset issues to issues\n            for (const issue of valueDataset.issues) {\n              if (issue.path) {\n                issue.path.unshift(pathItem);\n              } else {\n                // @ts-expect-error\n                issue.path = [pathItem];\n              }\n              // @ts-expect-error\n              dataset.issues?.push(issue);\n            }\n            if (!dataset.issues) {\n              // @ts-expect-error\n              dataset.issues = valueDataset.issues;\n            }\n\n            // If necessary, abort early\n            if (config.abortEarly) {\n              dataset.typed = false;\n              break;\n            }\n          }\n\n          // If not typed, map typed to `false`\n          if (!keyDataset.typed || !valueDataset.typed) {\n            dataset.typed = false;\n          }\n\n          // Add value to dataset\n          // @ts-expect-error\n          dataset.value.set(keyDataset.value, valueDataset.value);\n        }\n\n        // Otherwise, add map issue\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        Map<unknown, unknown>,\n        MapIssue | BaseIssue<unknown>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/map/mapAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  number,\n  type NumberIssue,\n  type NumberSchema,\n} from '../number/index.ts';\nimport type { OptionalSchema, OptionalSchemaAsync } from '../optional/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { mapAsync, type MapSchemaAsync } from './mapAsync.ts';\nimport type { MapIssue } from './types.ts';\n\ndescribe('mapAsync', () => {\n  describe('should return schema object', () => {\n    const key = number();\n    type Key = typeof key;\n    const value = string();\n    type Value = typeof value;\n\n    test('with undefined message', () => {\n      type Schema = MapSchemaAsync<Key, Value, undefined>;\n      expectTypeOf(mapAsync(key, value)).toEqualTypeOf<Schema>();\n      expectTypeOf(mapAsync(key, value, undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(mapAsync(key, value, 'message')).toEqualTypeOf<\n        MapSchemaAsync<Key, Value, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(mapAsync(key, value, () => 'message')).toEqualTypeOf<\n        MapSchemaAsync<Key, Value, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = MapSchemaAsync<\n      OptionalSchema<NumberSchema<undefined>, 123>,\n      OptionalSchemaAsync<StringSchema<undefined>, 'foo'>,\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<\n        Map<number | undefined, string | undefined>\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<Map<number, string>>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        MapIssue | NumberIssue | StringIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/map/mapAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport {\n  expectNoSchemaIssueAsync,\n  expectSchemaIssueAsync,\n} from '../../vitest/index.ts';\nimport { number } from '../number/index.ts';\nimport { string, type StringIssue } from '../string/index.ts';\nimport { mapAsync, type MapSchemaAsync } from './mapAsync.ts';\nimport type { MapIssue } from './types.ts';\n\ndescribe('mapAsync', () => {\n  describe('should return schema object', () => {\n    const key = number();\n    type Key = typeof key;\n    const value = string();\n    type Value = typeof value;\n    const baseSchema: Omit<MapSchemaAsync<Key, Value, never>, 'message'> = {\n      kind: 'schema',\n      type: 'map',\n      reference: mapAsync,\n      expects: 'Map',\n      key,\n      value,\n      async: true,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: MapSchemaAsync<Key, Value, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(mapAsync(key, value)).toStrictEqual(schema);\n      expect(mapAsync(key, value, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(mapAsync(key, value, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies MapSchemaAsync<Key, Value, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(mapAsync(key, value, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies MapSchemaAsync<Key, Value, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = mapAsync(number(), string());\n\n    test('for empty mapAsync', async () => {\n      await expectNoSchemaIssueAsync(schema, [new Map()]);\n    });\n\n    test('for simple mapAsync', async () => {\n      await expectNoSchemaIssueAsync(schema, [\n        new Map([\n          [0, 'foo'],\n          [1, 'bar'],\n          [2, 'baz'],\n        ]),\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = mapAsync(number(), string(), 'message');\n    const baseIssue: Omit<MapIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'map',\n      expected: 'Map',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, ['', 'abc', '123']);\n    });\n\n    test('for symbols', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        Symbol(),\n        Symbol('foo'),\n      ]);\n    });\n\n    // Complex types\n\n    test('for arrays', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [[], ['value']]);\n    });\n\n    test('for functions', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        () => {},\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        function () {},\n      ]);\n    });\n\n    test('for objects', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n\n  describe('should return dataset without nested issues', () => {\n    const schema = mapAsync(number(), string());\n\n    test('for simple mapAsync', async () => {\n      await expectNoSchemaIssueAsync(schema, [\n        new Map([\n          [0, 'foo'],\n          [1, 'bar'],\n          [2, 'baz'],\n        ]),\n      ]);\n    });\n\n    test('for nested mapAsync', async () => {\n      await expectNoSchemaIssueAsync(mapAsync(schema, schema), [\n        new Map([\n          [\n            new Map([\n              [0, 'foo'],\n              [1, 'bar'],\n            ]),\n            new Map([[3, 'baz']]),\n          ],\n        ]),\n      ]);\n    });\n  });\n\n  describe('should return dataset with nested issues', () => {\n    const schema = mapAsync(number(), string());\n\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    const input = new Map<unknown, unknown>([\n      [0, 'foo'],\n      [1, 123], // Invalid value\n      [2, 'baz'],\n      [null, 'bar'], // Invalid key\n      [4, null], // Invalid value\n    ]);\n\n    const stringIssue: StringIssue = {\n      ...baseInfo,\n      kind: 'schema',\n      type: 'string',\n      input: 123,\n      expected: 'string',\n      received: '123',\n      path: [\n        {\n          type: 'map',\n          origin: 'value',\n          input,\n          key: 1,\n          value: 123,\n        },\n      ],\n    };\n\n    test('for invalid values', async () => {\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          stringIssue,\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: null,\n            expected: 'number',\n            received: 'null',\n            path: [\n              {\n                type: 'map',\n                origin: 'key',\n                input,\n                key: null,\n                value: 'bar',\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: null,\n            expected: 'string',\n            received: 'null',\n            path: [\n              {\n                type: 'map',\n                origin: 'value',\n                input,\n                key: 4,\n                value: null,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('with abort early for invalid key', async () => {\n      const input = new Map<unknown, unknown>([\n        [0, 'foo'],\n        ['1', 'bar'], // Invalid key\n        [2, 'baz'],\n        [3, 123], // Invalid value\n      ]);\n      expect(\n        await schema['~run']({ value: input }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: new Map([[0, 'foo']]),\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: '1',\n            expected: 'number',\n            received: '\"1\"',\n            path: [\n              {\n                type: 'map',\n                origin: 'key',\n                input,\n                key: '1',\n                value: 'bar',\n              },\n            ],\n            abortEarly: true,\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('with abort early for invalid value', async () => {\n      expect(\n        await schema['~run']({ value: input }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: new Map([[0, 'foo']]),\n        issues: [{ ...stringIssue, abortEarly: true }],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid nested values', async () => {\n      const nestedSchema = mapAsync(schema, schema);\n      const input = new Map<unknown, unknown>([\n        [\n          new Map<unknown, unknown>([\n            [0, 123],\n            [1, 'foo'],\n          ]),\n          new Map(),\n        ],\n        [new Map(), 'bar'],\n        [\n          new Map(),\n          new Map<unknown, unknown>([\n            [0, 'foo'],\n            ['1', 'bar'],\n          ]),\n        ],\n      ]);\n      expect(await nestedSchema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: 123,\n            expected: 'string',\n            received: '123',\n            path: [\n              {\n                type: 'map',\n                origin: 'key',\n                input,\n                key: new Map<unknown, unknown>([\n                  [0, 123],\n                  [1, 'foo'],\n                ]),\n                value: new Map(),\n              },\n              {\n                type: 'map',\n                origin: 'value',\n                input: new Map<unknown, unknown>([\n                  [0, 123],\n                  [1, 'foo'],\n                ]),\n                key: 0,\n                value: 123,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'map',\n            input: 'bar',\n            expected: 'Map',\n            received: '\"bar\"',\n            path: [\n              {\n                type: 'map',\n                origin: 'value',\n                input,\n                key: new Map(),\n                value: 'bar',\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: '1',\n            expected: 'number',\n            received: '\"1\"',\n            path: [\n              {\n                type: 'map',\n                origin: 'value',\n                input,\n                key: new Map(),\n                value: new Map<unknown, unknown>([\n                  [0, 'foo'],\n                  ['1', 'bar'],\n                ]),\n              },\n              {\n                type: 'map',\n                origin: 'key',\n                input: new Map<unknown, unknown>([\n                  [0, 'foo'],\n                  ['1', 'bar'],\n                ]),\n                key: '1',\n                value: 'bar',\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof nestedSchema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/map/mapAsync.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  ErrorMessage,\n  InferIssue,\n  MapPathItem,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\nimport type { map } from './map.ts';\nimport type { InferMapInput, InferMapOutput, MapIssue } from './types.ts';\n\n/**\n * Map schema async interface.\n */\nexport interface MapSchemaAsync<\n  TKey extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  TValue extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  TMessage extends ErrorMessage<MapIssue> | undefined,\n> extends BaseSchemaAsync<\n    InferMapInput<TKey, TValue>,\n    InferMapOutput<TKey, TValue>,\n    MapIssue | InferIssue<TKey> | InferIssue<TValue>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'map';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof map | typeof mapAsync;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Map';\n  /**\n   * The map key schema.\n   */\n  readonly key: TKey;\n  /**\n   * The map value schema.\n   */\n  readonly value: TValue;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a map schema.\n *\n * @param key The key schema.\n * @param value The value schema.\n *\n * @returns A map schema.\n */\nexport function mapAsync<\n  const TKey extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TValue extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(key: TKey, value: TValue): MapSchemaAsync<TKey, TValue, undefined>;\n\n/**\n * Creates a map schema.\n *\n * @param key The key schema.\n * @param value The value schema.\n * @param message The error message.\n *\n * @returns A map schema.\n */\nexport function mapAsync<\n  const TKey extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TValue extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TMessage extends ErrorMessage<MapIssue> | undefined,\n>(\n  key: TKey,\n  value: TValue,\n  message: TMessage\n): MapSchemaAsync<TKey, TValue, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function mapAsync(\n  key:\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  value:\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  message?: ErrorMessage<MapIssue>\n): MapSchemaAsync<\n  | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n  | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n  | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  ErrorMessage<MapIssue> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'map',\n    reference: mapAsync,\n    expects: 'Map',\n    async: true,\n    key,\n    value,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    async '~run'(dataset, config) {\n      // Get input value from dataset\n      const input = dataset.value;\n\n      // If root type is valid, check nested types\n      if (input instanceof Map) {\n        // Set typed to `true` and value to empty map\n        // @ts-expect-error\n        dataset.typed = true;\n        dataset.value = new Map();\n\n        // Parse schema of each map entry\n        const datasets = await Promise.all(\n          [...input].map(([inputKey, inputValue]) =>\n            Promise.all([\n              inputKey,\n              inputValue,\n              this.key['~run']({ value: inputKey }, config),\n              this.value['~run']({ value: inputValue }, config),\n            ])\n          )\n        );\n\n        // Process datasets of each map entry\n        for (const [\n          inputKey,\n          inputValue,\n          keyDataset,\n          valueDataset,\n        ] of datasets) {\n          // If there are issues, capture them\n          if (keyDataset.issues) {\n            // Create map path item\n            const pathItem: MapPathItem = {\n              type: 'map',\n              origin: 'key',\n              input,\n              key: inputKey,\n              value: inputValue,\n            };\n\n            // Add modified item dataset issues to issues\n            for (const issue of keyDataset.issues) {\n              if (issue.path) {\n                issue.path.unshift(pathItem);\n              } else {\n                // @ts-expect-error\n                issue.path = [pathItem];\n              }\n              // @ts-expect-error\n              dataset.issues?.push(issue);\n            }\n            if (!dataset.issues) {\n              // @ts-expect-error\n              dataset.issues = keyDataset.issues;\n            }\n\n            // If necessary, abort early\n            if (config.abortEarly) {\n              dataset.typed = false;\n              break;\n            }\n          }\n\n          // If there are issues, capture them\n          if (valueDataset.issues) {\n            // Create map path item\n            const pathItem: MapPathItem = {\n              type: 'map',\n              origin: 'value',\n              input,\n              key: inputKey,\n              value: inputValue,\n            };\n\n            // Add modified item dataset issues to issues\n            for (const issue of valueDataset.issues) {\n              if (issue.path) {\n                issue.path.unshift(pathItem);\n              } else {\n                // @ts-expect-error\n                issue.path = [pathItem];\n              }\n              // @ts-expect-error\n              dataset.issues?.push(issue);\n            }\n            if (!dataset.issues) {\n              // @ts-expect-error\n              dataset.issues = valueDataset.issues;\n            }\n\n            // If necessary, abort early\n            if (config.abortEarly) {\n              dataset.typed = false;\n              break;\n            }\n          }\n\n          // If not typed, map typed to `false`\n          if (!keyDataset.typed || !valueDataset.typed) {\n            dataset.typed = false;\n          }\n\n          // Add value to dataset\n          // @ts-expect-error\n          dataset.value.set(keyDataset.value, valueDataset.value);\n        }\n\n        // Otherwise, add map issue\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        Map<unknown, unknown>,\n        MapIssue | BaseIssue<unknown>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/map/types.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  InferInput,\n  InferOutput,\n} from '../../types/index.ts';\n\n/**\n * Map issue interface.\n */\nexport interface MapIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'map';\n  /**\n   * The expected property.\n   */\n  readonly expected: 'Map';\n}\n\n/**\n * Infer map input type.\n */\nexport type InferMapInput<\n  TKey extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  TValue extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n> = Map<InferInput<TKey>, InferInput<TValue>>;\n\n/**\n * Infer map output type.\n */\nexport type InferMapOutput<\n  TKey extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  TValue extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n> = Map<InferOutput<TKey>, InferOutput<TValue>>;\n"
  },
  {
    "path": "library/src/schemas/nan/index.ts",
    "content": "export * from './nan.ts';\n"
  },
  {
    "path": "library/src/schemas/nan/nan.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { nan, type NanIssue, type NanSchema } from './nan.ts';\n\ndescribe('nan', () => {\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = NanSchema<undefined>;\n      expectTypeOf(nan()).toEqualTypeOf<Schema>();\n      expectTypeOf(nan(undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(nan('message')).toEqualTypeOf<NanSchema<'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(nan(() => 'message')).toEqualTypeOf<\n        NanSchema<() => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = NanSchema<undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<number>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<number>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<NanIssue>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/nan/nan.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { nan, type NanIssue, type NanSchema } from './nan.ts';\n\ndescribe('nan', () => {\n  describe('should return schema object', () => {\n    const baseSchema: Omit<NanSchema<never>, 'message'> = {\n      kind: 'schema',\n      type: 'nan',\n      reference: nan,\n      expects: 'NaN',\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: NanSchema<undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(nan()).toStrictEqual(schema);\n      expect(nan(undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(nan('message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies NanSchema<'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(nan(message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies NanSchema<typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = nan();\n\n    test('for NaN', () => {\n      expectNoSchemaIssue(schema, [NaN, Number.NaN]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = nan('message');\n    const baseIssue: Omit<NanIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'nan',\n      expected: 'NaN',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', 'foo', '123']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    test('for arrays', () => {\n      expectSchemaIssue(schema, baseIssue, [[], ['value']]);\n    });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n\n    test('for objects', () => {\n      expectSchemaIssue(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/nan/nan.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\n\n/**\n * NaN issue interface.\n */\nexport interface NanIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'nan';\n  /**\n   * The expected property.\n   */\n  readonly expected: 'NaN';\n}\n\n/**\n * NaN schema interface.\n */\nexport interface NanSchema<TMessage extends ErrorMessage<NanIssue> | undefined>\n  extends BaseSchema<number, number, NanIssue> {\n  /**\n   * The schema type.\n   */\n  readonly type: 'nan';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof nan;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'NaN';\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a NaN schema.\n *\n * @returns A NaN schema.\n */\nexport function nan(): NanSchema<undefined>;\n\n/**\n * Creates a NaN schema.\n *\n * @param message The error message.\n *\n * @returns A NaN schema.\n */\nexport function nan<const TMessage extends ErrorMessage<NanIssue> | undefined>(\n  message: TMessage\n): NanSchema<TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function nan(\n  message?: ErrorMessage<NanIssue>\n): NanSchema<ErrorMessage<NanIssue> | undefined> {\n  return {\n    kind: 'schema',\n    type: 'nan',\n    reference: nan,\n    expects: 'NaN',\n    async: false,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      if (Number.isNaN(dataset.value)) {\n        // @ts-expect-error\n        dataset.typed = true;\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n      // @ts-expect-error\n      return dataset as OutputDataset<number, NanIssue>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/never/index.ts",
    "content": "export * from './never.ts';\n"
  },
  {
    "path": "library/src/schemas/never/never.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { never, type NeverIssue, type NeverSchema } from './never.ts';\n\ndescribe('never', () => {\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = NeverSchema<undefined>;\n      expectTypeOf(never()).toEqualTypeOf<Schema>();\n      expectTypeOf(never(undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(never('message')).toEqualTypeOf<NeverSchema<'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(never(() => 'message')).toEqualTypeOf<\n        NeverSchema<() => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = NeverSchema<undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<never>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<never>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<NeverIssue>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/never/never.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { expectSchemaIssue } from '../../vitest/index.ts';\nimport { never, type NeverIssue, type NeverSchema } from './never.ts';\n\ndescribe('never', () => {\n  describe('should return schema object', () => {\n    const baseSchema: Omit<NeverSchema<never>, 'message'> = {\n      kind: 'schema',\n      type: 'never',\n      reference: never,\n      expects: 'never',\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: NeverSchema<undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(never()).toStrictEqual(schema);\n      expect(never(undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(never('message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies NeverSchema<'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(never(message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies NeverSchema<typeof message>);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = never('message');\n    const baseIssue: Omit<NeverIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'never',\n      expected: 'never',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', '0', '-2', '12.34']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    test('for arrays', () => {\n      expectSchemaIssue(schema, baseIssue, [[], ['value']]);\n    });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n\n    test('for objects', () => {\n      expectSchemaIssue(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/never/never.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  FailureDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\n\n/**\n * Never issue interface.\n */\nexport interface NeverIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'never';\n  /**\n   * The expected property.\n   */\n  readonly expected: 'never';\n}\n\n/**\n * Never schema interface.\n */\nexport interface NeverSchema<\n  TMessage extends ErrorMessage<NeverIssue> | undefined,\n> extends BaseSchema<never, never, NeverIssue> {\n  /**\n   * The schema type.\n   */\n  readonly type: 'never';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof never;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'never';\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a never schema.\n *\n * @returns A never schema.\n */\nexport function never(): NeverSchema<undefined>;\n\n/**\n * Creates a never schema.\n *\n * @param message The error message.\n *\n * @returns A never schema.\n */\nexport function never<\n  const TMessage extends ErrorMessage<NeverIssue> | undefined,\n>(message: TMessage): NeverSchema<TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function never(\n  message?: ErrorMessage<NeverIssue>\n): NeverSchema<ErrorMessage<NeverIssue> | undefined> {\n  return {\n    kind: 'schema',\n    type: 'never',\n    reference: never,\n    expects: 'never',\n    async: false,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      _addIssue(this, 'type', dataset, config);\n      // @ts-expect-error\n      return dataset as FailureDataset<NeverIssue>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/nonNullable/index.ts",
    "content": "export * from './nonNullable.ts';\nexport * from './nonNullableAsync.ts';\nexport type { NonNullableIssue } from './types.ts';\n"
  },
  {
    "path": "library/src/schemas/nonNullable/nonNullable.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { NullSchema } from '../null/index.ts';\nimport { nullish, type NullishSchema } from '../nullish/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport type {\n  UndefinedIssue,\n  UndefinedSchema,\n} from '../undefined/undefined.ts';\nimport type { UnionIssue, UnionSchema } from '../union/index.ts';\nimport { nonNullable, type NonNullableSchema } from './nonNullable.ts';\nimport type { NonNullableIssue } from './types.ts';\n\ndescribe('nonNullable', () => {\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = NonNullableSchema<\n        NullishSchema<StringSchema<undefined>, undefined>,\n        undefined\n      >;\n      expectTypeOf(nonNullable(nullish(string()))).toEqualTypeOf<Schema>();\n      expectTypeOf(\n        nonNullable(nullish(string()), undefined)\n      ).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(nonNullable(nullish(string()), 'message')).toEqualTypeOf<\n        NonNullableSchema<\n          NullishSchema<StringSchema<undefined>, undefined>,\n          'message'\n        >\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        nonNullable(nullish(string()), () => 'message')\n      ).toEqualTypeOf<\n        NonNullableSchema<\n          NullishSchema<StringSchema<undefined>, undefined>,\n          () => string\n        >\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = NonNullableSchema<\n      NullishSchema<StringSchema<undefined>, undefined>,\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<string | undefined>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<string | undefined>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        NonNullableIssue | StringIssue\n      >();\n      expectTypeOf<\n        InferIssue<\n          NonNullableSchema<\n            UnionSchema<\n              [\n                StringSchema<undefined>,\n                NullSchema<undefined>,\n                UndefinedSchema<undefined>,\n              ],\n              undefined\n            >,\n            undefined\n          >\n        >\n      >().toEqualTypeOf<\n        | NonNullableIssue\n        | StringIssue\n        | UndefinedIssue\n        | UnionIssue<StringIssue | UndefinedIssue>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/nonNullable/nonNullable.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { transform } from '../../actions/index.ts';\nimport { pipe } from '../../methods/index.ts';\nimport type { FailureDataset } from '../../types/index.ts';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { nullish, type NullishSchema } from '../nullish/index.ts';\nimport { string, type StringSchema } from '../string/index.ts';\nimport { nonNullable, type NonNullableSchema } from './nonNullable.ts';\nimport type { NonNullableIssue } from './types.ts';\n\ndescribe('nonNullable', () => {\n  describe('should return schema object', () => {\n    const wrapped = nullish(string());\n    const baseSchema: Omit<\n      NonNullableSchema<\n        NullishSchema<StringSchema<undefined>, undefined>,\n        never\n      >,\n      'message'\n    > = {\n      kind: 'schema',\n      type: 'non_nullable',\n      reference: nonNullable,\n      expects: '!null',\n      wrapped,\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: NonNullableSchema<\n        NullishSchema<StringSchema<undefined>, undefined>,\n        undefined\n      > = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(nonNullable(wrapped)).toStrictEqual(schema);\n      expect(nonNullable(wrapped, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(nonNullable(wrapped, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies NonNullableSchema<\n        NullishSchema<StringSchema<undefined>, undefined>,\n        'message'\n      >);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(nonNullable(wrapped, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies NonNullableSchema<\n        NullishSchema<StringSchema<undefined>, undefined>,\n        typeof message\n      >);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = nonNullable(nullish(string()));\n\n    test('for valid wrapped types', () => {\n      expectNoSchemaIssue(schema, ['', 'foo', '#$%', undefined]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const nonNullableIssue: NonNullableIssue = {\n      kind: 'schema',\n      type: 'non_nullable',\n      input: null,\n      received: 'null',\n      expected: '!null',\n      message: 'message',\n      requirement: undefined,\n      path: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    test('for null input', () => {\n      expectSchemaIssue(\n        nonNullable(nullish(string()), 'message'),\n        nonNullableIssue,\n        [null]\n      );\n    });\n\n    test('for null output', () => {\n      expect(\n        nonNullable(\n          pipe(\n            string(),\n            transform(() => null)\n          ),\n          'message'\n        )['~run']({ value: 'foo' }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues: [nonNullableIssue],\n      } satisfies FailureDataset<NonNullableIssue>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/nonNullable/nonNullable.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\nimport type {\n  InferNonNullableInput,\n  InferNonNullableIssue,\n  InferNonNullableOutput,\n  NonNullableIssue,\n} from './types.ts';\n\n/**\n * Non nullable schema interface.\n */\nexport interface NonNullableSchema<\n  TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  TMessage extends ErrorMessage<NonNullableIssue> | undefined,\n> extends BaseSchema<\n    InferNonNullableInput<TWrapped>,\n    InferNonNullableOutput<TWrapped>,\n    NonNullableIssue | InferNonNullableIssue<TWrapped>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'non_nullable';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof nonNullable;\n  /**\n   * The expected property.\n   */\n  readonly expects: '!null';\n  /**\n   * The wrapped schema.\n   */\n  readonly wrapped: TWrapped;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a non nullable schema.\n *\n * @param wrapped The wrapped schema.\n *\n * @returns A non nullable schema.\n */\nexport function nonNullable<\n  const TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n>(wrapped: TWrapped): NonNullableSchema<TWrapped, undefined>;\n\n/**\n * Creates a non nullable schema.\n *\n * @param wrapped The wrapped schema.\n * @param message The error message.\n *\n * @returns A non nullable schema.\n */\nexport function nonNullable<\n  const TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TMessage extends ErrorMessage<NonNullableIssue> | undefined,\n>(wrapped: TWrapped, message: TMessage): NonNullableSchema<TWrapped, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function nonNullable(\n  wrapped: BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  message?: ErrorMessage<NonNullableIssue> | undefined\n): NonNullableSchema<\n  BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  ErrorMessage<NonNullableIssue> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'non_nullable',\n    reference: nonNullable,\n    expects: '!null',\n    async: false,\n    wrapped,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      // If value is not `null`, run wrapped schema\n      if (dataset.value !== null) {\n        // @ts-expect-error\n        dataset = this.wrapped['~run'](dataset, config);\n      }\n\n      // If value is `null`, add issue to dataset\n      if (dataset.value === null) {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<unknown, BaseIssue<unknown>>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/nonNullable/nonNullableAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { NullSchema } from '../null/index.ts';\nimport { nullishAsync, type NullishSchemaAsync } from '../nullish/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport type {\n  UndefinedIssue,\n  UndefinedSchema,\n} from '../undefined/undefined.ts';\nimport type { UnionIssue, UnionSchema } from '../union/index.ts';\nimport {\n  nonNullableAsync,\n  type NonNullableSchemaAsync,\n} from './nonNullableAsync.ts';\nimport type { NonNullableIssue } from './types.ts';\n\ndescribe('nonNullableAsync', () => {\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = NonNullableSchemaAsync<\n        NullishSchemaAsync<StringSchema<undefined>, undefined>,\n        undefined\n      >;\n      expectTypeOf(\n        nonNullableAsync(nullishAsync(string()))\n      ).toEqualTypeOf<Schema>();\n      expectTypeOf(\n        nonNullableAsync(nullishAsync(string()), undefined)\n      ).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        nonNullableAsync(nullishAsync(string()), 'message')\n      ).toEqualTypeOf<\n        NonNullableSchemaAsync<\n          NullishSchemaAsync<StringSchema<undefined>, undefined>,\n          'message'\n        >\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        nonNullableAsync(nullishAsync(string()), () => 'message')\n      ).toEqualTypeOf<\n        NonNullableSchemaAsync<\n          NullishSchemaAsync<StringSchema<undefined>, undefined>,\n          () => string\n        >\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = NonNullableSchemaAsync<\n      NullishSchemaAsync<StringSchema<undefined>, undefined>,\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<string | undefined>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<string | undefined>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        NonNullableIssue | StringIssue\n      >();\n      expectTypeOf<\n        InferIssue<\n          NonNullableSchemaAsync<\n            UnionSchema<\n              [\n                StringSchema<undefined>,\n                NullSchema<undefined>,\n                UndefinedSchema<undefined>,\n              ],\n              undefined\n            >,\n            undefined\n          >\n        >\n      >().toEqualTypeOf<\n        | NonNullableIssue\n        | StringIssue\n        | UndefinedIssue\n        | UnionIssue<StringIssue | UndefinedIssue>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/nonNullable/nonNullableAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { transform } from '../../actions/index.ts';\nimport { pipeAsync } from '../../methods/index.ts';\nimport type { FailureDataset } from '../../types/index.ts';\nimport {\n  expectNoSchemaIssueAsync,\n  expectSchemaIssueAsync,\n} from '../../vitest/index.ts';\nimport { nullishAsync, type NullishSchemaAsync } from '../nullish/index.ts';\nimport { string, type StringSchema } from '../string/index.ts';\nimport {\n  nonNullableAsync,\n  type NonNullableSchemaAsync,\n} from './nonNullableAsync.ts';\nimport type { NonNullableIssue } from './types.ts';\n\ndescribe('nonNullableAsync', () => {\n  describe('should return schema object', () => {\n    const wrapped = nullishAsync(string());\n    const baseSchema: Omit<\n      NonNullableSchemaAsync<\n        NullishSchemaAsync<StringSchema<undefined>, undefined>,\n        never\n      >,\n      'message'\n    > = {\n      kind: 'schema',\n      type: 'non_nullable',\n      reference: nonNullableAsync,\n      expects: '!null',\n      wrapped,\n      async: true,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: NonNullableSchemaAsync<\n        NullishSchemaAsync<StringSchema<undefined>, undefined>,\n        undefined\n      > = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(nonNullableAsync(wrapped)).toStrictEqual(schema);\n      expect(nonNullableAsync(wrapped, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(nonNullableAsync(wrapped, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies NonNullableSchemaAsync<\n        NullishSchemaAsync<StringSchema<undefined>, undefined>,\n        'message'\n      >);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(nonNullableAsync(wrapped, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies NonNullableSchemaAsync<\n        NullishSchemaAsync<StringSchema<undefined>, undefined>,\n        typeof message\n      >);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = nonNullableAsync(nullishAsync(string()));\n\n    test('for valid wrapped types', async () => {\n      await expectNoSchemaIssueAsync(schema, ['', 'foo', '#$%', undefined]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const nonNullableIssue: NonNullableIssue = {\n      kind: 'schema',\n      type: 'non_nullable',\n      input: null,\n      received: 'null',\n      expected: '!null',\n      message: 'message',\n      requirement: undefined,\n      path: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    test('for null input', async () => {\n      await expectSchemaIssueAsync(\n        nonNullableAsync(nullishAsync(string()), 'message'),\n        nonNullableIssue,\n        [null]\n      );\n    });\n\n    test('for null output', async () => {\n      expect(\n        await nonNullableAsync(\n          pipeAsync(\n            string(),\n            transform(() => null)\n          ),\n          'message'\n        )['~run']({ value: 'foo' }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues: [nonNullableIssue],\n      } satisfies FailureDataset<NonNullableIssue>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/nonNullable/nonNullableAsync.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\nimport type { nonNullable } from './nonNullable.ts';\nimport type {\n  InferNonNullableInput,\n  InferNonNullableIssue,\n  InferNonNullableOutput,\n  NonNullableIssue,\n} from './types.ts';\n\n/**\n * Non nullable schema async interface.\n */\nexport interface NonNullableSchemaAsync<\n  TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  TMessage extends ErrorMessage<NonNullableIssue> | undefined,\n> extends BaseSchemaAsync<\n    InferNonNullableInput<TWrapped>,\n    InferNonNullableOutput<TWrapped>,\n    NonNullableIssue | InferNonNullableIssue<TWrapped>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'non_nullable';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof nonNullable | typeof nonNullableAsync;\n  /**\n   * The expected property.\n   */\n  readonly expects: '!null';\n  /**\n   * The wrapped schema.\n   */\n  readonly wrapped: TWrapped;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a non nullable schema.\n *\n * @param wrapped The wrapped schema.\n *\n * @returns A non nullable schema.\n */\nexport function nonNullableAsync<\n  const TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(wrapped: TWrapped): NonNullableSchemaAsync<TWrapped, undefined>;\n\n/**\n * Creates a non nullable schema.\n *\n * @param wrapped The wrapped schema.\n * @param message The error message.\n *\n * @returns A non nullable schema.\n */\nexport function nonNullableAsync<\n  const TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TMessage extends ErrorMessage<NonNullableIssue> | undefined,\n>(\n  wrapped: TWrapped,\n  message: TMessage\n): NonNullableSchemaAsync<TWrapped, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function nonNullableAsync(\n  wrapped:\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  message?: ErrorMessage<NonNullableIssue> | undefined\n): NonNullableSchemaAsync<\n  | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n  | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  ErrorMessage<NonNullableIssue> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'non_nullable',\n    reference: nonNullableAsync,\n    expects: '!null',\n    async: true,\n    wrapped,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    async '~run'(dataset, config) {\n      // If value is not `null`, run wrapped schema\n      if (dataset.value !== null) {\n        // @ts-expect-error\n        dataset = await this.wrapped['~run'](dataset, config);\n      }\n\n      // If value is `null`, add issue to dataset\n      if (dataset.value === null) {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<unknown, BaseIssue<unknown>>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/nonNullable/types.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  ErrorMessage,\n  InferInput,\n  InferIssue,\n  InferOutput,\n  NonNullable,\n} from '../../types/index.ts';\nimport type {\n  UnionIssue,\n  UnionOptions,\n  UnionOptionsAsync,\n  UnionSchema,\n  UnionSchemaAsync,\n} from '../union/index.ts';\n\n/**\n * Non nullable issue interface.\n */\nexport interface NonNullableIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'non_nullable';\n  /**\n   * The expected property.\n   */\n  readonly expected: '!null';\n}\n\n/**\n * Infer non nullable input type.\n */\nexport type InferNonNullableInput<\n  TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n> = NonNullable<InferInput<TWrapped>>;\n\n/**\n * Infer non nullable output type.\n */\nexport type InferNonNullableOutput<\n  TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n> = NonNullable<InferOutput<TWrapped>>;\n\n/**\n * Infer non nullable issue type.\n */\nexport type InferNonNullableIssue<\n  TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n> = TWrapped extends\n  | UnionSchema<\n      UnionOptions,\n      ErrorMessage<UnionIssue<BaseIssue<unknown>>> | undefined\n    >\n  | UnionSchemaAsync<\n      UnionOptionsAsync,\n      ErrorMessage<UnionIssue<BaseIssue<unknown>>> | undefined\n    >\n  ?\n      | Exclude<InferIssue<TWrapped>, { type: 'null' | 'union' }>\n      | UnionIssue<InferNonNullableIssue<TWrapped['options'][number]>>\n  : Exclude<InferIssue<TWrapped>, { type: 'null' }>;\n"
  },
  {
    "path": "library/src/schemas/nonNullish/index.ts",
    "content": "export * from './nonNullish.ts';\nexport * from './nonNullishAsync.ts';\nexport type { NonNullishIssue } from './types.ts';\n"
  },
  {
    "path": "library/src/schemas/nonNullish/nonNullish.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { NullSchema } from '../null/index.ts';\nimport { nullish, type NullishSchema } from '../nullish/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport type { UndefinedSchema } from '../undefined/index.ts';\nimport type { UnionIssue, UnionSchema } from '../union/index.ts';\nimport { nonNullish, type NonNullishSchema } from './nonNullish.ts';\nimport type { NonNullishIssue } from './types.ts';\n\ndescribe('nonNullish', () => {\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = NonNullishSchema<\n        NullishSchema<StringSchema<undefined>, undefined>,\n        undefined\n      >;\n      expectTypeOf(nonNullish(nullish(string()))).toEqualTypeOf<Schema>();\n      expectTypeOf(\n        nonNullish(nullish(string()), undefined)\n      ).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(nonNullish(nullish(string()), 'message')).toEqualTypeOf<\n        NonNullishSchema<\n          NullishSchema<StringSchema<undefined>, undefined>,\n          'message'\n        >\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        nonNullish(nullish(string()), () => 'message')\n      ).toEqualTypeOf<\n        NonNullishSchema<\n          NullishSchema<StringSchema<undefined>, undefined>,\n          () => string\n        >\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = NonNullishSchema<\n      NullishSchema<StringSchema<undefined>, undefined>,\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        NonNullishIssue | StringIssue\n      >();\n      expectTypeOf<\n        InferIssue<\n          NonNullishSchema<\n            UnionSchema<\n              [\n                StringSchema<undefined>,\n                NullSchema<undefined>,\n                UndefinedSchema<undefined>,\n              ],\n              undefined\n            >,\n            undefined\n          >\n        >\n      >().toEqualTypeOf<\n        NonNullishIssue | StringIssue | UnionIssue<StringIssue>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/nonNullish/nonNullish.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { transform } from '../../actions/index.ts';\nimport { pipe } from '../../methods/index.ts';\nimport type { FailureDataset } from '../../types/index.ts';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { nullish, type NullishSchema } from '../nullish/index.ts';\nimport { string, type StringSchema } from '../string/index.ts';\nimport { nonNullish, type NonNullishSchema } from './nonNullish.ts';\nimport type { NonNullishIssue } from './types.ts';\n\ndescribe('nonNullish', () => {\n  describe('should return schema object', () => {\n    const wrapped = nullish(string());\n    const baseSchema: Omit<\n      NonNullishSchema<\n        NullishSchema<StringSchema<undefined>, undefined>,\n        never\n      >,\n      'message'\n    > = {\n      kind: 'schema',\n      type: 'non_nullish',\n      reference: nonNullish,\n      expects: '(!null & !undefined)',\n      wrapped,\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: NonNullishSchema<\n        NullishSchema<StringSchema<undefined>, undefined>,\n        undefined\n      > = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(nonNullish(wrapped)).toStrictEqual(schema);\n      expect(nonNullish(wrapped, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(nonNullish(wrapped, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies NonNullishSchema<\n        NullishSchema<StringSchema<undefined>, undefined>,\n        'message'\n      >);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(nonNullish(wrapped, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies NonNullishSchema<\n        NullishSchema<StringSchema<undefined>, undefined>,\n        typeof message\n      >);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = nonNullish(nullish(string()));\n\n    test('for valid wrapped types', () => {\n      expectNoSchemaIssue(schema, ['', 'foo', '#$%']);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const baseIssue: Omit<NonNullishIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'non_nullish',\n      expected: '(!null & !undefined)',\n      message: 'message',\n      requirement: undefined,\n      path: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    test('for null input', () => {\n      expectSchemaIssue(nonNullish(nullish(string()), 'message'), baseIssue, [\n        null,\n      ]);\n    });\n\n    test('for undefined input', () => {\n      expectSchemaIssue(nonNullish(nullish(string()), 'message'), baseIssue, [\n        undefined,\n      ]);\n    });\n\n    test('for null output', () => {\n      expect(\n        nonNullish(\n          pipe(\n            string(),\n            transform(() => null)\n          ),\n          'message'\n        )['~run']({ value: 'foo' }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues: [{ ...baseIssue, input: null, received: 'null' }],\n      } satisfies FailureDataset<NonNullishIssue>);\n    });\n\n    test('for undefined output', () => {\n      expect(\n        nonNullish(\n          pipe(\n            string(),\n            transform(() => undefined)\n          ),\n          'message'\n        )['~run']({ value: 'foo' }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: undefined,\n        issues: [{ ...baseIssue, input: undefined, received: 'undefined' }],\n      } satisfies FailureDataset<NonNullishIssue>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/nonNullish/nonNullish.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\nimport type {\n  InferNonNullishInput,\n  InferNonNullishIssue,\n  InferNonNullishOutput,\n  NonNullishIssue,\n} from './types.ts';\n\n/**\n * Non nullish schema interface.\n */\nexport interface NonNullishSchema<\n  TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  TMessage extends ErrorMessage<NonNullishIssue> | undefined,\n> extends BaseSchema<\n    InferNonNullishInput<TWrapped>,\n    InferNonNullishOutput<TWrapped>,\n    NonNullishIssue | InferNonNullishIssue<TWrapped>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'non_nullish';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof nonNullish;\n  /**\n   * The expected property.\n   */\n  readonly expects: '(!null & !undefined)';\n  /**\n   * The wrapped schema.\n   */\n  readonly wrapped: TWrapped;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a non nullish schema.\n *\n * @param wrapped The wrapped schema.\n *\n * @returns A non nullish schema.\n */\nexport function nonNullish<\n  const TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n>(wrapped: TWrapped): NonNullishSchema<TWrapped, undefined>;\n\n/**\n * Creates a non nullish schema.\n *\n * @param wrapped The wrapped schema.\n * @param message The error message.\n *\n * @returns A non nullish schema.\n */\nexport function nonNullish<\n  const TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TMessage extends ErrorMessage<NonNullishIssue> | undefined,\n>(wrapped: TWrapped, message: TMessage): NonNullishSchema<TWrapped, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function nonNullish(\n  wrapped: BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  message?: ErrorMessage<NonNullishIssue> | undefined\n): NonNullishSchema<\n  BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  ErrorMessage<NonNullishIssue> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'non_nullish',\n    reference: nonNullish,\n    expects: '(!null & !undefined)',\n    async: false,\n    wrapped,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      // If value is not `null` and `undefined`, run wrapped schema\n      if (!(dataset.value === null || dataset.value === undefined)) {\n        // @ts-expect-error\n        dataset = this.wrapped['~run'](dataset, config);\n      }\n\n      // If value is `null` or `undefined`, add issue to dataset\n      if (dataset.value === null || dataset.value === undefined) {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<unknown, BaseIssue<unknown>>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/nonNullish/nonNullishAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { NullSchema } from '../null/index.ts';\nimport { nullishAsync, type NullishSchemaAsync } from '../nullish/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport type { UndefinedSchema } from '../undefined/index.ts';\nimport type { UnionIssue, UnionSchema } from '../union/index.ts';\nimport {\n  nonNullishAsync,\n  type NonNullishSchemaAsync,\n} from './nonNullishAsync.ts';\nimport type { NonNullishIssue } from './types.ts';\n\ndescribe('nonNullishAsync', () => {\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = NonNullishSchemaAsync<\n        NullishSchemaAsync<StringSchema<undefined>, undefined>,\n        undefined\n      >;\n      expectTypeOf(\n        nonNullishAsync(nullishAsync(string()))\n      ).toEqualTypeOf<Schema>();\n      expectTypeOf(\n        nonNullishAsync(nullishAsync(string()), undefined)\n      ).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        nonNullishAsync(nullishAsync(string()), 'message')\n      ).toEqualTypeOf<\n        NonNullishSchemaAsync<\n          NullishSchemaAsync<StringSchema<undefined>, undefined>,\n          'message'\n        >\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        nonNullishAsync(nullishAsync(string()), () => 'message')\n      ).toEqualTypeOf<\n        NonNullishSchemaAsync<\n          NullishSchemaAsync<StringSchema<undefined>, undefined>,\n          () => string\n        >\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = NonNullishSchemaAsync<\n      NullishSchemaAsync<StringSchema<undefined>, undefined>,\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        NonNullishIssue | StringIssue\n      >();\n      expectTypeOf<\n        InferIssue<\n          NonNullishSchemaAsync<\n            UnionSchema<\n              [\n                StringSchema<undefined>,\n                NullSchema<undefined>,\n                UndefinedSchema<undefined>,\n              ],\n              undefined\n            >,\n            undefined\n          >\n        >\n      >().toEqualTypeOf<\n        NonNullishIssue | StringIssue | UnionIssue<StringIssue>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/nonNullish/nonNullishAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { transform } from '../../actions/index.ts';\nimport { pipeAsync } from '../../methods/index.ts';\nimport type { FailureDataset } from '../../types/index.ts';\nimport {\n  expectNoSchemaIssueAsync,\n  expectSchemaIssueAsync,\n} from '../../vitest/index.ts';\nimport { nullishAsync, type NullishSchemaAsync } from '../nullish/index.ts';\nimport { string, type StringSchema } from '../string/index.ts';\nimport {\n  nonNullishAsync,\n  type NonNullishSchemaAsync,\n} from './nonNullishAsync.ts';\nimport type { NonNullishIssue } from './types.ts';\n\ndescribe('nonNullishAsync', () => {\n  describe('should return schema object', () => {\n    const wrapped = nullishAsync(string());\n    const baseSchema: Omit<\n      NonNullishSchemaAsync<\n        NullishSchemaAsync<StringSchema<undefined>, undefined>,\n        never\n      >,\n      'message'\n    > = {\n      kind: 'schema',\n      type: 'non_nullish',\n      reference: nonNullishAsync,\n      expects: '(!null & !undefined)',\n      wrapped,\n      async: true,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: NonNullishSchemaAsync<\n        NullishSchemaAsync<StringSchema<undefined>, undefined>,\n        undefined\n      > = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(nonNullishAsync(wrapped)).toStrictEqual(schema);\n      expect(nonNullishAsync(wrapped, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(nonNullishAsync(wrapped, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies NonNullishSchemaAsync<\n        NullishSchemaAsync<StringSchema<undefined>, undefined>,\n        'message'\n      >);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(nonNullishAsync(wrapped, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies NonNullishSchemaAsync<\n        NullishSchemaAsync<StringSchema<undefined>, undefined>,\n        typeof message\n      >);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = nonNullishAsync(nullishAsync(string()));\n\n    test('for valid wrapped types', async () => {\n      await expectNoSchemaIssueAsync(schema, ['', 'foo', '#$%']);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const baseIssue: Omit<NonNullishIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'non_nullish',\n      expected: '(!null & !undefined)',\n      message: 'message',\n      requirement: undefined,\n      path: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    test('for null input', async () => {\n      await expectSchemaIssueAsync(\n        nonNullishAsync(nullishAsync(string()), 'message'),\n        baseIssue,\n        [null]\n      );\n    });\n\n    test('for undefined input', async () => {\n      await expectSchemaIssueAsync(\n        nonNullishAsync(nullishAsync(string()), 'message'),\n        baseIssue,\n        [undefined]\n      );\n    });\n\n    test('for null output', async () => {\n      expect(\n        await nonNullishAsync(\n          pipeAsync(\n            string(),\n            transform(() => null)\n          ),\n          'message'\n        )['~run']({ value: 'foo' }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: null,\n        issues: [{ ...baseIssue, input: null, received: 'null' }],\n      } satisfies FailureDataset<NonNullishIssue>);\n    });\n\n    test('for undefined output', async () => {\n      expect(\n        await nonNullishAsync(\n          pipeAsync(\n            string(),\n            transform(() => undefined)\n          ),\n          'message'\n        )['~run']({ value: 'foo' }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: undefined,\n        issues: [{ ...baseIssue, input: undefined, received: 'undefined' }],\n      } satisfies FailureDataset<NonNullishIssue>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/nonNullish/nonNullishAsync.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\nimport type { nonNullish } from './nonNullish.ts';\nimport type {\n  InferNonNullishInput,\n  InferNonNullishIssue,\n  InferNonNullishOutput,\n  NonNullishIssue,\n} from './types.ts';\n\n/**\n * Non nullish schema async interface.\n */\nexport interface NonNullishSchemaAsync<\n  TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  TMessage extends ErrorMessage<NonNullishIssue> | undefined,\n> extends BaseSchemaAsync<\n    InferNonNullishInput<TWrapped>,\n    InferNonNullishOutput<TWrapped>,\n    NonNullishIssue | InferNonNullishIssue<TWrapped>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'non_nullish';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof nonNullish | typeof nonNullishAsync;\n  /**\n   * The expected property.\n   */\n  readonly expects: '(!null & !undefined)';\n  /**\n   * The wrapped schema.\n   */\n  readonly wrapped: TWrapped;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a non nullish schema.\n *\n * @param wrapped The wrapped schema.\n *\n * @returns A non nullish schema.\n */\nexport function nonNullishAsync<\n  const TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(wrapped: TWrapped): NonNullishSchemaAsync<TWrapped, undefined>;\n\n/**\n * Creates a non nullish schema.\n *\n * @param wrapped The wrapped schema.\n * @param message The error message.\n *\n * @returns A non nullish schema.\n */\nexport function nonNullishAsync<\n  const TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TMessage extends ErrorMessage<NonNullishIssue> | undefined,\n>(\n  wrapped: TWrapped,\n  message: TMessage\n): NonNullishSchemaAsync<TWrapped, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function nonNullishAsync(\n  wrapped:\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  message?: ErrorMessage<NonNullishIssue> | undefined\n): NonNullishSchemaAsync<\n  | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n  | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  ErrorMessage<NonNullishIssue> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'non_nullish',\n    reference: nonNullishAsync,\n    expects: '(!null & !undefined)',\n    async: true,\n    wrapped,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    async '~run'(dataset, config) {\n      // If value is not `null` and `undefined`, run wrapped schema\n      if (!(dataset.value === null || dataset.value === undefined)) {\n        // @ts-expect-error\n        dataset = await this.wrapped['~run'](dataset, config);\n      }\n\n      // If value is `null` or `undefined`, add issue to dataset\n      if (dataset.value === null || dataset.value === undefined) {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<unknown, BaseIssue<unknown>>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/nonNullish/types.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  ErrorMessage,\n  InferInput,\n  InferIssue,\n  InferOutput,\n  NonNullish,\n} from '../../types/index.ts';\nimport type {\n  UnionIssue,\n  UnionOptions,\n  UnionOptionsAsync,\n  UnionSchema,\n  UnionSchemaAsync,\n} from '../union/index.ts';\n\n/**\n * Non nullish issue interface.\n */\nexport interface NonNullishIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'non_nullish';\n  /**\n   * The expected property.\n   */\n  readonly expected: '(!null & !undefined)';\n}\n\n/**\n * Infer non nullish input type.\n */\nexport type InferNonNullishInput<\n  TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n> = NonNullish<InferInput<TWrapped>>;\n\n/**\n * Infer non nullish output type.\n */\nexport type InferNonNullishOutput<\n  TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n> = NonNullish<InferOutput<TWrapped>>;\n\n/**\n * Infer non nullish issue type.\n */\nexport type InferNonNullishIssue<\n  TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n> = TWrapped extends\n  | UnionSchema<\n      UnionOptions,\n      ErrorMessage<UnionIssue<BaseIssue<unknown>>> | undefined\n    >\n  | UnionSchemaAsync<\n      UnionOptionsAsync,\n      ErrorMessage<UnionIssue<BaseIssue<unknown>>> | undefined\n    >\n  ?\n      | Exclude<InferIssue<TWrapped>, { type: 'null' | 'undefined' | 'union' }>\n      | UnionIssue<InferNonNullishIssue<TWrapped['options'][number]>>\n  : Exclude<InferIssue<TWrapped>, { type: 'null' | 'undefined' }>;\n"
  },
  {
    "path": "library/src/schemas/nonOptional/index.ts",
    "content": "export * from './nonOptional.ts';\nexport * from './nonOptionalAsync.ts';\nexport type { NonOptionalIssue } from './types.ts';\n"
  },
  {
    "path": "library/src/schemas/nonOptional/nonOptional.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { NullIssue, NullSchema } from '../null/index.ts';\nimport { nullish, type NullishSchema } from '../nullish/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport type { UndefinedSchema } from '../undefined/index.ts';\nimport type { UnionIssue, UnionSchema } from '../union/index.ts';\nimport { nonOptional, type NonOptionalSchema } from './nonOptional.ts';\nimport type { NonOptionalIssue } from './types.ts';\n\ndescribe('nonOptional', () => {\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = NonOptionalSchema<\n        NullishSchema<StringSchema<undefined>, undefined>,\n        undefined\n      >;\n      expectTypeOf(nonOptional(nullish(string()))).toEqualTypeOf<Schema>();\n      expectTypeOf(\n        nonOptional(nullish(string()), undefined)\n      ).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(nonOptional(nullish(string()), 'message')).toEqualTypeOf<\n        NonOptionalSchema<\n          NullishSchema<StringSchema<undefined>, undefined>,\n          'message'\n        >\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        nonOptional(nullish(string()), () => 'message')\n      ).toEqualTypeOf<\n        NonOptionalSchema<\n          NullishSchema<StringSchema<undefined>, undefined>,\n          () => string\n        >\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = NonOptionalSchema<\n      NullishSchema<StringSchema<undefined>, undefined>,\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<string | null>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<string | null>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        NonOptionalIssue | StringIssue\n      >();\n      expectTypeOf<\n        InferIssue<\n          NonOptionalSchema<\n            UnionSchema<\n              [\n                StringSchema<undefined>,\n                NullSchema<undefined>,\n                UndefinedSchema<undefined>,\n              ],\n              undefined\n            >,\n            undefined\n          >\n        >\n      >().toEqualTypeOf<\n        | NonOptionalIssue\n        | StringIssue\n        | NullIssue\n        | UnionIssue<StringIssue | NullIssue>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/nonOptional/nonOptional.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { transform } from '../../actions/index.ts';\nimport { pipe } from '../../methods/index.ts';\nimport type { FailureDataset } from '../../types/index.ts';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { nullish, type NullishSchema } from '../nullish/index.ts';\nimport { string, type StringSchema } from '../string/index.ts';\nimport { nonOptional, type NonOptionalSchema } from './nonOptional.ts';\nimport type { NonOptionalIssue } from './types.ts';\n\ndescribe('nonOptional', () => {\n  describe('should return schema object', () => {\n    const wrapped = nullish(string());\n    const baseSchema: Omit<\n      NonOptionalSchema<\n        NullishSchema<StringSchema<undefined>, undefined>,\n        never\n      >,\n      'message'\n    > = {\n      kind: 'schema',\n      type: 'non_optional',\n      reference: nonOptional,\n      expects: '!undefined',\n      wrapped,\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: NonOptionalSchema<\n        NullishSchema<StringSchema<undefined>, undefined>,\n        undefined\n      > = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(nonOptional(wrapped)).toStrictEqual(schema);\n      expect(nonOptional(wrapped, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(nonOptional(wrapped, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies NonOptionalSchema<\n        NullishSchema<StringSchema<undefined>, undefined>,\n        'message'\n      >);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(nonOptional(wrapped, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies NonOptionalSchema<\n        NullishSchema<StringSchema<undefined>, undefined>,\n        typeof message\n      >);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = nonOptional(nullish(string()));\n\n    test('for valid wrapped types', () => {\n      expectNoSchemaIssue(schema, ['', 'foo', '#$%', null]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const nonOptionalIssue: NonOptionalIssue = {\n      kind: 'schema',\n      type: 'non_optional',\n      input: undefined,\n      received: 'undefined',\n      expected: '!undefined',\n      message: 'message',\n      requirement: undefined,\n      path: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    test('for undefined input', () => {\n      expectSchemaIssue(\n        nonOptional(nullish(string()), 'message'),\n        nonOptionalIssue,\n        [undefined]\n      );\n    });\n\n    test('for undefined output', () => {\n      expect(\n        nonOptional(\n          pipe(\n            string(),\n            transform(() => undefined)\n          ),\n          'message'\n        )['~run']({ value: 'foo' }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: undefined,\n        issues: [nonOptionalIssue],\n      } satisfies FailureDataset<NonOptionalIssue>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/nonOptional/nonOptional.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\nimport type {\n  InferNonOptionalInput,\n  InferNonOptionalIssue,\n  InferNonOptionalOutput,\n  NonOptionalIssue,\n} from './types.ts';\n\n/**\n * Non optional schema interface.\n */\nexport interface NonOptionalSchema<\n  TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  TMessage extends ErrorMessage<NonOptionalIssue> | undefined,\n> extends BaseSchema<\n    InferNonOptionalInput<TWrapped>,\n    InferNonOptionalOutput<TWrapped>,\n    NonOptionalIssue | InferNonOptionalIssue<TWrapped>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'non_optional';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof nonOptional;\n  /**\n   * The expected property.\n   */\n  readonly expects: '!undefined';\n  /**\n   * The wrapped schema.\n   */\n  readonly wrapped: TWrapped;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a non optional schema.\n *\n * @param wrapped The wrapped schema.\n *\n * @returns A non optional schema.\n */\nexport function nonOptional<\n  const TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n>(wrapped: TWrapped): NonOptionalSchema<TWrapped, undefined>;\n\n/**\n * Creates a non optional schema.\n *\n * @param wrapped The wrapped schema.\n * @param message The error message.\n *\n * @returns A non optional schema.\n */\nexport function nonOptional<\n  const TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TMessage extends ErrorMessage<NonOptionalIssue> | undefined,\n>(wrapped: TWrapped, message: TMessage): NonOptionalSchema<TWrapped, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function nonOptional(\n  wrapped: BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  message?: ErrorMessage<NonOptionalIssue> | undefined\n): NonOptionalSchema<\n  BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  ErrorMessage<NonOptionalIssue> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'non_optional',\n    reference: nonOptional,\n    expects: '!undefined',\n    async: false,\n    wrapped,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      // If value is not `undefined`, run wrapped schema\n      if (dataset.value !== undefined) {\n        // @ts-expect-error\n        dataset = this.wrapped['~run'](dataset, config);\n      }\n\n      // If value is `undefined`, add issue to dataset\n      if (dataset.value === undefined) {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<unknown, BaseIssue<unknown>>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/nonOptional/nonOptionalAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { NullIssue, NullSchema } from '../null/index.ts';\nimport { nullishAsync, type NullishSchemaAsync } from '../nullish/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport type { UndefinedSchema } from '../undefined/index.ts';\nimport type { UnionIssue, UnionSchema } from '../union/index.ts';\nimport {\n  nonOptionalAsync,\n  type NonOptionalSchemaAsync,\n} from './nonOptionalAsync.ts';\nimport type { NonOptionalIssue } from './types.ts';\n\ndescribe('nonOptionalAsync', () => {\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = NonOptionalSchemaAsync<\n        NullishSchemaAsync<StringSchema<undefined>, undefined>,\n        undefined\n      >;\n      expectTypeOf(\n        nonOptionalAsync(nullishAsync(string()))\n      ).toEqualTypeOf<Schema>();\n      expectTypeOf(\n        nonOptionalAsync(nullishAsync(string()), undefined)\n      ).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(\n        nonOptionalAsync(nullishAsync(string()), 'message')\n      ).toEqualTypeOf<\n        NonOptionalSchemaAsync<\n          NullishSchemaAsync<StringSchema<undefined>, undefined>,\n          'message'\n        >\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        nonOptionalAsync(nullishAsync(string()), () => 'message')\n      ).toEqualTypeOf<\n        NonOptionalSchemaAsync<\n          NullishSchemaAsync<StringSchema<undefined>, undefined>,\n          () => string\n        >\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = NonOptionalSchemaAsync<\n      NullishSchemaAsync<StringSchema<undefined>, undefined>,\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<string | null>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<string | null>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        NonOptionalIssue | StringIssue\n      >();\n      expectTypeOf<\n        InferIssue<\n          NonOptionalSchemaAsync<\n            UnionSchema<\n              [\n                StringSchema<undefined>,\n                NullSchema<undefined>,\n                UndefinedSchema<undefined>,\n              ],\n              undefined\n            >,\n            undefined\n          >\n        >\n      >().toEqualTypeOf<\n        | NonOptionalIssue\n        | StringIssue\n        | NullIssue\n        | UnionIssue<StringIssue | NullIssue>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/nonOptional/nonOptionalAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { transform } from '../../actions/index.ts';\nimport { pipeAsync } from '../../methods/index.ts';\nimport type { FailureDataset } from '../../types/index.ts';\nimport {\n  expectNoSchemaIssueAsync,\n  expectSchemaIssueAsync,\n} from '../../vitest/index.ts';\nimport { nullishAsync, type NullishSchemaAsync } from '../nullish/index.ts';\nimport { string, type StringSchema } from '../string/index.ts';\nimport {\n  nonOptionalAsync,\n  type NonOptionalSchemaAsync,\n} from './nonOptionalAsync.ts';\nimport type { NonOptionalIssue } from './types.ts';\n\ndescribe('nonOptionalAsync', () => {\n  describe('should return schema object', () => {\n    const wrapped = nullishAsync(string());\n    const baseSchema: Omit<\n      NonOptionalSchemaAsync<\n        NullishSchemaAsync<StringSchema<undefined>, undefined>,\n        never\n      >,\n      'message'\n    > = {\n      kind: 'schema',\n      type: 'non_optional',\n      reference: nonOptionalAsync,\n      expects: '!undefined',\n      wrapped,\n      async: true,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: NonOptionalSchemaAsync<\n        NullishSchemaAsync<StringSchema<undefined>, undefined>,\n        undefined\n      > = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(nonOptionalAsync(wrapped)).toStrictEqual(schema);\n      expect(nonOptionalAsync(wrapped, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(nonOptionalAsync(wrapped, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies NonOptionalSchemaAsync<\n        NullishSchemaAsync<StringSchema<undefined>, undefined>,\n        'message'\n      >);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(nonOptionalAsync(wrapped, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies NonOptionalSchemaAsync<\n        NullishSchemaAsync<StringSchema<undefined>, undefined>,\n        typeof message\n      >);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = nonOptionalAsync(nullishAsync(string()));\n\n    test('for valid wrapped types', async () => {\n      await expectNoSchemaIssueAsync(schema, ['', 'foo', '#$%', null]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const nonOptionalIssue: NonOptionalIssue = {\n      kind: 'schema',\n      type: 'non_optional',\n      input: undefined,\n      received: 'undefined',\n      expected: '!undefined',\n      message: 'message',\n      requirement: undefined,\n      path: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    test('for undefined input', async () => {\n      await expectSchemaIssueAsync(\n        nonOptionalAsync(nullishAsync(string()), 'message'),\n        nonOptionalIssue,\n        [undefined]\n      );\n    });\n\n    test('for undefined output', async () => {\n      expect(\n        await nonOptionalAsync(\n          pipeAsync(\n            string(),\n            transform(() => undefined)\n          ),\n          'message'\n        )['~run']({ value: 'foo' }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: undefined,\n        issues: [nonOptionalIssue],\n      } satisfies FailureDataset<NonOptionalIssue>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/nonOptional/nonOptionalAsync.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\nimport type { nonOptional } from './nonOptional.ts';\nimport type {\n  InferNonOptionalInput,\n  InferNonOptionalIssue,\n  InferNonOptionalOutput,\n  NonOptionalIssue,\n} from './types.ts';\n\n/**\n * Non optional schema async interface.\n */\nexport interface NonOptionalSchemaAsync<\n  TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  TMessage extends ErrorMessage<NonOptionalIssue> | undefined,\n> extends BaseSchemaAsync<\n    InferNonOptionalInput<TWrapped>,\n    InferNonOptionalOutput<TWrapped>,\n    NonOptionalIssue | InferNonOptionalIssue<TWrapped>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'non_optional';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof nonOptional | typeof nonOptionalAsync;\n  /**\n   * The expected property.\n   */\n  readonly expects: '!undefined';\n  /**\n   * The wrapped schema.\n   */\n  readonly wrapped: TWrapped;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a non optional schema.\n *\n * @param wrapped The wrapped schema.\n *\n * @returns A non optional schema.\n */\nexport function nonOptionalAsync<\n  const TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(wrapped: TWrapped): NonOptionalSchemaAsync<TWrapped, undefined>;\n\n/**\n * Creates a non optional schema.\n *\n * @param wrapped The wrapped schema.\n * @param message The error message.\n *\n * @returns A non optional schema.\n */\nexport function nonOptionalAsync<\n  const TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TMessage extends ErrorMessage<NonOptionalIssue> | undefined,\n>(\n  wrapped: TWrapped,\n  message: TMessage\n): NonOptionalSchemaAsync<TWrapped, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function nonOptionalAsync(\n  wrapped:\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  message?: ErrorMessage<NonOptionalIssue> | undefined\n): NonOptionalSchemaAsync<\n  | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n  | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  ErrorMessage<NonOptionalIssue> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'non_optional',\n    reference: nonOptionalAsync,\n    expects: '!undefined',\n    async: true,\n    wrapped,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    async '~run'(dataset, config) {\n      // If value is not `undefined`, run wrapped schema\n      if (dataset.value !== undefined) {\n        // @ts-expect-error\n        dataset = await this.wrapped['~run'](dataset, config);\n      }\n\n      // If value is `undefined`, add issue to dataset\n      if (dataset.value === undefined) {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<unknown, BaseIssue<unknown>>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/nonOptional/types.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  ErrorMessage,\n  InferInput,\n  InferIssue,\n  InferOutput,\n  NonOptional,\n} from '../../types/index.ts';\nimport type {\n  UnionIssue,\n  UnionOptions,\n  UnionOptionsAsync,\n  UnionSchema,\n  UnionSchemaAsync,\n} from '../union/index.ts';\n\n/**\n * Non optional issue interface.\n */\nexport interface NonOptionalIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'non_optional';\n  /**\n   * The expected property.\n   */\n  readonly expected: '!undefined';\n}\n\n/**\n * Infer non optional input type.\n */\nexport type InferNonOptionalInput<\n  TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n> = NonOptional<InferInput<TWrapped>>;\n\n/**\n * Infer non optional output type.\n */\nexport type InferNonOptionalOutput<\n  TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n> = NonOptional<InferOutput<TWrapped>>;\n\n/**\n * Infer non optional issue type.\n */\nexport type InferNonOptionalIssue<\n  TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n> = TWrapped extends\n  | UnionSchema<\n      UnionOptions,\n      ErrorMessage<UnionIssue<BaseIssue<unknown>>> | undefined\n    >\n  | UnionSchemaAsync<\n      UnionOptionsAsync,\n      ErrorMessage<UnionIssue<BaseIssue<unknown>>> | undefined\n    >\n  ?\n      | Exclude<InferIssue<TWrapped>, { type: 'undefined' | 'union' }>\n      | UnionIssue<InferNonOptionalIssue<TWrapped['options'][number]>>\n  : Exclude<InferIssue<TWrapped>, { type: 'undefined' }>;\n"
  },
  {
    "path": "library/src/schemas/null/index.ts",
    "content": "export * from './null.ts';\n"
  },
  {
    "path": "library/src/schemas/null/null.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { null_, type NullIssue, type NullSchema } from './null.ts';\n\ndescribe('null', () => {\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = NullSchema<undefined>;\n      expectTypeOf(null_()).toEqualTypeOf<Schema>();\n      expectTypeOf(null_(undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(null_('message')).toEqualTypeOf<NullSchema<'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(null_(() => 'message')).toEqualTypeOf<\n        NullSchema<() => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = NullSchema<undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<null>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<null>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<NullIssue>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/null/null.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { null_, type NullIssue, type NullSchema } from './null.ts';\n\ndescribe('null', () => {\n  describe('should return schema object', () => {\n    const baseSchema: Omit<NullSchema<never>, 'message'> = {\n      kind: 'schema',\n      type: 'null',\n      reference: null_,\n      expects: 'null',\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: NullSchema<undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(null_()).toStrictEqual(schema);\n      expect(null_(undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(null_('message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies NullSchema<'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(null_(message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies NullSchema<typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = null_();\n\n    test('for null', () => {\n      expectNoSchemaIssue(schema, [null]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = null_('message');\n    const baseIssue: Omit<NullIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'null',\n      expected: 'null',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', 'foo', '123']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    test('for arrays', () => {\n      expectSchemaIssue(schema, baseIssue, [[], ['value']]);\n    });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n\n    test('for objects', () => {\n      expectSchemaIssue(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/null/null.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\n\n/**\n * Null issue interface.\n */\nexport interface NullIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'null';\n  /**\n   * The expected property.\n   */\n  readonly expected: 'null';\n}\n\n/**\n * Null schema interface.\n */\nexport interface NullSchema<\n  TMessage extends ErrorMessage<NullIssue> | undefined,\n> extends BaseSchema<null, null, NullIssue> {\n  /**\n   * The schema type.\n   */\n  readonly type: 'null';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof null_;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'null';\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a null schema.\n *\n * @returns A null schema.\n */\nexport function null_(): NullSchema<undefined>;\n\n/**\n * Creates a null schema.\n *\n * @param message The error message.\n *\n * @returns A null schema.\n */\nexport function null_<\n  const TMessage extends ErrorMessage<NullIssue> | undefined,\n>(message: TMessage): NullSchema<TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function null_(\n  message?: ErrorMessage<NullIssue>\n): NullSchema<ErrorMessage<NullIssue> | undefined> {\n  return {\n    kind: 'schema',\n    type: 'null',\n    reference: null_,\n    expects: 'null',\n    async: false,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      if (dataset.value === null) {\n        // @ts-expect-error\n        dataset.typed = true;\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n      // @ts-expect-error\n      return dataset as OutputDataset<null, NullIssue>;\n    },\n  };\n}\n\nexport { null_ as null };\n"
  },
  {
    "path": "library/src/schemas/nullable/index.ts",
    "content": "export * from './nullable.ts';\nexport * from './nullableAsync.ts';\n"
  },
  {
    "path": "library/src/schemas/nullable/nullable.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { TransformAction } from '../../actions/index.ts';\nimport type { SchemaWithPipe } from '../../methods/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { ArrayIssue, ArraySchema } from '../array/index.ts';\nimport type { ObjectIssue, ObjectSchema } from '../object/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { nullable, type NullableSchema } from './nullable.ts';\n\ndescribe('nullable', () => {\n  describe('should return schema object', () => {\n    test('with undefined default', () => {\n      type Schema = NullableSchema<StringSchema<undefined>, undefined>;\n      expectTypeOf(nullable(string())).toEqualTypeOf<Schema>();\n      expectTypeOf(nullable(string(), undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with null default', () => {\n      expectTypeOf(nullable(string(), null)).toEqualTypeOf<\n        NullableSchema<StringSchema<undefined>, null>\n      >();\n    });\n\n    test('with null getter default', () => {\n      expectTypeOf(nullable(string(), () => null)).toEqualTypeOf<\n        NullableSchema<StringSchema<undefined>, () => null>\n      >();\n    });\n\n    test('with value default', () => {\n      expectTypeOf(nullable(string(), 'foo')).toEqualTypeOf<\n        NullableSchema<StringSchema<undefined>, 'foo'>\n      >();\n    });\n\n    test('with value getter default', () => {\n      expectTypeOf(nullable(string(), () => 'foo')).toEqualTypeOf<\n        NullableSchema<StringSchema<undefined>, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema1 = NullableSchema<StringSchema<undefined>, undefined>;\n    type Schema2 = NullableSchema<StringSchema<undefined>, null>;\n    type Schema3 = NullableSchema<StringSchema<undefined>, 'foo'>;\n    type Schema4 = NullableSchema<StringSchema<undefined>, () => null>;\n    type Schema5 = NullableSchema<StringSchema<undefined>, () => 'foo'>;\n    type Schema6 = NullableSchema<\n      SchemaWithPipe<\n        [StringSchema<undefined>, TransformAction<string, number>]\n      >,\n      'foo'\n    >;\n    type Schema7 = NullableSchema<\n      ObjectSchema<\n        { foo: ArraySchema<StringSchema<undefined>, undefined> },\n        undefined\n      >,\n      { foo: string[] }\n    >;\n    type Schema8 = NullableSchema<\n      ObjectSchema<\n        { foo: ArraySchema<StringSchema<undefined>, undefined> },\n        undefined\n      >,\n      () => { foo: string[] }\n    >;\n\n    test('of input', () => {\n      type Input = string | null;\n      expectTypeOf<InferInput<Schema1>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema2>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema3>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema4>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema5>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema6>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema7>>().toEqualTypeOf<{\n        foo: string[];\n      } | null>();\n      expectTypeOf<InferInput<Schema8>>().toEqualTypeOf<{\n        foo: string[];\n      } | null>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema1>>().toEqualTypeOf<string | null>();\n      expectTypeOf<InferOutput<Schema2>>().toEqualTypeOf<string | null>();\n      expectTypeOf<InferOutput<Schema3>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema4>>().toEqualTypeOf<string | null>();\n      expectTypeOf<InferOutput<Schema5>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema6>>().toEqualTypeOf<number>();\n      expectTypeOf<InferOutput<Schema7>>().toEqualTypeOf<{ foo: string[] }>();\n      expectTypeOf<InferOutput<Schema8>>().toEqualTypeOf<{ foo: string[] }>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema1>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema2>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema3>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema4>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema5>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema6>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema7>>().toEqualTypeOf<\n        ObjectIssue | ArrayIssue | StringIssue\n      >();\n      expectTypeOf<InferIssue<Schema8>>().toEqualTypeOf<\n        ObjectIssue | ArrayIssue | StringIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/nullable/nullable.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { nullable, type NullableSchema } from './nullable.ts';\n\ndescribe('nullable', () => {\n  describe('should return schema object', () => {\n    const baseSchema: Omit<\n      NullableSchema<StringSchema<undefined>, string>,\n      'default'\n    > = {\n      kind: 'schema',\n      type: 'nullable',\n      reference: nullable,\n      expects: '(string | null)',\n      wrapped: {\n        ...string(),\n        '~standard': {\n          version: 1,\n          vendor: 'valibot',\n          validate: expect.any(Function),\n        },\n        '~run': expect.any(Function),\n      },\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined default', () => {\n      const expected: NullableSchema<StringSchema<undefined>, undefined> = {\n        ...baseSchema,\n        default: undefined,\n      };\n      expect(nullable(string())).toStrictEqual(expected);\n      expect(nullable(string(), undefined)).toStrictEqual(expected);\n    });\n\n    test('with null default', () => {\n      expect(nullable(string(), null)).toStrictEqual({\n        ...baseSchema,\n        default: null,\n      } satisfies NullableSchema<StringSchema<undefined>, null>);\n    });\n\n    test('with null getter default', () => {\n      const getter = () => null;\n      expect(nullable(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies NullableSchema<StringSchema<undefined>, typeof getter>);\n    });\n\n    test('with value default', () => {\n      expect(nullable(string(), 'foo')).toStrictEqual({\n        ...baseSchema,\n        default: 'foo',\n      } satisfies NullableSchema<StringSchema<undefined>, 'foo'>);\n    });\n\n    test('with value getter default', () => {\n      const getter = () => 'foo';\n      expect(nullable(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies NullableSchema<StringSchema<undefined>, typeof getter>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = nullable(string());\n\n    test('for wrapper type', () => {\n      expectNoSchemaIssue(schema, ['', 'foo', '#$%']);\n    });\n\n    test('for null', () => {\n      expectNoSchemaIssue(schema, [null]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = nullable(string('message'));\n    const baseIssue: Omit<StringIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'string',\n      expected: 'string',\n      message: 'message',\n    };\n\n    test('for invalid wrapper type', () => {\n      expectSchemaIssue(schema, baseIssue, [123, true, {}]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n  });\n\n  describe('should return dataset without default', () => {\n    test('for undefined default', () => {\n      expectNoSchemaIssue(nullable(string()), [null, 'foo']);\n      expectNoSchemaIssue(nullable(string(), undefined), [null, 'foo']);\n    });\n\n    test('for wrapper type', () => {\n      expectNoSchemaIssue(nullable(string(), 'foo'), ['', 'bar', '#$%']);\n    });\n  });\n\n  describe('should return dataset with default', () => {\n    const schema1 = nullable(string(), null);\n    const schema2 = nullable(string(), 'foo');\n    const schema3 = nullable(string(), () => null);\n    const schema4 = nullable(string(), () => 'foo');\n\n    test('for null', () => {\n      expect(schema1['~run']({ value: null }, {})).toStrictEqual({\n        typed: true,\n        value: null,\n      });\n      expect(schema2['~run']({ value: null }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n      });\n      expect(schema3['~run']({ value: null }, {})).toStrictEqual({\n        typed: true,\n        value: null,\n      });\n      expect(schema4['~run']({ value: null }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/nullable/nullable.ts",
    "content": "import { getDefault } from '../../methods/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  Default,\n  InferInput,\n  InferIssue,\n  SuccessDataset,\n} from '../../types/index.ts';\nimport { _getStandardProps } from '../../utils/index.ts';\nimport type { InferNullableOutput } from './types.ts';\n\n/**\n * Nullable schema interface.\n */\nexport interface NullableSchema<\n  TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  TDefault extends Default<TWrapped, null>,\n> extends BaseSchema<\n    InferInput<TWrapped> | null,\n    InferNullableOutput<TWrapped, TDefault>,\n    InferIssue<TWrapped>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'nullable';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof nullable;\n  /**\n   * The expected property.\n   */\n  readonly expects: `(${TWrapped['expects']} | null)`;\n  /**\n   * The wrapped schema.\n   */\n  readonly wrapped: TWrapped;\n  /**\n   * The default value.\n   */\n  readonly default: TDefault;\n}\n\n/**\n * Creates a nullable schema.\n *\n * @param wrapped The wrapped schema.\n *\n * @returns A nullable schema.\n */\nexport function nullable<\n  const TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n>(wrapped: TWrapped): NullableSchema<TWrapped, undefined>;\n\n/**\n * Creates a nullable schema.\n *\n * @param wrapped The wrapped schema.\n * @param default_ The default value.\n *\n * @returns A nullable schema.\n */\nexport function nullable<\n  const TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TDefault extends Default<TWrapped, null>,\n>(wrapped: TWrapped, default_: TDefault): NullableSchema<TWrapped, TDefault>;\n\n// @__NO_SIDE_EFFECTS__\nexport function nullable(\n  wrapped: BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  default_?: unknown\n): NullableSchema<BaseSchema<unknown, unknown, BaseIssue<unknown>>, unknown> {\n  return {\n    kind: 'schema',\n    type: 'nullable',\n    reference: nullable,\n    expects: `(${wrapped.expects} | null)`,\n    async: false,\n    wrapped,\n    default: default_,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      // If value is `null`, override it with default or return dataset\n      if (dataset.value === null) {\n        // If default is specified, override value of dataset\n        if (this.default !== undefined) {\n          dataset.value = getDefault(this, dataset, config);\n        }\n\n        // If value is still `null`, return dataset\n        if (dataset.value === null) {\n          // @ts-expect-error\n          dataset.typed = true;\n          // @ts-expect-error\n          return dataset as SuccessDataset<unknown>;\n        }\n      }\n\n      // Otherwise, return dataset of wrapped schema\n      return this.wrapped['~run'](dataset, config);\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/nullable/nullableAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { TransformActionAsync } from '../../actions/index.ts';\nimport type { SchemaWithPipeAsync } from '../../methods/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { ArrayIssue, ArraySchema } from '../array/index.ts';\nimport type { ObjectIssue, ObjectSchema } from '../object/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { nullableAsync, type NullableSchemaAsync } from './nullableAsync.ts';\n\ndescribe('nullableAsync', () => {\n  describe('should return schema object', () => {\n    test('with undefined default', () => {\n      type Schema = NullableSchemaAsync<StringSchema<undefined>, undefined>;\n      expectTypeOf(nullableAsync(string())).toEqualTypeOf<Schema>();\n      expectTypeOf(nullableAsync(string(), undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with null default', () => {\n      expectTypeOf(nullableAsync(string(), null)).toEqualTypeOf<\n        NullableSchemaAsync<StringSchema<undefined>, null>\n      >();\n    });\n\n    test('with null getter default', () => {\n      expectTypeOf(nullableAsync(string(), () => null)).toEqualTypeOf<\n        NullableSchemaAsync<StringSchema<undefined>, () => null>\n      >();\n    });\n\n    test('with async null getter default', () => {\n      expectTypeOf(nullableAsync(string(), async () => null)).toEqualTypeOf<\n        NullableSchemaAsync<StringSchema<undefined>, () => Promise<null>>\n      >();\n    });\n\n    test('with value default', () => {\n      expectTypeOf(nullableAsync(string(), 'foo')).toEqualTypeOf<\n        NullableSchemaAsync<StringSchema<undefined>, 'foo'>\n      >();\n    });\n\n    test('with value getter default', () => {\n      expectTypeOf(nullableAsync(string(), () => 'foo')).toEqualTypeOf<\n        NullableSchemaAsync<StringSchema<undefined>, () => string>\n      >();\n    });\n\n    test('with async value getter default', () => {\n      expectTypeOf(nullableAsync(string(), async () => 'foo')).toEqualTypeOf<\n        NullableSchemaAsync<StringSchema<undefined>, () => Promise<string>>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema1 = NullableSchemaAsync<StringSchema<undefined>, undefined>;\n    type Schema2 = NullableSchemaAsync<StringSchema<undefined>, null>;\n    type Schema3 = NullableSchemaAsync<StringSchema<undefined>, 'foo'>;\n    type Schema4 = NullableSchemaAsync<StringSchema<undefined>, () => null>;\n    type Schema5 = NullableSchemaAsync<StringSchema<undefined>, () => 'foo'>;\n    type Schema6 = NullableSchemaAsync<\n      StringSchema<undefined>,\n      () => Promise<null>\n    >;\n    type Schema7 = NullableSchemaAsync<\n      StringSchema<undefined>,\n      () => Promise<'foo'>\n    >;\n    type Schema8 = NullableSchemaAsync<\n      SchemaWithPipeAsync<\n        [StringSchema<undefined>, TransformActionAsync<string, number>]\n      >,\n      'foo'\n    >;\n    type Schema9 = NullableSchemaAsync<\n      ObjectSchema<\n        { foo: ArraySchema<StringSchema<undefined>, undefined> },\n        undefined\n      >,\n      { foo: string[] }\n    >;\n    type Schema10 = NullableSchemaAsync<\n      ObjectSchema<\n        { foo: ArraySchema<StringSchema<undefined>, undefined> },\n        undefined\n      >,\n      () => { foo: string[] }\n    >;\n    type Schema11 = NullableSchemaAsync<\n      ObjectSchema<\n        { foo: ArraySchema<StringSchema<undefined>, undefined> },\n        undefined\n      >,\n      () => Promise<{ foo: string[] }>\n    >;\n\n    test('of input', () => {\n      type Input = string | null;\n      expectTypeOf<InferInput<Schema1>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema2>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema3>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema4>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema5>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema6>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema7>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema8>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema9>>().toEqualTypeOf<{\n        foo: string[];\n      } | null>();\n      expectTypeOf<InferInput<Schema10>>().toEqualTypeOf<{\n        foo: string[];\n      } | null>();\n      expectTypeOf<InferInput<Schema11>>().toEqualTypeOf<{\n        foo: string[];\n      } | null>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema1>>().toEqualTypeOf<string | null>();\n      expectTypeOf<InferOutput<Schema2>>().toEqualTypeOf<string | null>();\n      expectTypeOf<InferOutput<Schema3>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema4>>().toEqualTypeOf<string | null>();\n      expectTypeOf<InferOutput<Schema5>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema6>>().toEqualTypeOf<string | null>();\n      expectTypeOf<InferOutput<Schema7>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema8>>().toEqualTypeOf<number>();\n      expectTypeOf<InferOutput<Schema9>>().toEqualTypeOf<{ foo: string[] }>();\n      expectTypeOf<InferOutput<Schema10>>().toEqualTypeOf<{ foo: string[] }>();\n      expectTypeOf<InferOutput<Schema11>>().toEqualTypeOf<{ foo: string[] }>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema1>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema2>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema3>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema4>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema5>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema6>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema7>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema8>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema9>>().toEqualTypeOf<\n        ObjectIssue | ArrayIssue | StringIssue\n      >();\n      expectTypeOf<InferIssue<Schema10>>().toEqualTypeOf<\n        ObjectIssue | ArrayIssue | StringIssue\n      >();\n      expectTypeOf<InferIssue<Schema11>>().toEqualTypeOf<\n        ObjectIssue | ArrayIssue | StringIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/nullable/nullableAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  expectNoSchemaIssueAsync,\n  expectSchemaIssueAsync,\n} from '../../vitest/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { nullableAsync, type NullableSchemaAsync } from './nullableAsync.ts';\n\ndescribe('nullableAsync', () => {\n  describe('should return schema object', () => {\n    const baseSchema: Omit<\n      NullableSchemaAsync<StringSchema<undefined>, string>,\n      'default'\n    > = {\n      kind: 'schema',\n      type: 'nullable',\n      reference: nullableAsync,\n      expects: '(string | null)',\n      wrapped: {\n        ...string(),\n        '~standard': {\n          version: 1,\n          vendor: 'valibot',\n          validate: expect.any(Function),\n        },\n        '~run': expect.any(Function),\n      },\n      async: true,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined default', () => {\n      const expected: NullableSchemaAsync<\n        StringSchema<undefined>,\n        undefined\n      > = {\n        ...baseSchema,\n        default: undefined,\n      };\n      expect(nullableAsync(string())).toStrictEqual(expected);\n      expect(nullableAsync(string(), undefined)).toStrictEqual(expected);\n    });\n\n    test('with null default', () => {\n      expect(nullableAsync(string(), null)).toStrictEqual({\n        ...baseSchema,\n        default: null,\n      } satisfies NullableSchemaAsync<StringSchema<undefined>, null>);\n    });\n\n    test('with null getter default', () => {\n      const getter = () => null;\n      expect(nullableAsync(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies NullableSchemaAsync<StringSchema<undefined>, typeof getter>);\n    });\n\n    test('with async null getter default', () => {\n      const getter = async () => null;\n      expect(nullableAsync(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies NullableSchemaAsync<StringSchema<undefined>, typeof getter>);\n    });\n\n    test('with value default', () => {\n      expect(nullableAsync(string(), 'foo')).toStrictEqual({\n        ...baseSchema,\n        default: 'foo',\n      } satisfies NullableSchemaAsync<StringSchema<undefined>, 'foo'>);\n    });\n\n    test('with value getter default', () => {\n      const getter = () => 'foo';\n      expect(nullableAsync(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies NullableSchemaAsync<StringSchema<undefined>, typeof getter>);\n    });\n\n    test('with async value getter default', () => {\n      const getter = async () => 'foo';\n      expect(nullableAsync(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies NullableSchemaAsync<StringSchema<undefined>, typeof getter>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = nullableAsync(string());\n\n    test('for wrapper type', async () => {\n      await expectNoSchemaIssueAsync(schema, ['', 'foo', '#$%']);\n    });\n\n    test('for null', async () => {\n      await expectNoSchemaIssueAsync(schema, [null]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = nullableAsync(string('message'));\n    const baseIssue: Omit<StringIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'string',\n      expected: 'string',\n      message: 'message',\n    };\n\n    test('for invalid wrapper type', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [123, true, {}]);\n    });\n\n    test('for undefined', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [undefined]);\n    });\n  });\n\n  describe('should return dataset without default', () => {\n    test('for undefined default', async () => {\n      await expectNoSchemaIssueAsync(nullableAsync(string()), [null, 'foo']);\n      await expectNoSchemaIssueAsync(nullableAsync(string(), undefined), [\n        null,\n        'foo',\n      ]);\n    });\n\n    test('for wrapper type', async () => {\n      await expectNoSchemaIssueAsync(nullableAsync(string(), 'foo'), [\n        '',\n        'bar',\n        '#$%',\n      ]);\n    });\n  });\n\n  describe('should return dataset with default', () => {\n    const schema1 = nullableAsync(string(), null);\n    const schema2 = nullableAsync(string(), 'foo');\n    const schema3 = nullableAsync(string(), () => null);\n    const schema4 = nullableAsync(string(), () => 'foo');\n    const schema5 = nullableAsync(string(), async () => null);\n    const schema6 = nullableAsync(string(), async () => 'foo');\n\n    test('for null', async () => {\n      expect(await schema1['~run']({ value: null }, {})).toStrictEqual({\n        typed: true,\n        value: null,\n      });\n      expect(await schema2['~run']({ value: null }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n      });\n      expect(await schema3['~run']({ value: null }, {})).toStrictEqual({\n        typed: true,\n        value: null,\n      });\n      expect(await schema4['~run']({ value: null }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n      });\n      expect(await schema5['~run']({ value: null }, {})).toStrictEqual({\n        typed: true,\n        value: null,\n      });\n      expect(await schema6['~run']({ value: null }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/nullable/nullableAsync.ts",
    "content": "import { getDefault } from '../../methods/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  DefaultAsync,\n  InferInput,\n  InferIssue,\n  SuccessDataset,\n} from '../../types/index.ts';\nimport { _getStandardProps } from '../../utils/index.ts';\nimport type { nullable } from './nullable.ts';\nimport type { InferNullableOutput } from './types.ts';\n\n/**\n * Nullable schema async interface.\n */\nexport interface NullableSchemaAsync<\n  TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  TDefault extends DefaultAsync<TWrapped, null>,\n> extends BaseSchemaAsync<\n    InferInput<TWrapped> | null,\n    InferNullableOutput<TWrapped, TDefault>,\n    InferIssue<TWrapped>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'nullable';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof nullable | typeof nullableAsync;\n  /**\n   * The expected property.\n   */\n  readonly expects: `(${TWrapped['expects']} | null)`;\n  /**\n   * The wrapped schema.\n   */\n  readonly wrapped: TWrapped;\n  /**\n   * The default value.\n   */\n  readonly default: TDefault;\n}\n\n/**\n * Creates a nullable schema.\n *\n * @param wrapped The wrapped schema.\n *\n * @returns A nullable schema.\n */\nexport function nullableAsync<\n  const TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(wrapped: TWrapped): NullableSchemaAsync<TWrapped, undefined>;\n\n/**\n * Creates a nullable schema.\n *\n * @param wrapped The wrapped schema.\n * @param default_ The default value.\n *\n * @returns A nullable schema.\n */\nexport function nullableAsync<\n  const TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TDefault extends DefaultAsync<TWrapped, null>,\n>(\n  wrapped: TWrapped,\n  default_: TDefault\n): NullableSchemaAsync<TWrapped, TDefault>;\n\n// @__NO_SIDE_EFFECTS__\nexport function nullableAsync(\n  wrapped:\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  default_?: unknown\n): NullableSchemaAsync<\n  | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n  | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  unknown\n> {\n  return {\n    kind: 'schema',\n    type: 'nullable',\n    reference: nullableAsync,\n    expects: `(${wrapped.expects} | null)`,\n    async: true,\n    wrapped,\n    default: default_,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    async '~run'(dataset, config) {\n      // If value is `null`, override it with default or return dataset\n      if (dataset.value === null) {\n        // If default is specified, override value of dataset\n        if (this.default !== undefined) {\n          dataset.value = await getDefault(this, dataset, config);\n        }\n\n        // If value is still `null`, return dataset\n        if (dataset.value === null) {\n          // @ts-expect-error\n          dataset.typed = true;\n          // @ts-expect-error\n          return dataset as SuccessDataset<unknown>;\n        }\n      }\n\n      // Otherwise, return dataset of wrapped schema\n      return this.wrapped['~run'](dataset, config);\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/nullable/types.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  DefaultAsync,\n  DefaultValue,\n  InferOutput,\n} from '../../types/index.ts';\n\n/**\n * Infer nullable output type.\n */\nexport type InferNullableOutput<\n  TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  TDefault extends DefaultAsync<TWrapped, null>,\n> = undefined extends TDefault\n  ? InferOutput<TWrapped> | null\n  : InferOutput<TWrapped> | Extract<DefaultValue<TDefault>, null>;\n"
  },
  {
    "path": "library/src/schemas/nullish/index.ts",
    "content": "export * from './nullish.ts';\nexport * from './nullishAsync.ts';\n"
  },
  {
    "path": "library/src/schemas/nullish/nullish.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { TransformAction } from '../../actions/index.ts';\nimport type { SchemaWithPipe } from '../../methods/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { ArrayIssue, ArraySchema } from '../array/index.ts';\nimport type { ObjectIssue, ObjectSchema } from '../object/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { nullish, type NullishSchema } from './nullish.ts';\n\ndescribe('nullish', () => {\n  describe('should return schema object', () => {\n    test('with undefined default', () => {\n      type Schema = NullishSchema<StringSchema<undefined>, undefined>;\n      expectTypeOf(nullish(string())).toEqualTypeOf<Schema>();\n      expectTypeOf(nullish(string(), undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with undefined getter default', () => {\n      expectTypeOf(nullish(string(), () => undefined)).toEqualTypeOf<\n        NullishSchema<StringSchema<undefined>, () => undefined>\n      >();\n    });\n\n    test('with null default', () => {\n      expectTypeOf(nullish(string(), null)).toEqualTypeOf<\n        NullishSchema<StringSchema<undefined>, null>\n      >();\n    });\n\n    test('with null getter default', () => {\n      expectTypeOf(nullish(string(), () => null)).toEqualTypeOf<\n        NullishSchema<StringSchema<undefined>, () => null>\n      >();\n    });\n\n    test('with value default', () => {\n      expectTypeOf(nullish(string(), 'foo')).toEqualTypeOf<\n        NullishSchema<StringSchema<undefined>, 'foo'>\n      >();\n    });\n\n    test('with value getter default', () => {\n      expectTypeOf(nullish(string(), () => 'foo')).toEqualTypeOf<\n        NullishSchema<StringSchema<undefined>, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema1 = NullishSchema<StringSchema<undefined>, undefined>;\n    type Schema2 = NullishSchema<StringSchema<undefined>, null>;\n    type Schema3 = NullishSchema<StringSchema<undefined>, 'foo'>;\n    type Schema4 = NullishSchema<StringSchema<undefined>, () => undefined>;\n    type Schema5 = NullishSchema<StringSchema<undefined>, () => null>;\n    type Schema6 = NullishSchema<StringSchema<undefined>, () => 'foo'>;\n    type Schema7 = NullishSchema<\n      SchemaWithPipe<\n        [StringSchema<undefined>, TransformAction<string, number>]\n      >,\n      'foo'\n    >;\n    type Schema8 = NullishSchema<\n      ObjectSchema<\n        { foo: ArraySchema<StringSchema<undefined>, undefined> },\n        undefined\n      >,\n      { foo: string[] }\n    >;\n    type Schema9 = NullishSchema<\n      ObjectSchema<\n        { foo: ArraySchema<StringSchema<undefined>, undefined> },\n        undefined\n      >,\n      () => { foo: string[] }\n    >;\n\n    test('of input', () => {\n      type Input = string | null | undefined;\n      expectTypeOf<InferInput<Schema1>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema2>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema3>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema4>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema5>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema6>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema7>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema8>>().toEqualTypeOf<\n        { foo: string[] } | null | undefined\n      >();\n      expectTypeOf<InferInput<Schema9>>().toEqualTypeOf<\n        { foo: string[] } | null | undefined\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema1>>().toEqualTypeOf<\n        string | null | undefined\n      >();\n      expectTypeOf<InferOutput<Schema2>>().toEqualTypeOf<string | null>();\n      expectTypeOf<InferOutput<Schema3>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema4>>().toEqualTypeOf<string | undefined>();\n      expectTypeOf<InferOutput<Schema5>>().toEqualTypeOf<string | null>();\n      expectTypeOf<InferOutput<Schema6>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema7>>().toEqualTypeOf<number>();\n      expectTypeOf<InferOutput<Schema8>>().toEqualTypeOf<{ foo: string[] }>();\n      expectTypeOf<InferOutput<Schema9>>().toEqualTypeOf<{ foo: string[] }>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema1>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema2>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema3>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema4>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema5>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema6>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema7>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema8>>().toEqualTypeOf<\n        ObjectIssue | ArrayIssue | StringIssue\n      >();\n      expectTypeOf<InferIssue<Schema9>>().toEqualTypeOf<\n        ObjectIssue | ArrayIssue | StringIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/nullish/nullish.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { nullish, type NullishSchema } from './nullish.ts';\n\ndescribe('nullish', () => {\n  describe('should return schema object', () => {\n    const baseSchema: Omit<\n      NullishSchema<StringSchema<undefined>, string>,\n      'default'\n    > = {\n      kind: 'schema',\n      type: 'nullish',\n      reference: nullish,\n      expects: '(string | null | undefined)',\n      wrapped: {\n        ...string(),\n        '~standard': {\n          version: 1,\n          vendor: 'valibot',\n          validate: expect.any(Function),\n        },\n        '~run': expect.any(Function),\n      },\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined default', () => {\n      const expected: NullishSchema<StringSchema<undefined>, undefined> = {\n        ...baseSchema,\n        default: undefined,\n      };\n      expect(nullish(string())).toStrictEqual(expected);\n      expect(nullish(string(), undefined)).toStrictEqual(expected);\n    });\n\n    test('with undefined getter default', () => {\n      const getter = () => undefined;\n      expect(nullish(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies NullishSchema<StringSchema<undefined>, typeof getter>);\n    });\n\n    test('with null default', () => {\n      expect(nullish(string(), null)).toStrictEqual({\n        ...baseSchema,\n        default: null,\n      } satisfies NullishSchema<StringSchema<undefined>, null>);\n    });\n\n    test('with null getter default', () => {\n      const getter = () => null;\n      expect(nullish(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies NullishSchema<StringSchema<undefined>, typeof getter>);\n    });\n\n    test('with value default', () => {\n      expect(nullish(string(), 'foo')).toStrictEqual({\n        ...baseSchema,\n        default: 'foo',\n      } satisfies NullishSchema<StringSchema<undefined>, 'foo'>);\n    });\n\n    test('with value getter default', () => {\n      const getter = () => 'foo';\n      expect(nullish(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies NullishSchema<StringSchema<undefined>, typeof getter>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = nullish(string());\n\n    test('for wrapper type', () => {\n      expectNoSchemaIssue(schema, ['', 'foo', '#$%']);\n    });\n\n    test('for undefined', () => {\n      expectNoSchemaIssue(schema, [undefined]);\n    });\n\n    test('for null', () => {\n      expectNoSchemaIssue(schema, [null]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = nullish(string('message'));\n    const baseIssue: Omit<StringIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'string',\n      expected: 'string',\n      message: 'message',\n    };\n\n    test('for invalid wrapper type', () => {\n      expectSchemaIssue(schema, baseIssue, [123, true, {}]);\n    });\n  });\n\n  describe('should return dataset without default', () => {\n    test('for undefined default', () => {\n      expectNoSchemaIssue(nullish(string()), [undefined, null, 'foo']);\n      expectNoSchemaIssue(nullish(string(), undefined), [\n        undefined,\n        null,\n        'foo',\n      ]);\n    });\n\n    test('for wrapper type', () => {\n      expectNoSchemaIssue(nullish(string(), 'foo'), ['', 'bar', '#$%']);\n    });\n  });\n\n  describe('should return dataset with default', () => {\n    const schema1 = nullish(string(), null);\n    const schema2 = nullish(string(), 'foo');\n    const schema3 = nullish(string(), () => undefined);\n    const schema4 = nullish(string(), () => null);\n    const schema5 = nullish(string(), () => 'foo');\n\n    test('for undefined', () => {\n      expect(schema1['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: null,\n      });\n      expect(schema2['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n      });\n      expect(schema3['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: undefined,\n      });\n      expect(schema4['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: null,\n      });\n      expect(schema5['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n      });\n    });\n\n    test('for null', () => {\n      expect(schema1['~run']({ value: null }, {})).toStrictEqual({\n        typed: true,\n        value: null,\n      });\n      expect(schema2['~run']({ value: null }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n      });\n      expect(schema3['~run']({ value: null }, {})).toStrictEqual({\n        typed: true,\n        value: undefined,\n      });\n      expect(schema4['~run']({ value: null }, {})).toStrictEqual({\n        typed: true,\n        value: null,\n      });\n      expect(schema5['~run']({ value: null }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/nullish/nullish.ts",
    "content": "import { getDefault } from '../../methods/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  Default,\n  InferInput,\n  InferIssue,\n  SuccessDataset,\n} from '../../types/index.ts';\nimport { _getStandardProps } from '../../utils/index.ts';\nimport type { InferNullishOutput } from './types.ts';\n\n/**\n * Nullish schema interface.\n */\nexport interface NullishSchema<\n  TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  TDefault extends Default<TWrapped, null | undefined>,\n> extends BaseSchema<\n    InferInput<TWrapped> | null | undefined,\n    InferNullishOutput<TWrapped, TDefault>,\n    InferIssue<TWrapped>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'nullish';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof nullish;\n  /**\n   * The expected property.\n   */\n  readonly expects: `(${TWrapped['expects']} | null | undefined)`;\n  /**\n   * The wrapped schema.\n   */\n  readonly wrapped: TWrapped;\n  /**\n   * The default value.\n   */\n  readonly default: TDefault;\n}\n\n/**\n * Creates a nullish schema.\n *\n * @param wrapped The wrapped schema.\n *\n * @returns A nullish schema.\n */\nexport function nullish<\n  const TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n>(wrapped: TWrapped): NullishSchema<TWrapped, undefined>;\n\n/**\n * Creates a nullish schema.\n *\n * @param wrapped The wrapped schema.\n * @param default_ The default value.\n *\n * @returns A nullish schema.\n */\nexport function nullish<\n  const TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TDefault extends Default<TWrapped, null | undefined>,\n>(wrapped: TWrapped, default_: TDefault): NullishSchema<TWrapped, TDefault>;\n\n// @__NO_SIDE_EFFECTS__\nexport function nullish(\n  wrapped: BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  default_?: unknown\n): NullishSchema<BaseSchema<unknown, unknown, BaseIssue<unknown>>, unknown> {\n  return {\n    kind: 'schema',\n    type: 'nullish',\n    reference: nullish,\n    expects: `(${wrapped.expects} | null | undefined)`,\n    async: false,\n    wrapped,\n    default: default_,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      // If value is `null` or `undefined`, override it with default or return\n      // dataset\n      if (dataset.value === null || dataset.value === undefined) {\n        // If default is specified, override value of dataset\n        if (this.default !== undefined) {\n          dataset.value = getDefault(this, dataset, config);\n        }\n\n        // If value is still `null` or `undefined`, return dataset\n        if (dataset.value === null || dataset.value === undefined) {\n          // @ts-expect-error\n          dataset.typed = true;\n          // @ts-expect-error\n          return dataset as SuccessDataset<unknown>;\n        }\n      }\n\n      // Otherwise, return dataset of wrapped schema\n      return this.wrapped['~run'](dataset, config);\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/nullish/nullishAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { TransformActionAsync } from '../../actions/index.ts';\nimport type { SchemaWithPipeAsync } from '../../methods/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { ArrayIssue, ArraySchema } from '../array/index.ts';\nimport type { ObjectIssue, ObjectSchema } from '../object/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { nullishAsync, type NullishSchemaAsync } from './nullishAsync.ts';\n\ndescribe('nullishAsync', () => {\n  describe('should return schema object', () => {\n    test('with undefined default', () => {\n      type Schema = NullishSchemaAsync<StringSchema<undefined>, undefined>;\n      expectTypeOf(nullishAsync(string())).toEqualTypeOf<Schema>();\n      expectTypeOf(nullishAsync(string(), undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with undefined getter default', () => {\n      expectTypeOf(nullishAsync(string(), () => undefined)).toEqualTypeOf<\n        NullishSchemaAsync<StringSchema<undefined>, () => undefined>\n      >();\n    });\n\n    test('with async undefined getter default', () => {\n      expectTypeOf(nullishAsync(string(), async () => undefined)).toEqualTypeOf<\n        NullishSchemaAsync<StringSchema<undefined>, () => Promise<undefined>>\n      >();\n    });\n\n    test('with null default', () => {\n      expectTypeOf(nullishAsync(string(), null)).toEqualTypeOf<\n        NullishSchemaAsync<StringSchema<undefined>, null>\n      >();\n    });\n\n    test('with null getter default', () => {\n      expectTypeOf(nullishAsync(string(), () => null)).toEqualTypeOf<\n        NullishSchemaAsync<StringSchema<undefined>, () => null>\n      >();\n    });\n\n    test('with async null getter default', () => {\n      expectTypeOf(nullishAsync(string(), async () => null)).toEqualTypeOf<\n        NullishSchemaAsync<StringSchema<undefined>, () => Promise<null>>\n      >();\n    });\n\n    test('with value default', () => {\n      expectTypeOf(nullishAsync(string(), 'foo')).toEqualTypeOf<\n        NullishSchemaAsync<StringSchema<undefined>, 'foo'>\n      >();\n    });\n\n    test('with value getter default', () => {\n      expectTypeOf(nullishAsync(string(), () => 'foo')).toEqualTypeOf<\n        NullishSchemaAsync<StringSchema<undefined>, () => string>\n      >();\n    });\n\n    test('with async value getter default', () => {\n      expectTypeOf(nullishAsync(string(), async () => 'foo')).toEqualTypeOf<\n        NullishSchemaAsync<StringSchema<undefined>, () => Promise<string>>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema1 = NullishSchemaAsync<StringSchema<undefined>, undefined>;\n    type Schema2 = NullishSchemaAsync<StringSchema<undefined>, null>;\n    type Schema3 = NullishSchemaAsync<StringSchema<undefined>, 'foo'>;\n    type Schema4 = NullishSchemaAsync<StringSchema<undefined>, () => undefined>;\n    type Schema5 = NullishSchemaAsync<StringSchema<undefined>, () => null>;\n    type Schema6 = NullishSchemaAsync<StringSchema<undefined>, () => 'foo'>;\n    type Schema7 = NullishSchemaAsync<\n      StringSchema<undefined>,\n      () => Promise<undefined>\n    >;\n    type Schema8 = NullishSchemaAsync<\n      StringSchema<undefined>,\n      () => Promise<null>\n    >;\n    type Schema9 = NullishSchemaAsync<\n      StringSchema<undefined>,\n      () => Promise<'foo'>\n    >;\n    type Schema10 = NullishSchemaAsync<\n      SchemaWithPipeAsync<\n        [StringSchema<undefined>, TransformActionAsync<string, number>]\n      >,\n      'foo'\n    >;\n    type Schema11 = NullishSchemaAsync<\n      ObjectSchema<\n        { foo: ArraySchema<StringSchema<undefined>, undefined> },\n        undefined\n      >,\n      { foo: string[] }\n    >;\n    type Schema12 = NullishSchemaAsync<\n      ObjectSchema<\n        { foo: ArraySchema<StringSchema<undefined>, undefined> },\n        undefined\n      >,\n      () => { foo: string[] }\n    >;\n    type Schema13 = NullishSchemaAsync<\n      ObjectSchema<\n        { foo: ArraySchema<StringSchema<undefined>, undefined> },\n        undefined\n      >,\n      () => Promise<{ foo: string[] }>\n    >;\n\n    test('of input', () => {\n      type Input = string | null | undefined;\n      expectTypeOf<InferInput<Schema1>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema2>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema3>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema4>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema5>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema6>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema7>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema8>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema9>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema10>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema11>>().toEqualTypeOf<\n        { foo: string[] } | null | undefined\n      >();\n      expectTypeOf<InferInput<Schema12>>().toEqualTypeOf<\n        { foo: string[] } | null | undefined\n      >();\n      expectTypeOf<InferInput<Schema13>>().toEqualTypeOf<\n        { foo: string[] } | null | undefined\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema1>>().toEqualTypeOf<\n        string | null | undefined\n      >();\n      expectTypeOf<InferOutput<Schema2>>().toEqualTypeOf<string | null>();\n      expectTypeOf<InferOutput<Schema3>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema4>>().toEqualTypeOf<string | undefined>();\n      expectTypeOf<InferOutput<Schema5>>().toEqualTypeOf<string | null>();\n      expectTypeOf<InferOutput<Schema6>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema7>>().toEqualTypeOf<string | undefined>();\n      expectTypeOf<InferOutput<Schema8>>().toEqualTypeOf<string | null>();\n      expectTypeOf<InferOutput<Schema9>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema10>>().toEqualTypeOf<number>();\n      expectTypeOf<InferOutput<Schema11>>().toEqualTypeOf<{ foo: string[] }>();\n      expectTypeOf<InferOutput<Schema12>>().toEqualTypeOf<{ foo: string[] }>();\n      expectTypeOf<InferOutput<Schema13>>().toEqualTypeOf<{ foo: string[] }>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema1>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema2>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema3>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema4>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema5>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema6>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema7>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema8>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema9>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema10>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema11>>().toEqualTypeOf<\n        ObjectIssue | ArrayIssue | StringIssue\n      >();\n      expectTypeOf<InferIssue<Schema12>>().toEqualTypeOf<\n        ObjectIssue | ArrayIssue | StringIssue\n      >();\n      expectTypeOf<InferIssue<Schema13>>().toEqualTypeOf<\n        ObjectIssue | ArrayIssue | StringIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/nullish/nullishAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  expectNoSchemaIssueAsync,\n  expectSchemaIssueAsync,\n} from '../../vitest/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { nullishAsync, type NullishSchemaAsync } from './nullishAsync.ts';\n\ndescribe('nullishAsync', () => {\n  describe('should return schema object', () => {\n    const baseSchema: Omit<\n      NullishSchemaAsync<StringSchema<undefined>, string>,\n      'default'\n    > = {\n      kind: 'schema',\n      type: 'nullish',\n      reference: nullishAsync,\n      expects: '(string | null | undefined)',\n      wrapped: {\n        ...string(),\n        '~standard': {\n          version: 1,\n          vendor: 'valibot',\n          validate: expect.any(Function),\n        },\n        '~run': expect.any(Function),\n      },\n      async: true,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined default', () => {\n      const expected: NullishSchemaAsync<StringSchema<undefined>, undefined> = {\n        ...baseSchema,\n        default: undefined,\n      };\n      expect(nullishAsync(string())).toStrictEqual(expected);\n      expect(nullishAsync(string(), undefined)).toStrictEqual(expected);\n    });\n\n    test('with undefined getter default', () => {\n      const getter = () => undefined;\n      expect(nullishAsync(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies NullishSchemaAsync<StringSchema<undefined>, typeof getter>);\n    });\n\n    test('with async undefined getter default', () => {\n      const getter = async () => undefined;\n      expect(nullishAsync(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies NullishSchemaAsync<StringSchema<undefined>, typeof getter>);\n    });\n\n    test('with null default', () => {\n      expect(nullishAsync(string(), null)).toStrictEqual({\n        ...baseSchema,\n        default: null,\n      } satisfies NullishSchemaAsync<StringSchema<undefined>, null>);\n    });\n\n    test('with null getter default', () => {\n      const getter = () => null;\n      expect(nullishAsync(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies NullishSchemaAsync<StringSchema<undefined>, typeof getter>);\n    });\n\n    test('with async null getter default', () => {\n      const getter = async () => null;\n      expect(nullishAsync(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies NullishSchemaAsync<StringSchema<undefined>, typeof getter>);\n    });\n\n    test('with value default', () => {\n      expect(nullishAsync(string(), 'foo')).toStrictEqual({\n        ...baseSchema,\n        default: 'foo',\n      } satisfies NullishSchemaAsync<StringSchema<undefined>, 'foo'>);\n    });\n\n    test('with value getter default', () => {\n      const getter = () => 'foo';\n      expect(nullishAsync(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies NullishSchemaAsync<StringSchema<undefined>, typeof getter>);\n    });\n\n    test('with async value getter default', () => {\n      const getter = async () => 'foo';\n      expect(nullishAsync(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies NullishSchemaAsync<StringSchema<undefined>, typeof getter>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = nullishAsync(string());\n\n    test('for wrapper type', async () => {\n      await expectNoSchemaIssueAsync(schema, ['', 'foo', '#$%']);\n    });\n\n    test('for undefined', async () => {\n      await expectNoSchemaIssueAsync(schema, [undefined]);\n    });\n\n    test('for null', async () => {\n      await expectNoSchemaIssueAsync(schema, [null]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = nullishAsync(string('message'));\n    const baseIssue: Omit<StringIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'string',\n      expected: 'string',\n      message: 'message',\n    };\n\n    test('for invalid wrapper type', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [123, true, {}]);\n    });\n  });\n\n  describe('should return dataset without default', () => {\n    test('for undefined default', async () => {\n      await expectNoSchemaIssueAsync(nullishAsync(string()), [\n        undefined,\n        null,\n        'foo',\n      ]);\n      await expectNoSchemaIssueAsync(nullishAsync(string(), undefined), [\n        undefined,\n        null,\n        'foo',\n      ]);\n    });\n\n    test('for wrapper type', async () => {\n      await expectNoSchemaIssueAsync(nullishAsync(string(), 'foo'), [\n        '',\n        'bar',\n        '#$%',\n      ]);\n    });\n  });\n\n  describe('should return dataset with default', () => {\n    const schema1 = nullishAsync(string(), null);\n    const schema3 = nullishAsync(string(), 'foo');\n    const schema4 = nullishAsync(string(), () => undefined);\n    const schema5 = nullishAsync(string(), () => null);\n    const schema6 = nullishAsync(string(), () => 'foo');\n    const schema7 = nullishAsync(string(), async () => undefined);\n    const schema8 = nullishAsync(string(), async () => null);\n    const schema9 = nullishAsync(string(), async () => 'foo');\n\n    test('for undefined', async () => {\n      expect(await schema1['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: null,\n      });\n      expect(await schema3['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n      });\n      expect(await schema4['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: undefined,\n      });\n      expect(await schema5['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: null,\n      });\n      expect(await schema6['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n      });\n      expect(await schema7['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: undefined,\n      });\n      expect(await schema8['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: null,\n      });\n      expect(await schema9['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n      });\n    });\n\n    test('for null', async () => {\n      expect(await schema1['~run']({ value: null }, {})).toStrictEqual({\n        typed: true,\n        value: null,\n      });\n      expect(await schema3['~run']({ value: null }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n      });\n      expect(await schema4['~run']({ value: null }, {})).toStrictEqual({\n        typed: true,\n        value: undefined,\n      });\n      expect(await schema5['~run']({ value: null }, {})).toStrictEqual({\n        typed: true,\n        value: null,\n      });\n      expect(await schema6['~run']({ value: null }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n      });\n      expect(await schema7['~run']({ value: null }, {})).toStrictEqual({\n        typed: true,\n        value: undefined,\n      });\n      expect(await schema8['~run']({ value: null }, {})).toStrictEqual({\n        typed: true,\n        value: null,\n      });\n      expect(await schema9['~run']({ value: null }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/nullish/nullishAsync.ts",
    "content": "import { getDefault } from '../../methods/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  DefaultAsync,\n  InferInput,\n  InferIssue,\n  SuccessDataset,\n} from '../../types/index.ts';\nimport { _getStandardProps } from '../../utils/index.ts';\nimport type { nullish } from './nullish.ts';\nimport type { InferNullishOutput } from './types.ts';\n\n/**\n * Nullish schema async interface.\n */\nexport interface NullishSchemaAsync<\n  TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  TDefault extends DefaultAsync<TWrapped, null | undefined>,\n> extends BaseSchemaAsync<\n    InferInput<TWrapped> | null | undefined,\n    InferNullishOutput<TWrapped, TDefault>,\n    InferIssue<TWrapped>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'nullish';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof nullish | typeof nullishAsync;\n  /**\n   * The expected property.\n   */\n  readonly expects: `(${TWrapped['expects']} | null | undefined)`;\n  /**\n   * The wrapped schema.\n   */\n  readonly wrapped: TWrapped;\n  /**\n   * The default value.\n   */\n  readonly default: TDefault;\n}\n\n/**\n * Creates a nullish schema.\n *\n * @param wrapped The wrapped schema.\n *\n * @returns A nullish schema.\n */\nexport function nullishAsync<\n  const TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(wrapped: TWrapped): NullishSchemaAsync<TWrapped, undefined>;\n\n/**\n * Creates a nullish schema.\n *\n * @param wrapped The wrapped schema.\n * @param default_ The default value.\n *\n * @returns A nullish schema.\n */\nexport function nullishAsync<\n  const TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TDefault extends DefaultAsync<TWrapped, null | undefined>,\n>(\n  wrapped: TWrapped,\n  default_: TDefault\n): NullishSchemaAsync<TWrapped, TDefault>;\n\n// @__NO_SIDE_EFFECTS__\nexport function nullishAsync(\n  wrapped:\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  default_?: unknown\n): NullishSchemaAsync<\n  | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n  | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  unknown\n> {\n  return {\n    kind: 'schema',\n    type: 'nullish',\n    reference: nullishAsync,\n    expects: `(${wrapped.expects} | null | undefined)`,\n    async: true,\n    wrapped,\n    default: default_,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    async '~run'(dataset, config) {\n      // If value is `null` or `undefined`, override it with default or return\n      // dataset\n      if (dataset.value === null || dataset.value === undefined) {\n        // If default is specified, override value of dataset\n        if (this.default !== undefined) {\n          dataset.value = await getDefault(this, dataset, config);\n        }\n\n        // If value is still `null` or `undefined`, return dataset\n        if (dataset.value === null || dataset.value === undefined) {\n          // @ts-expect-error\n          dataset.typed = true;\n          // @ts-expect-error\n          return dataset as SuccessDataset<unknown>;\n        }\n      }\n\n      // Otherwise, return dataset of wrapped schema\n      return this.wrapped['~run'](dataset, config);\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/nullish/types.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  DefaultAsync,\n  DefaultValue,\n  InferOutput,\n} from '../../types/index.ts';\n\n/**\n * Infer nullish output type.\n */\nexport type InferNullishOutput<\n  TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  TDefault extends DefaultAsync<TWrapped, null | undefined>,\n> = undefined extends TDefault\n  ? InferOutput<TWrapped> | null | undefined\n  : InferOutput<TWrapped> | Extract<DefaultValue<TDefault>, null | undefined>;\n"
  },
  {
    "path": "library/src/schemas/number/index.ts",
    "content": "export * from './number.ts';\n"
  },
  {
    "path": "library/src/schemas/number/number.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { number, type NumberIssue, type NumberSchema } from './number.ts';\n\ndescribe('number', () => {\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = NumberSchema<undefined>;\n      expectTypeOf(number()).toEqualTypeOf<Schema>();\n      expectTypeOf(number(undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(number('message')).toEqualTypeOf<NumberSchema<'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(number(() => 'message')).toEqualTypeOf<\n        NumberSchema<() => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = NumberSchema<undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<number>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<number>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<NumberIssue>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/number/number.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { number, type NumberIssue, type NumberSchema } from './number.ts';\n\ndescribe('number', () => {\n  describe('should return schema object', () => {\n    const baseSchema: Omit<NumberSchema<never>, 'message'> = {\n      kind: 'schema',\n      type: 'number',\n      reference: number,\n      expects: 'number',\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: NumberSchema<undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(number()).toStrictEqual(schema);\n      expect(number(undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(number('message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies NumberSchema<'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(number(message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies NumberSchema<typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = number();\n\n    test('for number zero', () => {\n      expectNoSchemaIssue(schema, [0, -0, 0.0, -0.0]);\n    });\n\n    test('for positive integers', () => {\n      expectNoSchemaIssue(schema, [1, 23, 456, Number.MAX_VALUE]);\n    });\n\n    test('for negative integers', () => {\n      expectNoSchemaIssue(schema, [-1, -23, -456, Number.MIN_VALUE]);\n    });\n\n    test('for positive floats', () => {\n      expectNoSchemaIssue(schema, [0.1, 23.456, 1 / 3]);\n    });\n\n    test('for negative floats', () => {\n      expectNoSchemaIssue(schema, [-0.1, -23.456, -1 / 3]);\n    });\n\n    test('for infinity numbers', () => {\n      expectNoSchemaIssue(schema, [Infinity, -Infinity]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = number('message');\n    const baseIssue: Omit<NumberIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'number',\n      expected: 'number',\n      message: 'message',\n    };\n\n    // Special values\n\n    test('for NaN', () => {\n      expectSchemaIssue(schema, baseIssue, [NaN]);\n    });\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', '0', '-2', '12.34']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    test('for arrays', () => {\n      expectSchemaIssue(schema, baseIssue, [[], ['value']]);\n    });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n\n    test('for objects', () => {\n      expectSchemaIssue(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/number/number.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\n\n/**\n * Number issue interface.\n */\nexport interface NumberIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'number';\n  /**\n   * The expected property.\n   */\n  readonly expected: 'number';\n}\n\n/**\n * Number schema interface.\n */\nexport interface NumberSchema<\n  TMessage extends ErrorMessage<NumberIssue> | undefined,\n> extends BaseSchema<number, number, NumberIssue> {\n  /**\n   * The schema type.\n   */\n  readonly type: 'number';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof number;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'number';\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a number schema.\n *\n * @returns A number schema.\n */\nexport function number(): NumberSchema<undefined>;\n\n/**\n * Creates a number schema.\n *\n * @param message The error message.\n *\n * @returns A number schema.\n */\nexport function number<\n  const TMessage extends ErrorMessage<NumberIssue> | undefined,\n>(message: TMessage): NumberSchema<TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function number(\n  message?: ErrorMessage<NumberIssue>\n): NumberSchema<ErrorMessage<NumberIssue> | undefined> {\n  return {\n    kind: 'schema',\n    type: 'number',\n    reference: number,\n    expects: 'number',\n    async: false,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      if (typeof dataset.value === 'number' && !isNaN(dataset.value)) {\n        // @ts-expect-error\n        dataset.typed = true;\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n      // @ts-expect-error\n      return dataset as OutputDataset<number, NumberIssue>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/object/index.ts",
    "content": "export * from './object.ts';\nexport * from './objectAsync.ts';\nexport * from './types.ts';\n"
  },
  {
    "path": "library/src/schemas/object/object.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type {\n  Brand,\n  BrandAction,\n  DescriptionAction,\n  ReadonlyAction,\n  TransformAction,\n} from '../../actions/index.ts';\nimport type { SchemaWithPipe } from '../../methods/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { AnySchema } from '../any/index.ts';\nimport type { CustomIssue, CustomSchema } from '../custom/index.ts';\nimport type { ExactOptionalSchema } from '../exactOptional/index.ts';\nimport type { NullishSchema } from '../nullish/index.ts';\nimport type { NumberIssue, NumberSchema } from '../number/index.ts';\nimport type { OptionalSchema } from '../optional/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport type { UndefinedableSchema } from '../undefinedable/index.ts';\nimport type { UnknownSchema } from '../unknown/index.ts';\nimport { object, type ObjectSchema } from './object.ts';\nimport type { ObjectIssue } from './types.ts';\n\ndescribe('object', () => {\n  describe('should return schema object', () => {\n    const entries = { key: string() };\n    type Entries = typeof entries;\n\n    test('with undefined message', () => {\n      type Schema = ObjectSchema<Entries, undefined>;\n      expectTypeOf(object(entries)).toEqualTypeOf<Schema>();\n      expectTypeOf(object(entries, undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(object(entries, 'message')).toEqualTypeOf<\n        ObjectSchema<Entries, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(object(entries, () => 'message')).toEqualTypeOf<\n        ObjectSchema<Entries, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = ObjectSchema<\n      {\n        key00: StringSchema<undefined>;\n        key01: AnySchema;\n        key02: UnknownSchema;\n        key03: ObjectSchema<{ key: NumberSchema<undefined> }, undefined>;\n        key04: SchemaWithPipe<\n          [StringSchema<undefined>, ReadonlyAction<string>]\n        >;\n        key05: UndefinedableSchema<StringSchema<undefined>, 'bar'>;\n        key06: SchemaWithPipe<\n          [\n            OptionalSchema<StringSchema<undefined>, undefined>,\n            TransformAction<undefined | string, number>,\n          ]\n        >;\n        key07: CustomSchema<`a${string}` | `b${string}`, undefined>;\n        key08: SchemaWithPipe<\n          [StringSchema<undefined>, BrandAction<string, 'foo'>]\n        >;\n\n        // ExactOptionalSchema\n        key10: ExactOptionalSchema<StringSchema<undefined>, undefined>;\n        key11: ExactOptionalSchema<StringSchema<undefined>, 'foo'>;\n        key12: ExactOptionalSchema<StringSchema<undefined>, () => 'foo'>;\n\n        // OptionalSchema\n        key20: OptionalSchema<StringSchema<undefined>, undefined>;\n        key21: OptionalSchema<StringSchema<undefined>, 'foo'>;\n        key22: OptionalSchema<StringSchema<undefined>, () => undefined>;\n        key23: OptionalSchema<StringSchema<undefined>, () => 'foo'>;\n\n        // NullishSchema\n        key30: NullishSchema<StringSchema<undefined>, undefined>;\n        key31: NullishSchema<StringSchema<undefined>, null>;\n        key32: NullishSchema<StringSchema<undefined>, 'foo'>;\n        key33: NullishSchema<StringSchema<undefined>, () => undefined>;\n        key34: NullishSchema<StringSchema<undefined>, () => null>;\n        key35: NullishSchema<StringSchema<undefined>, () => 'foo'>;\n\n        // SchemaWithPipe\n        key40: SchemaWithPipe<\n          [ExactOptionalSchema<StringSchema<undefined>, undefined>]\n        >;\n        key41: SchemaWithPipe<\n          [\n            ExactOptionalSchema<StringSchema<undefined>, undefined>,\n            DescriptionAction<string, 'foo'>,\n          ]\n        >;\n        key42: SchemaWithPipe<\n          [OptionalSchema<StringSchema<undefined>, undefined>]\n        >;\n        key43: SchemaWithPipe<\n          [\n            OptionalSchema<StringSchema<undefined>, undefined>,\n            DescriptionAction<string | undefined, 'foo'>,\n          ]\n        >;\n        key44: SchemaWithPipe<\n          [NullishSchema<StringSchema<undefined>, undefined>]\n        >;\n        key45: SchemaWithPipe<\n          [\n            NullishSchema<StringSchema<undefined>, undefined>,\n            DescriptionAction<string | null | undefined, 'foo'>,\n          ]\n        >;\n        key46: SchemaWithPipe<\n          [\n            NullishSchema<StringSchema<undefined>, undefined>,\n            TransformAction<string | null | undefined, string[]>,\n          ]\n        >;\n      },\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<{\n        key00: string;\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        key01: any;\n        key02: unknown;\n        key03: { key: number };\n        key04: string;\n        key05: string | undefined;\n        key06?: string | undefined;\n        key07: `a${string}` | `b${string}`;\n        key08: string;\n\n        // ExactOptionalSchema\n        key10?: string;\n        key11?: string;\n        key12?: string;\n\n        // OptionalSchema\n        key20?: string | undefined;\n        key21?: string | undefined;\n        key22?: string | undefined;\n        key23?: string | undefined;\n\n        // NullishSchema\n        key30?: string | null | undefined;\n        key31?: string | null | undefined;\n        key32?: string | null | undefined;\n        key33?: string | null | undefined;\n        key34?: string | null | undefined;\n        key35?: string | null | undefined;\n\n        // SchemaWithPipe\n        key40?: string;\n        key41?: string;\n        key42?: string | undefined;\n        key43?: string | undefined;\n        key44?: string | null | undefined;\n        key45?: string | null | undefined;\n        key46?: string | null | undefined;\n      }>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<{\n        key00: string;\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        key01: any;\n        key02: unknown;\n        key03: { key: number };\n        readonly key04: string;\n        key05: string;\n        key06?: number;\n        key07: `a${string}` | `b${string}`;\n        key08: string & Brand<'foo'>;\n\n        // ExactOptionalSchema\n        key10?: string;\n        key11: string;\n        key12: string;\n\n        // OptionalSchema\n        key20?: string | undefined;\n        key21: string;\n        key22: string | undefined;\n        key23: string;\n\n        // NullishSchema\n        key30?: string | null | undefined;\n        key31: string | null;\n        key32: string;\n        key33: string | undefined;\n        key34: string | null;\n        key35: string;\n\n        // SchemaWithPipe\n        key40?: string;\n        key41?: string;\n        key42?: string | undefined;\n        key43?: string | undefined;\n        key44?: string | null | undefined;\n        key45?: string | null | undefined;\n        key46?: string[];\n      }>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        ObjectIssue | StringIssue | NumberIssue | CustomIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/object/object.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { fallback } from '../../methods/index.ts';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { any } from '../any/index.ts';\nimport { exactOptional } from '../exactOptional/exactOptional.ts';\nimport { nullish } from '../nullish/index.ts';\nimport { number } from '../number/index.ts';\nimport { optional } from '../optional/index.ts';\nimport { string } from '../string/index.ts';\nimport { unknown } from '../unknown/index.ts';\nimport { object, type ObjectSchema } from './object.ts';\nimport type { ObjectIssue } from './types.ts';\n\ndescribe('object', () => {\n  describe('should return schema object', () => {\n    const entries = { key: string() };\n    type Entries = typeof entries;\n    const baseSchema: Omit<ObjectSchema<Entries, never>, 'message'> = {\n      kind: 'schema',\n      type: 'object',\n      reference: object,\n      expects: 'Object',\n      entries,\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: ObjectSchema<Entries, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(object(entries)).toStrictEqual(schema);\n      expect(object(entries, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(object(entries, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies ObjectSchema<Entries, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(object(entries, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies ObjectSchema<Entries, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for empty object', () => {\n      expectNoSchemaIssue(object({}), [{}]);\n    });\n\n    test('for simple object', () => {\n      expectNoSchemaIssue(object({ key1: string(), key2: number() }), [\n        { key1: 'foo', key2: 123 },\n      ]);\n    });\n\n    test('for unknown entries', () => {\n      expect(\n        object({ key1: string() })['~run'](\n          { value: { key1: 'foo', key2: 123, key3: null } },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key1: 'foo' },\n      });\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = object({}, 'message');\n    const baseIssue: Omit<ObjectIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'object',\n      expected: 'Object',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', 'abc', '123']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    // TODO: Enable this test again in case we find a reliable way to check for\n    // plain objects\n    // test('for arrays', () => {\n    //   expectSchemaIssue(schema, baseIssue, [[], ['value']]);\n    // });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n  });\n\n  describe('should return dataset without nested issues', () => {\n    test('for simple object', () => {\n      expectNoSchemaIssue(object({ key1: string(), key2: number() }), [\n        { key1: 'foo', key2: 123 },\n      ]);\n    });\n\n    test('for nested object', () => {\n      expectNoSchemaIssue(object({ nested: object({ key: string() }) }), [\n        { nested: { key: 'foo' } },\n      ]);\n    });\n\n    test('for missing entries with fallback', () => {\n      expect(\n        object({\n          key1: fallback(string(), 'foo'),\n          key2: fallback(number(), () => 123),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key1: 'foo', key2: 123 },\n      });\n    });\n\n    test('for exact optional entry', () => {\n      expectNoSchemaIssue(object({ key: exactOptional(string()) }), [\n        {},\n        { key: 'foo' },\n      ]);\n    });\n\n    test('for exact optional entry with default', () => {\n      expect(\n        object({ key: exactOptional(string(), 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        object({ key: exactOptional(string(), () => 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n    });\n\n    test('for optional entry', () => {\n      expectNoSchemaIssue(object({ key: optional(string()) }), [\n        {},\n        { key: undefined },\n        { key: 'foo' },\n      ]);\n    });\n\n    test('for optional entry with default', () => {\n      expect(\n        object({ key: optional(string(), 'foo') })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        object({ key: optional(string(), () => 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        object({\n          key: optional(string(), () => undefined),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n    });\n\n    test('for nullish entry', () => {\n      expectNoSchemaIssue(object({ key: nullish(number()) }), [\n        {},\n        { key: undefined },\n        { key: null },\n        { key: 123 },\n      ]);\n    });\n\n    test('for nullish entry with default', () => {\n      expect(\n        object({ key: nullish(string(), 'foo') })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        object({ key: nullish(string(), null) })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: null },\n      });\n      expect(\n        object({ key: nullish(string(), () => 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        object({ key: nullish(string(), () => null) })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: null },\n      });\n      expect(\n        object({ key: nullish(string(), () => undefined) })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n    });\n\n    test('for unknown entries', () => {\n      expect(\n        object({ key1: string() })['~run'](\n          { value: { key1: 'foo', key2: 123, key3: null } },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key1: 'foo' },\n      });\n    });\n  });\n\n  describe('should return dataset with nested issues', () => {\n    const schema = object({\n      key1: string(),\n      key2: number(),\n      nested: object({ key1: string(), key2: number() }),\n    });\n\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    test('for missing entries', () => {\n      const input = { key2: 123 };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object',\n            input: undefined,\n            expected: '\"nested\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'nested',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for missing nested entries', () => {\n      const input = { key1: 'value', nested: {} };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object',\n            input: undefined,\n            expected: '\"key2\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'key2',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: {},\n              },\n              {\n                type: 'object',\n                origin: 'key',\n                input: input.nested,\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object',\n            input: undefined,\n            expected: '\"key2\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: {},\n              },\n              {\n                type: 'object',\n                origin: 'key',\n                input: input.nested,\n                key: 'key2',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for missing entries with abort early', () => {\n      const input = { key2: 123 };\n      expect(\n        schema['~run']({ value: input }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: {},\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n            abortEarly: true,\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for missing any and unknown entry', () => {\n      const schema = object({ key1: any(), key2: unknown() });\n      expect(schema['~run']({ value: {} }, {})).toStrictEqual({\n        typed: false,\n        value: {},\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input: {},\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object',\n            input: undefined,\n            expected: '\"key2\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input: {},\n                key: 'key2',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid entries', () => {\n      const input = { key1: false, key2: 123, nested: null };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: false,\n            expected: 'string',\n            received: 'false',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key1',\n                value: false,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object',\n            input: null,\n            expected: 'Object',\n            received: 'null',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: null,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid nested entries', () => {\n      const input = {\n        key1: 'value',\n        key2: 'value',\n        nested: {\n          key1: 123,\n          key2: null,\n        },\n      };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: 'value',\n            expected: 'number',\n            received: '\"value\"',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key2',\n                value: input.key2,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: 123,\n            expected: 'string',\n            received: '123',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: input.nested,\n              },\n              {\n                type: 'object',\n                origin: 'value',\n                input: input.nested,\n                key: 'key1',\n                value: input.nested.key1,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: null,\n            expected: 'number',\n            received: 'null',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: input.nested,\n              },\n              {\n                type: 'object',\n                origin: 'value',\n                input: input.nested,\n                key: 'key2',\n                value: input.nested.key2,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid entries with abort early', () => {\n      const input = { key1: false, key2: 123, nested: null };\n      expect(\n        schema['~run']({ value: input }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: {},\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: false,\n            expected: 'string',\n            received: 'false',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key1',\n                value: false,\n              },\n            ],\n            abortEarly: true,\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid exact optional entry', () => {\n      const schema = object({ key: exactOptional(string()) });\n      const input = { key: undefined };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: undefined,\n            expected: 'string',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/object/object.ts",
    "content": "import { getDefault, getFallback } from '../../methods/index.ts';\nimport type {\n  BaseSchema,\n  ErrorMessage,\n  InferObjectInput,\n  InferObjectIssue,\n  InferObjectOutput,\n  ObjectEntries,\n  ObjectPathItem,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\nimport type { ObjectIssue } from './types.ts';\n\n/**\n * Object schema interface.\n */\nexport interface ObjectSchema<\n  TEntries extends ObjectEntries,\n  TMessage extends ErrorMessage<ObjectIssue> | undefined,\n> extends BaseSchema<\n    InferObjectInput<TEntries>,\n    InferObjectOutput<TEntries>,\n    ObjectIssue | InferObjectIssue<TEntries>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'object';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof object;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Object';\n  /**\n   * The entries schema.\n   */\n  readonly entries: TEntries;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an object schema.\n *\n * Hint: This schema removes unknown entries. The output will only include the\n * entries you specify. To include unknown entries, use `looseObject`. To\n * return an issue for unknown entries, use `strictObject`. To include and\n * validate unknown entries, use `objectWithRest`.\n *\n * @param entries The entries schema.\n *\n * @returns An object schema.\n */\nexport function object<const TEntries extends ObjectEntries>(\n  entries: TEntries\n): ObjectSchema<TEntries, undefined>;\n\n/**\n * Creates an object schema.\n *\n * Hint: This schema removes unknown entries. The output will only include the\n * entries you specify. To include unknown entries, use `looseObject`. To\n * return an issue for unknown entries, use `strictObject`. To include and\n * validate unknown entries, use `objectWithRest`.\n *\n * @param entries The entries schema.\n * @param message The error message.\n *\n * @returns An object schema.\n */\nexport function object<\n  const TEntries extends ObjectEntries,\n  const TMessage extends ErrorMessage<ObjectIssue> | undefined,\n>(entries: TEntries, message: TMessage): ObjectSchema<TEntries, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function object(\n  entries: ObjectEntries,\n  message?: ErrorMessage<ObjectIssue>\n): ObjectSchema<ObjectEntries, ErrorMessage<ObjectIssue> | undefined> {\n  return {\n    kind: 'schema',\n    type: 'object',\n    reference: object,\n    expects: 'Object',\n    async: false,\n    entries,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      // Get input value from dataset\n      const input = dataset.value;\n\n      // If root type is valid, check nested types\n      if (input && typeof input === 'object') {\n        // Set typed to `true` and value to blank object\n        // @ts-expect-error\n        dataset.typed = true;\n        dataset.value = {};\n\n        // Process each object entry of schema\n        for (const key in this.entries) {\n          const valueSchema = this.entries[key];\n\n          // If key is present or its an optional schema with a default value,\n          // parse input of key or default value\n          if (\n            key in input ||\n            ((valueSchema.type === 'exact_optional' ||\n              valueSchema.type === 'optional' ||\n              valueSchema.type === 'nullish') &&\n              // @ts-expect-error\n              valueSchema.default !== undefined)\n          ) {\n            const value: unknown =\n              key in input\n                ? // @ts-expect-error\n                  input[key]\n                : getDefault(valueSchema);\n            const valueDataset = valueSchema['~run']({ value }, config);\n\n            // If there are issues, capture them\n            if (valueDataset.issues) {\n              // Create object path item\n              const pathItem: ObjectPathItem = {\n                type: 'object',\n                origin: 'value',\n                input: input as Record<string, unknown>,\n                key,\n                value,\n              };\n\n              // Add modified entry dataset issues to issues\n              for (const issue of valueDataset.issues) {\n                if (issue.path) {\n                  issue.path.unshift(pathItem);\n                } else {\n                  // @ts-expect-error\n                  issue.path = [pathItem];\n                }\n                // @ts-expect-error\n                dataset.issues?.push(issue);\n              }\n              if (!dataset.issues) {\n                // @ts-expect-error\n                dataset.issues = valueDataset.issues;\n              }\n\n              // If necessary, abort early\n              if (config.abortEarly) {\n                dataset.typed = false;\n                break;\n              }\n            }\n\n            // If not typed, set typed to `false`\n            if (!valueDataset.typed) {\n              dataset.typed = false;\n            }\n\n            // Add entry to dataset\n            // @ts-expect-error\n            dataset.value[key] = valueDataset.value;\n\n            // Otherwise, if key is missing but has a fallback, use it\n            // @ts-expect-error\n          } else if (valueSchema.fallback !== undefined) {\n            // @ts-expect-error\n            dataset.value[key] = getFallback(valueSchema);\n\n            // Otherwise, if key is missing and required, add issue\n          } else if (\n            valueSchema.type !== 'exact_optional' &&\n            valueSchema.type !== 'optional' &&\n            valueSchema.type !== 'nullish'\n          ) {\n            _addIssue(this, 'key', dataset, config, {\n              input: undefined,\n              expected: `\"${key}\"`,\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input: input as Record<string, unknown>,\n                  key,\n                  // @ts-expect-error\n                  value: input[key],\n                },\n              ],\n            });\n\n            // If necessary, abort early\n            if (config.abortEarly) {\n              break;\n            }\n          }\n        }\n\n        // Otherwise, add object issue\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        InferObjectOutput<ObjectEntries>,\n        ObjectIssue | InferObjectIssue<ObjectEntries>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/object/objectAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type {\n  Brand,\n  BrandAction,\n  DescriptionAction,\n  ReadonlyAction,\n  TransformAction,\n} from '../../actions/index.ts';\nimport type {\n  SchemaWithPipe,\n  SchemaWithPipeAsync,\n} from '../../methods/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { AnySchema } from '../any/index.ts';\nimport type { CustomIssue, CustomSchemaAsync } from '../custom/index.ts';\nimport type {\n  ExactOptionalSchema,\n  ExactOptionalSchemaAsync,\n} from '../exactOptional/index.ts';\nimport type { NullishSchema, NullishSchemaAsync } from '../nullish/index.ts';\nimport type { NumberIssue, NumberSchema } from '../number/index.ts';\nimport type { OptionalSchema, OptionalSchemaAsync } from '../optional/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport type { UndefinedableSchema } from '../undefinedable/index.ts';\nimport type { UnknownSchema } from '../unknown/index.ts';\nimport { objectAsync, type ObjectSchemaAsync } from './objectAsync.ts';\nimport type { ObjectIssue } from './types.ts';\n\ndescribe('objectAsync', () => {\n  describe('should return schema objectAsync', () => {\n    const entries = { key: string() };\n    type Entries = typeof entries;\n\n    test('with undefined message', () => {\n      type Schema = ObjectSchemaAsync<Entries, undefined>;\n      expectTypeOf(objectAsync(entries)).toEqualTypeOf<Schema>();\n      expectTypeOf(objectAsync(entries, undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(objectAsync(entries, 'message')).toEqualTypeOf<\n        ObjectSchemaAsync<Entries, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(objectAsync(entries, () => 'message')).toEqualTypeOf<\n        ObjectSchemaAsync<Entries, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = ObjectSchemaAsync<\n      {\n        key00: StringSchema<undefined>;\n        key01: AnySchema;\n        key02: UnknownSchema;\n        key03: ObjectSchemaAsync<{ key: NumberSchema<undefined> }, undefined>;\n        key04: SchemaWithPipe<\n          [StringSchema<undefined>, ReadonlyAction<string>]\n        >;\n        key05: UndefinedableSchema<StringSchema<undefined>, 'bar'>;\n        key06: SchemaWithPipe<\n          [\n            OptionalSchema<StringSchema<undefined>, undefined>,\n            TransformAction<undefined | string, number>,\n          ]\n        >;\n        key07: SchemaWithPipeAsync<\n          [\n            OptionalSchema<StringSchema<undefined>, undefined>,\n            TransformAction<undefined | string, number>,\n          ]\n        >;\n        key08: SchemaWithPipeAsync<\n          [\n            OptionalSchemaAsync<StringSchema<undefined>, undefined>,\n            TransformAction<undefined | string, number>,\n          ]\n        >;\n        key09: CustomSchemaAsync<`a${string}` | `b${string}`, undefined>;\n        key10: SchemaWithPipe<\n          [StringSchema<undefined>, BrandAction<string, 'foo'>]\n        >;\n\n        // ExactOptionalSchema\n        key20: ExactOptionalSchema<StringSchema<undefined>, undefined>;\n        key21: ExactOptionalSchema<StringSchema<undefined>, 'foo'>;\n        key22: ExactOptionalSchema<StringSchema<undefined>, () => 'foo'>;\n\n        // ExactOptionalSchemaAsync\n        key30: ExactOptionalSchemaAsync<StringSchema<undefined>, undefined>;\n        key31: ExactOptionalSchemaAsync<StringSchema<undefined>, 'foo'>;\n        key32: ExactOptionalSchemaAsync<StringSchema<undefined>, () => 'foo'>;\n        key33: ExactOptionalSchemaAsync<\n          StringSchema<undefined>,\n          () => Promise<'foo'>\n        >;\n\n        // OptionalSchema\n        key40: OptionalSchema<StringSchema<undefined>, undefined>;\n        key41: OptionalSchema<StringSchema<undefined>, 'foo'>;\n        key42: OptionalSchema<StringSchema<undefined>, () => undefined>;\n        key43: OptionalSchema<StringSchema<undefined>, () => 'foo'>;\n\n        // OptionalSchemaAsync\n        key50: OptionalSchemaAsync<StringSchema<undefined>, undefined>;\n        key51: OptionalSchemaAsync<StringSchema<undefined>, 'foo'>;\n        key52: OptionalSchemaAsync<StringSchema<undefined>, () => undefined>;\n        key53: OptionalSchemaAsync<StringSchema<undefined>, () => 'foo'>;\n        key54: OptionalSchemaAsync<\n          StringSchema<undefined>,\n          () => Promise<undefined>\n        >;\n        key55: OptionalSchemaAsync<\n          StringSchema<undefined>,\n          () => Promise<'foo'>\n        >;\n\n        // NullishSchema\n        key60: NullishSchema<StringSchema<undefined>, undefined>;\n        key61: NullishSchema<StringSchema<undefined>, null>;\n        key62: NullishSchema<StringSchema<undefined>, 'foo'>;\n        key63: NullishSchema<StringSchema<undefined>, () => undefined>;\n        key64: NullishSchema<StringSchema<undefined>, () => null>;\n        key65: NullishSchema<StringSchema<undefined>, () => 'foo'>;\n\n        // NullishSchemaAsync\n        key70: NullishSchemaAsync<StringSchema<undefined>, undefined>;\n        key71: NullishSchemaAsync<StringSchema<undefined>, null>;\n        key72: NullishSchemaAsync<StringSchema<undefined>, 'foo'>;\n        key73: NullishSchemaAsync<StringSchema<undefined>, () => undefined>;\n        key74: NullishSchemaAsync<StringSchema<undefined>, () => null>;\n        key75: NullishSchemaAsync<StringSchema<undefined>, () => 'foo'>;\n        key76: NullishSchemaAsync<\n          StringSchema<undefined>,\n          () => Promise<undefined>\n        >;\n        key77: NullishSchemaAsync<StringSchema<undefined>, () => Promise<null>>;\n        key78: NullishSchemaAsync<\n          StringSchema<undefined>,\n          () => Promise<'foo'>\n        >;\n\n        // SchemaWithPipe\n        key80: SchemaWithPipe<\n          [ExactOptionalSchema<StringSchema<undefined>, undefined>]\n        >;\n        key81: SchemaWithPipe<\n          [\n            ExactOptionalSchema<StringSchema<undefined>, undefined>,\n            DescriptionAction<string, 'foo'>,\n          ]\n        >;\n        key82: SchemaWithPipe<\n          [OptionalSchema<StringSchema<undefined>, undefined>]\n        >;\n        key83: SchemaWithPipe<\n          [\n            OptionalSchema<StringSchema<undefined>, undefined>,\n            DescriptionAction<string | undefined, 'foo'>,\n          ]\n        >;\n        key84: SchemaWithPipe<\n          [NullishSchema<StringSchema<undefined>, undefined>]\n        >;\n        key85: SchemaWithPipe<\n          [\n            NullishSchema<StringSchema<undefined>, undefined>,\n            DescriptionAction<string | null | undefined, 'foo'>,\n          ]\n        >;\n        key86: SchemaWithPipe<\n          [\n            NullishSchema<StringSchema<undefined>, undefined>,\n            TransformAction<string | null | undefined, string[]>,\n          ]\n        >;\n        key87: SchemaWithPipeAsync<\n          [\n            NullishSchemaAsync<StringSchema<undefined>, undefined>,\n            TransformAction<string | null | undefined, string[]>,\n          ]\n        >;\n      },\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<{\n        key00: string;\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        key01: any;\n        key02: unknown;\n        key03: { key: number };\n        key04: string;\n        key05: string | undefined;\n        key06?: string | undefined;\n        key07?: string | undefined;\n        key08?: string | undefined;\n        key09: `a${string}` | `b${string}`;\n        key10: string;\n\n        // ExactOptionalSchema\n        key20?: string;\n        key21?: string;\n        key22?: string;\n\n        // ExactOptionalSchemaAsync\n        key30?: string;\n        key31?: string;\n        key32?: string;\n        key33?: string;\n\n        // OptionalSchema\n        key40?: string | undefined;\n        key41?: string | undefined;\n        key42?: string | undefined;\n        key43?: string | undefined;\n\n        // OptionalSchemaAsync\n        key50?: string | undefined;\n        key51?: string | undefined;\n        key52?: string | undefined;\n        key53?: string | undefined;\n        key54?: string | undefined;\n        key55?: string | undefined;\n\n        // NullishSchema\n        key60?: string | null | undefined;\n        key61?: string | null | undefined;\n        key62?: string | null | undefined;\n        key63?: string | null | undefined;\n        key64?: string | null | undefined;\n        key65?: string | null | undefined;\n\n        // NullishSchemaAsync\n        key70?: string | null | undefined;\n        key71?: string | null | undefined;\n        key72?: string | null | undefined;\n        key73?: string | null | undefined;\n        key74?: string | null | undefined;\n        key75?: string | null | undefined;\n        key76?: string | null | undefined;\n        key77?: string | null | undefined;\n        key78?: string | null | undefined;\n\n        // SchemaWithPipe\n        key80?: string;\n        key81?: string;\n        key82?: string | undefined;\n        key83?: string | undefined;\n        key84?: string | null | undefined;\n        key85?: string | null | undefined;\n        key86?: string | null | undefined;\n        key87?: string | null | undefined;\n      }>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<{\n        key00: string;\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        key01: any;\n        key02: unknown;\n        key03: { key: number };\n        readonly key04: string;\n        key05: string;\n        key06?: number;\n        key07?: number;\n        key08?: number;\n        key09: `a${string}` | `b${string}`;\n        key10: string & Brand<'foo'>;\n\n        // ExactOptionalSchema\n        key20?: string;\n        key21: string;\n        key22: string;\n\n        // ExactOptionalSchemaAsync\n        key30?: string;\n        key31: string;\n        key32: string;\n        key33: string;\n\n        // OptionalSchema\n        key40?: string | undefined;\n        key41: string;\n        key42: string | undefined;\n        key43: string;\n\n        // OptionalSchemaAsync\n        key50?: string | undefined;\n        key51: string;\n        key52: string | undefined;\n        key53: string;\n        key54: string | undefined;\n        key55: string;\n\n        // NullishSchema\n        key60?: string | null | undefined;\n        key61: string | null;\n        key62: string;\n        key63: string | undefined;\n        key64: string | null;\n        key65: string;\n\n        // NullishSchemaAsync\n        key70?: string | null | undefined;\n        key71: string | null;\n        key72: string;\n        key73: string | undefined;\n        key74: string | null;\n        key75: string;\n        key76: string | undefined;\n        key77: string | null;\n        key78: string;\n\n        // SchemaWithPipe\n        key80?: string;\n        key81?: string;\n        key82?: string | undefined;\n        key83?: string | undefined;\n        key84?: string | null | undefined;\n        key85?: string | null | undefined;\n        key86?: string[];\n        key87?: string[];\n      }>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        ObjectIssue | StringIssue | NumberIssue | CustomIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/object/objectAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { fallback, fallbackAsync } from '../../methods/index.ts';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport {\n  expectNoSchemaIssueAsync,\n  expectSchemaIssueAsync,\n} from '../../vitest/index.ts';\nimport { any } from '../any/index.ts';\nimport { exactOptional, exactOptionalAsync } from '../exactOptional/index.ts';\nimport { nullish, nullishAsync } from '../nullish/index.ts';\nimport { number } from '../number/index.ts';\nimport { optional, optionalAsync } from '../optional/index.ts';\nimport { string } from '../string/index.ts';\nimport { unknown } from '../unknown/index.ts';\nimport { objectAsync, type ObjectSchemaAsync } from './objectAsync.ts';\nimport type { ObjectIssue } from './types.ts';\n\ndescribe('objectAsync', () => {\n  describe('should return schema object', () => {\n    const entries = { key: string() };\n    type Entries = typeof entries;\n    const baseSchema: Omit<ObjectSchemaAsync<Entries, never>, 'message'> = {\n      kind: 'schema',\n      type: 'object',\n      reference: objectAsync,\n      expects: 'Object',\n      entries,\n      async: true,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: ObjectSchemaAsync<Entries, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(objectAsync(entries)).toStrictEqual(schema);\n      expect(objectAsync(entries, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(objectAsync(entries, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies ObjectSchemaAsync<Entries, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(objectAsync(entries, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies ObjectSchemaAsync<Entries, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for empty object', async () => {\n      await expectNoSchemaIssueAsync(objectAsync({}), [{}]);\n    });\n\n    test('for simple object', async () => {\n      await expectNoSchemaIssueAsync(\n        objectAsync({ key1: string(), key2: number() }),\n        [{ key1: 'foo', key2: 123 }]\n      );\n    });\n\n    test('for unknown entries', async () => {\n      expect(\n        await objectAsync({ key1: string() })['~run'](\n          { value: { key1: 'foo', key2: 123, key3: null } },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key1: 'foo' },\n      });\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = objectAsync({}, 'message');\n    const baseIssue: Omit<ObjectIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'object',\n      expected: 'Object',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, ['', 'abc', '123']);\n    });\n\n    test('for symbols', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        Symbol(),\n        Symbol('foo'),\n      ]);\n    });\n\n    // Complex types\n\n    // TODO: Enable this test again in case we find a reliable way to check for\n    // plain objects\n    // test('for arrays', async () => {\n    //   await expectSchemaIssueAsync(schema, baseIssue, [[], ['value']]);\n    // });\n\n    test('for functions', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        () => {},\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        function () {},\n      ]);\n    });\n  });\n\n  describe('should return dataset without nested issues', () => {\n    test('for simple object', async () => {\n      await expectNoSchemaIssueAsync(\n        objectAsync({ key1: string(), key2: number() }),\n        [{ key1: 'foo', key2: 123 }]\n      );\n    });\n\n    test('for nested object', async () => {\n      await expectNoSchemaIssueAsync(\n        objectAsync({ nested: objectAsync({ key: string() }) }),\n        [{ nested: { key: 'foo' } }]\n      );\n    });\n\n    test('for missing entries with fallback', async () => {\n      expect(\n        await objectAsync({\n          key1: fallback(string(), 'foo'),\n          key2: fallback(number(), () => 123),\n          key3: fallbackAsync(string(), 'bar'),\n          key4: fallbackAsync(number(), () => 456),\n          key5: fallbackAsync(string(), async () => 'baz'),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key1: 'foo', key2: 123, key3: 'bar', key4: 456, key5: 'baz' },\n      });\n    });\n\n    test('for exact optional entry', async () => {\n      await expectNoSchemaIssueAsync(\n        objectAsync({ key: exactOptional(string()) }),\n        [{}, { key: 'foo' }]\n      );\n      await expectNoSchemaIssueAsync(\n        objectAsync({ key: exactOptionalAsync(string()) }),\n        [{}, { key: 'foo' }]\n      );\n    });\n\n    test('for exact optional entry with default', async () => {\n      // Sync\n      expect(\n        await objectAsync({ key: exactOptional(string(), 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await objectAsync({ key: exactOptional(string(), () => 'foo') })[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n\n      // Async\n      expect(\n        await objectAsync({ key: exactOptionalAsync(string(), 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await objectAsync({ key: exactOptionalAsync(string(), () => 'foo') })[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n    });\n\n    test('for optional entry', async () => {\n      await expectNoSchemaIssueAsync(objectAsync({ key: optional(string()) }), [\n        {},\n        { key: undefined },\n        { key: 'foo' },\n      ]);\n      await expectNoSchemaIssueAsync(\n        objectAsync({ key: optionalAsync(string()) }),\n        [{}, { key: undefined }, { key: 'foo' }]\n      );\n    });\n\n    test('for optional entry with default', async () => {\n      // Sync\n      expect(\n        await objectAsync({ key: optional(string(), 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await objectAsync({ key: optional(string(), () => 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await objectAsync({\n          key: optional(string(), () => undefined),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n\n      // Async\n      expect(\n        await objectAsync({ key: optionalAsync(string(), 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await objectAsync({ key: optionalAsync(string(), () => 'foo') })[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await objectAsync({\n          key: optionalAsync(string(), () => undefined),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n      expect(\n        await objectAsync({ key: optionalAsync(string(), async () => 'foo') })[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await objectAsync({\n          key: optionalAsync(string(), async () => undefined),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n    });\n\n    test('for nullish entry', async () => {\n      await expectNoSchemaIssueAsync(objectAsync({ key: nullish(number()) }), [\n        {},\n        { key: undefined },\n        { key: null },\n        { key: 123 },\n      ]);\n      await expectNoSchemaIssueAsync(\n        objectAsync({ key: nullishAsync(number()) }),\n        [{}, { key: undefined }, { key: null }, { key: 123 }]\n      );\n    });\n\n    test('for nullish entry with default', async () => {\n      // Sync\n      expect(\n        await objectAsync({ key: nullish(string(), 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await objectAsync({ key: nullish(string(), null) })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: null },\n      });\n      expect(\n        await objectAsync({ key: nullish(string(), () => 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await objectAsync({ key: nullish(string(), () => null) })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: null },\n      });\n      expect(\n        await objectAsync({ key: nullish(string(), () => undefined) })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n\n      // Async\n      expect(\n        await objectAsync({ key: nullishAsync(string(), 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await objectAsync({ key: nullishAsync(string(), null) })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: null },\n      });\n      expect(\n        await objectAsync({ key: nullishAsync(string(), () => 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await objectAsync({ key: nullishAsync(string(), () => null) })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: null },\n      });\n      expect(\n        await objectAsync({ key: nullishAsync(string(), () => undefined) })[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n      expect(\n        await objectAsync({ key: nullishAsync(string(), async () => 'foo') })[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await objectAsync({ key: nullishAsync(string(), async () => null) })[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: null },\n      });\n      expect(\n        await objectAsync({\n          key: nullishAsync(string(), async () => undefined),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n    });\n\n    test('for unknown entries', async () => {\n      expect(\n        await objectAsync({ key1: string() })['~run'](\n          { value: { key1: 'foo', key2: 123, key3: null } },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key1: 'foo' },\n      });\n    });\n  });\n\n  describe('should return dataset with nested issues', () => {\n    const schema = objectAsync({\n      key1: string(),\n      key2: number(),\n      nested: objectAsync({ key1: string(), key2: number() }),\n    });\n\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    test('for missing entries', async () => {\n      const input = { key2: 123 };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object',\n            input: undefined,\n            expected: '\"nested\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'nested',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for missing nested entries', async () => {\n      const input = { key1: 'value', nested: {} };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object',\n            input: undefined,\n            expected: '\"key2\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'key2',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: {},\n              },\n              {\n                type: 'object',\n                origin: 'key',\n                input: input.nested,\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object',\n            input: undefined,\n            expected: '\"key2\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: {},\n              },\n              {\n                type: 'object',\n                origin: 'key',\n                input: input.nested,\n                key: 'key2',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for missing entries with abort early', async () => {\n      const input = { key2: 123 };\n      expect(\n        await schema['~run']({ value: input }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: {},\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n            abortEarly: true,\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for missing any and unknown entry', async () => {\n      const schema = objectAsync({ key1: any(), key2: unknown() });\n      expect(await schema['~run']({ value: {} }, {})).toStrictEqual({\n        typed: false,\n        value: {},\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input: {},\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object',\n            input: undefined,\n            expected: '\"key2\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input: {},\n                key: 'key2',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid entries', async () => {\n      const input = { key1: false, key2: 123, nested: null };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: false,\n            expected: 'string',\n            received: 'false',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key1',\n                value: false,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object',\n            input: null,\n            expected: 'Object',\n            received: 'null',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: null,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid nested entries', async () => {\n      const input = {\n        key1: 'value',\n        key2: 'value',\n        nested: {\n          key1: 123,\n          key2: null,\n        },\n      };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: 'value',\n            expected: 'number',\n            received: '\"value\"',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key2',\n                value: input.key2,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: 123,\n            expected: 'string',\n            received: '123',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: input.nested,\n              },\n              {\n                type: 'object',\n                origin: 'value',\n                input: input.nested,\n                key: 'key1',\n                value: input.nested.key1,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: null,\n            expected: 'number',\n            received: 'null',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: input.nested,\n              },\n              {\n                type: 'object',\n                origin: 'value',\n                input: input.nested,\n                key: 'key2',\n                value: input.nested.key2,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid entries with abort early', async () => {\n      const input = { key1: false, key2: 123, nested: null };\n      expect(\n        await schema['~run']({ value: input }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: {},\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: false,\n            expected: 'string',\n            received: 'false',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key1',\n                value: false,\n              },\n            ],\n            abortEarly: true,\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid exact optional entry', async () => {\n      const schema = objectAsync({\n        key1: exactOptional(string()),\n        key2: exactOptionalAsync(string()),\n      });\n      const input = { key1: undefined, key2: undefined };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: undefined,\n            expected: 'string',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: undefined,\n            expected: 'string',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key2',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/object/objectAsync.ts",
    "content": "import { getDefault, getFallback } from '../../methods/index.ts';\nimport type {\n  BaseSchemaAsync,\n  ErrorMessage,\n  InferObjectInput,\n  InferObjectIssue,\n  InferObjectOutput,\n  ObjectEntriesAsync,\n  ObjectPathItem,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\nimport type { object } from './object.ts';\nimport type { ObjectIssue } from './types.ts';\n\n/**\n * Object schema async interface.\n */\nexport interface ObjectSchemaAsync<\n  TEntries extends ObjectEntriesAsync,\n  TMessage extends ErrorMessage<ObjectIssue> | undefined,\n> extends BaseSchemaAsync<\n    InferObjectInput<TEntries>,\n    InferObjectOutput<TEntries>,\n    ObjectIssue | InferObjectIssue<TEntries>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'object';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof object | typeof objectAsync;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Object';\n  /**\n   * The entries schema.\n   */\n  readonly entries: TEntries;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an object schema.\n *\n * Hint: This schema removes unknown entries. The output will only include the\n * entries you specify. To include unknown entries, use `looseObjectAsync`. To\n * return an issue for unknown entries, use `strictObjectAsync`. To include and\n * validate unknown entries, use `objectWithRestAsync`.\n *\n * @param entries The entries schema.\n *\n * @returns An object schema.\n */\nexport function objectAsync<const TEntries extends ObjectEntriesAsync>(\n  entries: TEntries\n): ObjectSchemaAsync<TEntries, undefined>;\n\n/**\n * Creates an object schema.\n *\n * Hint: This schema removes unknown entries. The output will only include the\n * entries you specify. To include unknown entries, use `looseObjectAsync`. To\n * return an issue for unknown entries, use `strictObjectAsync`. To include and\n * validate unknown entries, use `objectWithRestAsync`.\n *\n * @param entries The entries schema.\n * @param message The error message.\n *\n * @returns An object schema.\n */\nexport function objectAsync<\n  const TEntries extends ObjectEntriesAsync,\n  const TMessage extends ErrorMessage<ObjectIssue> | undefined,\n>(entries: TEntries, message: TMessage): ObjectSchemaAsync<TEntries, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function objectAsync(\n  entries: ObjectEntriesAsync,\n  message?: ErrorMessage<ObjectIssue>\n): ObjectSchemaAsync<\n  ObjectEntriesAsync,\n  ErrorMessage<ObjectIssue> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'object',\n    reference: objectAsync,\n    expects: 'Object',\n    async: true,\n    entries,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    async '~run'(dataset, config) {\n      // Get input value from dataset\n      const input = dataset.value;\n\n      // If root type is valid, check nested types\n      if (input && typeof input === 'object') {\n        // Set typed to `true` and value to blank object\n        // @ts-expect-error\n        dataset.typed = true;\n        dataset.value = {};\n\n        // If key is present or its an optional schema with a default value,\n        // parse input of key or default value asynchronously\n        const valueDatasets = await Promise.all(\n          Object.entries(this.entries).map(async ([key, valueSchema]) => {\n            if (\n              key in input ||\n              ((valueSchema.type === 'exact_optional' ||\n                valueSchema.type === 'optional' ||\n                valueSchema.type === 'nullish') &&\n                // @ts-expect-error\n                valueSchema.default !== undefined)\n            ) {\n              const value: unknown =\n                key in input\n                  ? // @ts-expect-error\n                    input[key]\n                  : await getDefault(valueSchema);\n              return [\n                key,\n                value,\n                valueSchema,\n                await valueSchema['~run']({ value }, config),\n              ] as const;\n            }\n            return [\n              key,\n              // @ts-expect-error\n              input[key] as unknown,\n              valueSchema,\n              null,\n            ] as const;\n          })\n        );\n\n        // Process each object entry of schema\n        for (const [key, value, valueSchema, valueDataset] of valueDatasets) {\n          // If key is present or its an optional schema with a default value,\n          // process its value dataset\n          if (valueDataset) {\n            // If there are issues, capture them\n            if (valueDataset.issues) {\n              // Create object path item\n              const pathItem: ObjectPathItem = {\n                type: 'object',\n                origin: 'value',\n                input: input as Record<string, unknown>,\n                key,\n                value,\n              };\n\n              // Add modified entry dataset issues to issues\n              for (const issue of valueDataset.issues) {\n                if (issue.path) {\n                  issue.path.unshift(pathItem);\n                } else {\n                  // @ts-expect-error\n                  issue.path = [pathItem];\n                }\n                // @ts-expect-error\n                dataset.issues?.push(issue);\n              }\n              if (!dataset.issues) {\n                // @ts-expect-error\n                dataset.issues = valueDataset.issues;\n              }\n\n              // If necessary, abort early\n              if (config.abortEarly) {\n                dataset.typed = false;\n                break;\n              }\n            }\n\n            // If not typed, set typed to `false`\n            if (!valueDataset.typed) {\n              dataset.typed = false;\n            }\n\n            // Add entry to dataset\n            // @ts-expect-error\n            dataset.value[key] = valueDataset.value;\n\n            // Otherwise, if key is missing but has a fallback, use it\n            // @ts-expect-error\n          } else if (valueSchema.fallback !== undefined) {\n            // @ts-expect-error\n            dataset.value[key] = await getFallback(valueSchema);\n\n            // Otherwise, if key is missing and required, add issue\n          } else if (\n            valueSchema.type !== 'exact_optional' &&\n            valueSchema.type !== 'optional' &&\n            valueSchema.type !== 'nullish'\n          ) {\n            _addIssue(this, 'key', dataset, config, {\n              input: undefined,\n              expected: `\"${key}\"`,\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input: input as Record<string, unknown>,\n                  key,\n                  value,\n                },\n              ],\n            });\n\n            // If necessary, abort early\n            if (config.abortEarly) {\n              break;\n            }\n          }\n        }\n\n        // Otherwise, add object issue\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        InferObjectOutput<ObjectEntriesAsync>,\n        ObjectIssue | InferObjectIssue<ObjectEntriesAsync>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/object/types.ts",
    "content": "import type { BaseIssue } from '../../types/index.ts';\n\n/**\n * Object issue interface.\n */\nexport interface ObjectIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'object';\n  /**\n   * The expected property.\n   */\n  readonly expected: 'Object' | `\"${string}\"`;\n}\n"
  },
  {
    "path": "library/src/schemas/objectWithRest/index.ts",
    "content": "export * from './objectWithRest.ts';\nexport * from './objectWithRestAsync.ts';\nexport * from './types.ts';\n"
  },
  {
    "path": "library/src/schemas/objectWithRest/objectWithRest.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type {\n  Brand,\n  BrandAction,\n  DescriptionAction,\n  ReadonlyAction,\n  TransformAction,\n} from '../../actions/index.ts';\nimport type { SchemaWithPipe } from '../../methods/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { AnySchema } from '../any/index.ts';\nimport type { BooleanIssue, BooleanSchema } from '../boolean/index.ts';\nimport type { CustomIssue, CustomSchema } from '../custom/index.ts';\nimport type { ExactOptionalSchema } from '../exactOptional/index.ts';\nimport type { NullishSchema } from '../nullish/index.ts';\nimport {\n  number,\n  type NumberIssue,\n  type NumberSchema,\n} from '../number/index.ts';\nimport type { ObjectIssue, ObjectSchema } from '../object/index.ts';\nimport type { OptionalSchema } from '../optional/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport type { UndefinedableSchema } from '../undefinedable/index.ts';\nimport type { UnknownSchema } from '../unknown/index.ts';\nimport { objectWithRest, type ObjectWithRestSchema } from './objectWithRest.ts';\nimport type { ObjectWithRestIssue } from './types.ts';\n\ndescribe('objectWithRest', () => {\n  describe('should return schema object', () => {\n    const entries = { key: string() };\n    type Entries = typeof entries;\n    const rest = number();\n    type Rest = typeof rest;\n\n    test('with undefined message', () => {\n      type Schema = ObjectWithRestSchema<Entries, Rest, undefined>;\n      expectTypeOf(objectWithRest(entries, rest)).toEqualTypeOf<Schema>();\n      expectTypeOf(\n        objectWithRest(entries, rest, undefined)\n      ).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(objectWithRest(entries, rest, 'message')).toEqualTypeOf<\n        ObjectWithRestSchema<Entries, Rest, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        objectWithRest(entries, rest, () => 'message')\n      ).toEqualTypeOf<ObjectWithRestSchema<Entries, Rest, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = ObjectWithRestSchema<\n      {\n        key00: StringSchema<undefined>;\n        key01: AnySchema;\n        key02: UnknownSchema;\n        key03: ObjectSchema<{ key: NumberSchema<undefined> }, undefined>;\n        key04: SchemaWithPipe<\n          [StringSchema<undefined>, ReadonlyAction<string>]\n        >;\n        key05: UndefinedableSchema<StringSchema<undefined>, 'bar'>;\n        key06: SchemaWithPipe<\n          [\n            OptionalSchema<StringSchema<undefined>, undefined>,\n            TransformAction<undefined | string, number>,\n          ]\n        >;\n        key07: CustomSchema<`a${string}` | `b${string}`, undefined>;\n        key08: SchemaWithPipe<\n          [StringSchema<undefined>, BrandAction<string, 'foo'>]\n        >;\n\n        // ExactOptionalSchema\n        key10: ExactOptionalSchema<StringSchema<undefined>, undefined>;\n        key11: ExactOptionalSchema<StringSchema<undefined>, 'foo'>;\n        key12: ExactOptionalSchema<StringSchema<undefined>, () => 'foo'>;\n\n        // OptionalSchema\n        key20: OptionalSchema<StringSchema<undefined>, undefined>;\n        key21: OptionalSchema<StringSchema<undefined>, 'foo'>;\n        key22: OptionalSchema<StringSchema<undefined>, () => undefined>;\n        key23: OptionalSchema<StringSchema<undefined>, () => 'foo'>;\n\n        // NullishSchema\n        key30: NullishSchema<StringSchema<undefined>, undefined>;\n        key31: NullishSchema<StringSchema<undefined>, null>;\n        key32: NullishSchema<StringSchema<undefined>, 'foo'>;\n        key33: NullishSchema<StringSchema<undefined>, () => undefined>;\n        key34: NullishSchema<StringSchema<undefined>, () => null>;\n        key35: NullishSchema<StringSchema<undefined>, () => 'foo'>;\n\n        // SchemaWithPipe\n        key40: SchemaWithPipe<\n          [ExactOptionalSchema<StringSchema<undefined>, undefined>]\n        >;\n        key41: SchemaWithPipe<\n          [\n            ExactOptionalSchema<StringSchema<undefined>, undefined>,\n            DescriptionAction<string, 'foo'>,\n          ]\n        >;\n        key42: SchemaWithPipe<\n          [OptionalSchema<StringSchema<undefined>, undefined>]\n        >;\n        key43: SchemaWithPipe<\n          [\n            OptionalSchema<StringSchema<undefined>, undefined>,\n            DescriptionAction<string | undefined, 'foo'>,\n          ]\n        >;\n        key44: SchemaWithPipe<\n          [NullishSchema<StringSchema<undefined>, undefined>]\n        >;\n        key45: SchemaWithPipe<\n          [\n            NullishSchema<StringSchema<undefined>, undefined>,\n            DescriptionAction<string | null | undefined, 'foo'>,\n          ]\n        >;\n        key46: SchemaWithPipe<\n          [\n            NullishSchema<StringSchema<undefined>, undefined>,\n            TransformAction<string | null | undefined, string[]>,\n          ]\n        >;\n      },\n      BooleanSchema<undefined>,\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<\n        {\n          key00: string;\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\n          key01: any;\n          key02: unknown;\n          key03: { key: number };\n          key04: string;\n          key05: string | undefined;\n          key06?: string | undefined;\n          key07: `a${string}` | `b${string}`;\n          key08: string;\n\n          // ExactOptionalSchema\n          key10?: string;\n          key11?: string;\n          key12?: string;\n\n          // OptionalSchema\n          key20?: string | undefined;\n          key21?: string | undefined;\n          key22?: string | undefined;\n          key23?: string | undefined;\n\n          // NullishSchema\n          key30?: string | null | undefined;\n          key31?: string | null | undefined;\n          key32?: string | null | undefined;\n          key33?: string | null | undefined;\n          key34?: string | null | undefined;\n          key35?: string | null | undefined;\n\n          // SchemaWithPipe\n          key40?: string;\n          key41?: string;\n          key42?: string | undefined;\n          key43?: string | undefined;\n          key44?: string | null | undefined;\n          key45?: string | null | undefined;\n          key46?: string | null | undefined;\n        } & { [key: string]: boolean }\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<\n        {\n          key00: string;\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\n          key01: any;\n          key02: unknown;\n          key03: { key: number };\n          readonly key04: string;\n          key05: string;\n          key06?: number;\n          key07: `a${string}` | `b${string}`;\n          key08: string & Brand<'foo'>;\n\n          // ExactOptionalSchema\n          key10?: string;\n          key11: string;\n          key12: string;\n\n          // OptionalSchema\n          key20?: string | undefined;\n          key21: string;\n          key22: string | undefined;\n          key23: string;\n\n          // NullishSchema\n          key30?: string | null | undefined;\n          key31: string | null;\n          key32: string;\n          key33: string | undefined;\n          key34: string | null;\n          key35: string;\n\n          // SchemaWithPipe\n          key40?: string;\n          key41?: string;\n          key42?: string | undefined;\n          key43?: string | undefined;\n          key44?: string | null | undefined;\n          key45?: string | null | undefined;\n          key46?: string[];\n        } & { [key: string]: boolean }\n      >();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        | ObjectWithRestIssue\n        | ObjectIssue\n        | StringIssue\n        | NumberIssue\n        | BooleanIssue\n        | CustomIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/objectWithRest/objectWithRest.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { fallback } from '../../methods/index.ts';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { any } from '../any/index.ts';\nimport { array } from '../array/array.ts';\nimport type { ArrayIssue } from '../array/types.ts';\nimport { boolean } from '../boolean/index.ts';\nimport { exactOptional } from '../exactOptional/index.ts';\nimport { never } from '../never/index.ts';\nimport { nullish } from '../nullish/index.ts';\nimport { number } from '../number/index.ts';\nimport { object } from '../object/index.ts';\nimport { optional } from '../optional/index.ts';\nimport { string } from '../string/index.ts';\nimport { unknown } from '../unknown/index.ts';\nimport { objectWithRest, type ObjectWithRestSchema } from './objectWithRest.ts';\nimport type { ObjectWithRestIssue } from './types.ts';\n\ndescribe('objectWithRest', () => {\n  describe('should return schema object', () => {\n    const entries = { key: string() };\n    type Entries = typeof entries;\n    const rest = number();\n    type Rest = typeof rest;\n    const baseSchema: Omit<\n      ObjectWithRestSchema<Entries, Rest, never>,\n      'message'\n    > = {\n      kind: 'schema',\n      type: 'object_with_rest',\n      reference: objectWithRest,\n      expects: 'Object',\n      entries,\n      rest,\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: ObjectWithRestSchema<Entries, Rest, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(objectWithRest(entries, rest)).toStrictEqual(schema);\n      expect(objectWithRest(entries, rest, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(objectWithRest(entries, rest, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies ObjectWithRestSchema<Entries, Rest, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(objectWithRest(entries, rest, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies ObjectWithRestSchema<Entries, Rest, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for empty object', () => {\n      expectNoSchemaIssue(objectWithRest({}, boolean()), [{}]);\n    });\n\n    test('for simple object', () => {\n      expectNoSchemaIssue(\n        objectWithRest({ key1: string(), key2: number() }, boolean()),\n        // @ts-expect-error\n        [{ key1: 'foo', key2: 123, other: true }]\n      );\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = objectWithRest({}, never(), 'message');\n    const baseIssue: Omit<ObjectWithRestIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'object_with_rest',\n      expected: 'Object',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', 'abc', '123']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    // TODO: Enable this test again in case we find a reliable way to check for\n    // plain objects\n    // test('for arrays', () => {\n    //   expectSchemaIssue(schema, baseIssue, [[], ['value']]);\n    // });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n  });\n\n  describe('should return dataset without nested issues', () => {\n    test('for simple object', () => {\n      expectNoSchemaIssue(\n        objectWithRest({ key1: string(), key2: number() }, boolean()),\n        // @ts-expect-error\n        [{ key1: 'foo', key2: 123, other: true }]\n      );\n    });\n\n    test('for nested object', () => {\n      expectNoSchemaIssue(\n        objectWithRest(\n          { nested: object({ key: string() }) },\n          object({ key: number() })\n        ),\n        // @ts-expect-error\n        [{ nested: { key: 'foo' }, other: { key: 123 } }]\n      );\n    });\n\n    test('for missing entries with fallback', () => {\n      expect(\n        objectWithRest(\n          {\n            key1: fallback(string(), 'foo'),\n            key2: fallback(number(), () => 123),\n          },\n          boolean()\n        )['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key1: 'foo', key2: 123 },\n      });\n    });\n\n    test('for exact optional entry', () => {\n      expectNoSchemaIssue(\n        objectWithRest({ key: exactOptional(string()) }, number()),\n        // @ts-expect-error\n        [{}, { key: 'foo' }]\n      );\n    });\n\n    test('for exact optional entry with default', () => {\n      expect(\n        objectWithRest({ key: exactOptional(string(), 'foo') }, number())[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        objectWithRest({ key: exactOptional(string(), () => 'foo') }, number())[\n          '~run'\n        ]({ value: { other: 123 } }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo', other: 123 },\n      });\n    });\n\n    test('for optional entry', () => {\n      expectNoSchemaIssue(\n        objectWithRest({ key: optional(string()) }, number()),\n        // @ts-expect-error\n        [{}, { key: undefined, other: 123 }, { key: 'foo' }]\n      );\n    });\n\n    test('for optional entry with default', () => {\n      expect(\n        objectWithRest({ key: optional(string(), 'foo') }, number())['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        objectWithRest({ key: optional(string(), () => 'foo') }, number())[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        objectWithRest({ key: optional(string(), () => undefined) }, number())[\n          '~run'\n        ]({ value: { other: 123 } }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined, other: 123 },\n      });\n    });\n\n    test('for nullish entry', () => {\n      expectNoSchemaIssue(\n        objectWithRest({ key: nullish(number()) }, number()),\n        // @ts-expect-error\n        [{}, { key: undefined }, { key: null, other: 123 }, { key: 123 }]\n      );\n    });\n\n    test('for nullish entry with default', () => {\n      expect(\n        objectWithRest({ key: nullish(string(), 'foo') }, number())['~run'](\n          { value: { other: 123 } },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo', other: 123 },\n      });\n      expect(\n        objectWithRest({ key: nullish(string(), null) }, number())['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: null },\n      });\n      expect(\n        objectWithRest({ key: nullish(string(), () => 'foo') }, number())[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        objectWithRest({ key: nullish(string(), () => null) }, number())[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: null },\n      });\n      expect(\n        objectWithRest({ key: nullish(string(), () => undefined) }, number())[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n    });\n  });\n\n  describe('should return dataset with nested issues', () => {\n    const schema = objectWithRest(\n      {\n        key1: string(),\n        key2: number(),\n        nested: objectWithRest({ key1: string(), key2: number() }, number()),\n      },\n      array(boolean())\n    );\n\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    test('for missing entries', () => {\n      const input = { key2: 123, other: [true, false] };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object_with_rest',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object_with_rest',\n            input: undefined,\n            expected: '\"nested\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'nested',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for missing nested entries', () => {\n      const input = { key1: 'value', nested: { other: 123 } };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object_with_rest',\n            input: undefined,\n            expected: '\"key2\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'key2',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object_with_rest',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: input.nested,\n              },\n              {\n                type: 'object',\n                origin: 'key',\n                input: input.nested,\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object_with_rest',\n            input: undefined,\n            expected: '\"key2\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: input.nested,\n              },\n              {\n                type: 'object',\n                origin: 'key',\n                input: input.nested,\n                key: 'key2',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for missing entries with abort early', () => {\n      const input = { key2: 123 };\n      expect(\n        schema['~run']({ value: input }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: {},\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object_with_rest',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n            abortEarly: true,\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for missing any and unknown entry', () => {\n      const schema = objectWithRest({ key1: any(), key2: unknown() }, number());\n      expect(schema['~run']({ value: {} }, {})).toStrictEqual({\n        typed: false,\n        value: {},\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object_with_rest',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input: {},\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object_with_rest',\n            input: undefined,\n            expected: '\"key2\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input: {},\n                key: 'key2',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid entries', () => {\n      const input = { key1: false, key2: 123, nested: null, other: [false] };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: false,\n            expected: 'string',\n            received: 'false',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key1',\n                value: false,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object_with_rest',\n            input: null,\n            expected: 'Object',\n            received: 'null',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: null,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid nested entries', () => {\n      const input = {\n        key1: 'value',\n        key2: 'value',\n        nested: {\n          key1: 123,\n          key2: null,\n          other: 123,\n        },\n      };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: 'value',\n            expected: 'number',\n            received: '\"value\"',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key2',\n                value: input.key2,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: 123,\n            expected: 'string',\n            received: '123',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: input.nested,\n              },\n              {\n                type: 'object',\n                origin: 'value',\n                input: input.nested,\n                key: 'key1',\n                value: input.nested.key1,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: null,\n            expected: 'number',\n            received: 'null',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: input.nested,\n              },\n              {\n                type: 'object',\n                origin: 'value',\n                input: input.nested,\n                key: 'key2',\n                value: input.nested.key2,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid entries with abort early', () => {\n      const input = { key1: false, key2: 123, nested: null };\n      expect(\n        schema['~run']({ value: input }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: {},\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: false,\n            expected: 'string',\n            received: 'false',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key1',\n                value: false,\n              },\n            ],\n            abortEarly: true,\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid exact optional entry', () => {\n      const schema = objectWithRest({ key: exactOptional(string()) }, number());\n      const input = { key: undefined };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: undefined,\n            expected: 'string',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    const arrayIssue: ArrayIssue = {\n      ...baseInfo,\n      kind: 'schema',\n      type: 'array',\n      input: null,\n      expected: 'Array',\n      received: 'null',\n      path: [\n        {\n          type: 'object',\n          origin: 'value',\n          input: {\n            key1: 'foo',\n            key2: 123,\n            nested: { key1: 'foo', key2: 123 },\n            other1: null,\n            other2: 'bar',\n          },\n          key: 'other1',\n          value: null,\n        },\n      ],\n    };\n\n    test('for wrong rest', () => {\n      const input = {\n        key1: 'foo',\n        key2: 123,\n        nested: { key1: 'foo', key2: 123 },\n        other1: null,\n        other2: 'bar',\n      };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          arrayIssue,\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'array',\n            input: 'bar',\n            expected: 'Array',\n            received: '\"bar\"',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'other2',\n                value: input.other2,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for wrong rest with abort early', () => {\n      expect(\n        schema['~run'](\n          {\n            value: {\n              key1: 'foo',\n              key2: 123,\n              nested: { key1: 'foo', key2: 123 },\n              other1: null,\n              other2: 'bar',\n            },\n          },\n          { abortEarly: true }\n        )\n      ).toStrictEqual({\n        typed: false,\n        value: {\n          key1: 'foo',\n          key2: 123,\n          nested: { key1: 'foo', key2: 123 },\n        },\n        issues: [{ ...arrayIssue, abortEarly: true }],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for wrong nested rest', () => {\n      const input = {\n        key1: 'foo',\n        key2: 123,\n        nested: { key1: 'foo', key2: 123 },\n        other: ['true'],\n      };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'boolean',\n            input: 'true',\n            expected: 'boolean',\n            received: '\"true\"',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'other',\n                value: input.other,\n              },\n              {\n                type: 'array',\n                origin: 'value',\n                input: input.other,\n                key: 0,\n                value: input.other[0],\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/objectWithRest/objectWithRest.ts",
    "content": "import { getDefault, getFallback } from '../../methods/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  InferInput,\n  InferIssue,\n  InferObjectInput,\n  InferObjectIssue,\n  InferObjectOutput,\n  InferOutput,\n  ObjectEntries,\n  ObjectPathItem,\n  OutputDataset,\n} from '../../types/index.ts';\nimport {\n  _addIssue,\n  _getStandardProps,\n  _isValidObjectKey,\n} from '../../utils/index.ts';\nimport type { ObjectWithRestIssue } from './types.ts';\n\n/**\n * Object with rest schema interface.\n */\nexport interface ObjectWithRestSchema<\n  TEntries extends ObjectEntries,\n  TRest extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  TMessage extends ErrorMessage<ObjectWithRestIssue> | undefined,\n> extends BaseSchema<\n    InferObjectInput<TEntries> & { [key: string]: InferInput<TRest> },\n    InferObjectOutput<TEntries> & { [key: string]: InferOutput<TRest> },\n    ObjectWithRestIssue | InferObjectIssue<TEntries> | InferIssue<TRest>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'object_with_rest';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof objectWithRest;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Object';\n  /**\n   * The entries schema.\n   */\n  readonly entries: TEntries;\n  /**\n   * The rest schema.\n   */\n  readonly rest: TRest;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an object with rest schema.\n *\n * @param entries The entries schema.\n * @param rest The rest schema.\n *\n * @returns An object with rest schema.\n */\nexport function objectWithRest<\n  const TEntries extends ObjectEntries,\n  const TRest extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n>(\n  entries: TEntries,\n  rest: TRest\n): ObjectWithRestSchema<TEntries, TRest, undefined>;\n\n/**\n * Creates an object with rest schema.\n *\n * @param entries The entries schema.\n * @param rest The rest schema.\n * @param message The error message.\n *\n * @returns An object with rest schema.\n */\nexport function objectWithRest<\n  const TEntries extends ObjectEntries,\n  const TRest extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TMessage extends ErrorMessage<ObjectWithRestIssue> | undefined,\n>(\n  entries: TEntries,\n  rest: TRest,\n  message: TMessage\n): ObjectWithRestSchema<TEntries, TRest, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function objectWithRest(\n  entries: ObjectEntries,\n  rest: BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  message?: ErrorMessage<ObjectWithRestIssue>\n): ObjectWithRestSchema<\n  ObjectEntries,\n  BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  ErrorMessage<ObjectWithRestIssue> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'object_with_rest',\n    reference: objectWithRest,\n    expects: 'Object',\n    async: false,\n    entries,\n    rest,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      // Get input value from dataset\n      const input = dataset.value;\n\n      // If root type is valid, check nested types\n      if (input && typeof input === 'object') {\n        // Set typed to `true` and value to blank object\n        // @ts-expect-error\n        dataset.typed = true;\n        dataset.value = {};\n\n        // Process each object entry of schema\n        for (const key in this.entries) {\n          const valueSchema = this.entries[key];\n\n          // If key is present or its an optional schema with a default value,\n          // parse input of key or default value\n          if (\n            key in input ||\n            ((valueSchema.type === 'exact_optional' ||\n              valueSchema.type === 'optional' ||\n              valueSchema.type === 'nullish') &&\n              // @ts-expect-error\n              valueSchema.default !== undefined)\n          ) {\n            const value: unknown =\n              key in input\n                ? // @ts-expect-error\n                  input[key]\n                : getDefault(valueSchema);\n            const valueDataset = valueSchema['~run']({ value }, config);\n\n            // If there are issues, capture them\n            if (valueDataset.issues) {\n              // Create object path item\n              const pathItem: ObjectPathItem = {\n                type: 'object',\n                origin: 'value',\n                input: input as Record<string, unknown>,\n                key,\n                value,\n              };\n\n              // Add modified entry dataset issues to issues\n              for (const issue of valueDataset.issues) {\n                if (issue.path) {\n                  issue.path.unshift(pathItem);\n                } else {\n                  // @ts-expect-error\n                  issue.path = [pathItem];\n                }\n                // @ts-expect-error\n                dataset.issues?.push(issue);\n              }\n              if (!dataset.issues) {\n                // @ts-expect-error\n                dataset.issues = valueDataset.issues;\n              }\n\n              // If necessary, abort early\n              if (config.abortEarly) {\n                dataset.typed = false;\n                break;\n              }\n            }\n\n            // If not typed, set typed to `false`\n            if (!valueDataset.typed) {\n              dataset.typed = false;\n            }\n\n            // Add entry to dataset\n            // @ts-expect-error\n            dataset.value[key] = valueDataset.value;\n\n            // Otherwise, if key is missing but has a fallback, use it\n            // @ts-expect-error\n          } else if (valueSchema.fallback !== undefined) {\n            // @ts-expect-error\n            dataset.value[key] = getFallback(valueSchema);\n\n            // Otherwise, if key is missing and required, add issue\n          } else if (\n            valueSchema.type !== 'exact_optional' &&\n            valueSchema.type !== 'optional' &&\n            valueSchema.type !== 'nullish'\n          ) {\n            _addIssue(this, 'key', dataset, config, {\n              input: undefined,\n              expected: `\"${key}\"`,\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input: input as Record<string, unknown>,\n                  key,\n                  // @ts-expect-error\n                  value: input[key],\n                },\n              ],\n            });\n\n            // If necessary, abort early\n            if (config.abortEarly) {\n              break;\n            }\n          }\n        }\n\n        // Parse schema of each rest entry if necessary\n        // Hint: We exclude specific keys for security reasons\n        if (!dataset.issues || !config.abortEarly) {\n          for (const key in input) {\n            if (_isValidObjectKey(input, key) && !(key in this.entries)) {\n              const valueDataset = this.rest['~run'](\n                // @ts-expect-error\n                { value: input[key] },\n                config\n              );\n\n              // If there are issues, capture them\n              if (valueDataset.issues) {\n                // Create object path item\n                const pathItem: ObjectPathItem = {\n                  type: 'object',\n                  origin: 'value',\n                  input: input as Record<string, unknown>,\n                  key,\n                  // @ts-expect-error\n                  value: input[key],\n                };\n\n                // Add modified entry dataset issues to issues\n                for (const issue of valueDataset.issues) {\n                  if (issue.path) {\n                    issue.path.unshift(pathItem);\n                  } else {\n                    // @ts-expect-error\n                    issue.path = [pathItem];\n                  }\n                  // @ts-expect-error\n                  dataset.issues?.push(issue);\n                }\n                if (!dataset.issues) {\n                  // @ts-expect-error\n                  dataset.issues = valueDataset.issues;\n                }\n\n                // If necessary, abort early\n                if (config.abortEarly) {\n                  dataset.typed = false;\n                  break;\n                }\n              }\n\n              // If not typed, set typed to `false`\n              if (!valueDataset.typed) {\n                dataset.typed = false;\n              }\n\n              // Add entry to dataset\n              // @ts-expect-error\n              dataset.value[key] = valueDataset.value;\n            }\n          }\n        }\n\n        // Otherwise, add object issue\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        InferObjectOutput<ObjectEntries> & { [key: string]: unknown },\n        | ObjectWithRestIssue\n        | InferObjectIssue<ObjectEntries>\n        | BaseIssue<unknown>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/objectWithRest/objectWithRestAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type {\n  Brand,\n  BrandAction,\n  DescriptionAction,\n  ReadonlyAction,\n  TransformAction,\n} from '../../actions/index.ts';\nimport type {\n  SchemaWithPipe,\n  SchemaWithPipeAsync,\n} from '../../methods/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { AnySchema } from '../any/index.ts';\nimport type { BooleanIssue, BooleanSchema } from '../boolean/index.ts';\nimport type { CustomIssue, CustomSchemaAsync } from '../custom/index.ts';\nimport type {\n  ExactOptionalSchema,\n  ExactOptionalSchemaAsync,\n} from '../exactOptional/index.ts';\nimport type { NullishSchema, NullishSchemaAsync } from '../nullish/index.ts';\nimport {\n  number,\n  type NumberIssue,\n  type NumberSchema,\n} from '../number/index.ts';\nimport type { ObjectIssue, ObjectSchemaAsync } from '../object/index.ts';\nimport type { OptionalSchema, OptionalSchemaAsync } from '../optional/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport type { UndefinedableSchema } from '../undefinedable/index.ts';\nimport type { UnknownSchema } from '../unknown/index.ts';\nimport {\n  objectWithRestAsync,\n  type ObjectWithRestSchemaAsync,\n} from './objectWithRestAsync.ts';\nimport type { ObjectWithRestIssue } from './types.ts';\n\ndescribe('objectWithRestAsync', () => {\n  describe('should return schema object', () => {\n    const entries = { key: string() };\n    type Entries = typeof entries;\n    const rest = number();\n    type Rest = typeof rest;\n\n    test('with undefined message', () => {\n      type Schema = ObjectWithRestSchemaAsync<Entries, Rest, undefined>;\n      expectTypeOf(objectWithRestAsync(entries, rest)).toEqualTypeOf<Schema>();\n      expectTypeOf(\n        objectWithRestAsync(entries, rest, undefined)\n      ).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(objectWithRestAsync(entries, rest, 'message')).toEqualTypeOf<\n        ObjectWithRestSchemaAsync<Entries, Rest, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        objectWithRestAsync(entries, rest, () => 'message')\n      ).toEqualTypeOf<ObjectWithRestSchemaAsync<Entries, Rest, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = ObjectWithRestSchemaAsync<\n      {\n        key00: StringSchema<undefined>;\n        key01: AnySchema;\n        key02: UnknownSchema;\n        key03: ObjectSchemaAsync<{ key: NumberSchema<undefined> }, undefined>;\n        key04: SchemaWithPipe<\n          [StringSchema<undefined>, ReadonlyAction<string>]\n        >;\n        key05: UndefinedableSchema<StringSchema<undefined>, 'bar'>;\n        key06: SchemaWithPipe<\n          [\n            OptionalSchema<StringSchema<undefined>, undefined>,\n            TransformAction<undefined | string, number>,\n          ]\n        >;\n        key07: SchemaWithPipeAsync<\n          [\n            OptionalSchema<StringSchema<undefined>, undefined>,\n            TransformAction<undefined | string, number>,\n          ]\n        >;\n        key08: SchemaWithPipeAsync<\n          [\n            OptionalSchemaAsync<StringSchema<undefined>, undefined>,\n            TransformAction<undefined | string, number>,\n          ]\n        >;\n        key09: CustomSchemaAsync<`a${string}` | `b${string}`, undefined>;\n        key10: SchemaWithPipe<\n          [StringSchema<undefined>, BrandAction<string, 'foo'>]\n        >;\n\n        // ExactOptionalSchema\n        key20: ExactOptionalSchema<StringSchema<undefined>, undefined>;\n        key21: ExactOptionalSchema<StringSchema<undefined>, 'foo'>;\n        key22: ExactOptionalSchema<StringSchema<undefined>, () => 'foo'>;\n\n        // ExactOptionalSchemaAsync\n        key30: ExactOptionalSchemaAsync<StringSchema<undefined>, undefined>;\n        key31: ExactOptionalSchemaAsync<StringSchema<undefined>, 'foo'>;\n        key32: ExactOptionalSchemaAsync<StringSchema<undefined>, () => 'foo'>;\n        key33: ExactOptionalSchemaAsync<\n          StringSchema<undefined>,\n          () => Promise<'foo'>\n        >;\n\n        // OptionalSchema\n        key40: OptionalSchema<StringSchema<undefined>, undefined>;\n        key41: OptionalSchema<StringSchema<undefined>, 'foo'>;\n        key42: OptionalSchema<StringSchema<undefined>, () => undefined>;\n        key43: OptionalSchema<StringSchema<undefined>, () => 'foo'>;\n\n        // OptionalSchemaAsync\n        key50: OptionalSchemaAsync<StringSchema<undefined>, undefined>;\n        key51: OptionalSchemaAsync<StringSchema<undefined>, 'foo'>;\n        key52: OptionalSchemaAsync<StringSchema<undefined>, () => undefined>;\n        key53: OptionalSchemaAsync<StringSchema<undefined>, () => 'foo'>;\n        key54: OptionalSchemaAsync<\n          StringSchema<undefined>,\n          () => Promise<undefined>\n        >;\n        key55: OptionalSchemaAsync<\n          StringSchema<undefined>,\n          () => Promise<'foo'>\n        >;\n\n        // NullishSchema\n        key60: NullishSchema<StringSchema<undefined>, undefined>;\n        key61: NullishSchema<StringSchema<undefined>, null>;\n        key62: NullishSchema<StringSchema<undefined>, 'foo'>;\n        key63: NullishSchema<StringSchema<undefined>, () => undefined>;\n        key64: NullishSchema<StringSchema<undefined>, () => null>;\n        key65: NullishSchema<StringSchema<undefined>, () => 'foo'>;\n\n        // NullishSchemaAsync\n        key70: NullishSchemaAsync<StringSchema<undefined>, undefined>;\n        key71: NullishSchemaAsync<StringSchema<undefined>, null>;\n        key72: NullishSchemaAsync<StringSchema<undefined>, 'foo'>;\n        key73: NullishSchemaAsync<StringSchema<undefined>, () => undefined>;\n        key74: NullishSchemaAsync<StringSchema<undefined>, () => null>;\n        key75: NullishSchemaAsync<StringSchema<undefined>, () => 'foo'>;\n        key76: NullishSchemaAsync<\n          StringSchema<undefined>,\n          () => Promise<undefined>\n        >;\n        key77: NullishSchemaAsync<StringSchema<undefined>, () => Promise<null>>;\n        key78: NullishSchemaAsync<\n          StringSchema<undefined>,\n          () => Promise<'foo'>\n        >;\n\n        // SchemaWithPipe\n        key80: SchemaWithPipe<\n          [ExactOptionalSchema<StringSchema<undefined>, undefined>]\n        >;\n        key81: SchemaWithPipe<\n          [\n            ExactOptionalSchema<StringSchema<undefined>, undefined>,\n            DescriptionAction<string, 'foo'>,\n          ]\n        >;\n        key82: SchemaWithPipe<\n          [OptionalSchema<StringSchema<undefined>, undefined>]\n        >;\n        key83: SchemaWithPipe<\n          [\n            OptionalSchema<StringSchema<undefined>, undefined>,\n            DescriptionAction<string | undefined, 'foo'>,\n          ]\n        >;\n        key84: SchemaWithPipe<\n          [NullishSchema<StringSchema<undefined>, undefined>]\n        >;\n        key85: SchemaWithPipe<\n          [\n            NullishSchema<StringSchema<undefined>, undefined>,\n            DescriptionAction<string | null | undefined, 'foo'>,\n          ]\n        >;\n        key86: SchemaWithPipe<\n          [\n            NullishSchema<StringSchema<undefined>, undefined>,\n            TransformAction<string | null | undefined, string[]>,\n          ]\n        >;\n        key87: SchemaWithPipeAsync<\n          [\n            NullishSchemaAsync<StringSchema<undefined>, undefined>,\n            TransformAction<string | null | undefined, string[]>,\n          ]\n        >;\n      },\n      BooleanSchema<undefined>,\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<\n        {\n          key00: string;\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\n          key01: any;\n          key02: unknown;\n          key03: { key: number };\n          key04: string;\n          key05: string | undefined;\n          key06?: string | undefined;\n          key07?: string | undefined;\n          key08?: string | undefined;\n          key09: `a${string}` | `b${string}`;\n          key10: string;\n\n          // ExactOptionalSchema\n          key20?: string;\n          key21?: string;\n          key22?: string;\n\n          // ExactOptionalSchemaAsync\n          key30?: string;\n          key31?: string;\n          key32?: string;\n          key33?: string;\n\n          // OptionalSchema\n          key40?: string | undefined;\n          key41?: string | undefined;\n          key42?: string | undefined;\n          key43?: string | undefined;\n\n          // OptionalSchemaAsync\n          key50?: string | undefined;\n          key51?: string | undefined;\n          key52?: string | undefined;\n          key53?: string | undefined;\n          key54?: string | undefined;\n          key55?: string | undefined;\n\n          // NullishSchema\n          key60?: string | null | undefined;\n          key61?: string | null | undefined;\n          key62?: string | null | undefined;\n          key63?: string | null | undefined;\n          key64?: string | null | undefined;\n          key65?: string | null | undefined;\n\n          // NullishSchemaAsync\n          key70?: string | null | undefined;\n          key71?: string | null | undefined;\n          key72?: string | null | undefined;\n          key73?: string | null | undefined;\n          key74?: string | null | undefined;\n          key75?: string | null | undefined;\n          key76?: string | null | undefined;\n          key77?: string | null | undefined;\n          key78?: string | null | undefined;\n\n          // SchemaWithPipe\n          key80?: string;\n          key81?: string;\n          key82?: string | undefined;\n          key83?: string | undefined;\n          key84?: string | null | undefined;\n          key85?: string | null | undefined;\n          key86?: string | null | undefined;\n          key87?: string | null | undefined;\n        } & { [key: string]: boolean }\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<\n        {\n          key00: string;\n          // eslint-disable-next-line @typescript-eslint/no-explicit-any\n          key01: any;\n          key02: unknown;\n          key03: { key: number };\n          readonly key04: string;\n          key05: string;\n          key06?: number;\n          key07?: number;\n          key08?: number;\n          key09: `a${string}` | `b${string}`;\n          key10: string & Brand<'foo'>;\n\n          // ExactOptionalSchema\n          key20?: string;\n          key21: string;\n          key22: string;\n\n          // ExactOptionalSchemaAsync\n          key30?: string;\n          key31: string;\n          key32: string;\n          key33: string;\n\n          // OptionalSchema\n          key40?: string | undefined;\n          key41: string;\n          key42: string | undefined;\n          key43: string;\n\n          // OptionalSchemaAsync\n          key50?: string | undefined;\n          key51: string;\n          key52: string | undefined;\n          key53: string;\n          key54: string | undefined;\n          key55: string;\n\n          // NullishSchema\n          key60?: string | null | undefined;\n          key61: string | null;\n          key62: string;\n          key63: string | undefined;\n          key64: string | null;\n          key65: string;\n\n          // NullishSchemaAsync\n          key70?: string | null | undefined;\n          key71: string | null;\n          key72: string;\n          key73: string | undefined;\n          key74: string | null;\n          key75: string;\n          key76: string | undefined;\n          key77: string | null;\n          key78: string;\n\n          // SchemaWithPipe\n          key80?: string;\n          key81?: string;\n          key82?: string | undefined;\n          key83?: string | undefined;\n          key84?: string | null | undefined;\n          key85?: string | null | undefined;\n          key86?: string[];\n          key87?: string[];\n        } & { [key: string]: boolean }\n      >();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        | ObjectWithRestIssue\n        | ObjectIssue\n        | StringIssue\n        | NumberIssue\n        | BooleanIssue\n        | CustomIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/objectWithRest/objectWithRestAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { fallback, fallbackAsync } from '../../methods/index.ts';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport {\n  expectNoSchemaIssueAsync,\n  expectSchemaIssueAsync,\n} from '../../vitest/index.ts';\nimport { any } from '../any/index.ts';\nimport { array } from '../array/array.ts';\nimport type { ArrayIssue } from '../array/types.ts';\nimport { boolean } from '../boolean/index.ts';\nimport { exactOptional, exactOptionalAsync } from '../exactOptional/index.ts';\nimport { never } from '../never/index.ts';\nimport { nullish, nullishAsync } from '../nullish/index.ts';\nimport { number } from '../number/index.ts';\nimport { object, objectAsync } from '../object/index.ts';\nimport { optional, optionalAsync } from '../optional/index.ts';\nimport { string } from '../string/index.ts';\nimport { unknown } from '../unknown/index.ts';\nimport {\n  objectWithRestAsync,\n  type ObjectWithRestSchemaAsync,\n} from './objectWithRestAsync.ts';\nimport type { ObjectWithRestIssue } from './types.ts';\n\ndescribe('objectWithRestAsync', () => {\n  describe('should return schema object', () => {\n    const entries = { key: string() };\n    type Entries = typeof entries;\n    const rest = number();\n    type Rest = typeof rest;\n    const baseSchema: Omit<\n      ObjectWithRestSchemaAsync<Entries, Rest, never>,\n      'message'\n    > = {\n      kind: 'schema',\n      type: 'object_with_rest',\n      reference: objectWithRestAsync,\n      expects: 'Object',\n      entries,\n      rest,\n      async: true,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: ObjectWithRestSchemaAsync<Entries, Rest, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(objectWithRestAsync(entries, rest)).toStrictEqual(schema);\n      expect(objectWithRestAsync(entries, rest, undefined)).toStrictEqual(\n        schema\n      );\n    });\n\n    test('with string message', () => {\n      expect(objectWithRestAsync(entries, rest, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies ObjectWithRestSchemaAsync<Entries, Rest, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(objectWithRestAsync(entries, rest, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies ObjectWithRestSchemaAsync<Entries, Rest, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for empty object', async () => {\n      await expectNoSchemaIssueAsync(objectWithRestAsync({}, boolean()), [{}]);\n    });\n\n    test('for simple object', async () => {\n      await expectNoSchemaIssueAsync(\n        objectWithRestAsync({ key1: string(), key2: number() }, boolean()),\n        // @ts-expect-error\n        [{ key1: 'foo', key2: 123, other: true }]\n      );\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = objectWithRestAsync({}, never(), 'message');\n    const baseIssue: Omit<ObjectWithRestIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'object_with_rest',\n      expected: 'Object',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, ['', 'abc', '123']);\n    });\n\n    test('for symbols', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        Symbol(),\n        Symbol('foo'),\n      ]);\n    });\n\n    // Complex types\n\n    // TODO: Enable this test again in case we find a reliable way to check for\n    // plain objects\n    // test('for arrays', async () => {\n    //   await expectSchemaIssueAsync(schema, baseIssue, [[], ['value']]);\n    // });\n\n    test('for functions', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        () => {},\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        function () {},\n      ]);\n    });\n  });\n\n  describe('should return dataset without nested issues', () => {\n    test('for simple object', async () => {\n      await expectNoSchemaIssueAsync(\n        objectWithRestAsync({ key1: string(), key2: number() }, boolean()),\n        // @ts-expect-error\n        [{ key1: 'foo', key2: 123, other: true }]\n      );\n    });\n\n    test('for nested object', async () => {\n      await expectNoSchemaIssueAsync(\n        objectWithRestAsync(\n          { nested: object({ key: string() }) },\n          objectAsync({ key: number() })\n        ),\n        // @ts-expect-error\n        [{ nested: { key: 'foo' }, other: { key: 123 } }]\n      );\n    });\n\n    test('for missing entries with fallback', async () => {\n      expect(\n        await objectWithRestAsync(\n          {\n            key1: fallback(string(), 'foo'),\n            key2: fallback(number(), () => 123),\n            key3: fallbackAsync(string(), 'bar'),\n            key4: fallbackAsync(number(), () => 456),\n            key5: fallbackAsync(string(), async () => 'baz'),\n          },\n          boolean()\n        )['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key1: 'foo', key2: 123, key3: 'bar', key4: 456, key5: 'baz' },\n      });\n    });\n\n    test('for exact optional entry', async () => {\n      await expectNoSchemaIssueAsync(\n        objectWithRestAsync({ key: exactOptional(string()) }, number()),\n        // @ts-expect-error\n        [{}, { key: 'foo', other: 123 }]\n      );\n      await expectNoSchemaIssueAsync(\n        objectWithRestAsync({ key: exactOptionalAsync(string()) }, number()),\n        // @ts-expect-error\n        [{}, { key: 'foo' }]\n      );\n    });\n\n    test('for exact optional entry with default', async () => {\n      // Sync\n      expect(\n        await objectWithRestAsync(\n          { key: exactOptional(string(), 'foo') },\n          number()\n        )['~run']({ value: { other: 123 } }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo', other: 123 },\n      });\n      expect(\n        await objectWithRestAsync(\n          { key: exactOptional(string(), () => 'foo') },\n          number()\n        )['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n\n      // Async\n      expect(\n        await objectWithRestAsync(\n          { key: exactOptionalAsync(string(), 'foo') },\n          number()\n        )['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await objectWithRestAsync(\n          { key: exactOptionalAsync(string(), () => 'foo') },\n          number()\n        )['~run']({ value: { other: 123 } }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo', other: 123 },\n      });\n    });\n\n    test('for optional entry', async () => {\n      await expectNoSchemaIssueAsync(\n        objectWithRestAsync({ key: optional(string()) }, number()),\n        // @ts-expect-error\n        [{}, { key: undefined, other: 123 }, { key: 'foo' }]\n      );\n      await expectNoSchemaIssueAsync(\n        objectWithRestAsync({ key: optionalAsync(string()) }, number()),\n        // @ts-expect-error\n        [{}, { key: undefined, other: 123 }, { key: 'foo' }]\n      );\n    });\n\n    test('for optional entry with default', async () => {\n      // Sync\n      expect(\n        await objectWithRestAsync({ key: optional(string(), 'foo') }, number())[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await objectWithRestAsync(\n          { key: optional(string(), () => 'foo') },\n          number()\n        )['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await objectWithRestAsync(\n          { key: optional(string(), () => undefined) },\n          number()\n        )['~run']({ value: { other: 123 } }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined, other: 123 },\n      });\n\n      // Async\n      expect(\n        await objectWithRestAsync(\n          { key: optionalAsync(string(), 'foo') },\n          number()\n        )['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await objectWithRestAsync(\n          { key: optionalAsync(string(), () => 'foo') },\n          number()\n        )['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await objectWithRestAsync(\n          { key: optionalAsync(string(), () => undefined) },\n          number()\n        )['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n      expect(\n        await objectWithRestAsync(\n          { key: optionalAsync(string(), async () => 'foo') },\n          number()\n        )['~run']({ value: { other: 123 } }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo', other: 123 },\n      });\n      expect(\n        await objectWithRestAsync(\n          { key: optionalAsync(string(), async () => undefined) },\n          number()\n        )['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n    });\n\n    test('for nullish entry', async () => {\n      await expectNoSchemaIssueAsync(\n        objectWithRestAsync({ key: nullish(number()) }, number()),\n        // @ts-expect-error\n        [{}, { key: undefined }, { key: null, other: 123 }, { key: 123 }]\n      );\n      await expectNoSchemaIssueAsync(\n        objectWithRestAsync({ key: nullishAsync(number()) }, number()),\n        // @ts-expect-error\n        [{ other: 123 }, { key: undefined }, { key: null }, { key: 123 }]\n      );\n    });\n\n    test('for nullish entry with default', async () => {\n      // Sync\n      expect(\n        await objectWithRestAsync({ key: nullish(string(), 'foo') }, number())[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await objectWithRestAsync({ key: nullish(string(), null) }, number())[\n          '~run'\n        ]({ value: { other: 123 } }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: null, other: 123 },\n      });\n      expect(\n        await objectWithRestAsync(\n          { key: nullish(string(), () => 'foo') },\n          number()\n        )['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await objectWithRestAsync(\n          { key: nullish(string(), () => null) },\n          number()\n        )['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: null },\n      });\n      expect(\n        await objectWithRestAsync(\n          { key: nullish(string(), () => undefined) },\n          number()\n        )['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n\n      // Async\n      expect(\n        await objectWithRestAsync(\n          { key: nullishAsync(string(), 'foo') },\n          number()\n        )['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await objectWithRestAsync(\n          { key: nullishAsync(string(), null) },\n          number()\n        )['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: null },\n      });\n      expect(\n        await objectWithRestAsync(\n          { key: nullishAsync(string(), () => 'foo') },\n          number()\n        )['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await objectWithRestAsync(\n          { key: nullishAsync(string(), () => null) },\n          number()\n        )['~run']({ value: { other: 123 } }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: null, other: 123 },\n      });\n      expect(\n        await objectWithRestAsync(\n          { key: nullishAsync(string(), () => undefined) },\n          number()\n        )['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n      expect(\n        await objectWithRestAsync(\n          { key: nullishAsync(string(), async () => 'foo') },\n          number()\n        )['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await objectWithRestAsync(\n          { key: nullishAsync(string(), async () => null) },\n          number()\n        )['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: null },\n      });\n      expect(\n        await objectWithRestAsync(\n          { key: nullishAsync(string(), async () => undefined) },\n          number()\n        )['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n    });\n  });\n\n  describe('should return dataset with nested issues', () => {\n    const schema = objectWithRestAsync(\n      {\n        key1: string(),\n        key2: number(),\n        nested: objectWithRestAsync(\n          { key1: string(), key2: number() },\n          number()\n        ),\n      },\n      array(boolean())\n    );\n\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    test('for missing entries', async () => {\n      const input = { key2: 123, other: [true, false] };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object_with_rest',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object_with_rest',\n            input: undefined,\n            expected: '\"nested\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'nested',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for missing nested entries', async () => {\n      const input = { key1: 'value', nested: { other: 123 } };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object_with_rest',\n            input: undefined,\n            expected: '\"key2\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'key2',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object_with_rest',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: input.nested,\n              },\n              {\n                type: 'object',\n                origin: 'key',\n                input: input.nested,\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object_with_rest',\n            input: undefined,\n            expected: '\"key2\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: input.nested,\n              },\n              {\n                type: 'object',\n                origin: 'key',\n                input: input.nested,\n                key: 'key2',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for missing entries with abort early', async () => {\n      const input = { key2: 123 };\n      expect(\n        await schema['~run']({ value: input }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: {},\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object_with_rest',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n            abortEarly: true,\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for missing any and unknown entry', async () => {\n      const schema = objectWithRestAsync(\n        { key1: any(), key2: unknown() },\n        number()\n      );\n      expect(await schema['~run']({ value: {} }, {})).toStrictEqual({\n        typed: false,\n        value: {},\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object_with_rest',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input: {},\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object_with_rest',\n            input: undefined,\n            expected: '\"key2\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input: {},\n                key: 'key2',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid entries', async () => {\n      const input = { key1: false, key2: 123, nested: null, other: [false] };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: false,\n            expected: 'string',\n            received: 'false',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key1',\n                value: false,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'object_with_rest',\n            input: null,\n            expected: 'Object',\n            received: 'null',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: null,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid nested entries', async () => {\n      const input = {\n        key1: 'value',\n        key2: 'value',\n        nested: {\n          key1: 123,\n          key2: null,\n          other: 123,\n        },\n      };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: 'value',\n            expected: 'number',\n            received: '\"value\"',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key2',\n                value: input.key2,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: 123,\n            expected: 'string',\n            received: '123',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: input.nested,\n              },\n              {\n                type: 'object',\n                origin: 'value',\n                input: input.nested,\n                key: 'key1',\n                value: input.nested.key1,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: null,\n            expected: 'number',\n            received: 'null',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: input.nested,\n              },\n              {\n                type: 'object',\n                origin: 'value',\n                input: input.nested,\n                key: 'key2',\n                value: input.nested.key2,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid entries with abort early', async () => {\n      const input = { key1: false, key2: 123, nested: null };\n      expect(\n        await schema['~run']({ value: input }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: {},\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: false,\n            expected: 'string',\n            received: 'false',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key1',\n                value: false,\n              },\n            ],\n            abortEarly: true,\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid exact optional entry', async () => {\n      const schema = objectWithRestAsync(\n        { key: exactOptional(string()) },\n        number()\n      );\n      const input = { key: undefined };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: undefined,\n            expected: 'string',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    const arrayIssue: ArrayIssue = {\n      ...baseInfo,\n      kind: 'schema',\n      type: 'array',\n      input: null,\n      expected: 'Array',\n      received: 'null',\n      path: [\n        {\n          type: 'object',\n          origin: 'value',\n          input: {\n            key1: 'foo',\n            key2: 123,\n            nested: { key1: 'foo', key2: 123 },\n            other1: null,\n            other2: 'bar',\n          },\n          key: 'other1',\n          value: null,\n        },\n      ],\n    };\n\n    test('for wrong rest', async () => {\n      const input = {\n        key1: 'foo',\n        key2: 123,\n        nested: { key1: 'foo', key2: 123 },\n        other1: null,\n        other2: 'bar',\n      };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          arrayIssue,\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'array',\n            input: 'bar',\n            expected: 'Array',\n            received: '\"bar\"',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'other2',\n                value: input.other2,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for wrong rest with abort early', async () => {\n      expect(\n        await schema['~run'](\n          {\n            value: {\n              key1: 'foo',\n              key2: 123,\n              nested: { key1: 'foo', key2: 123 },\n              other1: null,\n              other2: 'bar',\n            },\n          },\n          { abortEarly: true }\n        )\n      ).toStrictEqual({\n        typed: false,\n        value: {\n          key1: 'foo',\n          key2: 123,\n          nested: { key1: 'foo', key2: 123 },\n        },\n        issues: [{ ...arrayIssue, abortEarly: true }],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for wrong nested rest', async () => {\n      const input = {\n        key1: 'foo',\n        key2: 123,\n        nested: { key1: 'foo', key2: 123 },\n        other: ['true'],\n      };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'boolean',\n            input: 'true',\n            expected: 'boolean',\n            received: '\"true\"',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'other',\n                value: input.other,\n              },\n              {\n                type: 'array',\n                origin: 'value',\n                input: input.other,\n                key: 0,\n                value: input.other[0],\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/objectWithRest/objectWithRestAsync.ts",
    "content": "import { getDefault, getFallback } from '../../methods/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  ErrorMessage,\n  InferInput,\n  InferIssue,\n  InferObjectInput,\n  InferObjectIssue,\n  InferObjectOutput,\n  InferOutput,\n  ObjectEntriesAsync,\n  ObjectPathItem,\n  OutputDataset,\n} from '../../types/index.ts';\nimport {\n  _addIssue,\n  _getStandardProps,\n  _isValidObjectKey,\n} from '../../utils/index.ts';\nimport type { objectWithRest } from './objectWithRest.ts';\nimport type { ObjectWithRestIssue } from './types.ts';\n\n/**\n * Object schema async interface.\n */\nexport interface ObjectWithRestSchemaAsync<\n  TEntries extends ObjectEntriesAsync,\n  TRest extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  TMessage extends ErrorMessage<ObjectWithRestIssue> | undefined,\n> extends BaseSchemaAsync<\n    InferObjectInput<TEntries> & { [key: string]: InferInput<TRest> },\n    InferObjectOutput<TEntries> & { [key: string]: InferOutput<TRest> },\n    ObjectWithRestIssue | InferObjectIssue<TEntries> | InferIssue<TRest>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'object_with_rest';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof objectWithRest | typeof objectWithRestAsync;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Object';\n  /**\n   * The entries schema.\n   */\n  readonly entries: TEntries;\n  /**\n   * The rest schema.\n   */\n  readonly rest: TRest;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an object with rest schema.\n *\n * @param entries The entries schema.\n * @param rest The rest schema.\n *\n * @returns An object with rest schema.\n */\nexport function objectWithRestAsync<\n  const TEntries extends ObjectEntriesAsync,\n  const TRest extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(\n  entries: TEntries,\n  rest: TRest\n): ObjectWithRestSchemaAsync<TEntries, TRest, undefined>;\n\n/**\n * Creates an object with rest schema.\n *\n * @param entries The entries schema.\n * @param rest The rest schema.\n * @param message The error message.\n *\n * @returns An object with rest schema.\n */\nexport function objectWithRestAsync<\n  const TEntries extends ObjectEntriesAsync,\n  const TRest extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TMessage extends ErrorMessage<ObjectWithRestIssue> | undefined,\n>(\n  entries: TEntries,\n  rest: TRest,\n  message: TMessage\n): ObjectWithRestSchemaAsync<TEntries, TRest, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function objectWithRestAsync(\n  entries: ObjectEntriesAsync,\n  rest:\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  message?: ErrorMessage<ObjectWithRestIssue>\n): ObjectWithRestSchemaAsync<\n  ObjectEntriesAsync,\n  | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n  | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  ErrorMessage<ObjectWithRestIssue> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'object_with_rest',\n    reference: objectWithRestAsync,\n    expects: 'Object',\n    async: true,\n    entries,\n    rest,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    async '~run'(dataset, config) {\n      // Get input value from dataset\n      const input = dataset.value;\n\n      // If root type is valid, check nested types\n      if (input && typeof input === 'object') {\n        // Set typed to `true` and value to blank object\n        // @ts-expect-error\n        dataset.typed = true;\n        dataset.value = {};\n\n        // Parse each normal and rest entry\n        const [normalDatasets, restDatasets] = await Promise.all([\n          // If key is present or its an optional schema with a default value,\n          // parse input of key or default value asynchronously\n          Promise.all(\n            Object.entries(this.entries).map(async ([key, valueSchema]) => {\n              if (\n                key in input ||\n                ((valueSchema.type === 'exact_optional' ||\n                  valueSchema.type === 'optional' ||\n                  valueSchema.type === 'nullish') &&\n                  // @ts-expect-error\n                  valueSchema.default !== undefined)\n              ) {\n                const value: unknown =\n                  key in input\n                    ? // @ts-expect-error\n                      input[key]\n                    : await getDefault(valueSchema);\n                return [\n                  key,\n                  value,\n                  valueSchema,\n                  await valueSchema['~run']({ value }, config),\n                ] as const;\n              }\n              return [\n                key,\n                // @ts-expect-error\n                input[key] as unknown,\n                valueSchema,\n                null,\n              ] as const;\n            })\n          ),\n\n          // Parse other entries with rest schema asynchronously\n          // Hint: We exclude specific keys for security reasons\n          Promise.all(\n            Object.entries(input)\n              .filter(\n                ([key]) =>\n                  _isValidObjectKey(input, key) && !(key in this.entries)\n              )\n              .map(\n                async ([key, value]) =>\n                  [\n                    key,\n                    value,\n                    await this.rest['~run']({ value }, config),\n                  ] as const\n              )\n          ),\n        ]);\n\n        // Process each normal object entry of schema\n        for (const [key, value, valueSchema, valueDataset] of normalDatasets) {\n          // If key is present or its an optional schema with a default value,\n          // process its value dataset\n          if (valueDataset) {\n            // If there are issues, capture them\n            if (valueDataset.issues) {\n              // Create object path item\n              const pathItem: ObjectPathItem = {\n                type: 'object',\n                origin: 'value',\n                input: input as Record<string, unknown>,\n                key,\n                value,\n              };\n\n              // Add modified entry dataset issues to issues\n              for (const issue of valueDataset.issues) {\n                if (issue.path) {\n                  issue.path.unshift(pathItem);\n                } else {\n                  // @ts-expect-error\n                  issue.path = [pathItem];\n                }\n                // @ts-expect-error\n                dataset.issues?.push(issue);\n              }\n              if (!dataset.issues) {\n                // @ts-expect-error\n                dataset.issues = valueDataset.issues;\n              }\n\n              // If necessary, abort early\n              if (config.abortEarly) {\n                dataset.typed = false;\n                break;\n              }\n            }\n\n            // If not typed, set typed to `false`\n            if (!valueDataset.typed) {\n              dataset.typed = false;\n            }\n\n            // Add entry to dataset\n            // @ts-expect-error\n            dataset.value[key] = valueDataset.value;\n\n            // Otherwise, if key is missing but has a fallback, use it\n            // @ts-expect-error\n          } else if (valueSchema.fallback !== undefined) {\n            // @ts-expect-error\n            dataset.value[key] = await getFallback(valueSchema);\n\n            // Otherwise, if key is missing and required, add issue\n          } else if (\n            valueSchema.type !== 'exact_optional' &&\n            valueSchema.type !== 'optional' &&\n            valueSchema.type !== 'nullish'\n          ) {\n            _addIssue(this, 'key', dataset, config, {\n              input: undefined,\n              expected: `\"${key}\"`,\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input: input as Record<string, unknown>,\n                  key,\n                  value,\n                },\n              ],\n            });\n\n            // If necessary, abort early\n            if (config.abortEarly) {\n              break;\n            }\n          }\n        }\n\n        // Process each rest entry of schema if necessary\n        if (!dataset.issues || !config.abortEarly) {\n          for (const [key, value, valueDataset] of restDatasets) {\n            // If there are issues, capture them\n            if (valueDataset.issues) {\n              // Create object path item\n              const pathItem: ObjectPathItem = {\n                type: 'object',\n                origin: 'value',\n                input: input as Record<string, unknown>,\n                key,\n                value,\n              };\n\n              // Add modified entry dataset issues to issues\n              for (const issue of valueDataset.issues) {\n                if (issue.path) {\n                  issue.path.unshift(pathItem);\n                } else {\n                  // @ts-expect-error\n                  issue.path = [pathItem];\n                }\n                // @ts-expect-error\n                dataset.issues?.push(issue);\n              }\n              if (!dataset.issues) {\n                // @ts-expect-error\n                dataset.issues = valueDataset.issues;\n              }\n\n              // If necessary, abort early\n              if (config.abortEarly) {\n                dataset.typed = false;\n                break;\n              }\n            }\n\n            // If not typed, set typed to `false`\n            if (!valueDataset.typed) {\n              dataset.typed = false;\n            }\n\n            // Add entry to dataset\n            // @ts-expect-error\n            dataset.value[key] = valueDataset.value;\n          }\n        }\n\n        // Otherwise, add object issue\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        InferObjectOutput<ObjectEntriesAsync> & { [key: string]: unknown },\n        | ObjectWithRestIssue\n        | InferObjectIssue<ObjectEntriesAsync>\n        | BaseIssue<unknown>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/objectWithRest/types.ts",
    "content": "import type { BaseIssue } from '../../types/index.ts';\n\n/**\n * Object with rest issue interface.\n */\nexport interface ObjectWithRestIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'object_with_rest';\n  /**\n   * The expected property.\n   */\n  readonly expected: 'Object' | `\"${string}\"`;\n}\n"
  },
  {
    "path": "library/src/schemas/optional/index.ts",
    "content": "export * from './optional.ts';\nexport * from './optionalAsync.ts';\n"
  },
  {
    "path": "library/src/schemas/optional/optional.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { TransformAction } from '../../actions/index.ts';\nimport type { SchemaWithPipe } from '../../methods/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { ArrayIssue, ArraySchema } from '../array/index.ts';\nimport type { ObjectIssue, ObjectSchema } from '../object/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { optional, type OptionalSchema } from './optional.ts';\n\ndescribe('optional', () => {\n  describe('should return schema object', () => {\n    test('with undefined default', () => {\n      type Schema = OptionalSchema<StringSchema<undefined>, undefined>;\n      expectTypeOf(optional(string())).toEqualTypeOf<Schema>();\n      expectTypeOf(optional(string(), undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with undefined getter default', () => {\n      expectTypeOf(optional(string(), () => undefined)).toEqualTypeOf<\n        OptionalSchema<StringSchema<undefined>, () => undefined>\n      >();\n    });\n\n    test('with value default', () => {\n      expectTypeOf(optional(string(), 'foo')).toEqualTypeOf<\n        OptionalSchema<StringSchema<undefined>, 'foo'>\n      >();\n    });\n\n    test('with value getter default', () => {\n      expectTypeOf(optional(string(), () => 'foo')).toEqualTypeOf<\n        OptionalSchema<StringSchema<undefined>, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema1 = OptionalSchema<StringSchema<undefined>, undefined>;\n    type Schema2 = OptionalSchema<StringSchema<undefined>, 'foo'>;\n    type Schema3 = OptionalSchema<StringSchema<undefined>, () => undefined>;\n    type Schema4 = OptionalSchema<StringSchema<undefined>, () => 'foo'>;\n    type Schema5 = OptionalSchema<\n      SchemaWithPipe<\n        [StringSchema<undefined>, TransformAction<string, number>]\n      >,\n      'foo'\n    >;\n    type Schema6 = OptionalSchema<\n      ObjectSchema<\n        { foo: ArraySchema<StringSchema<undefined>, undefined> },\n        undefined\n      >,\n      { foo: string[] }\n    >;\n    type Schema7 = OptionalSchema<\n      ObjectSchema<\n        { foo: ArraySchema<StringSchema<undefined>, undefined> },\n        undefined\n      >,\n      () => { foo: string[] }\n    >;\n\n    test('of input', () => {\n      type Input = string | undefined;\n      expectTypeOf<InferInput<Schema1>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema2>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema3>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema4>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema5>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema6>>().toEqualTypeOf<\n        { foo: string[] } | undefined\n      >();\n      expectTypeOf<InferInput<Schema7>>().toEqualTypeOf<\n        { foo: string[] } | undefined\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema1>>().toEqualTypeOf<string | undefined>();\n      expectTypeOf<InferOutput<Schema2>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema3>>().toEqualTypeOf<string | undefined>();\n      expectTypeOf<InferOutput<Schema4>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema5>>().toEqualTypeOf<number>();\n      expectTypeOf<InferOutput<Schema6>>().toEqualTypeOf<{ foo: string[] }>();\n      expectTypeOf<InferOutput<Schema7>>().toEqualTypeOf<{ foo: string[] }>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema1>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema2>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema3>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema4>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema5>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema6>>().toEqualTypeOf<\n        ObjectIssue | ArrayIssue | StringIssue\n      >();\n      expectTypeOf<InferIssue<Schema7>>().toEqualTypeOf<\n        ObjectIssue | ArrayIssue | StringIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/optional/optional.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { optional, type OptionalSchema } from './optional.ts';\n\ndescribe('optional', () => {\n  describe('should return schema object', () => {\n    const baseSchema: Omit<\n      OptionalSchema<StringSchema<undefined>, string>,\n      'default'\n    > = {\n      kind: 'schema',\n      type: 'optional',\n      reference: optional,\n      expects: '(string | undefined)',\n      wrapped: {\n        ...string(),\n        '~standard': {\n          version: 1,\n          vendor: 'valibot',\n          validate: expect.any(Function),\n        },\n        '~run': expect.any(Function),\n      },\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined default', () => {\n      const expected: OptionalSchema<StringSchema<undefined>, undefined> = {\n        ...baseSchema,\n        default: undefined,\n      };\n      expect(optional(string())).toStrictEqual(expected);\n      expect(optional(string(), undefined)).toStrictEqual(expected);\n    });\n\n    test('with undefined getter default', () => {\n      const getter = () => undefined;\n      expect(optional(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies OptionalSchema<StringSchema<undefined>, typeof getter>);\n    });\n\n    test('with value default', () => {\n      expect(optional(string(), 'foo')).toStrictEqual({\n        ...baseSchema,\n        default: 'foo',\n      } satisfies OptionalSchema<StringSchema<undefined>, 'foo'>);\n    });\n\n    test('with value getter default', () => {\n      const getter = () => 'foo';\n      expect(optional(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies OptionalSchema<StringSchema<undefined>, typeof getter>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = optional(string());\n\n    test('for wrapper type', () => {\n      expectNoSchemaIssue(schema, ['', 'foo', '#$%']);\n    });\n\n    test('for undefined', () => {\n      expectNoSchemaIssue(schema, [undefined]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = optional(string('message'));\n    const baseIssue: Omit<StringIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'string',\n      expected: 'string',\n      message: 'message',\n    };\n\n    test('for invalid wrapper type', () => {\n      expectSchemaIssue(schema, baseIssue, [123, true, {}]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n  });\n\n  describe('should return dataset without default', () => {\n    test('for undefined default', () => {\n      expectNoSchemaIssue(optional(string()), [undefined, 'foo']);\n      expectNoSchemaIssue(optional(string(), undefined), [undefined, 'foo']);\n    });\n\n    test('for wrapper type', () => {\n      expectNoSchemaIssue(optional(string(), 'foo'), ['', 'bar', '#$%']);\n    });\n  });\n\n  describe('should return dataset with default', () => {\n    const schema1 = optional(string(), 'foo');\n    const schema2 = optional(string(), () => undefined);\n    const schema3 = optional(string(), () => 'foo');\n\n    test('for undefined', () => {\n      expect(schema1['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n      });\n      expect(schema2['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: undefined,\n      });\n      expect(schema3['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/optional/optional.ts",
    "content": "import { getDefault } from '../../methods/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  Default,\n  InferInput,\n  InferIssue,\n  SuccessDataset,\n} from '../../types/index.ts';\nimport { _getStandardProps } from '../../utils/index.ts';\nimport type { InferOptionalOutput } from './types.ts';\n\n/**\n * Optional schema interface.\n */\nexport interface OptionalSchema<\n  TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  TDefault extends Default<TWrapped, undefined>,\n> extends BaseSchema<\n    InferInput<TWrapped> | undefined,\n    InferOptionalOutput<TWrapped, TDefault>,\n    InferIssue<TWrapped>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'optional';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof optional;\n  /**\n   * The expected property.\n   */\n  readonly expects: `(${TWrapped['expects']} | undefined)`;\n  /**\n   * The wrapped schema.\n   */\n  readonly wrapped: TWrapped;\n  /**\n   * The default value.\n   */\n  readonly default: TDefault;\n}\n\n/**\n * Creates an optional schema.\n *\n * @param wrapped The wrapped schema.\n *\n * @returns An optional schema.\n */\nexport function optional<\n  const TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n>(wrapped: TWrapped): OptionalSchema<TWrapped, undefined>;\n\n/**\n * Creates an optional schema.\n *\n * @param wrapped The wrapped schema.\n * @param default_ The default value.\n *\n * @returns An optional schema.\n */\nexport function optional<\n  const TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TDefault extends Default<TWrapped, undefined>,\n>(wrapped: TWrapped, default_: TDefault): OptionalSchema<TWrapped, TDefault>;\n\n// @__NO_SIDE_EFFECTS__\nexport function optional(\n  wrapped: BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  default_?: unknown\n): OptionalSchema<BaseSchema<unknown, unknown, BaseIssue<unknown>>, unknown> {\n  return {\n    kind: 'schema',\n    type: 'optional',\n    reference: optional,\n    expects: `(${wrapped.expects} | undefined)`,\n    async: false,\n    wrapped,\n    default: default_,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      // If value is `undefined`, override it with default or return dataset\n      if (dataset.value === undefined) {\n        // If default is specified, override value of dataset\n        if (this.default !== undefined) {\n          dataset.value = getDefault(this, dataset, config);\n        }\n\n        // If value is still `undefined`, return dataset\n        if (dataset.value === undefined) {\n          // @ts-expect-error\n          dataset.typed = true;\n          // @ts-expect-error\n          return dataset as SuccessDataset<unknown>;\n        }\n      }\n\n      // Otherwise, return dataset of wrapped schema\n      return this.wrapped['~run'](dataset, config);\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/optional/optionalAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { TransformActionAsync } from '../../actions/index.ts';\nimport type { SchemaWithPipeAsync } from '../../methods/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { ArrayIssue, ArraySchema } from '../array/index.ts';\nimport type { ObjectIssue, ObjectSchema } from '../object/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { optionalAsync, type OptionalSchemaAsync } from './optionalAsync.ts';\n\ndescribe('optionalAsync', () => {\n  describe('should return schema object', () => {\n    test('with undefined default', () => {\n      type Schema = OptionalSchemaAsync<StringSchema<undefined>, undefined>;\n      expectTypeOf(optionalAsync(string())).toEqualTypeOf<Schema>();\n      expectTypeOf(optionalAsync(string(), undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with undefined getter default', () => {\n      expectTypeOf(optionalAsync(string(), () => undefined)).toEqualTypeOf<\n        OptionalSchemaAsync<StringSchema<undefined>, () => undefined>\n      >();\n    });\n\n    test('with async undefined getter default', () => {\n      expectTypeOf(\n        optionalAsync(string(), async () => undefined)\n      ).toEqualTypeOf<\n        OptionalSchemaAsync<StringSchema<undefined>, () => Promise<undefined>>\n      >();\n    });\n\n    test('with value default', () => {\n      expectTypeOf(optionalAsync(string(), 'foo')).toEqualTypeOf<\n        OptionalSchemaAsync<StringSchema<undefined>, 'foo'>\n      >();\n    });\n\n    test('with value getter default', () => {\n      expectTypeOf(optionalAsync(string(), () => 'foo')).toEqualTypeOf<\n        OptionalSchemaAsync<StringSchema<undefined>, () => string>\n      >();\n    });\n\n    test('with async value getter default', () => {\n      expectTypeOf(optionalAsync(string(), async () => 'foo')).toEqualTypeOf<\n        OptionalSchemaAsync<StringSchema<undefined>, () => Promise<string>>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema1 = OptionalSchemaAsync<StringSchema<undefined>, undefined>;\n    type Schema2 = OptionalSchemaAsync<StringSchema<undefined>, 'foo'>;\n    type Schema3 = OptionalSchemaAsync<\n      StringSchema<undefined>,\n      () => undefined\n    >;\n    type Schema4 = OptionalSchemaAsync<StringSchema<undefined>, () => 'foo'>;\n    type Schema5 = OptionalSchemaAsync<\n      StringSchema<undefined>,\n      () => Promise<undefined>\n    >;\n    type Schema6 = OptionalSchemaAsync<\n      StringSchema<undefined>,\n      () => Promise<'foo'>\n    >;\n    type Schema7 = OptionalSchemaAsync<\n      SchemaWithPipeAsync<\n        [StringSchema<undefined>, TransformActionAsync<string, number>]\n      >,\n      'foo'\n    >;\n    type Schema8 = OptionalSchemaAsync<\n      ObjectSchema<\n        { foo: ArraySchema<StringSchema<undefined>, undefined> },\n        undefined\n      >,\n      { foo: string[] }\n    >;\n    type Schema9 = OptionalSchemaAsync<\n      ObjectSchema<\n        { foo: ArraySchema<StringSchema<undefined>, undefined> },\n        undefined\n      >,\n      () => { foo: string[] }\n    >;\n    type Schema10 = OptionalSchemaAsync<\n      ObjectSchema<\n        { foo: ArraySchema<StringSchema<undefined>, undefined> },\n        undefined\n      >,\n      () => Promise<{ foo: string[] }>\n    >;\n\n    test('of input', () => {\n      type Input = string | undefined;\n      expectTypeOf<InferInput<Schema1>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema2>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema3>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema4>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema5>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema6>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema7>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema8>>().toEqualTypeOf<\n        { foo: string[] } | undefined\n      >();\n      expectTypeOf<InferInput<Schema9>>().toEqualTypeOf<\n        { foo: string[] } | undefined\n      >();\n      expectTypeOf<InferInput<Schema10>>().toEqualTypeOf<\n        { foo: string[] } | undefined\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema1>>().toEqualTypeOf<string | undefined>();\n      expectTypeOf<InferOutput<Schema2>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema3>>().toEqualTypeOf<string | undefined>();\n      expectTypeOf<InferOutput<Schema4>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema5>>().toEqualTypeOf<string | undefined>();\n      expectTypeOf<InferOutput<Schema6>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema7>>().toEqualTypeOf<number>();\n      expectTypeOf<InferOutput<Schema8>>().toEqualTypeOf<{ foo: string[] }>();\n      expectTypeOf<InferOutput<Schema9>>().toEqualTypeOf<{ foo: string[] }>();\n      expectTypeOf<InferOutput<Schema10>>().toEqualTypeOf<{ foo: string[] }>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema1>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema2>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema3>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema4>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema5>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema6>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema7>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema8>>().toEqualTypeOf<\n        ObjectIssue | ArrayIssue | StringIssue\n      >();\n      expectTypeOf<InferIssue<Schema9>>().toEqualTypeOf<\n        ObjectIssue | ArrayIssue | StringIssue\n      >();\n      expectTypeOf<InferIssue<Schema10>>().toEqualTypeOf<\n        ObjectIssue | ArrayIssue | StringIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/optional/optionalAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  expectNoSchemaIssueAsync,\n  expectSchemaIssueAsync,\n} from '../../vitest/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { optionalAsync, type OptionalSchemaAsync } from './optionalAsync.ts';\n\ndescribe('optionalAsync', () => {\n  describe('should return schema object', () => {\n    const baseSchema: Omit<\n      OptionalSchemaAsync<StringSchema<undefined>, string>,\n      'default'\n    > = {\n      kind: 'schema',\n      type: 'optional',\n      reference: optionalAsync,\n      expects: '(string | undefined)',\n      wrapped: {\n        ...string(),\n        '~standard': {\n          version: 1,\n          vendor: 'valibot',\n          validate: expect.any(Function),\n        },\n        '~run': expect.any(Function),\n      },\n      async: true,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined default', () => {\n      const expected: OptionalSchemaAsync<\n        StringSchema<undefined>,\n        undefined\n      > = {\n        ...baseSchema,\n        default: undefined,\n      };\n      expect(optionalAsync(string())).toStrictEqual(expected);\n      expect(optionalAsync(string(), undefined)).toStrictEqual(expected);\n    });\n\n    test('with undefined getter default', () => {\n      const getter = () => undefined;\n      expect(optionalAsync(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies OptionalSchemaAsync<StringSchema<undefined>, typeof getter>);\n    });\n\n    test('with async undefined getter default', () => {\n      const getter = async () => undefined;\n      expect(optionalAsync(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies OptionalSchemaAsync<StringSchema<undefined>, typeof getter>);\n    });\n\n    test('with value default', () => {\n      expect(optionalAsync(string(), 'foo')).toStrictEqual({\n        ...baseSchema,\n        default: 'foo',\n      } satisfies OptionalSchemaAsync<StringSchema<undefined>, 'foo'>);\n    });\n\n    test('with value getter default', () => {\n      const getter = () => 'foo';\n      expect(optionalAsync(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies OptionalSchemaAsync<StringSchema<undefined>, typeof getter>);\n    });\n\n    test('with async value getter default', () => {\n      const getter = async () => 'foo';\n      expect(optionalAsync(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies OptionalSchemaAsync<StringSchema<undefined>, typeof getter>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = optionalAsync(string());\n\n    test('for wrapper type', async () => {\n      await expectNoSchemaIssueAsync(schema, ['', 'foo', '#$%']);\n    });\n\n    test('for undefined', async () => {\n      await expectNoSchemaIssueAsync(schema, [undefined]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = optionalAsync(string('message'));\n    const baseIssue: Omit<StringIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'string',\n      expected: 'string',\n      message: 'message',\n    };\n\n    test('for invalid wrapper type', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [123, true, {}]);\n    });\n\n    test('for null', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [null]);\n    });\n  });\n\n  describe('should return dataset without default', () => {\n    test('for undefined default', async () => {\n      await expectNoSchemaIssueAsync(optionalAsync(string()), [\n        undefined,\n        'foo',\n      ]);\n      await expectNoSchemaIssueAsync(optionalAsync(string(), undefined), [\n        undefined,\n        'foo',\n      ]);\n    });\n\n    test('for wrapper type', async () => {\n      await expectNoSchemaIssueAsync(optionalAsync(string(), 'foo'), [\n        '',\n        'bar',\n        '#$%',\n      ]);\n    });\n  });\n\n  describe('should return dataset with default', () => {\n    const schema1 = optionalAsync(string(), 'foo');\n    const schema2 = optionalAsync(string(), () => undefined);\n    const schema3 = optionalAsync(string(), () => 'foo');\n    const schema4 = optionalAsync(string(), async () => undefined);\n    const schema5 = optionalAsync(string(), async () => 'foo');\n\n    test('for undefined', async () => {\n      expect(await schema1['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n      });\n      expect(await schema2['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: undefined,\n      });\n      expect(await schema3['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n      });\n      expect(await schema4['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: undefined,\n      });\n      expect(await schema5['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/optional/optionalAsync.ts",
    "content": "import { getDefault } from '../../methods/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  DefaultAsync,\n  InferInput,\n  InferIssue,\n  SuccessDataset,\n} from '../../types/index.ts';\nimport { _getStandardProps } from '../../utils/index.ts';\nimport type { optional } from './optional.ts';\nimport type { InferOptionalOutput } from './types.ts';\n\n/**\n * Optional schema async interface.\n */\nexport interface OptionalSchemaAsync<\n  TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  TDefault extends DefaultAsync<TWrapped, undefined>,\n> extends BaseSchemaAsync<\n    InferInput<TWrapped> | undefined,\n    InferOptionalOutput<TWrapped, TDefault>,\n    InferIssue<TWrapped>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'optional';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof optional | typeof optionalAsync;\n  /**\n   * The expected property.\n   */\n  readonly expects: `(${TWrapped['expects']} | undefined)`;\n  /**\n   * The wrapped schema.\n   */\n  readonly wrapped: TWrapped;\n  /**\n   * The default value.\n   */\n  readonly default: TDefault;\n}\n\n/**\n * Creates an optional schema.\n *\n * @param wrapped The wrapped schema.\n *\n * @returns An optional schema.\n */\nexport function optionalAsync<\n  const TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(wrapped: TWrapped): OptionalSchemaAsync<TWrapped, undefined>;\n\n/**\n * Creates an optional schema.\n *\n * @param wrapped The wrapped schema.\n * @param default_ The default value.\n *\n * @returns An optional schema.\n */\nexport function optionalAsync<\n  const TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TDefault extends DefaultAsync<TWrapped, undefined>,\n>(\n  wrapped: TWrapped,\n  default_: TDefault\n): OptionalSchemaAsync<TWrapped, TDefault>;\n\n// @__NO_SIDE_EFFECTS__\nexport function optionalAsync(\n  wrapped:\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  default_?: unknown\n): OptionalSchemaAsync<\n  | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n  | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  unknown\n> {\n  return {\n    kind: 'schema',\n    type: 'optional',\n    reference: optionalAsync,\n    expects: `(${wrapped.expects} | undefined)`,\n    async: true,\n    wrapped,\n    default: default_,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    async '~run'(dataset, config) {\n      // If value is `undefined`, override it with default or return dataset\n      if (dataset.value === undefined) {\n        // If default is specified, override value of dataset\n        if (this.default !== undefined) {\n          dataset.value = await getDefault(this, dataset, config);\n        }\n\n        // If value is still `undefined`, return dataset\n        if (dataset.value === undefined) {\n          // @ts-expect-error\n          dataset.typed = true;\n          // @ts-expect-error\n          return dataset as SuccessDataset<unknown>;\n        }\n      }\n\n      // Otherwise, return dataset of wrapped schema\n      return this.wrapped['~run'](dataset, config);\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/optional/types.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  DefaultAsync,\n  DefaultValue,\n  InferOutput,\n} from '../../types/index.ts';\n\n/**\n * Infer optional output type.\n */\nexport type InferOptionalOutput<\n  TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  TDefault extends DefaultAsync<TWrapped, undefined>,\n> = undefined extends TDefault\n  ? InferOutput<TWrapped> | undefined\n  : InferOutput<TWrapped> | Extract<DefaultValue<TDefault>, undefined>;\n"
  },
  {
    "path": "library/src/schemas/picklist/index.ts",
    "content": "export * from './picklist.ts';\n"
  },
  {
    "path": "library/src/schemas/picklist/picklist.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  picklist,\n  type PicklistIssue,\n  type PicklistSchema,\n} from './picklist.ts';\n\ndescribe('picklist', () => {\n  const options = ['foo', 'bar', 'baz'] as const;\n  type Options = typeof options;\n\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = PicklistSchema<Options, undefined>;\n      expectTypeOf(picklist(options)).toEqualTypeOf<Schema>();\n      expectTypeOf(picklist(options, undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(picklist(options, 'message')).toEqualTypeOf<\n        PicklistSchema<Options, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(picklist(options, () => 'message')).toEqualTypeOf<\n        PicklistSchema<Options, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = PicklistSchema<Options, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<'foo' | 'bar' | 'baz'>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<\n        'foo' | 'bar' | 'baz'\n      >();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<PicklistIssue>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/picklist/picklist.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport {\n  picklist,\n  type PicklistIssue,\n  type PicklistSchema,\n} from './picklist.ts';\n\ndescribe('picklist', () => {\n  const options = ['foo', 'bar', 'baz'] as const;\n  type Options = typeof options;\n\n  describe('should return schema object', () => {\n    const baseSchema: Omit<PicklistSchema<Options, never>, 'message'> = {\n      kind: 'schema',\n      type: 'picklist',\n      reference: picklist,\n      expects: '(\"foo\" | \"bar\" | \"baz\")',\n      options,\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: PicklistSchema<Options, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(picklist(options)).toStrictEqual(schema);\n      expect(picklist(options, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(picklist(options, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies PicklistSchema<Options, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(picklist(options, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies PicklistSchema<Options, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for valid options', () => {\n      expectNoSchemaIssue(picklist(options), ['foo', 'bar', 'baz']);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = picklist(options, 'message');\n    const baseIssue: Omit<PicklistIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'picklist',\n      expected: '(\"foo\" | \"bar\" | \"baz\")',\n      message: 'message',\n    };\n\n    // Special values\n\n    test('for empty options', () => {\n      expectSchemaIssue(\n        picklist([], 'message'),\n        { ...baseIssue, expected: 'never' },\n        ['foo', 'bar', 'baz']\n      );\n    });\n\n    test('for invalid options', () => {\n      expectSchemaIssue(schema, baseIssue, ['fo', 'fooo', 'foobar']);\n    });\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', 'hello', '123']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    test('for arrays', () => {\n      expectSchemaIssue(schema, baseIssue, [[], ['value']]);\n    });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n\n    test('for objects', () => {\n      expectSchemaIssue(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/picklist/picklist.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  MaybeReadonly,\n  OutputDataset,\n} from '../../types/index.ts';\nimport {\n  _addIssue,\n  _getStandardProps,\n  _joinExpects,\n  _stringify,\n} from '../../utils/index.ts';\n\n/**\n * Picklist options type.\n */\nexport type PicklistOptions = MaybeReadonly<(string | number | bigint)[]>;\n\n/**\n * Picklist issue interface.\n */\nexport interface PicklistIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'picklist';\n  /**\n   * The expected property.\n   */\n  readonly expected: string;\n}\n\n/**\n * Picklist schema interface.\n */\nexport interface PicklistSchema<\n  TOptions extends PicklistOptions,\n  TMessage extends ErrorMessage<PicklistIssue> | undefined,\n> extends BaseSchema<TOptions[number], TOptions[number], PicklistIssue> {\n  /**\n   * The schema type.\n   */\n  readonly type: 'picklist';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof picklist;\n  /**\n   * The picklist options.\n   */\n  readonly options: TOptions;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a picklist schema.\n *\n * @param options The picklist options.\n *\n * @returns A picklist schema.\n */\nexport function picklist<const TOptions extends PicklistOptions>(\n  options: TOptions\n): PicklistSchema<TOptions, undefined>;\n\n/**\n * Creates a picklist schema.\n *\n * @param options The picklist options.\n * @param message The error message.\n *\n * @returns A picklist schema.\n */\nexport function picklist<\n  const TOptions extends PicklistOptions,\n  const TMessage extends ErrorMessage<PicklistIssue> | undefined,\n>(options: TOptions, message: TMessage): PicklistSchema<TOptions, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function picklist(\n  options: PicklistOptions,\n  message?: ErrorMessage<PicklistIssue>\n): PicklistSchema<PicklistOptions, ErrorMessage<PicklistIssue> | undefined> {\n  return {\n    kind: 'schema',\n    type: 'picklist',\n    reference: picklist,\n    expects: _joinExpects(options.map(_stringify), '|'),\n    async: false,\n    options,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      // @ts-expect-error\n      if (this.options.includes(dataset.value)) {\n        // @ts-expect-error\n        dataset.typed = true;\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n      // @ts-expect-error\n      return dataset as OutputDataset<PicklistOptions[number], PicklistIssue>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/promise/index.ts",
    "content": "export * from './promise.ts';\n"
  },
  {
    "path": "library/src/schemas/promise/promise.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { promise, type PromiseIssue, type PromiseSchema } from './promise.ts';\n\ndescribe('promise', () => {\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = PromiseSchema<undefined>;\n      expectTypeOf(promise()).toEqualTypeOf<Schema>();\n      expectTypeOf(promise(undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(promise('message')).toEqualTypeOf<\n        PromiseSchema<'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(promise(() => 'message')).toEqualTypeOf<\n        PromiseSchema<() => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = PromiseSchema<undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<Promise<unknown>>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<Promise<unknown>>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<PromiseIssue>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/promise/promise.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { promise, type PromiseIssue, type PromiseSchema } from './promise.ts';\n\ndescribe('promise', () => {\n  describe('should return schema object', () => {\n    const baseSchema: Omit<PromiseSchema<never>, 'message'> = {\n      kind: 'schema',\n      type: 'promise',\n      reference: promise,\n      expects: 'Promise',\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: PromiseSchema<undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(promise()).toStrictEqual(schema);\n      expect(promise(undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(promise('message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies PromiseSchema<'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(promise(message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies PromiseSchema<typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = promise();\n\n    test('for Promise objects', () => {\n      expectNoSchemaIssue(schema, [\n        Promise.resolve(),\n        Promise.resolve('foo'),\n        Promise.all([]),\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = promise('message');\n    const baseIssue: Omit<PromiseIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'promise',\n      expected: 'Promise',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', 'foo', '123']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    test('for arrays', () => {\n      expectSchemaIssue(schema, baseIssue, [[], ['value']]);\n    });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n\n    test('for objects', () => {\n      expectSchemaIssue(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/promise/promise.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\n\n/**\n * Promise issue interface.\n */\nexport interface PromiseIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'promise';\n  /**\n   * The expected property.\n   */\n  readonly expected: 'Promise';\n}\n\n/**\n * Promise schema interface.\n */\nexport interface PromiseSchema<\n  TMessage extends ErrorMessage<PromiseIssue> | undefined,\n> extends BaseSchema<Promise<unknown>, Promise<unknown>, PromiseIssue> {\n  /**\n   * The schema type.\n   */\n  readonly type: 'promise';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof promise;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Promise';\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a promise schema.\n *\n * @returns A promise schema.\n */\nexport function promise(): PromiseSchema<undefined>;\n\n/**\n * Creates a promise schema.\n *\n * @param message The error message.\n *\n * @returns A promise schema.\n */\nexport function promise<\n  const TMessage extends ErrorMessage<PromiseIssue> | undefined,\n>(message: TMessage): PromiseSchema<TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function promise(\n  message?: ErrorMessage<PromiseIssue>\n): PromiseSchema<ErrorMessage<PromiseIssue> | undefined> {\n  return {\n    kind: 'schema',\n    type: 'promise',\n    reference: promise,\n    expects: 'Promise',\n    async: false,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      if (dataset.value instanceof Promise) {\n        // @ts-expect-error\n        dataset.typed = true;\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n      // @ts-expect-error\n      return dataset as OutputDataset<Promise<unknown>, PromiseIssue>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/record/index.ts",
    "content": "export * from './record.ts';\nexport * from './recordAsync.ts';\nexport type { RecordIssue } from './types.ts';\n"
  },
  {
    "path": "library/src/schemas/record/record.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { ReadonlyAction } from '../../actions/index.ts';\nimport type { SchemaWithPipe } from '../../methods/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  number,\n  type NumberIssue,\n  type NumberSchema,\n} from '../number/index.ts';\nimport type { OptionalSchema } from '../optional/index.ts';\nimport type { PicklistIssue, PicklistSchema } from '../picklist/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { record, type RecordSchema } from './record.ts';\nimport type { RecordIssue } from './types.ts';\n\ndescribe('record', () => {\n  describe('should return schema record', () => {\n    const key = string();\n    type Key = typeof key;\n    const value = number();\n    type Value = typeof value;\n\n    test('with undefined message', () => {\n      type Schema = RecordSchema<Key, Value, undefined>;\n      expectTypeOf(record(key, value)).toEqualTypeOf<Schema>();\n      expectTypeOf(record(key, value, undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(record(key, value, 'message')).toEqualTypeOf<\n        RecordSchema<Key, Value, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(record(key, value, () => 'message')).toEqualTypeOf<\n        RecordSchema<Key, Value, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema1 = RecordSchema<\n      StringSchema<undefined>,\n      OptionalSchema<NumberSchema<undefined>, 123>,\n      undefined\n    >;\n    type Schema2 = RecordSchema<\n      PicklistSchema<['foo', 'bar'], undefined>,\n      OptionalSchema<StringSchema<undefined>, 'hello'>,\n      undefined\n    >;\n    type Schema3 = RecordSchema<\n      StringSchema<undefined>,\n      SchemaWithPipe<[StringSchema<undefined>, ReadonlyAction<string>]>,\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema1>>().toEqualTypeOf<\n        Partial<Record<string, number>>\n      >();\n      expectTypeOf<InferInput<Schema2>>().toEqualTypeOf<\n        Partial<Record<'foo' | 'bar', string>>\n      >();\n      expectTypeOf<InferInput<Schema3>>().toEqualTypeOf<\n        Record<string, string>\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema1>>().toEqualTypeOf<\n        Record<string, number>\n      >();\n      expectTypeOf<InferOutput<Schema2>>().toEqualTypeOf<\n        Partial<Record<'foo' | 'bar', string>>\n      >();\n      expectTypeOf<InferOutput<Schema3>>().toEqualTypeOf<\n        Readonly<Record<string, string>>\n      >();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema1>>().toEqualTypeOf<\n        RecordIssue | StringIssue | NumberIssue\n      >();\n      expectTypeOf<InferIssue<Schema2>>().toEqualTypeOf<\n        RecordIssue | PicklistIssue | StringIssue\n      >();\n      expectTypeOf<InferIssue<Schema3>>().toEqualTypeOf<\n        RecordIssue | StringIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/record/record.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { number, type NumberIssue } from '../number/index.ts';\nimport { optional } from '../optional/index.ts';\nimport { picklist } from '../picklist/index.ts';\nimport { string } from '../string/index.ts';\nimport { record, type RecordSchema } from './record.ts';\nimport type { RecordIssue } from './types.ts';\n\ndescribe('record', () => {\n  describe('should return schema record', () => {\n    const key = string();\n    type Key = typeof key;\n    const value = number();\n    type Value = typeof value;\n    const baseSchema: Omit<RecordSchema<Key, Value, never>, 'message'> = {\n      kind: 'schema',\n      type: 'record',\n      reference: record,\n      expects: 'Object',\n      key,\n      value,\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: RecordSchema<Key, Value, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(record(key, value)).toStrictEqual(schema);\n      expect(record(key, value, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(record(key, value, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies RecordSchema<Key, Value, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(record(key, value, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies RecordSchema<Key, Value, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = record(string(), number());\n\n    test('for empty record', () => {\n      expectNoSchemaIssue(schema, [{}]);\n    });\n\n    test('for simple record', () => {\n      expectNoSchemaIssue(schema, [{ foo: 1, bar: 2, baz: 3 }]);\n    });\n\n    test('for record with __proto__ key', () => {\n      const input = JSON.parse('{\"__proto__\": 123, \"foo\": 456}');\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: true,\n        value: { foo: 456 },\n      });\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = record(string(), number(), 'message');\n    const baseIssue: Omit<RecordIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'record',\n      expected: 'Object',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', 'abc', '123']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    // TODO: Enable this test again in case we find a reliable way to check for\n    // plain objects\n    // test('for arrays', () => {\n    //   expectSchemaIssue(schema, baseIssue, [[], ['value']]);\n    // });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n  });\n\n  describe('should return dataset without nested issues', () => {\n    const schema = record(picklist(['foo', 'bar', 'baz']), optional(number()));\n\n    test('for simple record', () => {\n      expectNoSchemaIssue(schema, [{ foo: 1, bar: 2, baz: 3 }]);\n    });\n\n    test('for nested record', () => {\n      expectNoSchemaIssue(record(string(), schema), [\n        { foo: { foo: 1, bar: 2 }, bar: { baz: 3 } },\n      ]);\n    });\n  });\n\n  describe('should return dataset with nested issues', () => {\n    const schema = record(picklist(['foo', 'bar', 'baz']), optional(number()));\n\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    const input = {\n      foo: 1,\n      bar: '2', // Invalid value\n      baz: undefined, // Invalid value\n      other: 4, // Invalid key\n    };\n\n    const numberIssue1: NumberIssue = {\n      ...baseInfo,\n      kind: 'schema',\n      type: 'number',\n      input: '2',\n      expected: 'number',\n      received: '\"2\"',\n      path: [\n        {\n          type: 'object',\n          origin: 'value',\n          input,\n          key: 'bar',\n          value: '2',\n        },\n      ],\n    };\n\n    test('for invalid values', () => {\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: {\n          foo: input.foo,\n          bar: input.bar,\n          baz: input.baz,\n        },\n        issues: [\n          numberIssue1,\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'picklist',\n            input: 'other',\n            expected: '(\"foo\" | \"bar\" | \"baz\")',\n            received: '\"other\"',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'other',\n                value: 4,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for first key invalid only', () => {\n      const keySchema = record(picklist(['foo', 'bar']), number());\n      const input = { invalid: 1 };\n      expect(keySchema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: {},\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'picklist',\n            input: 'invalid',\n            expected: '(\"foo\" | \"bar\")',\n            received: '\"invalid\"',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'invalid',\n                value: 1,\n              },\n            ],\n          },\n        ],\n      });\n    });\n\n    test('with abort early for invalid key', () => {\n      const input = {\n        foo: 1,\n        other: 2, // Invalid key\n        bar: '3', // Invalid value\n        baz: undefined, // Invalid value\n      };\n      expect(\n        schema['~run']({ value: input }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: { foo: 1 },\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'picklist',\n            input: 'other',\n            expected: '(\"foo\" | \"bar\" | \"baz\")',\n            received: '\"other\"',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'other',\n                value: 2,\n              },\n            ],\n            abortEarly: true,\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('with abort early for invalid value', () => {\n      expect(\n        schema['~run']({ value: input }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: { foo: 1 },\n        issues: [{ ...numberIssue1, abortEarly: true }],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid nested values', () => {\n      const nestedSchema = record(string(), schema);\n      const input = {\n        key1: {\n          foo: 1,\n          bar: '2',\n          baz: undefined,\n        },\n        key2: 123,\n      };\n      expect(nestedSchema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: input.key1.bar,\n            expected: 'number',\n            received: '\"2\"',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key1',\n                value: input.key1,\n              },\n              {\n                type: 'object',\n                origin: 'value',\n                input: input.key1,\n                key: 'bar',\n                value: input.key1.bar,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'record',\n            input: input.key2,\n            expected: 'Object',\n            received: '123',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key2',\n                value: input.key2,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof nestedSchema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/record/record.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  InferIssue,\n  ObjectPathItem,\n  OutputDataset,\n} from '../../types/index.ts';\nimport {\n  _addIssue,\n  _getStandardProps,\n  _isValidObjectKey,\n} from '../../utils/index.ts';\nimport type {\n  InferRecordInput,\n  InferRecordOutput,\n  RecordIssue,\n} from './types.ts';\n\n/**\n * Record schema interface.\n */\nexport interface RecordSchema<\n  TKey extends BaseSchema<string, string | number | symbol, BaseIssue<unknown>>,\n  TValue extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  TMessage extends ErrorMessage<RecordIssue> | undefined,\n> extends BaseSchema<\n    InferRecordInput<TKey, TValue>,\n    InferRecordOutput<TKey, TValue>,\n    RecordIssue | InferIssue<TKey> | InferIssue<TValue>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'record';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof record;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Object';\n  /**\n   * The record key schema.\n   */\n  readonly key: TKey;\n  /**\n   * The record value schema.\n   */\n  readonly value: TValue;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a record schema.\n *\n * @param key The key schema.\n * @param value The value schema.\n *\n * @returns A record schema.\n */\nexport function record<\n  const TKey extends BaseSchema<\n    string,\n    string | number | symbol,\n    BaseIssue<unknown>\n  >,\n  const TValue extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n>(key: TKey, value: TValue): RecordSchema<TKey, TValue, undefined>;\n\n/**\n * Creates a record schema.\n *\n * @param key The key schema.\n * @param value The value schema.\n * @param message The error message.\n *\n * @returns A record schema.\n */\nexport function record<\n  const TKey extends BaseSchema<\n    string,\n    string | number | symbol,\n    BaseIssue<unknown>\n  >,\n  const TValue extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TMessage extends ErrorMessage<RecordIssue> | undefined,\n>(\n  key: TKey,\n  value: TValue,\n  message: TMessage\n): RecordSchema<TKey, TValue, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function record(\n  key: BaseSchema<string, string | number | symbol, BaseIssue<unknown>>,\n  value: BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  message?: ErrorMessage<RecordIssue>\n): RecordSchema<\n  BaseSchema<string, string | number | symbol, BaseIssue<unknown>>,\n  BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  ErrorMessage<RecordIssue> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'record',\n    reference: record,\n    expects: 'Object',\n    async: false,\n    key,\n    value,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      // Get input value from dataset\n      const input = dataset.value;\n\n      // If root type is valid, check nested types\n      if (input && typeof input === 'object') {\n        // Set typed to `true` and value to empty object\n        // @ts-expect-error\n        dataset.typed = true;\n        dataset.value = {};\n\n        // Parse schema of each record entry\n        // Hint: for...in loop always returns keys as strings\n        // Hint: We exclude specific keys for security reasons\n        for (const entryKey in input) {\n          if (_isValidObjectKey(input, entryKey)) {\n            // Get value of record entry\n            const entryValue: unknown = input[entryKey as keyof typeof input];\n\n            // Get dataset of key schema\n            const keyDataset = this.key['~run']({ value: entryKey }, config);\n\n            // If there are issues, capture them\n            if (keyDataset.issues) {\n              // Create record path item\n              const pathItem: ObjectPathItem = {\n                type: 'object',\n                origin: 'key',\n                input: input as Record<string, unknown>,\n                key: entryKey,\n                value: entryValue,\n              };\n\n              // Add modified item dataset issues to issues\n              for (const issue of keyDataset.issues) {\n                // @ts-expect-error\n                issue.path = [pathItem];\n                // @ts-expect-error\n                dataset.issues?.push(issue);\n              }\n              if (!dataset.issues) {\n                // @ts-expect-error\n                dataset.issues = keyDataset.issues;\n              }\n\n              // If necessary, abort early\n              if (config.abortEarly) {\n                dataset.typed = false;\n                break;\n              }\n            }\n\n            // Get dataset of value schema\n            const valueDataset = this.value['~run'](\n              { value: entryValue },\n              config\n            );\n\n            // If there are issues, capture them\n            if (valueDataset.issues) {\n              // Create record path item\n              const pathItem: ObjectPathItem = {\n                type: 'object',\n                origin: 'value',\n                input: input as Record<string, unknown>,\n                key: entryKey,\n                value: entryValue,\n              };\n\n              // Add modified item dataset issues to issues\n              for (const issue of valueDataset.issues) {\n                if (issue.path) {\n                  issue.path.unshift(pathItem);\n                } else {\n                  // @ts-expect-error\n                  issue.path = [pathItem];\n                }\n                // @ts-expect-error\n                dataset.issues?.push(issue);\n              }\n              if (!dataset.issues) {\n                // @ts-expect-error\n                dataset.issues = valueDataset.issues;\n              }\n\n              // If necessary, abort early\n              if (config.abortEarly) {\n                dataset.typed = false;\n                break;\n              }\n            }\n\n            // If not typed, set typed to `false`\n            if (!keyDataset.typed || !valueDataset.typed) {\n              dataset.typed = false;\n            }\n\n            // If key is typed, add entry to dataset\n            if (keyDataset.typed) {\n              // @ts-expect-error\n              dataset.value[keyDataset.value] = valueDataset.value;\n            }\n          }\n        }\n\n        // Otherwise, add record issue\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        Record<string | number | symbol, unknown>,\n        RecordIssue | BaseIssue<unknown>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/record/recordAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { ReadonlyAction } from '../../actions/index.ts';\nimport type { SchemaWithPipe } from '../../methods/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  number,\n  type NumberIssue,\n  type NumberSchema,\n} from '../number/index.ts';\nimport type { OptionalSchema } from '../optional/index.ts';\nimport type { PicklistIssue, PicklistSchema } from '../picklist/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { recordAsync, type RecordSchemaAsync } from './recordAsync.ts';\nimport type { RecordIssue } from './types.ts';\n\ndescribe('recordAsync', () => {\n  describe('should return schema recordAsync', () => {\n    const key = string();\n    type Key = typeof key;\n    const value = number();\n    type Value = typeof value;\n\n    test('with undefined message', () => {\n      type Schema = RecordSchemaAsync<Key, Value, undefined>;\n      expectTypeOf(recordAsync(key, value)).toEqualTypeOf<Schema>();\n      expectTypeOf(recordAsync(key, value, undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(recordAsync(key, value, 'message')).toEqualTypeOf<\n        RecordSchemaAsync<Key, Value, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(recordAsync(key, value, () => 'message')).toEqualTypeOf<\n        RecordSchemaAsync<Key, Value, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema1 = RecordSchemaAsync<\n      StringSchema<undefined>,\n      OptionalSchema<NumberSchema<undefined>, 123>,\n      undefined\n    >;\n    type Schema2 = RecordSchemaAsync<\n      PicklistSchema<['foo', 'bar'], undefined>,\n      OptionalSchema<StringSchema<undefined>, 'hello'>,\n      undefined\n    >;\n    type Schema3 = RecordSchemaAsync<\n      StringSchema<undefined>,\n      SchemaWithPipe<[StringSchema<undefined>, ReadonlyAction<string>]>,\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema1>>().toEqualTypeOf<\n        Partial<Record<string, number>>\n      >();\n      expectTypeOf<InferInput<Schema2>>().toEqualTypeOf<\n        Partial<Record<'foo' | 'bar', string>>\n      >();\n      expectTypeOf<InferInput<Schema3>>().toEqualTypeOf<\n        Record<string, string>\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema1>>().toEqualTypeOf<\n        Record<string, number>\n      >();\n      expectTypeOf<InferOutput<Schema2>>().toEqualTypeOf<\n        Partial<Record<'foo' | 'bar', string>>\n      >();\n      expectTypeOf<InferOutput<Schema3>>().toEqualTypeOf<\n        Readonly<Record<string, string>>\n      >();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema1>>().toEqualTypeOf<\n        RecordIssue | StringIssue | NumberIssue\n      >();\n      expectTypeOf<InferIssue<Schema2>>().toEqualTypeOf<\n        RecordIssue | PicklistIssue | StringIssue\n      >();\n      expectTypeOf<InferIssue<Schema3>>().toEqualTypeOf<\n        RecordIssue | StringIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/record/recordAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport {\n  expectNoSchemaIssueAsync,\n  expectSchemaIssueAsync,\n} from '../../vitest/index.ts';\nimport { number, type NumberIssue } from '../number/index.ts';\nimport { optionalAsync } from '../optional/index.ts';\nimport { picklist } from '../picklist/index.ts';\nimport { string } from '../string/index.ts';\nimport { recordAsync, type RecordSchemaAsync } from './recordAsync.ts';\nimport type { RecordIssue } from './types.ts';\n\ndescribe('recordAsync', () => {\n  describe('should return schema record', () => {\n    const key = string();\n    type Key = typeof key;\n    const value = number();\n    type Value = typeof value;\n    const baseSchema: Omit<RecordSchemaAsync<Key, Value, never>, 'message'> = {\n      kind: 'schema',\n      type: 'record',\n      reference: recordAsync,\n      expects: 'Object',\n      key,\n      value,\n      async: true,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: RecordSchemaAsync<Key, Value, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(recordAsync(key, value)).toStrictEqual(schema);\n      expect(recordAsync(key, value, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(recordAsync(key, value, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies RecordSchemaAsync<Key, Value, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(recordAsync(key, value, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies RecordSchemaAsync<Key, Value, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = recordAsync(string(), number());\n\n    test('for empty record', async () => {\n      await expectNoSchemaIssueAsync(schema, [{}]);\n    });\n\n    test('for simple record', async () => {\n      await expectNoSchemaIssueAsync(schema, [{ foo: 1, bar: 2, baz: 3 }]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = recordAsync(string(), number(), 'message');\n    const baseIssue: Omit<RecordIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'record',\n      expected: 'Object',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, ['', 'abc', '123']);\n    });\n\n    test('for symbols', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        Symbol(),\n        Symbol('foo'),\n      ]);\n    });\n\n    // Complex types\n\n    // TODO: Enable this test again in case we find a reliable way to check for\n    // plain objects\n    // test('for arrays', async () => {\n    //   await expectSchemaIssueAsync(schema, baseIssue, [[], ['value']]);\n    // });\n\n    test('for functions', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        () => {},\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        function () {},\n      ]);\n    });\n  });\n\n  describe('should return dataset without nested issues', () => {\n    const schema = recordAsync(\n      picklist(['foo', 'bar', 'baz']),\n      optionalAsync(number())\n    );\n\n    test('for simple record', async () => {\n      await expectNoSchemaIssueAsync(schema, [{ foo: 1, bar: 2, baz: 3 }]);\n    });\n\n    test('for nested record', async () => {\n      await expectNoSchemaIssueAsync(recordAsync(string(), schema), [\n        { foo: { foo: 1, bar: 2 }, bar: { baz: 3 } },\n      ]);\n    });\n  });\n\n  describe('should return dataset with nested issues', () => {\n    const schema = recordAsync(\n      picklist(['foo', 'bar', 'baz']),\n      optionalAsync(number())\n    );\n\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    const input = {\n      foo: 1,\n      bar: '2',\n      baz: undefined,\n      other: 4,\n    };\n\n    const numberIssue1: NumberIssue = {\n      ...baseInfo,\n      kind: 'schema',\n      type: 'number',\n      input: '2',\n      expected: 'number',\n      received: '\"2\"',\n      path: [\n        {\n          type: 'object',\n          origin: 'value',\n          input,\n          key: 'bar',\n          value: '2',\n        },\n      ],\n    };\n\n    test('for invalid values', async () => {\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: {\n          foo: input.foo,\n          bar: input.bar,\n          baz: input.baz,\n        },\n        issues: [\n          numberIssue1,\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'picklist',\n            input: 'other',\n            expected: '(\"foo\" | \"bar\" | \"baz\")',\n            received: '\"other\"',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'other',\n                value: 4,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('with abort early for invalid key', async () => {\n      const input = {\n        foo: 1,\n        other: 2, // Invalid key\n        bar: '3', // Invalid value\n        baz: undefined, // Invalid value\n      };\n      expect(\n        await schema['~run']({ value: input }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: { foo: 1 },\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'picklist',\n            input: 'other',\n            expected: '(\"foo\" | \"bar\" | \"baz\")',\n            received: '\"other\"',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'other',\n                value: 2,\n              },\n            ],\n            abortEarly: true,\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('with abort early for invalid value', async () => {\n      expect(\n        await schema['~run']({ value: input }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: { foo: 1 },\n        issues: [{ ...numberIssue1, abortEarly: true }],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid nested values', async () => {\n      const nestedSchema = recordAsync(string(), schema);\n      const input = {\n        key1: {\n          foo: 1,\n          bar: '2',\n          baz: undefined,\n        },\n        key2: 123,\n      };\n      expect(await nestedSchema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: input.key1.bar,\n            expected: 'number',\n            received: '\"2\"',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key1',\n                value: input.key1,\n              },\n              {\n                type: 'object',\n                origin: 'value',\n                input: input.key1,\n                key: 'bar',\n                value: input.key1.bar,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'record',\n            input: input.key2,\n            expected: 'Object',\n            received: '123',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key2',\n                value: input.key2,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof nestedSchema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/record/recordAsync.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  ErrorMessage,\n  InferIssue,\n  ObjectPathItem,\n  OutputDataset,\n} from '../../types/index.ts';\nimport {\n  _addIssue,\n  _getStandardProps,\n  _isValidObjectKey,\n} from '../../utils/index.ts';\nimport type { record } from './record.ts';\nimport type {\n  InferRecordInput,\n  InferRecordOutput,\n  RecordIssue,\n} from './types.ts';\n\n/**\n * Record schema async interface.\n */\nexport interface RecordSchemaAsync<\n  TKey extends\n    | BaseSchema<string, string | number | symbol, BaseIssue<unknown>>\n    | BaseSchemaAsync<string, string | number | symbol, BaseIssue<unknown>>,\n  TValue extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  TMessage extends ErrorMessage<RecordIssue> | undefined,\n> extends BaseSchemaAsync<\n    InferRecordInput<TKey, TValue>,\n    InferRecordOutput<TKey, TValue>,\n    RecordIssue | InferIssue<TKey> | InferIssue<TValue>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'record';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof record | typeof recordAsync;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Object';\n  /**\n   * The record key schema.\n   */\n  readonly key: TKey;\n  /**\n   * The record value schema.\n   */\n  readonly value: TValue;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a record schema.\n *\n * @param key The key schema.\n * @param value The value schema.\n *\n * @returns A record schema.\n */\nexport function recordAsync<\n  const TKey extends\n    | BaseSchema<string, string | number | symbol, BaseIssue<unknown>>\n    | BaseSchemaAsync<string, string | number | symbol, BaseIssue<unknown>>,\n  const TValue extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(key: TKey, value: TValue): RecordSchemaAsync<TKey, TValue, undefined>;\n\n/**\n * Creates a record schema.\n *\n * @param key The key schema.\n * @param value The value schema.\n * @param message The error message.\n *\n * @returns A record schema.\n */\nexport function recordAsync<\n  const TKey extends\n    | BaseSchema<string, string | number | symbol, BaseIssue<unknown>>\n    | BaseSchemaAsync<string, string | number | symbol, BaseIssue<unknown>>,\n  const TValue extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TMessage extends ErrorMessage<RecordIssue> | undefined,\n>(\n  key: TKey,\n  value: TValue,\n  message: TMessage\n): RecordSchemaAsync<TKey, TValue, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function recordAsync(\n  key:\n    | BaseSchema<string, string | number | symbol, BaseIssue<unknown>>\n    | BaseSchemaAsync<string, string | number | symbol, BaseIssue<unknown>>,\n  value:\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  message?: ErrorMessage<RecordIssue>\n): RecordSchemaAsync<\n  | BaseSchema<string, string | number | symbol, BaseIssue<unknown>>\n  | BaseSchemaAsync<string, string | number | symbol, BaseIssue<unknown>>,\n  | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n  | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  ErrorMessage<RecordIssue> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'record',\n    reference: recordAsync,\n    expects: 'Object',\n    async: true,\n    key,\n    value,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    async '~run'(dataset, config) {\n      // Get input value from dataset\n      const input = dataset.value;\n\n      // If root type is valid, check nested types\n      if (input && typeof input === 'object') {\n        // Set typed to `true` and value to empty object\n        // @ts-expect-error\n        dataset.typed = true;\n        dataset.value = {};\n\n        // Parse schema of each record entry\n        // Hint: `Object.entries(…)` always returns keys as strings\n        // Hint: We exclude specific keys for security reasons\n        const datasets = await Promise.all(\n          Object.entries(input)\n            .filter(([key]) => _isValidObjectKey(input, key))\n            .map(([entryKey, entryValue]) =>\n              Promise.all([\n                entryKey,\n                entryValue,\n                this.key['~run']({ value: entryKey }, config),\n                this.value['~run']({ value: entryValue }, config),\n              ])\n            )\n        );\n\n        // Process datasets of each record entry\n        for (const [\n          entryKey,\n          entryValue,\n          keyDataset,\n          valueDataset,\n        ] of datasets) {\n          // If there are issues, capture them\n          if (keyDataset.issues) {\n            // Create record path item\n            const pathItem: ObjectPathItem = {\n              type: 'object',\n              origin: 'key',\n              input: input as Record<string, unknown>,\n              key: entryKey,\n              value: entryValue,\n            };\n\n            // Add modified item dataset issues to issues\n            for (const issue of keyDataset.issues) {\n              // @ts-expect-error\n              issue.path = [pathItem];\n              // @ts-expect-error\n              dataset.issues?.push(issue);\n            }\n            if (!dataset.issues) {\n              // @ts-expect-error\n              dataset.issues = keyDataset.issues;\n            }\n\n            // If necessary, abort early\n            if (config.abortEarly) {\n              dataset.typed = false;\n              break;\n            }\n          }\n\n          // If there are issues, capture them\n          if (valueDataset.issues) {\n            // Create record path item\n            const pathItem: ObjectPathItem = {\n              type: 'object',\n              origin: 'value',\n              input: input as Record<string, unknown>,\n              key: entryKey,\n              value: entryValue,\n            };\n\n            // Add modified item dataset issues to issues\n            for (const issue of valueDataset.issues) {\n              if (issue.path) {\n                issue.path.unshift(pathItem);\n              } else {\n                // @ts-expect-error\n                issue.path = [pathItem];\n              }\n              // @ts-expect-error\n              dataset.issues?.push(issue);\n            }\n            if (!dataset.issues) {\n              // @ts-expect-error\n              dataset.issues = valueDataset.issues;\n            }\n\n            // If necessary, abort early\n            if (config.abortEarly) {\n              dataset.typed = false;\n              break;\n            }\n          }\n\n          // If not typed, set typed to `false`\n          if (!keyDataset.typed || !valueDataset.typed) {\n            dataset.typed = false;\n          }\n\n          // If key is typed, add entry to dataset\n          if (keyDataset.typed) {\n            // @ts-expect-error\n            dataset.value[keyDataset.value] = valueDataset.value;\n          }\n        }\n\n        // Otherwise, add record issue\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        Record<string | number | symbol, unknown>,\n        RecordIssue | BaseIssue<unknown>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/record/types.ts",
    "content": "import type { Brand, ReadonlyAction } from '../../actions/index.ts';\nimport type {\n  SchemaWithPipe,\n  SchemaWithPipeAsync,\n} from '../../methods/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  InferInput,\n  InferOutput,\n  MarkOptional,\n  Prettify,\n} from '../../types/index.ts';\n\n/**\n * Record issue interface.\n */\nexport interface RecordIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'record';\n  /**\n   * The expected property.\n   */\n  readonly expected: 'Object';\n}\n\n/**\n * Is literal type.\n */\ntype IsLiteral<TKey extends string | number | symbol> = string extends TKey\n  ? false\n  : number extends TKey\n    ? false\n    : symbol extends TKey\n      ? false\n      : TKey extends Brand<string | number | symbol>\n        ? false\n        : true;\n\n/**\n * Optional keys type.\n */\ntype OptionalKeys<TObject extends Record<string | number | symbol, unknown>> = {\n  [TKey in keyof TObject]: IsLiteral<TKey> extends true ? TKey : never;\n}[keyof TObject];\n\n/**\n * With question marks type.\n *\n * Hint: We mark an entry as optional if we detect that its key is a literal\n * type. The reason for this is that it is not technically possible to detect\n * missing literal keys without restricting the key schema to `string`, `enum`\n * and `picklist`. However, if `enum` and `picklist` are used, it is better to\n * use `object` with `entriesFromList` because it already covers the needed\n * functionality. This decision also reduces the bundle size of `record`,\n * because it only needs to check the entries of the input and not any missing\n * keys.\n */\ntype WithQuestionMarks<\n  TObject extends Record<string | number | symbol, unknown>,\n> = MarkOptional<TObject, OptionalKeys<TObject>>;\n\n/**\n * With readonly type.\n */\ntype WithReadonly<\n  TValue extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  TObject extends WithQuestionMarks<Record<string | number | symbol, unknown>>,\n> = TValue extends\n  | SchemaWithPipe<infer TPipe>\n  | SchemaWithPipeAsync<infer TPipe>\n  ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    ReadonlyAction<any> extends TPipe[number]\n    ? Readonly<TObject>\n    : TObject\n  : TObject;\n\n/**\n * Infer record input type.\n */\nexport type InferRecordInput<\n  TKey extends\n    | BaseSchema<string, string | number | symbol, BaseIssue<unknown>>\n    | BaseSchemaAsync<string, string | number | symbol, BaseIssue<unknown>>,\n  TValue extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n> = Prettify<WithQuestionMarks<Record<InferInput<TKey>, InferInput<TValue>>>>;\n\n/**\n * Infer record output type.\n */\nexport type InferRecordOutput<\n  TKey extends\n    | BaseSchema<string, string | number | symbol, BaseIssue<unknown>>\n    | BaseSchemaAsync<string, string | number | symbol, BaseIssue<unknown>>,\n  TValue extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n> = Prettify<\n  WithReadonly<\n    TValue,\n    WithQuestionMarks<Record<InferOutput<TKey>, InferOutput<TValue>>>\n  >\n>;\n"
  },
  {
    "path": "library/src/schemas/set/index.ts",
    "content": "export * from './set.ts';\nexport * from './setAsync.ts';\nexport type { SetIssue } from './types.ts';\n"
  },
  {
    "path": "library/src/schemas/set/set.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { OptionalSchema } from '../optional/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { set, type SetSchema } from './set.ts';\nimport type { SetIssue } from './types.ts';\n\ndescribe('set', () => {\n  describe('should return schema object', () => {\n    const value = string();\n    type Value = typeof value;\n\n    test('with undefined message', () => {\n      type Schema = SetSchema<Value, undefined>;\n      expectTypeOf(set(value)).toEqualTypeOf<Schema>();\n      expectTypeOf(set(value, undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(set(value, 'message')).toEqualTypeOf<\n        SetSchema<Value, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(set(value, () => 'message')).toEqualTypeOf<\n        SetSchema<Value, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = SetSchema<\n      OptionalSchema<StringSchema<undefined>, 'foo'>,\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<\n        Set<string | undefined>\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<Set<string>>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        SetIssue | StringIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/set/set.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { string, type StringIssue } from '../string/index.ts';\nimport { set, type SetSchema } from './set.ts';\nimport type { SetIssue } from './types.ts';\n\ndescribe('set', () => {\n  describe('should return schema object', () => {\n    const value = string();\n    type Value = typeof value;\n    const baseSchema: Omit<SetSchema<Value, never>, 'message'> = {\n      kind: 'schema',\n      type: 'set',\n      reference: set,\n      expects: 'Set',\n      value,\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: SetSchema<Value, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(set(value)).toStrictEqual(schema);\n      expect(set(value, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(set(value, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies SetSchema<Value, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(set(value, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies SetSchema<Value, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = set(string());\n\n    test('for empty set', () => {\n      expectNoSchemaIssue(schema, [new Set()]);\n    });\n\n    test('for simple set', () => {\n      expectNoSchemaIssue(schema, [new Set(['foo', 'bar', 'baz'])]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = set(string(), 'message');\n    const baseIssue: Omit<SetIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'set',\n      expected: 'Set',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', 'abc', '123']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    test('for arrays', () => {\n      expectSchemaIssue(schema, baseIssue, [[], ['value']]);\n    });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n\n    test('for objects', () => {\n      expectSchemaIssue(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n\n  describe('should return dataset without nested issues', () => {\n    const schema = set(string());\n\n    test('for simple set', () => {\n      expectNoSchemaIssue(schema, [new Set(['foo', 'bar', 'baz'])]);\n    });\n\n    test('for nested set', () => {\n      expectNoSchemaIssue(set(schema), [\n        new Set([new Set(['foo', 'bar']), new Set(['baz'])]),\n      ]);\n    });\n  });\n\n  describe('should return dataset with nested issues', () => {\n    const schema = set(string());\n\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    const stringIssue: StringIssue = {\n      ...baseInfo,\n      kind: 'schema',\n      type: 'string',\n      input: 123,\n      expected: 'string',\n      received: '123',\n      path: [\n        {\n          type: 'set',\n          origin: 'value',\n          input: new Set(['foo', 123, 'baz', null]),\n          key: null,\n          value: 123,\n        },\n      ],\n    };\n\n    test('for wrong values', () => {\n      expect(\n        schema['~run']({ value: new Set(['foo', 123, 'baz', null]) }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: new Set(['foo', 123, 'baz', null]),\n        issues: [\n          stringIssue,\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: null,\n            expected: 'string',\n            received: 'null',\n            path: [\n              {\n                type: 'set',\n                origin: 'value',\n                input: new Set(['foo', 123, 'baz', null]),\n                key: null,\n                value: null,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('with abort early', () => {\n      expect(\n        schema['~run'](\n          { value: new Set(['foo', 123, 'baz', null]) },\n          { abortEarly: true }\n        )\n      ).toStrictEqual({\n        typed: false,\n        value: new Set(['foo']),\n        issues: [{ ...stringIssue, abortEarly: true }],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for wrong nested values', () => {\n      const nestedSchema = set(schema);\n      const input = new Set([new Set([123, 'foo']), 'bar', new Set()]);\n      expect(nestedSchema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: 123,\n            expected: 'string',\n            received: '123',\n            path: [\n              {\n                type: 'set',\n                origin: 'value',\n                input,\n                key: null,\n                value: new Set([123, 'foo']),\n              },\n              {\n                type: 'set',\n                origin: 'value',\n                input: new Set([123, 'foo']),\n                key: null,\n                value: 123,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'set',\n            input: 'bar',\n            expected: 'Set',\n            received: '\"bar\"',\n            path: [\n              {\n                type: 'set',\n                origin: 'value',\n                input,\n                key: null,\n                value: 'bar',\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof nestedSchema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/set/set.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  InferIssue,\n  OutputDataset,\n  SetPathItem,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\nimport type { InferSetInput, InferSetOutput, SetIssue } from './types.ts';\n\n/**\n * Set schema interface.\n */\nexport interface SetSchema<\n  TValue extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  TMessage extends ErrorMessage<SetIssue> | undefined,\n> extends BaseSchema<\n    InferSetInput<TValue>,\n    InferSetOutput<TValue>,\n    SetIssue | InferIssue<TValue>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'set';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof set;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Set';\n  /**\n   * The set value schema.\n   */\n  readonly value: TValue;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a set schema.\n *\n * @param value The value schema.\n *\n * @returns A set schema.\n */\nexport function set<\n  const TValue extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n>(value: TValue): SetSchema<TValue, undefined>;\n\n/**\n * Creates a set schema.\n *\n * @param value The value schema.\n * @param message The error message.\n *\n * @returns A set schema.\n */\nexport function set<\n  const TValue extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TMessage extends ErrorMessage<SetIssue> | undefined,\n>(value: TValue, message: TMessage): SetSchema<TValue, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function set(\n  value: BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  message?: ErrorMessage<SetIssue>\n): SetSchema<\n  BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  ErrorMessage<SetIssue> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'set',\n    reference: set,\n    expects: 'Set',\n    async: false,\n    value,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      // Get input value from dataset\n      const input = dataset.value;\n\n      // If root type is valid, check nested types\n      if (input instanceof Set) {\n        // Set typed to `true` and value to empty set\n        // @ts-expect-error\n        dataset.typed = true;\n        dataset.value = new Set();\n\n        // Parse schema of each set value\n        for (const inputValue of input) {\n          const valueDataset = this.value['~run'](\n            { value: inputValue },\n            config\n          );\n\n          // If there are issues, capture them\n          if (valueDataset.issues) {\n            // Create set path item\n            const pathItem: SetPathItem = {\n              type: 'set',\n              origin: 'value',\n              input,\n              key: null,\n              value: inputValue,\n            };\n\n            // Add modified item dataset issues to issues\n            for (const issue of valueDataset.issues) {\n              if (issue.path) {\n                issue.path.unshift(pathItem);\n              } else {\n                // @ts-expect-error\n                issue.path = [pathItem];\n              }\n              // @ts-expect-error\n              dataset.issues?.push(issue);\n            }\n            if (!dataset.issues) {\n              // @ts-expect-error\n              dataset.issues = valueDataset.issues;\n            }\n\n            // If necessary, abort early\n            if (config.abortEarly) {\n              dataset.typed = false;\n              break;\n            }\n          }\n\n          // If not typed, set typed to `false`\n          if (!valueDataset.typed) {\n            dataset.typed = false;\n          }\n\n          // Add value to dataset\n          // @ts-expect-error\n          dataset.value.add(valueDataset.value);\n        }\n\n        // Otherwise, add set issue\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        Set<unknown>,\n        SetIssue | BaseIssue<unknown>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/set/setAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { OptionalSchema } from '../optional/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { setAsync, type SetSchemaAsync } from './setAsync.ts';\nimport type { SetIssue } from './types.ts';\n\ndescribe('setAsync', () => {\n  describe('should return schema object', () => {\n    const value = string();\n    type Value = typeof value;\n\n    test('with undefined message', () => {\n      type Schema = SetSchemaAsync<Value, undefined>;\n      expectTypeOf(setAsync(value)).toEqualTypeOf<Schema>();\n      expectTypeOf(setAsync(value, undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(setAsync(value, 'message')).toEqualTypeOf<\n        SetSchemaAsync<Value, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(setAsync(value, () => 'message')).toEqualTypeOf<\n        SetSchemaAsync<Value, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = SetSchemaAsync<\n      OptionalSchema<StringSchema<undefined>, 'foo'>,\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<\n        Set<string | undefined>\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<Set<string>>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        SetIssue | StringIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/set/setAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport {\n  expectNoSchemaIssueAsync,\n  expectSchemaIssueAsync,\n} from '../../vitest/index.ts';\nimport { string, type StringIssue } from '../string/index.ts';\nimport { setAsync, type SetSchemaAsync } from './setAsync.ts';\nimport type { SetIssue } from './types.ts';\n\ndescribe('setAsync', () => {\n  describe('should return schema object', () => {\n    const value = string();\n    type Value = typeof value;\n    const baseSchema: Omit<SetSchemaAsync<Value, never>, 'message'> = {\n      kind: 'schema',\n      type: 'set',\n      reference: setAsync,\n      expects: 'Set',\n      value,\n      async: true,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: SetSchemaAsync<Value, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(setAsync(value)).toStrictEqual(schema);\n      expect(setAsync(value, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(setAsync(value, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies SetSchemaAsync<Value, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(setAsync(value, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies SetSchemaAsync<Value, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = setAsync(string());\n\n    test('for empty setAsync', async () => {\n      await expectNoSchemaIssueAsync(schema, [new Set()]);\n    });\n\n    test('for simple setAsync', async () => {\n      await expectNoSchemaIssueAsync(schema, [new Set(['foo', 'bar', 'baz'])]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = setAsync(string(), 'message');\n    const baseIssue: Omit<SetIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'set',\n      expected: 'Set',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, ['', 'abc', '123']);\n    });\n\n    test('for symbols', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        Symbol(),\n        Symbol('foo'),\n      ]);\n    });\n\n    // Complex types\n\n    test('for arrays', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [[], ['value']]);\n    });\n\n    test('for functions', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        () => {},\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        function () {},\n      ]);\n    });\n\n    test('for objects', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n\n  describe('should return dataset without nested issues', () => {\n    const schema = setAsync(string());\n\n    test('for simple setAsync', async () => {\n      await expectNoSchemaIssueAsync(schema, [new Set(['foo', 'bar', 'baz'])]);\n    });\n\n    test('for nested setAsync', async () => {\n      await expectNoSchemaIssueAsync(setAsync(schema), [\n        new Set([new Set(['foo', 'bar']), new Set(['baz'])]),\n      ]);\n    });\n  });\n\n  describe('should return dataset with nested issues', () => {\n    const schema = setAsync(string());\n\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    const stringIssue: StringIssue = {\n      ...baseInfo,\n      kind: 'schema',\n      type: 'string',\n      input: 123,\n      expected: 'string',\n      received: '123',\n      path: [\n        {\n          type: 'set',\n          origin: 'value',\n          input: new Set(['foo', 123, 'baz', null]),\n          key: null,\n          value: 123,\n        },\n      ],\n    };\n\n    test('for wrong values', async () => {\n      expect(\n        await schema['~run']({ value: new Set(['foo', 123, 'baz', null]) }, {})\n      ).toStrictEqual({\n        typed: false,\n        value: new Set(['foo', 123, 'baz', null]),\n        issues: [\n          stringIssue,\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: null,\n            expected: 'string',\n            received: 'null',\n            path: [\n              {\n                type: 'set',\n                origin: 'value',\n                input: new Set(['foo', 123, 'baz', null]),\n                key: null,\n                value: null,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('with abort early', async () => {\n      expect(\n        await schema['~run'](\n          { value: new Set(['foo', 123, 'baz', null]) },\n          { abortEarly: true }\n        )\n      ).toStrictEqual({\n        typed: false,\n        value: new Set(['foo']),\n        issues: [{ ...stringIssue, abortEarly: true }],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for wrong nested values', async () => {\n      const nestedSchema = setAsync(schema);\n      const input = new Set([new Set([123, 'foo']), 'bar', new Set()]);\n      expect(await nestedSchema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: 123,\n            expected: 'string',\n            received: '123',\n            path: [\n              {\n                type: 'set',\n                origin: 'value',\n                input,\n                key: null,\n                value: new Set([123, 'foo']),\n              },\n              {\n                type: 'set',\n                origin: 'value',\n                input: new Set([123, 'foo']),\n                key: null,\n                value: 123,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'set',\n            input: 'bar',\n            expected: 'Set',\n            received: '\"bar\"',\n            path: [\n              {\n                type: 'set',\n                origin: 'value',\n                input,\n                key: null,\n                value: 'bar',\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof nestedSchema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/set/setAsync.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  ErrorMessage,\n  InferIssue,\n  OutputDataset,\n  SetPathItem,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\nimport type { set } from './set.ts';\nimport type { InferSetInput, InferSetOutput, SetIssue } from './types.ts';\n\n/**\n * Set schema async interface.\n */\nexport interface SetSchemaAsync<\n  TValue extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  TMessage extends ErrorMessage<SetIssue> | undefined,\n> extends BaseSchemaAsync<\n    InferSetInput<TValue>,\n    InferSetOutput<TValue>,\n    SetIssue | InferIssue<TValue>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'set';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof set | typeof setAsync;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Set';\n  /**\n   * The set value schema.\n   */\n  readonly value: TValue;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a set schema.\n *\n * @param value The value schema.\n *\n * @returns A set schema.\n */\nexport function setAsync<\n  const TValue extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(value: TValue): SetSchemaAsync<TValue, undefined>;\n\n/**\n * Creates a set schema.\n *\n * @param value The value schema.\n * @param message The error message.\n *\n * @returns A set schema.\n */\nexport function setAsync<\n  const TValue extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TMessage extends ErrorMessage<SetIssue> | undefined,\n>(value: TValue, message: TMessage): SetSchemaAsync<TValue, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function setAsync(\n  value:\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  message?: ErrorMessage<SetIssue>\n): SetSchemaAsync<\n  | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n  | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  ErrorMessage<SetIssue> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'set',\n    reference: setAsync,\n    expects: 'Set',\n    async: true,\n    value,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    async '~run'(dataset, config) {\n      // Get input value from dataset\n      const input = dataset.value;\n\n      // If root type is valid, check nested types\n      if (input instanceof Set) {\n        // Set typed to `true` and value to empty set\n        // @ts-expect-error\n        dataset.typed = true;\n        dataset.value = new Set();\n\n        // Parse schema of each set value\n        const valueDatasets = await Promise.all(\n          [...input].map(\n            async (inputValue) =>\n              [\n                inputValue,\n                await this.value['~run']({ value: inputValue }, config),\n              ] as const\n          )\n        );\n\n        // Process dataset of each set value\n        for (const [inputValue, valueDataset] of valueDatasets) {\n          // If there are issues, capture them\n          if (valueDataset.issues) {\n            // Create set path item\n            const pathItem: SetPathItem = {\n              type: 'set',\n              origin: 'value',\n              input,\n              key: null,\n              value: inputValue,\n            };\n\n            // Add modified item dataset issues to issues\n            for (const issue of valueDataset.issues) {\n              if (issue.path) {\n                issue.path.unshift(pathItem);\n              } else {\n                // @ts-expect-error\n                issue.path = [pathItem];\n              }\n              // @ts-expect-error\n              dataset.issues?.push(issue);\n            }\n            if (!dataset.issues) {\n              // @ts-expect-error\n              dataset.issues = valueDataset.issues;\n            }\n\n            // If necessary, abort early\n            if (config.abortEarly) {\n              dataset.typed = false;\n              break;\n            }\n          }\n\n          // If not typed, set typed to `false`\n          if (!valueDataset.typed) {\n            dataset.typed = false;\n          }\n\n          // Add value to dataset\n          // @ts-expect-error\n          dataset.value.add(valueDataset.value);\n        }\n\n        // Otherwise, add set issue\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        Set<unknown>,\n        SetIssue | BaseIssue<unknown>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/set/types.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  InferInput,\n  InferOutput,\n} from '../../types/index.ts';\n\n/**\n * Set issue interface.\n */\nexport interface SetIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'set';\n  /**\n   * The expected property.\n   */\n  readonly expected: 'Set';\n}\n\n/**\n * Infer set input type.\n */\nexport type InferSetInput<\n  TValue extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n> = Set<InferInput<TValue>>;\n\n/**\n * Infer set output type.\n */\nexport type InferSetOutput<\n  TValue extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n> = Set<InferOutput<TValue>>;\n"
  },
  {
    "path": "library/src/schemas/strictObject/index.ts",
    "content": "export * from './strictObject.ts';\nexport * from './strictObjectAsync.ts';\nexport * from './types.ts';\n"
  },
  {
    "path": "library/src/schemas/strictObject/strictObject.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type {\n  Brand,\n  BrandAction,\n  DescriptionAction,\n  ReadonlyAction,\n  TransformAction,\n} from '../../actions/index.ts';\nimport type { SchemaWithPipe } from '../../methods/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { AnySchema } from '../any/index.ts';\nimport type { CustomIssue, CustomSchema } from '../custom/index.ts';\nimport type { ExactOptionalSchema } from '../exactOptional/index.ts';\nimport type { NullishSchema } from '../nullish/index.ts';\nimport type { NumberIssue, NumberSchema } from '../number/index.ts';\nimport type { ObjectIssue, ObjectSchema } from '../object/index.ts';\nimport type { OptionalSchema } from '../optional/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport type { UndefinedableSchema } from '../undefinedable/index.ts';\nimport type { UnknownSchema } from '../unknown/index.ts';\nimport { strictObject, type StrictObjectSchema } from './strictObject.ts';\nimport type { StrictObjectIssue } from './types.ts';\n\ndescribe('strictObject', () => {\n  describe('should return schema object', () => {\n    const entries = { key: string() };\n    type Entries = typeof entries;\n\n    test('with undefined message', () => {\n      type Schema = StrictObjectSchema<Entries, undefined>;\n      expectTypeOf(strictObject(entries)).toEqualTypeOf<Schema>();\n      expectTypeOf(strictObject(entries, undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(strictObject(entries, 'message')).toEqualTypeOf<\n        StrictObjectSchema<Entries, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(strictObject(entries, () => 'message')).toEqualTypeOf<\n        StrictObjectSchema<Entries, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = StrictObjectSchema<\n      {\n        key00: StringSchema<undefined>;\n        key01: AnySchema;\n        key02: UnknownSchema;\n        key03: ObjectSchema<{ key: NumberSchema<undefined> }, undefined>;\n        key04: SchemaWithPipe<\n          [StringSchema<undefined>, ReadonlyAction<string>]\n        >;\n        key05: UndefinedableSchema<StringSchema<undefined>, 'bar'>;\n        key06: SchemaWithPipe<\n          [\n            OptionalSchema<StringSchema<undefined>, undefined>,\n            TransformAction<undefined | string, number>,\n          ]\n        >;\n        key07: CustomSchema<`a${string}` | `b${string}`, undefined>;\n        key08: SchemaWithPipe<\n          [StringSchema<undefined>, BrandAction<string, 'foo'>]\n        >;\n\n        // ExactOptionalSchema\n        key10: ExactOptionalSchema<StringSchema<undefined>, undefined>;\n        key11: ExactOptionalSchema<StringSchema<undefined>, 'foo'>;\n        key12: ExactOptionalSchema<StringSchema<undefined>, () => 'foo'>;\n\n        // OptionalSchema\n        key20: OptionalSchema<StringSchema<undefined>, undefined>;\n        key21: OptionalSchema<StringSchema<undefined>, 'foo'>;\n        key22: OptionalSchema<StringSchema<undefined>, () => undefined>;\n        key23: OptionalSchema<StringSchema<undefined>, () => 'foo'>;\n\n        // NullishSchema\n        key30: NullishSchema<StringSchema<undefined>, undefined>;\n        key31: NullishSchema<StringSchema<undefined>, null>;\n        key32: NullishSchema<StringSchema<undefined>, 'foo'>;\n        key33: NullishSchema<StringSchema<undefined>, () => undefined>;\n        key34: NullishSchema<StringSchema<undefined>, () => null>;\n        key35: NullishSchema<StringSchema<undefined>, () => 'foo'>;\n\n        // SchemaWithPipe\n        key40: SchemaWithPipe<\n          [ExactOptionalSchema<StringSchema<undefined>, undefined>]\n        >;\n        key41: SchemaWithPipe<\n          [\n            ExactOptionalSchema<StringSchema<undefined>, undefined>,\n            DescriptionAction<string, 'foo'>,\n          ]\n        >;\n        key42: SchemaWithPipe<\n          [OptionalSchema<StringSchema<undefined>, undefined>]\n        >;\n        key43: SchemaWithPipe<\n          [\n            OptionalSchema<StringSchema<undefined>, undefined>,\n            DescriptionAction<string | undefined, 'foo'>,\n          ]\n        >;\n        key44: SchemaWithPipe<\n          [NullishSchema<StringSchema<undefined>, undefined>]\n        >;\n        key45: SchemaWithPipe<\n          [\n            NullishSchema<StringSchema<undefined>, undefined>,\n            DescriptionAction<string | null | undefined, 'foo'>,\n          ]\n        >;\n        key46: SchemaWithPipe<\n          [\n            NullishSchema<StringSchema<undefined>, undefined>,\n            TransformAction<string | null | undefined, string[]>,\n          ]\n        >;\n      },\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<{\n        key00: string;\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        key01: any;\n        key02: unknown;\n        key03: { key: number };\n        key04: string;\n        key05: string | undefined;\n        key06?: string | undefined;\n        key07: `a${string}` | `b${string}`;\n        key08: string;\n\n        // ExactOptionalSchema\n        key10?: string;\n        key11?: string;\n        key12?: string;\n\n        // OptionalSchema\n        key20?: string | undefined;\n        key21?: string | undefined;\n        key22?: string | undefined;\n        key23?: string | undefined;\n\n        // NullishSchema\n        key30?: string | null | undefined;\n        key31?: string | null | undefined;\n        key32?: string | null | undefined;\n        key33?: string | null | undefined;\n        key34?: string | null | undefined;\n        key35?: string | null | undefined;\n\n        // SchemaWithPipe\n        key40?: string;\n        key41?: string;\n        key42?: string | undefined;\n        key43?: string | undefined;\n        key44?: string | null | undefined;\n        key45?: string | null | undefined;\n        key46?: string | null | undefined;\n      }>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<{\n        key00: string;\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        key01: any;\n        key02: unknown;\n        key03: { key: number };\n        readonly key04: string;\n        key05: string;\n        key06?: number;\n        key07: `a${string}` | `b${string}`;\n        key08: string & Brand<'foo'>;\n\n        // ExactOptionalSchema\n        key10?: string;\n        key11: string;\n        key12: string;\n\n        // OptionalSchema\n        key20?: string | undefined;\n        key21: string;\n        key22: string | undefined;\n        key23: string;\n\n        // NullishSchema\n        key30?: string | null | undefined;\n        key31: string | null;\n        key32: string;\n        key33: string | undefined;\n        key34: string | null;\n        key35: string;\n\n        // SchemaWithPipe\n        key40?: string;\n        key41?: string;\n        key42?: string | undefined;\n        key43?: string | undefined;\n        key44?: string | null | undefined;\n        key45?: string | null | undefined;\n        key46?: string[];\n      }>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        | StrictObjectIssue\n        | ObjectIssue\n        | StringIssue\n        | NumberIssue\n        | CustomIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/strictObject/strictObject.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { fallback } from '../../methods/index.ts';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { any } from '../any/index.ts';\nimport { exactOptional } from '../exactOptional/index.ts';\nimport { nullish } from '../nullish/index.ts';\nimport { number } from '../number/index.ts';\nimport { object } from '../object/index.ts';\nimport { optional } from '../optional/index.ts';\nimport { string } from '../string/index.ts';\nimport { unknown } from '../unknown/index.ts';\nimport { strictObject, type StrictObjectSchema } from './strictObject.ts';\nimport type { StrictObjectIssue } from './types.ts';\n\ndescribe('strictObject', () => {\n  describe('should return schema object', () => {\n    const entries = { key: string() };\n    type Entries = typeof entries;\n    const baseSchema: Omit<StrictObjectSchema<Entries, never>, 'message'> = {\n      kind: 'schema',\n      type: 'strict_object',\n      reference: strictObject,\n      expects: 'Object',\n      entries,\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: StrictObjectSchema<Entries, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(strictObject(entries)).toStrictEqual(schema);\n      expect(strictObject(entries, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(strictObject(entries, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies StrictObjectSchema<Entries, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(strictObject(entries, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies StrictObjectSchema<Entries, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for empty object', () => {\n      expectNoSchemaIssue(strictObject({}), [{}]);\n    });\n\n    test('for simple object', () => {\n      expectNoSchemaIssue(strictObject({ key1: string(), key2: number() }), [\n        { key1: 'foo', key2: 123 },\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = strictObject({}, 'message');\n    const baseIssue: Omit<StrictObjectIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'strict_object',\n      expected: 'Object',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', 'abc', '123']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    // TODO: Enable this test again in case we find a reliable way to check for\n    // plain objects\n    // test('for arrays', () => {\n    //   expectSchemaIssue(schema, baseIssue, [[], ['value']]);\n    // });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n  });\n\n  describe('should return dataset without nested issues', () => {\n    test('for simple object', () => {\n      expectNoSchemaIssue(strictObject({ key1: string(), key2: number() }), [\n        { key1: 'foo', key2: 123 },\n      ]);\n    });\n\n    test('for nested object', () => {\n      expectNoSchemaIssue(strictObject({ nested: object({ key: string() }) }), [\n        { nested: { key: 'foo' } },\n      ]);\n    });\n\n    test('for missing entries with fallback', () => {\n      expect(\n        strictObject({\n          key1: fallback(string(), 'foo'),\n          key2: fallback(number(), () => 123),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key1: 'foo', key2: 123 },\n      });\n    });\n\n    test('for exact optional entry', () => {\n      expectNoSchemaIssue(strictObject({ key: exactOptional(string()) }), [\n        {},\n        { key: 'foo' },\n      ]);\n    });\n\n    test('for exact optional entry with default', () => {\n      expect(\n        strictObject({ key: exactOptional(string(), 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        strictObject({ key: exactOptional(string(), () => 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n    });\n\n    test('for optional entry', () => {\n      expectNoSchemaIssue(strictObject({ key: optional(string()) }), [\n        {},\n        { key: undefined },\n        { key: 'foo' },\n      ]);\n    });\n\n    test('for optional entry with default', () => {\n      expect(\n        strictObject({ key: optional(string(), 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        strictObject({ key: optional(string(), () => 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        strictObject({\n          key: optional(string(), () => undefined),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n    });\n\n    test('for nullish entry', () => {\n      expectNoSchemaIssue(strictObject({ key: nullish(number()) }), [\n        {},\n        { key: undefined },\n        { key: null },\n        { key: 123 },\n      ]);\n    });\n\n    test('for nullish entry with default', () => {\n      expect(\n        strictObject({ key: nullish(string(), 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        strictObject({ key: nullish(string(), null) })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: null },\n      });\n      expect(\n        strictObject({ key: nullish(string(), () => 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        strictObject({ key: nullish(string(), () => null) })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: null },\n      });\n      expect(\n        strictObject({ key: nullish(string(), () => undefined) })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n    });\n  });\n\n  describe('should return dataset with nested issues', () => {\n    const schema = strictObject({\n      key1: string(),\n      key2: number(),\n      nested: strictObject({ key1: string(), key2: number() }),\n    });\n\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    test('for missing entries', () => {\n      const input = { key2: 123 };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'strict_object',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'strict_object',\n            input: undefined,\n            expected: '\"nested\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'nested',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for missing nested entries', () => {\n      const input = { key1: 'value', nested: {} };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'strict_object',\n            input: undefined,\n            expected: '\"key2\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'key2',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'strict_object',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: {},\n              },\n              {\n                type: 'object',\n                origin: 'key',\n                input: input.nested,\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'strict_object',\n            input: undefined,\n            expected: '\"key2\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: {},\n              },\n              {\n                type: 'object',\n                origin: 'key',\n                input: input.nested,\n                key: 'key2',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for missing entries with abort early', () => {\n      const input = { key2: 123 };\n      expect(\n        schema['~run']({ value: input }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: {},\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'strict_object',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n            abortEarly: true,\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for missing any and unknown entry', () => {\n      const schema = strictObject({ key1: any(), key2: unknown() });\n      expect(schema['~run']({ value: {} }, {})).toStrictEqual({\n        typed: false,\n        value: {},\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'strict_object',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input: {},\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'strict_object',\n            input: undefined,\n            expected: '\"key2\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input: {},\n                key: 'key2',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid entries', () => {\n      const input = { key1: false, key2: 123, nested: null };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: false,\n            expected: 'string',\n            received: 'false',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key1',\n                value: false,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'strict_object',\n            input: null,\n            expected: 'Object',\n            received: 'null',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: null,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid nested entries', () => {\n      const input = {\n        key1: 'value',\n        key2: 'value',\n        nested: {\n          key1: 123,\n          key2: null,\n        },\n      };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: 'value',\n            expected: 'number',\n            received: '\"value\"',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key2',\n                value: input.key2,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: 123,\n            expected: 'string',\n            received: '123',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: input.nested,\n              },\n              {\n                type: 'object',\n                origin: 'value',\n                input: input.nested,\n                key: 'key1',\n                value: input.nested.key1,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: null,\n            expected: 'number',\n            received: 'null',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: input.nested,\n              },\n              {\n                type: 'object',\n                origin: 'value',\n                input: input.nested,\n                key: 'key2',\n                value: input.nested.key2,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid entries with abort early', () => {\n      const input = { key1: false, key2: 123, nested: null };\n      expect(\n        schema['~run']({ value: input }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: {},\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: false,\n            expected: 'string',\n            received: 'false',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key1',\n                value: false,\n              },\n            ],\n            abortEarly: true,\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid exact optional entry', () => {\n      const schema = strictObject({ key: exactOptional(string()) });\n      const input = { key: undefined };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: undefined,\n            expected: 'string',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for unknown entries', () => {\n      const input = {\n        key1: 'foo',\n        key2: 123,\n        nested: { key1: 'foo', key2: 123 },\n        other1: 'foo',\n        other2: 123,\n      };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: { key1: 'foo', key2: 123, nested: { key1: 'foo', key2: 123 } },\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'strict_object',\n            input: 'other1',\n            expected: 'never',\n            received: '\"other1\"',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'other1',\n                value: input.other1,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/strictObject/strictObject.ts",
    "content": "import { getDefault, getFallback } from '../../methods/index.ts';\nimport type {\n  BaseSchema,\n  ErrorMessage,\n  InferObjectInput,\n  InferObjectIssue,\n  InferObjectOutput,\n  ObjectEntries,\n  ObjectPathItem,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\nimport type { StrictObjectIssue } from './types.ts';\n\n/**\n * Strict object schema interface.\n */\nexport interface StrictObjectSchema<\n  TEntries extends ObjectEntries,\n  TMessage extends ErrorMessage<StrictObjectIssue> | undefined,\n> extends BaseSchema<\n    InferObjectInput<TEntries>,\n    InferObjectOutput<TEntries>,\n    StrictObjectIssue | InferObjectIssue<TEntries>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'strict_object';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof strictObject;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Object';\n  /**\n   * The entries schema.\n   */\n  readonly entries: TEntries;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a strict object schema.\n *\n * @param entries The entries schema.\n *\n * @returns A strict object schema.\n */\nexport function strictObject<const TEntries extends ObjectEntries>(\n  entries: TEntries\n): StrictObjectSchema<TEntries, undefined>;\n\n/**\n * Creates a strict object schema.\n *\n * @param entries The entries schema.\n * @param message The error message.\n *\n * @returns A strict object schema.\n */\nexport function strictObject<\n  const TEntries extends ObjectEntries,\n  const TMessage extends ErrorMessage<StrictObjectIssue> | undefined,\n>(entries: TEntries, message: TMessage): StrictObjectSchema<TEntries, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function strictObject(\n  entries: ObjectEntries,\n  message?: ErrorMessage<StrictObjectIssue>\n): StrictObjectSchema<\n  ObjectEntries,\n  ErrorMessage<StrictObjectIssue> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'strict_object',\n    reference: strictObject,\n    expects: 'Object',\n    async: false,\n    entries,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      // Get input value from dataset\n      const input = dataset.value;\n\n      // If root type is valid, check nested types\n      if (input && typeof input === 'object') {\n        // Set typed to `true` and value to blank object\n        // @ts-expect-error\n        dataset.typed = true;\n        dataset.value = {};\n\n        // Process each object entry of schema\n        for (const key in this.entries) {\n          const valueSchema = this.entries[key];\n\n          // If key is present or its an optional schema with a default value,\n          // parse input of key or default value\n          if (\n            key in input ||\n            ((valueSchema.type === 'exact_optional' ||\n              valueSchema.type === 'optional' ||\n              valueSchema.type === 'nullish') &&\n              // @ts-expect-error\n              valueSchema.default !== undefined)\n          ) {\n            const value: unknown =\n              key in input\n                ? // @ts-expect-error\n                  input[key]\n                : getDefault(valueSchema);\n            const valueDataset = valueSchema['~run']({ value }, config);\n\n            // If there are issues, capture them\n            if (valueDataset.issues) {\n              // Create object path item\n              const pathItem: ObjectPathItem = {\n                type: 'object',\n                origin: 'value',\n                input: input as Record<string, unknown>,\n                key,\n                value,\n              };\n\n              // Add modified entry dataset issues to issues\n              for (const issue of valueDataset.issues) {\n                if (issue.path) {\n                  issue.path.unshift(pathItem);\n                } else {\n                  // @ts-expect-error\n                  issue.path = [pathItem];\n                }\n                // @ts-expect-error\n                dataset.issues?.push(issue);\n              }\n              if (!dataset.issues) {\n                // @ts-expect-error\n                dataset.issues = valueDataset.issues;\n              }\n\n              // If necessary, abort early\n              if (config.abortEarly) {\n                dataset.typed = false;\n                break;\n              }\n            }\n\n            // If not typed, set typed to `false`\n            if (!valueDataset.typed) {\n              dataset.typed = false;\n            }\n\n            // Add entry to dataset\n            // @ts-expect-error\n            dataset.value[key] = valueDataset.value;\n\n            // Otherwise, if key is missing but has a fallback, use it\n            // @ts-expect-error\n          } else if (valueSchema.fallback !== undefined) {\n            // @ts-expect-error\n            dataset.value[key] = getFallback(valueSchema);\n\n            // Otherwise, if key is missing and required, add issue\n          } else if (\n            valueSchema.type !== 'exact_optional' &&\n            valueSchema.type !== 'optional' &&\n            valueSchema.type !== 'nullish'\n          ) {\n            _addIssue(this, 'key', dataset, config, {\n              input: undefined,\n              expected: `\"${key}\"`,\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input: input as Record<string, unknown>,\n                  key,\n                  // @ts-expect-error\n                  value: input[key],\n                },\n              ],\n            });\n\n            // If necessary, abort early\n            if (config.abortEarly) {\n              break;\n            }\n          }\n        }\n\n        // Check input for unknown keys if necessary\n        if (!dataset.issues || !config.abortEarly) {\n          for (const key in input) {\n            if (!(key in this.entries)) {\n              _addIssue(this, 'key', dataset, config, {\n                input: key,\n                expected: 'never',\n                path: [\n                  {\n                    type: 'object',\n                    origin: 'key',\n                    input: input as Record<string, unknown>,\n                    key,\n                    // @ts-expect-error\n                    value: input[key],\n                  },\n                ],\n              });\n\n              // Hint: We intentionally break the loop after the first unknown\n              // entries. Otherwise, attackers could send large objects to\n              // exhaust device resources. If you want an issue for every\n              // unknown key, use the `objectWithRest` schema with `never` for\n              // the `rest` argument.\n              break;\n            }\n          }\n        }\n\n        // Otherwise, add object issue\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        InferObjectOutput<ObjectEntries>,\n        StrictObjectIssue | InferObjectIssue<ObjectEntries>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/strictObject/strictObjectAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type {\n  Brand,\n  BrandAction,\n  DescriptionAction,\n  ReadonlyAction,\n  TransformAction,\n} from '../../actions/index.ts';\nimport type {\n  SchemaWithPipe,\n  SchemaWithPipeAsync,\n} from '../../methods/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport type { AnySchema } from '../any/index.ts';\nimport type { CustomIssue, CustomSchemaAsync } from '../custom/index.ts';\nimport type {\n  ExactOptionalSchema,\n  ExactOptionalSchemaAsync,\n} from '../exactOptional/index.ts';\nimport type { NullishSchema, NullishSchemaAsync } from '../nullish/index.ts';\nimport type { NumberIssue, NumberSchema } from '../number/index.ts';\nimport type { ObjectIssue, ObjectSchemaAsync } from '../object/index.ts';\nimport type { OptionalSchema, OptionalSchemaAsync } from '../optional/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport type { UndefinedableSchema } from '../undefinedable/index.ts';\nimport type { UnknownSchema } from '../unknown/index.ts';\nimport {\n  strictObjectAsync,\n  type StrictObjectSchemaAsync,\n} from './strictObjectAsync.ts';\nimport type { StrictObjectIssue } from './types.ts';\n\ndescribe('strictObjectAsync', () => {\n  describe('should return schema object', () => {\n    const entries = { key: string() };\n    type Entries = typeof entries;\n\n    test('with undefined message', () => {\n      type Schema = StrictObjectSchemaAsync<Entries, undefined>;\n      expectTypeOf(strictObjectAsync(entries)).toEqualTypeOf<Schema>();\n      expectTypeOf(\n        strictObjectAsync(entries, undefined)\n      ).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(strictObjectAsync(entries, 'message')).toEqualTypeOf<\n        StrictObjectSchemaAsync<Entries, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(strictObjectAsync(entries, () => 'message')).toEqualTypeOf<\n        StrictObjectSchemaAsync<Entries, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = StrictObjectSchemaAsync<\n      {\n        key00: StringSchema<undefined>;\n        key01: AnySchema;\n        key02: UnknownSchema;\n        key03: ObjectSchemaAsync<{ key: NumberSchema<undefined> }, undefined>;\n        key04: SchemaWithPipe<\n          [StringSchema<undefined>, ReadonlyAction<string>]\n        >;\n        key05: UndefinedableSchema<StringSchema<undefined>, 'bar'>;\n        key06: SchemaWithPipe<\n          [\n            OptionalSchema<StringSchema<undefined>, undefined>,\n            TransformAction<undefined | string, number>,\n          ]\n        >;\n        key07: SchemaWithPipeAsync<\n          [\n            OptionalSchema<StringSchema<undefined>, undefined>,\n            TransformAction<undefined | string, number>,\n          ]\n        >;\n        key08: SchemaWithPipeAsync<\n          [\n            OptionalSchemaAsync<StringSchema<undefined>, undefined>,\n            TransformAction<undefined | string, number>,\n          ]\n        >;\n        key09: CustomSchemaAsync<`a${string}` | `b${string}`, undefined>;\n        key10: SchemaWithPipe<\n          [StringSchema<undefined>, BrandAction<string, 'foo'>]\n        >;\n\n        // ExactOptionalSchema\n        key20: ExactOptionalSchema<StringSchema<undefined>, undefined>;\n        key21: ExactOptionalSchema<StringSchema<undefined>, 'foo'>;\n        key22: ExactOptionalSchema<StringSchema<undefined>, () => 'foo'>;\n\n        // ExactOptionalSchemaAsync\n        key30: ExactOptionalSchemaAsync<StringSchema<undefined>, undefined>;\n        key31: ExactOptionalSchemaAsync<StringSchema<undefined>, 'foo'>;\n        key32: ExactOptionalSchemaAsync<StringSchema<undefined>, () => 'foo'>;\n        key33: ExactOptionalSchemaAsync<\n          StringSchema<undefined>,\n          () => Promise<'foo'>\n        >;\n\n        // OptionalSchema\n        key40: OptionalSchema<StringSchema<undefined>, undefined>;\n        key41: OptionalSchema<StringSchema<undefined>, 'foo'>;\n        key42: OptionalSchema<StringSchema<undefined>, () => undefined>;\n        key43: OptionalSchema<StringSchema<undefined>, () => 'foo'>;\n\n        // OptionalSchemaAsync\n        key50: OptionalSchemaAsync<StringSchema<undefined>, undefined>;\n        key51: OptionalSchemaAsync<StringSchema<undefined>, 'foo'>;\n        key52: OptionalSchemaAsync<StringSchema<undefined>, () => undefined>;\n        key53: OptionalSchemaAsync<StringSchema<undefined>, () => 'foo'>;\n        key54: OptionalSchemaAsync<\n          StringSchema<undefined>,\n          () => Promise<undefined>\n        >;\n        key55: OptionalSchemaAsync<\n          StringSchema<undefined>,\n          () => Promise<'foo'>\n        >;\n\n        // NullishSchema\n        key60: NullishSchema<StringSchema<undefined>, undefined>;\n        key61: NullishSchema<StringSchema<undefined>, null>;\n        key62: NullishSchema<StringSchema<undefined>, 'foo'>;\n        key63: NullishSchema<StringSchema<undefined>, () => undefined>;\n        key64: NullishSchema<StringSchema<undefined>, () => null>;\n        key65: NullishSchema<StringSchema<undefined>, () => 'foo'>;\n\n        // NullishSchemaAsync\n        key70: NullishSchemaAsync<StringSchema<undefined>, undefined>;\n        key71: NullishSchemaAsync<StringSchema<undefined>, null>;\n        key72: NullishSchemaAsync<StringSchema<undefined>, 'foo'>;\n        key73: NullishSchemaAsync<StringSchema<undefined>, () => undefined>;\n        key74: NullishSchemaAsync<StringSchema<undefined>, () => null>;\n        key75: NullishSchemaAsync<StringSchema<undefined>, () => 'foo'>;\n        key76: NullishSchemaAsync<\n          StringSchema<undefined>,\n          () => Promise<undefined>\n        >;\n        key77: NullishSchemaAsync<StringSchema<undefined>, () => Promise<null>>;\n        key78: NullishSchemaAsync<\n          StringSchema<undefined>,\n          () => Promise<'foo'>\n        >;\n\n        // SchemaWithPipe\n        key80: SchemaWithPipe<\n          [ExactOptionalSchema<StringSchema<undefined>, undefined>]\n        >;\n        key81: SchemaWithPipe<\n          [\n            ExactOptionalSchema<StringSchema<undefined>, undefined>,\n            DescriptionAction<string, 'foo'>,\n          ]\n        >;\n        key82: SchemaWithPipe<\n          [OptionalSchema<StringSchema<undefined>, undefined>]\n        >;\n        key83: SchemaWithPipe<\n          [\n            OptionalSchema<StringSchema<undefined>, undefined>,\n            DescriptionAction<string | undefined, 'foo'>,\n          ]\n        >;\n        key84: SchemaWithPipe<\n          [NullishSchema<StringSchema<undefined>, undefined>]\n        >;\n        key85: SchemaWithPipe<\n          [\n            NullishSchema<StringSchema<undefined>, undefined>,\n            DescriptionAction<string | null | undefined, 'foo'>,\n          ]\n        >;\n        key86: SchemaWithPipe<\n          [\n            NullishSchema<StringSchema<undefined>, undefined>,\n            TransformAction<string | null | undefined, string[]>,\n          ]\n        >;\n        key87: SchemaWithPipeAsync<\n          [\n            NullishSchemaAsync<StringSchema<undefined>, undefined>,\n            TransformAction<string | null | undefined, string[]>,\n          ]\n        >;\n      },\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<{\n        key00: string;\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        key01: any;\n        key02: unknown;\n        key03: { key: number };\n        key04: string;\n        key05: string | undefined;\n        key06?: string | undefined;\n        key07?: string | undefined;\n        key08?: string | undefined;\n        key09: `a${string}` | `b${string}`;\n        key10: string;\n\n        // ExactOptionalSchema\n        key20?: string;\n        key21?: string;\n        key22?: string;\n\n        // ExactOptionalSchemaAsync\n        key30?: string;\n        key31?: string;\n        key32?: string;\n        key33?: string;\n\n        // OptionalSchema\n        key40?: string | undefined;\n        key41?: string | undefined;\n        key42?: string | undefined;\n        key43?: string | undefined;\n\n        // OptionalSchemaAsync\n        key50?: string | undefined;\n        key51?: string | undefined;\n        key52?: string | undefined;\n        key53?: string | undefined;\n        key54?: string | undefined;\n        key55?: string | undefined;\n\n        // NullishSchema\n        key60?: string | null | undefined;\n        key61?: string | null | undefined;\n        key62?: string | null | undefined;\n        key63?: string | null | undefined;\n        key64?: string | null | undefined;\n        key65?: string | null | undefined;\n\n        // NullishSchemaAsync\n        key70?: string | null | undefined;\n        key71?: string | null | undefined;\n        key72?: string | null | undefined;\n        key73?: string | null | undefined;\n        key74?: string | null | undefined;\n        key75?: string | null | undefined;\n        key76?: string | null | undefined;\n        key77?: string | null | undefined;\n        key78?: string | null | undefined;\n\n        // SchemaWithPipe\n        key80?: string;\n        key81?: string;\n        key82?: string | undefined;\n        key83?: string | undefined;\n        key84?: string | null | undefined;\n        key85?: string | null | undefined;\n        key86?: string | null | undefined;\n        key87?: string | null | undefined;\n      }>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<{\n        key00: string;\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        key01: any;\n        key02: unknown;\n        key03: { key: number };\n        readonly key04: string;\n        key05: string;\n        key06?: number;\n        key07?: number;\n        key08?: number;\n        key09: `a${string}` | `b${string}`;\n        key10: string & Brand<'foo'>;\n\n        // ExactOptionalSchema\n        key20?: string;\n        key21: string;\n        key22: string;\n\n        // ExactOptionalSchemaAsync\n        key30?: string;\n        key31: string;\n        key32: string;\n        key33: string;\n\n        // OptionalSchema\n        key40?: string | undefined;\n        key41: string;\n        key42: string | undefined;\n        key43: string;\n\n        // OptionalSchemaAsync\n        key50?: string | undefined;\n        key51: string;\n        key52: string | undefined;\n        key53: string;\n        key54: string | undefined;\n        key55: string;\n\n        // NullishSchema\n        key60?: string | null | undefined;\n        key61: string | null;\n        key62: string;\n        key63: string | undefined;\n        key64: string | null;\n        key65: string;\n\n        // NullishSchemaAsync\n        key70?: string | null | undefined;\n        key71: string | null;\n        key72: string;\n        key73: string | undefined;\n        key74: string | null;\n        key75: string;\n        key76: string | undefined;\n        key77: string | null;\n        key78: string;\n\n        // SchemaWithPipe\n        key80?: string;\n        key81?: string;\n        key82?: string | undefined;\n        key83?: string | undefined;\n        key84?: string | null | undefined;\n        key85?: string | null | undefined;\n        key86?: string[];\n        key87?: string[];\n      }>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        | StrictObjectIssue\n        | ObjectIssue\n        | StringIssue\n        | NumberIssue\n        | CustomIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/strictObject/strictObjectAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { fallback, fallbackAsync } from '../../methods/index.ts';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport {\n  expectNoSchemaIssueAsync,\n  expectSchemaIssueAsync,\n} from '../../vitest/index.ts';\nimport { any } from '../any/index.ts';\nimport { exactOptional, exactOptionalAsync } from '../exactOptional/index.ts';\nimport { nullish, nullishAsync } from '../nullish/index.ts';\nimport { number } from '../number/index.ts';\nimport { objectAsync } from '../object/index.ts';\nimport { optional, optionalAsync } from '../optional/index.ts';\nimport { string } from '../string/index.ts';\nimport { unknown } from '../unknown/index.ts';\nimport {\n  strictObjectAsync,\n  type StrictObjectSchemaAsync,\n} from './strictObjectAsync.ts';\nimport type { StrictObjectIssue } from './types.ts';\n\ndescribe('strictObjectAsync', () => {\n  describe('should return schema object', () => {\n    const entries = { key: string() };\n    type Entries = typeof entries;\n    const baseSchema: Omit<\n      StrictObjectSchemaAsync<Entries, never>,\n      'message'\n    > = {\n      kind: 'schema',\n      type: 'strict_object',\n      reference: strictObjectAsync,\n      expects: 'Object',\n      entries,\n      async: true,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: StrictObjectSchemaAsync<Entries, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(strictObjectAsync(entries)).toStrictEqual(schema);\n      expect(strictObjectAsync(entries, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(strictObjectAsync(entries, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies StrictObjectSchemaAsync<Entries, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(strictObjectAsync(entries, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies StrictObjectSchemaAsync<Entries, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for empty object', async () => {\n      await expectNoSchemaIssueAsync(strictObjectAsync({}), [{}]);\n    });\n\n    test('for simple object', async () => {\n      await expectNoSchemaIssueAsync(\n        strictObjectAsync({ key1: string(), key2: number() }),\n        [{ key1: 'foo', key2: 123 }]\n      );\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = strictObjectAsync({}, 'message');\n    const baseIssue: Omit<StrictObjectIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'strict_object',\n      expected: 'Object',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, ['', 'abc', '123']);\n    });\n\n    test('for symbols', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        Symbol(),\n        Symbol('foo'),\n      ]);\n    });\n\n    // Complex types\n\n    // TODO: Enable this test again in case we find a reliable way to check for\n    // plain objects\n    // test('for arrays', async () => {\n    //   await expectSchemaIssueAsync(schema, baseIssue, [[], ['value']]);\n    // });\n\n    test('for functions', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        () => {},\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        function () {},\n      ]);\n    });\n  });\n\n  describe('should return dataset without nested issues', () => {\n    test('for simple object', async () => {\n      await expectNoSchemaIssueAsync(\n        strictObjectAsync({ key1: string(), key2: number() }),\n        [{ key1: 'foo', key2: 123 }]\n      );\n    });\n\n    test('for nested object', async () => {\n      await expectNoSchemaIssueAsync(\n        strictObjectAsync({ nested: objectAsync({ key: string() }) }),\n        [{ nested: { key: 'foo' } }]\n      );\n    });\n\n    test('for missing entries with fallback', async () => {\n      expect(\n        await strictObjectAsync({\n          key1: fallback(string(), 'foo'),\n          key2: fallback(number(), () => 123),\n          key3: fallbackAsync(string(), 'bar'),\n          key4: fallbackAsync(number(), () => 456),\n          key5: fallbackAsync(string(), async () => 'baz'),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key1: 'foo', key2: 123, key3: 'bar', key4: 456, key5: 'baz' },\n      });\n    });\n\n    test('for exact optional entry', async () => {\n      await expectNoSchemaIssueAsync(\n        strictObjectAsync({ key: exactOptional(string()) }),\n        [{}, { key: 'foo' }]\n      );\n      await expectNoSchemaIssueAsync(\n        strictObjectAsync({ key: exactOptionalAsync(string()) }),\n        [{}, { key: 'foo' }]\n      );\n    });\n\n    test('for exact optional entry with default', async () => {\n      // Sync\n      expect(\n        await strictObjectAsync({ key: exactOptional(string(), 'foo') })[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await strictObjectAsync({ key: exactOptional(string(), () => 'foo') })[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n\n      // Async\n      expect(\n        await strictObjectAsync({ key: exactOptionalAsync(string(), 'foo') })[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await strictObjectAsync({\n          key: exactOptionalAsync(string(), () => 'foo'),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n    });\n\n    test('for optional entry', async () => {\n      await expectNoSchemaIssueAsync(\n        strictObjectAsync({ key: optional(string()) }),\n        [{}, { key: undefined }, { key: 'foo' }]\n      );\n      await expectNoSchemaIssueAsync(\n        strictObjectAsync({ key: optionalAsync(string()) }),\n        [{}, { key: undefined }, { key: 'foo' }]\n      );\n    });\n\n    test('for optional entry with default', async () => {\n      // Sync\n      expect(\n        await strictObjectAsync({ key: optional(string(), 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await strictObjectAsync({ key: optional(string(), () => 'foo') })[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await strictObjectAsync({\n          key: optional(string(), () => undefined),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n\n      // Async\n      expect(\n        await strictObjectAsync({ key: optionalAsync(string(), 'foo') })[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await strictObjectAsync({ key: optionalAsync(string(), () => 'foo') })[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await strictObjectAsync({\n          key: optionalAsync(string(), () => undefined),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n      expect(\n        await strictObjectAsync({\n          key: optionalAsync(string(), async () => 'foo'),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await strictObjectAsync({\n          key: optionalAsync(string(), async () => undefined),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n    });\n\n    test('for nullish entry', async () => {\n      await expectNoSchemaIssueAsync(\n        strictObjectAsync({ key: nullish(number()) }),\n        [{}, { key: undefined }, { key: null }, { key: 123 }]\n      );\n      await expectNoSchemaIssueAsync(\n        strictObjectAsync({ key: nullishAsync(number()) }),\n        [{}, { key: undefined }, { key: null }, { key: 123 }]\n      );\n    });\n\n    test('for nullish entry with default', async () => {\n      // Sync\n      expect(\n        await strictObjectAsync({ key: nullish(string(), 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await strictObjectAsync({ key: nullish(string(), null) })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: null },\n      });\n      expect(\n        await strictObjectAsync({ key: nullish(string(), () => 'foo') })[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await strictObjectAsync({ key: nullish(string(), () => null) })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: null },\n      });\n      expect(\n        await strictObjectAsync({ key: nullish(string(), () => undefined) })[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n\n      // Async\n      expect(\n        await strictObjectAsync({ key: nullishAsync(string(), 'foo') })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await strictObjectAsync({ key: nullishAsync(string(), null) })['~run'](\n          { value: {} },\n          {}\n        )\n      ).toStrictEqual({\n        typed: true,\n        value: { key: null },\n      });\n      expect(\n        await strictObjectAsync({ key: nullishAsync(string(), () => 'foo') })[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await strictObjectAsync({ key: nullishAsync(string(), () => null) })[\n          '~run'\n        ]({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: null },\n      });\n      expect(\n        await strictObjectAsync({\n          key: nullishAsync(string(), () => undefined),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n      expect(\n        await strictObjectAsync({\n          key: nullishAsync(string(), async () => 'foo'),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: 'foo' },\n      });\n      expect(\n        await strictObjectAsync({\n          key: nullishAsync(string(), async () => null),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: null },\n      });\n      expect(\n        await strictObjectAsync({\n          key: nullishAsync(string(), async () => undefined),\n        })['~run']({ value: {} }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: { key: undefined },\n      });\n    });\n  });\n\n  describe('should return dataset with nested issues', () => {\n    const schema = strictObjectAsync({\n      key1: string(),\n      key2: number(),\n      nested: strictObjectAsync({ key1: string(), key2: number() }),\n    });\n\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    test('for missing entries', async () => {\n      const input = { key2: 123 };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'strict_object',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'strict_object',\n            input: undefined,\n            expected: '\"nested\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'nested',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for missing nested entries', async () => {\n      const input = { key1: 'value', nested: {} };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'strict_object',\n            input: undefined,\n            expected: '\"key2\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'key2',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'strict_object',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: {},\n              },\n              {\n                type: 'object',\n                origin: 'key',\n                input: input.nested,\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'strict_object',\n            input: undefined,\n            expected: '\"key2\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: {},\n              },\n              {\n                type: 'object',\n                origin: 'key',\n                input: input.nested,\n                key: 'key2',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for missing entries with abort early', async () => {\n      const input = { key2: 123 };\n      expect(\n        await schema['~run']({ value: input }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: {},\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'strict_object',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n            abortEarly: true,\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for missing any and unknown entry', async () => {\n      const schema = strictObjectAsync({ key1: any(), key2: unknown() });\n      expect(await schema['~run']({ value: {} }, {})).toStrictEqual({\n        typed: false,\n        value: {},\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'strict_object',\n            input: undefined,\n            expected: '\"key1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input: {},\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'strict_object',\n            input: undefined,\n            expected: '\"key2\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input: {},\n                key: 'key2',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid entries', async () => {\n      const input = { key1: false, key2: 123, nested: null };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: false,\n            expected: 'string',\n            received: 'false',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key1',\n                value: false,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'strict_object',\n            input: null,\n            expected: 'Object',\n            received: 'null',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: null,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid nested entries', async () => {\n      const input = {\n        key1: 'value',\n        key2: 'value',\n        nested: {\n          key1: 123,\n          key2: null,\n        },\n      };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: 'value',\n            expected: 'number',\n            received: '\"value\"',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key2',\n                value: input.key2,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: 123,\n            expected: 'string',\n            received: '123',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: input.nested,\n              },\n              {\n                type: 'object',\n                origin: 'value',\n                input: input.nested,\n                key: 'key1',\n                value: input.nested.key1,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: null,\n            expected: 'number',\n            received: 'null',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'nested',\n                value: input.nested,\n              },\n              {\n                type: 'object',\n                origin: 'value',\n                input: input.nested,\n                key: 'key2',\n                value: input.nested.key2,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid entries with abort early', async () => {\n      const input = { key1: false, key2: 123, nested: null };\n      expect(\n        await schema['~run']({ value: input }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: {},\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: false,\n            expected: 'string',\n            received: 'false',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key1',\n                value: false,\n              },\n            ],\n            abortEarly: true,\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid exact optional entry', async () => {\n      const schema = strictObjectAsync({\n        key1: exactOptional(string()),\n        key2: exactOptionalAsync(string()),\n      });\n      const input = { key1: undefined, key2: undefined };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: undefined,\n            expected: 'string',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key1',\n                value: undefined,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: undefined,\n            expected: 'string',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'key2',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for unknown entries', async () => {\n      const input = {\n        key1: 'foo',\n        key2: 123,\n        nested: { key1: 'foo', key2: 123 },\n        other1: 'foo',\n        other2: 123,\n      };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: { key1: 'foo', key2: 123, nested: { key1: 'foo', key2: 123 } },\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'strict_object',\n            input: 'other1',\n            expected: 'never',\n            received: '\"other1\"',\n            path: [\n              {\n                type: 'object',\n                origin: 'key',\n                input,\n                key: 'other1',\n                value: input.other1,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/strictObject/strictObjectAsync.ts",
    "content": "import { getDefault, getFallback } from '../../methods/index.ts';\nimport type {\n  BaseSchemaAsync,\n  ErrorMessage,\n  InferObjectInput,\n  InferObjectIssue,\n  InferObjectOutput,\n  ObjectEntriesAsync,\n  ObjectPathItem,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\nimport type { strictObject } from './strictObject.ts';\nimport type { StrictObjectIssue } from './types.ts';\n\n/**\n * Strict object schema async interface.\n */\nexport interface StrictObjectSchemaAsync<\n  TEntries extends ObjectEntriesAsync,\n  TMessage extends ErrorMessage<StrictObjectIssue> | undefined,\n> extends BaseSchemaAsync<\n    InferObjectInput<TEntries>,\n    InferObjectOutput<TEntries>,\n    StrictObjectIssue | InferObjectIssue<TEntries>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'strict_object';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof strictObject | typeof strictObjectAsync;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Object';\n  /**\n   * The entries schema.\n   */\n  readonly entries: TEntries;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a strict object schema.\n *\n * @param entries The entries schema.\n *\n * @returns A strict object schema.\n */\nexport function strictObjectAsync<const TEntries extends ObjectEntriesAsync>(\n  entries: TEntries\n): StrictObjectSchemaAsync<TEntries, undefined>;\n\n/**\n * Creates a strict object schema.\n *\n * @param entries The entries schema.\n * @param message The error message.\n *\n * @returns A strict object schema.\n */\nexport function strictObjectAsync<\n  const TEntries extends ObjectEntriesAsync,\n  const TMessage extends ErrorMessage<StrictObjectIssue> | undefined,\n>(\n  entries: TEntries,\n  message: TMessage\n): StrictObjectSchemaAsync<TEntries, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function strictObjectAsync(\n  entries: ObjectEntriesAsync,\n  message?: ErrorMessage<StrictObjectIssue>\n): StrictObjectSchemaAsync<\n  ObjectEntriesAsync,\n  ErrorMessage<StrictObjectIssue> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'strict_object',\n    reference: strictObjectAsync,\n    expects: 'Object',\n    async: true,\n    entries,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    async '~run'(dataset, config) {\n      // Get input value from dataset\n      const input = dataset.value;\n\n      // If root type is valid, check nested types\n      if (input && typeof input === 'object') {\n        // Set typed to `true` and value to blank object\n        // @ts-expect-error\n        dataset.typed = true;\n        dataset.value = {};\n\n        // If key is present or its an optional schema with a default value,\n        // parse input of key or default value asynchronously\n        const valueDatasets = await Promise.all(\n          Object.entries(this.entries).map(async ([key, valueSchema]) => {\n            if (\n              key in input ||\n              ((valueSchema.type === 'exact_optional' ||\n                valueSchema.type === 'optional' ||\n                valueSchema.type === 'nullish') &&\n                // @ts-expect-error\n                valueSchema.default !== undefined)\n            ) {\n              const value: unknown =\n                key in input\n                  ? // @ts-expect-error\n                    input[key]\n                  : await getDefault(valueSchema);\n              return [\n                key,\n                value,\n                valueSchema,\n                await valueSchema['~run']({ value }, config),\n              ] as const;\n            }\n            return [\n              key,\n              // @ts-expect-error\n              input[key] as unknown,\n              valueSchema,\n              null,\n            ] as const;\n          })\n        );\n\n        // Process each object entry of schema\n        for (const [key, value, valueSchema, valueDataset] of valueDatasets) {\n          // If key is present or its an optional schema with a default value,\n          // process its value dataset\n          if (valueDataset) {\n            // If there are issues, capture them\n            if (valueDataset.issues) {\n              // Create object path item\n              const pathItem: ObjectPathItem = {\n                type: 'object',\n                origin: 'value',\n                input: input as Record<string, unknown>,\n                key,\n                value,\n              };\n\n              // Add modified entry dataset issues to issues\n              for (const issue of valueDataset.issues) {\n                if (issue.path) {\n                  issue.path.unshift(pathItem);\n                } else {\n                  // @ts-expect-error\n                  issue.path = [pathItem];\n                }\n                // @ts-expect-error\n                dataset.issues?.push(issue);\n              }\n              if (!dataset.issues) {\n                // @ts-expect-error\n                dataset.issues = valueDataset.issues;\n              }\n\n              // If necessary, abort early\n              if (config.abortEarly) {\n                dataset.typed = false;\n                break;\n              }\n            }\n\n            // If not typed, set typed to `false`\n            if (!valueDataset.typed) {\n              dataset.typed = false;\n            }\n\n            // Add entry to dataset\n            // @ts-expect-error\n            dataset.value[key] = valueDataset.value;\n\n            // Otherwise, if key is missing but has a fallback, use it\n            // @ts-expect-error\n          } else if (valueSchema.fallback !== undefined) {\n            // @ts-expect-error\n            dataset.value[key] = await getFallback(valueSchema);\n\n            // Otherwise, if key is missing and required, add issue\n          } else if (\n            valueSchema.type !== 'exact_optional' &&\n            valueSchema.type !== 'optional' &&\n            valueSchema.type !== 'nullish'\n          ) {\n            _addIssue(this, 'key', dataset, config, {\n              input: undefined,\n              expected: `\"${key}\"`,\n              path: [\n                {\n                  type: 'object',\n                  origin: 'key',\n                  input: input as Record<string, unknown>,\n                  key,\n                  value,\n                },\n              ],\n            });\n\n            // If necessary, abort early\n            if (config.abortEarly) {\n              break;\n            }\n          }\n        }\n\n        // Check input for unknown keys if necessary\n        if (!dataset.issues || !config.abortEarly) {\n          for (const key in input) {\n            if (!(key in this.entries)) {\n              _addIssue(this, 'key', dataset, config, {\n                input: key,\n                expected: 'never',\n                path: [\n                  {\n                    type: 'object',\n                    origin: 'key',\n                    input: input as Record<string, unknown>,\n                    key,\n                    // @ts-expect-error\n                    value: input[key],\n                  },\n                ],\n              });\n\n              // Hint: We intentionally break the loop after the first unknown\n              // entries. Otherwise, attackers could send large objects to\n              // exhaust device resources. If you want an issue for every\n              // unknown key, use the `objectWithRest` schema with `never` for\n              // the `rest` argument.\n              break;\n            }\n          }\n        }\n\n        // Otherwise, add object issue\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        InferObjectOutput<ObjectEntriesAsync>,\n        StrictObjectIssue | InferObjectIssue<ObjectEntriesAsync>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/strictObject/types.ts",
    "content": "import type { BaseIssue } from '../../types/index.ts';\n\n/**\n * Strict object issue interface.\n */\nexport interface StrictObjectIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'strict_object';\n  /**\n   * The expected property.\n   */\n  readonly expected: 'Object' | `\"${string}\"` | 'never';\n}\n"
  },
  {
    "path": "library/src/schemas/strictTuple/index.ts",
    "content": "export * from './strictTuple.ts';\nexport * from './strictTupleAsync.ts';\nexport * from './types.ts';\n"
  },
  {
    "path": "library/src/schemas/strictTuple/strictTuple.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { boolean } from '../boolean/index.ts';\nimport {\n  number,\n  type NumberIssue,\n  type NumberSchema,\n} from '../number/index.ts';\nimport type { OptionalSchema } from '../optional/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { strictTuple, type StrictTupleSchema } from './strictTuple.ts';\nimport type { StrictTupleIssue } from './types.ts';\n\ndescribe('strictTuple', () => {\n  describe('should return schema object', () => {\n    const items = [string(), number(), boolean()] as const;\n    type Items = typeof items;\n\n    test('with undefined message', () => {\n      type Schema = StrictTupleSchema<Items, undefined>;\n      expectTypeOf(strictTuple(items)).toEqualTypeOf<Schema>();\n      expectTypeOf(strictTuple(items, undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(strictTuple(items, 'message')).toEqualTypeOf<\n        StrictTupleSchema<Items, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(strictTuple(items, () => 'message')).toEqualTypeOf<\n        StrictTupleSchema<Items, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = StrictTupleSchema<\n      [OptionalSchema<StringSchema<undefined>, 'foo'>, NumberSchema<undefined>],\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<\n        [string | undefined, number]\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<[string, number]>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        StrictTupleIssue | StringIssue | NumberIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/strictTuple/strictTuple.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { boolean } from '../boolean/index.ts';\nimport { number } from '../number/index.ts';\nimport { optional } from '../optional/index.ts';\nimport { string, type StringIssue } from '../string/index.ts';\nimport { strictTuple, type StrictTupleSchema } from './strictTuple.ts';\nimport type { StrictTupleIssue } from './types.ts';\n\ndescribe('strictTuple', () => {\n  describe('should return schema object', () => {\n    const items = [optional(string()), number()] as const;\n    type Items = typeof items;\n    const baseSchema: Omit<StrictTupleSchema<Items, never>, 'message'> = {\n      kind: 'schema',\n      type: 'strict_tuple',\n      reference: strictTuple,\n      expects: 'Array',\n      items,\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: StrictTupleSchema<Items, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(strictTuple(items)).toStrictEqual(schema);\n      expect(strictTuple(items, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(strictTuple(items, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies StrictTupleSchema<Items, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(strictTuple(items, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies StrictTupleSchema<Items, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for empty tuple', () => {\n      expectNoSchemaIssue(strictTuple([]), [[]]);\n    });\n\n    test('for simple tuple', () => {\n      expectNoSchemaIssue(strictTuple([optional(string()), number()]), [\n        ['foo', 123],\n        [undefined, 123],\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = strictTuple([optional(string()), number()], 'message');\n    const baseIssue: Omit<StrictTupleIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'strict_tuple',\n      expected: 'Array',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', 'abc', '123']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n\n    test('for objects', () => {\n      expectSchemaIssue(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n\n  describe('should return dataset without nested issues', () => {\n    const schema = strictTuple([optional(string()), number()]);\n\n    test('for simple tuple', () => {\n      expectNoSchemaIssue(schema, [\n        ['foo', 123],\n        [undefined, 123],\n      ]);\n    });\n\n    test('for nested tuple', () => {\n      expectNoSchemaIssue(strictTuple([schema, schema]), [\n        [\n          ['foo', 123],\n          [undefined, 123],\n        ],\n      ]);\n    });\n  });\n\n  describe('should return dataset with nested issues', () => {\n    const schema = strictTuple([string(), number(), boolean()]);\n\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    const stringIssue: StringIssue = {\n      ...baseInfo,\n      kind: 'schema',\n      type: 'string',\n      input: 123,\n      expected: 'string',\n      received: '123',\n      path: [\n        {\n          type: 'array',\n          origin: 'value',\n          input: [123, 456, 'true'],\n          key: 0,\n          value: 123,\n        },\n      ],\n    };\n\n    test('for wrong items', () => {\n      const input = [123, 456, 'true'];\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          stringIssue,\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'boolean',\n            input: 'true',\n            expected: 'boolean',\n            received: '\"true\"',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 2,\n                value: input[2],\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('with abort early', () => {\n      expect(\n        schema['~run']({ value: [123, 456, 'true'] }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: [],\n        issues: [{ ...stringIssue, abortEarly: true }],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for wrong nested items', () => {\n      const nestedSchema = strictTuple([schema, schema]);\n      const input: [[string, string, boolean], null] = [\n        ['foo', '123', false],\n        null,\n      ];\n      expect(nestedSchema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: '123',\n            expected: 'number',\n            received: '\"123\"',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 0,\n                value: input[0],\n              },\n              {\n                type: 'array',\n                origin: 'value',\n                input: input[0],\n                key: 1,\n                value: input[0][1],\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'strict_tuple',\n            input: null,\n            expected: 'Array',\n            received: 'null',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 1,\n                value: input[1],\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof nestedSchema>>);\n    });\n\n    test('for unknown items', () => {\n      const input = ['foo', 123, true, null, undefined];\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: ['foo', 123, true],\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'strict_tuple',\n            input: null,\n            expected: 'never',\n            received: 'null',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input,\n                key: 3,\n                value: input[3],\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/strictTuple/strictTuple.ts",
    "content": "import type {\n  ArrayPathItem,\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  InferTupleInput,\n  InferTupleIssue,\n  InferTupleOutput,\n  OutputDataset,\n  TupleItems,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\nimport type { StrictTupleIssue } from './types.ts';\n\n/**\n * Strict tuple schema interface.\n */\nexport interface StrictTupleSchema<\n  TItems extends TupleItems,\n  TMessage extends ErrorMessage<StrictTupleIssue> | undefined,\n> extends BaseSchema<\n    InferTupleInput<TItems>,\n    InferTupleOutput<TItems>,\n    StrictTupleIssue | InferTupleIssue<TItems>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'strict_tuple';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof strictTuple;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Array';\n  /**\n   * The items schema.\n   */\n  readonly items: TItems;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a strict tuple schema.\n *\n * @param items The items schema.\n *\n * @returns A strict tuple schema.\n */\nexport function strictTuple<const TItems extends TupleItems>(\n  items: TItems\n): StrictTupleSchema<TItems, undefined>;\n\n/**\n * Creates a strict tuple schema.\n *\n * @param items The items schema.\n * @param message The error message.\n *\n * @returns A strict tuple schema.\n */\nexport function strictTuple<\n  const TItems extends TupleItems,\n  const TMessage extends ErrorMessage<StrictTupleIssue> | undefined,\n>(items: TItems, message: TMessage): StrictTupleSchema<TItems, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function strictTuple(\n  items: TupleItems,\n  message?: ErrorMessage<StrictTupleIssue>\n): StrictTupleSchema<TupleItems, ErrorMessage<StrictTupleIssue> | undefined> {\n  return {\n    kind: 'schema',\n    type: 'strict_tuple',\n    reference: strictTuple,\n    expects: 'Array',\n    async: false,\n    items,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      // Get input value from dataset\n      const input = dataset.value;\n\n      // If root type is valid, check nested types\n      if (Array.isArray(input)) {\n        // Set typed to `true` and value to empty array\n        // @ts-expect-error\n        dataset.typed = true;\n        dataset.value = [];\n\n        // Parse schema of each tuple item\n        for (let key = 0; key < this.items.length; key++) {\n          const value = input[key];\n          const itemDataset = this.items[key]['~run']({ value }, config);\n\n          // If there are issues, capture them\n          if (itemDataset.issues) {\n            // Create tuple path item\n            const pathItem: ArrayPathItem = {\n              type: 'array',\n              origin: 'value',\n              input,\n              key,\n              value,\n            };\n\n            // Add modified item dataset issues to issues\n            for (const issue of itemDataset.issues) {\n              if (issue.path) {\n                issue.path.unshift(pathItem);\n              } else {\n                // @ts-expect-error\n                issue.path = [pathItem];\n              }\n              // @ts-expect-error\n              dataset.issues?.push(issue);\n            }\n            if (!dataset.issues) {\n              // @ts-expect-error\n              dataset.issues = itemDataset.issues;\n            }\n\n            // If necessary, abort early\n            if (config.abortEarly) {\n              dataset.typed = false;\n              break;\n            }\n          }\n\n          // If not typed, set typed to `false`\n          if (!itemDataset.typed) {\n            dataset.typed = false;\n          }\n\n          // Add item to dataset\n          // @ts-expect-error\n          dataset.value.push(itemDataset.value);\n        }\n\n        // Check input for unknown items if necessary\n        if (\n          !(dataset.issues && config.abortEarly) &&\n          this.items.length < input.length\n        ) {\n          _addIssue(this, 'type', dataset, config, {\n            input: input[this.items.length],\n            expected: 'never',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input,\n                key: this.items.length,\n                value: input[this.items.length],\n              },\n            ],\n          });\n\n          // Hint: We intentionally only add one issue for unknown items.\n          // Otherwise, attackers could send large arrays to exhaust\n          // device resources. If you want an issue for every unknown item,\n          // use the `tupleWithRest` schema with `never` for the `rest`\n          // argument.\n        }\n\n        // Otherwise, add tuple issue\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        unknown[],\n        StrictTupleIssue | BaseIssue<unknown>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/strictTuple/strictTupleAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { boolean } from '../boolean/index.ts';\nimport {\n  number,\n  type NumberIssue,\n  type NumberSchema,\n} from '../number/index.ts';\nimport type { OptionalSchema } from '../optional/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport {\n  strictTupleAsync,\n  type StrictTupleSchemaAsync,\n} from './strictTupleAsync.ts';\nimport type { StrictTupleIssue } from './types.ts';\n\ndescribe('strictTupleAsync', () => {\n  describe('should return schema object', () => {\n    const items = [string(), number(), boolean()] as const;\n    type Items = typeof items;\n\n    test('with undefined message', () => {\n      type Schema = StrictTupleSchemaAsync<Items, undefined>;\n      expectTypeOf(strictTupleAsync(items)).toEqualTypeOf<Schema>();\n      expectTypeOf(strictTupleAsync(items, undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(strictTupleAsync(items, 'message')).toEqualTypeOf<\n        StrictTupleSchemaAsync<Items, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(strictTupleAsync(items, () => 'message')).toEqualTypeOf<\n        StrictTupleSchemaAsync<Items, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = StrictTupleSchemaAsync<\n      [OptionalSchema<StringSchema<undefined>, 'foo'>, NumberSchema<undefined>],\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<\n        [string | undefined, number]\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<[string, number]>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        StrictTupleIssue | StringIssue | NumberIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/strictTuple/strictTupleAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport {\n  expectNoSchemaIssueAsync,\n  expectSchemaIssueAsync,\n} from '../../vitest/index.ts';\nimport { boolean } from '../boolean/index.ts';\nimport { number } from '../number/index.ts';\nimport { optionalAsync } from '../optional/index.ts';\nimport { string, type StringIssue } from '../string/index.ts';\nimport {\n  strictTupleAsync,\n  type StrictTupleSchemaAsync,\n} from './strictTupleAsync.ts';\nimport type { StrictTupleIssue } from './types.ts';\n\ndescribe('strictTupleAsync', () => {\n  describe('should return schema object', () => {\n    const items = [optionalAsync(string()), number()] as const;\n    type Items = typeof items;\n    const baseSchema: Omit<StrictTupleSchemaAsync<Items, never>, 'message'> = {\n      kind: 'schema',\n      type: 'strict_tuple',\n      reference: strictTupleAsync,\n      expects: 'Array',\n      items,\n      async: true,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: StrictTupleSchemaAsync<Items, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(strictTupleAsync(items)).toStrictEqual(schema);\n      expect(strictTupleAsync(items, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(strictTupleAsync(items, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies StrictTupleSchemaAsync<Items, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(strictTupleAsync(items, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies StrictTupleSchemaAsync<Items, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for empty tuple', async () => {\n      await expectNoSchemaIssueAsync(strictTupleAsync([]), [[]]);\n    });\n\n    test('for simple tuple', async () => {\n      await expectNoSchemaIssueAsync(\n        strictTupleAsync([optionalAsync(string()), number()]),\n        [\n          ['foo', 123],\n          [undefined, 123],\n        ]\n      );\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = strictTupleAsync(\n      [optionalAsync(string()), number()],\n      'message'\n    );\n    const baseIssue: Omit<StrictTupleIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'strict_tuple',\n      expected: 'Array',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, ['', 'abc', '123']);\n    });\n\n    test('for symbols', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        Symbol(),\n        Symbol('foo'),\n      ]);\n    });\n\n    // Complex types\n\n    test('for functions', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        () => {},\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        function () {},\n      ]);\n    });\n\n    test('for objects', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n\n  describe('should return dataset without nested issues', () => {\n    const schema = strictTupleAsync([optionalAsync(string()), number()]);\n\n    test('for simple tuple', async () => {\n      await expectNoSchemaIssueAsync(schema, [\n        ['foo', 123],\n        [undefined, 123],\n      ]);\n    });\n\n    test('for nested tuple', async () => {\n      await expectNoSchemaIssueAsync(strictTupleAsync([schema, schema]), [\n        [\n          ['foo', 123],\n          [undefined, 123],\n        ],\n      ]);\n    });\n  });\n\n  describe('should return dataset with nested issues', () => {\n    const schema = strictTupleAsync([string(), number(), boolean()]);\n\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    const stringIssue: StringIssue = {\n      ...baseInfo,\n      kind: 'schema',\n      type: 'string',\n      input: 123,\n      expected: 'string',\n      received: '123',\n      path: [\n        {\n          type: 'array',\n          origin: 'value',\n          input: [123, 456, 'true'],\n          key: 0,\n          value: 123,\n        },\n      ],\n    };\n\n    test('for wrong items', async () => {\n      const input = [123, 456, 'true'];\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          stringIssue,\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'boolean',\n            input: 'true',\n            expected: 'boolean',\n            received: '\"true\"',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 2,\n                value: input[2],\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('with abort early', async () => {\n      expect(\n        await schema['~run'](\n          { value: [123, 456, 'true'] },\n          { abortEarly: true }\n        )\n      ).toStrictEqual({\n        typed: false,\n        value: [],\n        issues: [{ ...stringIssue, abortEarly: true }],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for wrong nested items', async () => {\n      const nestedSchema = strictTupleAsync([schema, schema]);\n      const input: [[string, string, boolean], null] = [\n        ['foo', '123', false],\n        null,\n      ];\n      expect(await nestedSchema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: '123',\n            expected: 'number',\n            received: '\"123\"',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 0,\n                value: input[0],\n              },\n              {\n                type: 'array',\n                origin: 'value',\n                input: input[0],\n                key: 1,\n                value: input[0][1],\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'strict_tuple',\n            input: null,\n            expected: 'Array',\n            received: 'null',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 1,\n                value: input[1],\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof nestedSchema>>);\n    });\n\n    test('for unknown items', async () => {\n      const input = ['foo', 123, true, null, undefined];\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: ['foo', 123, true],\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'strict_tuple',\n            input: null,\n            expected: 'never',\n            received: 'null',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input,\n                key: 3,\n                value: input[3],\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/strictTuple/strictTupleAsync.ts",
    "content": "import type {\n  ArrayPathItem,\n  BaseIssue,\n  BaseSchemaAsync,\n  ErrorMessage,\n  InferTupleInput,\n  InferTupleIssue,\n  InferTupleOutput,\n  OutputDataset,\n  TupleItemsAsync,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\nimport type { strictTuple } from './strictTuple.ts';\nimport type { StrictTupleIssue } from './types.ts';\n\n/**\n * Strict tuple schema async interface.\n */\nexport interface StrictTupleSchemaAsync<\n  TItems extends TupleItemsAsync,\n  TMessage extends ErrorMessage<StrictTupleIssue> | undefined,\n> extends BaseSchemaAsync<\n    InferTupleInput<TItems>,\n    InferTupleOutput<TItems>,\n    StrictTupleIssue | InferTupleIssue<TItems>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'strict_tuple';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof strictTuple | typeof strictTupleAsync;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Array';\n  /**\n   * The items schema.\n   */\n  readonly items: TItems;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a strict tuple schema.\n *\n * @param items The items schema.\n *\n * @returns A strict tuple schema.\n */\nexport function strictTupleAsync<const TItems extends TupleItemsAsync>(\n  items: TItems\n): StrictTupleSchemaAsync<TItems, undefined>;\n\n/**\n * Creates a strict tuple schema.\n *\n * @param items The items schema.\n * @param message The error message.\n *\n * @returns A strict tuple schema.\n */\nexport function strictTupleAsync<\n  const TItems extends TupleItemsAsync,\n  const TMessage extends ErrorMessage<StrictTupleIssue> | undefined,\n>(items: TItems, message: TMessage): StrictTupleSchemaAsync<TItems, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function strictTupleAsync(\n  items: TupleItemsAsync,\n  message?: ErrorMessage<StrictTupleIssue>\n): StrictTupleSchemaAsync<\n  TupleItemsAsync,\n  ErrorMessage<StrictTupleIssue> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'strict_tuple',\n    reference: strictTupleAsync,\n    expects: 'Array',\n    async: true,\n    items,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    async '~run'(dataset, config) {\n      // Get input value from dataset\n      const input = dataset.value;\n\n      // If root type is valid, check nested types\n      if (Array.isArray(input)) {\n        // Set typed to `true` and value to empty array\n        // @ts-expect-error\n        dataset.typed = true;\n        dataset.value = [];\n\n        // Parse schema of each tuple item\n        const itemDatasets = await Promise.all(\n          this.items.map(async (item, key) => {\n            const value = input[key];\n            return [key, value, await item['~run']({ value }, config)] as const;\n          })\n        );\n\n        // Process each tuple item dataset\n        for (const [key, value, itemDataset] of itemDatasets) {\n          // If there are issues, capture them\n          if (itemDataset.issues) {\n            // Create tuple path item\n            const pathItem: ArrayPathItem = {\n              type: 'array',\n              origin: 'value',\n              input,\n              key,\n              value,\n            };\n\n            // Add modified item dataset issues to issues\n            for (const issue of itemDataset.issues) {\n              if (issue.path) {\n                issue.path.unshift(pathItem);\n              } else {\n                // @ts-expect-error\n                issue.path = [pathItem];\n              }\n              // @ts-expect-error\n              dataset.issues?.push(issue);\n            }\n            if (!dataset.issues) {\n              // @ts-expect-error\n              dataset.issues = itemDataset.issues;\n            }\n\n            // If necessary, abort early\n            if (config.abortEarly) {\n              dataset.typed = false;\n              break;\n            }\n          }\n\n          // If not typed, set typed to `false`\n          if (!itemDataset.typed) {\n            dataset.typed = false;\n          }\n\n          // Add item to dataset\n          // @ts-expect-error\n          dataset.value.push(itemDataset.value);\n        }\n\n        // Check input for unknown items if necessary\n        if (\n          !(dataset.issues && config.abortEarly) &&\n          this.items.length < input.length\n        ) {\n          _addIssue(this, 'type', dataset, config, {\n            input: input[this.items.length],\n            expected: 'never',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input,\n                key: this.items.length,\n                value: input[this.items.length],\n              },\n            ],\n          });\n\n          // Hint: We intentionally only add one issue for unknown items.\n          // Otherwise, attackers could send large arrays to exhaust\n          // device resources. If you want an issue for every unknown item,\n          // use the `tupleWithRest` schema with `never` for the `rest`\n          // argument.\n        }\n\n        // Otherwise, add tuple issue\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        unknown[],\n        StrictTupleIssue | BaseIssue<unknown>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/strictTuple/types.ts",
    "content": "import type { BaseIssue } from '../../types/index.ts';\n\n/**\n * Strict tuple issue interface.\n */\nexport interface StrictTupleIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'strict_tuple';\n  /**\n   * The expected property.\n   */\n  readonly expected: 'Array' | 'never';\n}\n"
  },
  {
    "path": "library/src/schemas/string/index.ts",
    "content": "export * from './string.ts';\n"
  },
  {
    "path": "library/src/schemas/string/string.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { string, type StringIssue, type StringSchema } from './string.ts';\n\ndescribe('string', () => {\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = StringSchema<undefined>;\n      expectTypeOf(string()).toEqualTypeOf<Schema>();\n      expectTypeOf(string(undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(string('message')).toEqualTypeOf<StringSchema<'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(string(() => 'message')).toEqualTypeOf<\n        StringSchema<() => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = StringSchema<undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<string>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<string>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<StringIssue>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/string/string.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { string, type StringIssue, type StringSchema } from './string.ts';\n\ndescribe('string', () => {\n  describe('should return schema object', () => {\n    const baseSchema: Omit<StringSchema<never>, 'message'> = {\n      kind: 'schema',\n      type: 'string',\n      reference: string,\n      expects: 'string',\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: StringSchema<undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(string()).toStrictEqual(schema);\n      expect(string(undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(string('message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies StringSchema<'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(string(message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies StringSchema<typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = string();\n\n    test('for empty strings', () => {\n      expectNoSchemaIssue(schema, ['', ' ', '\\n']);\n    });\n\n    test('for single char', () => {\n      expectNoSchemaIssue(schema, ['a', 'A', '0']);\n    });\n\n    test('for multiple chars', () => {\n      expectNoSchemaIssue(schema, ['abc', 'ABC', '123']);\n    });\n\n    test('for special chars', () => {\n      expectNoSchemaIssue(schema, ['-', '+', '#', '$', '%']);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = string('message');\n    const baseIssue: Omit<StringIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'string',\n      expected: 'string',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    test('for arrays', () => {\n      expectSchemaIssue(schema, baseIssue, [[], ['value']]);\n    });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n\n    test('for objects', () => {\n      expectSchemaIssue(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/string/string.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\n\n/**\n * String issue interface.\n */\nexport interface StringIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'string';\n  /**\n   * The expected property.\n   */\n  readonly expected: 'string';\n}\n\n/**\n * String schema interface.\n */\nexport interface StringSchema<\n  TMessage extends ErrorMessage<StringIssue> | undefined,\n> extends BaseSchema<string, string, StringIssue> {\n  /**\n   * The schema type.\n   */\n  readonly type: 'string';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof string;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'string';\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a string schema.\n *\n * @returns A string schema.\n */\nexport function string(): StringSchema<undefined>;\n\n/**\n * Creates a string schema.\n *\n * @param message The error message.\n *\n * @returns A string schema.\n */\nexport function string<\n  const TMessage extends ErrorMessage<StringIssue> | undefined,\n>(message: TMessage): StringSchema<TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function string(\n  message?: ErrorMessage<StringIssue>\n): StringSchema<ErrorMessage<StringIssue> | undefined> {\n  return {\n    kind: 'schema',\n    type: 'string',\n    reference: string,\n    expects: 'string',\n    async: false,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      if (typeof dataset.value === 'string') {\n        // @ts-expect-error\n        dataset.typed = true;\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n      // @ts-expect-error\n      return dataset as OutputDataset<string, StringIssue>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/symbol/index.ts",
    "content": "export * from './symbol.ts';\n"
  },
  {
    "path": "library/src/schemas/symbol/symbol.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { symbol, type SymbolIssue, type SymbolSchema } from './symbol.ts';\n\ndescribe('symbol', () => {\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = SymbolSchema<undefined>;\n      expectTypeOf(symbol()).toEqualTypeOf<Schema>();\n      expectTypeOf(symbol(undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(symbol('message')).toEqualTypeOf<SymbolSchema<'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(symbol(() => 'message')).toEqualTypeOf<\n        SymbolSchema<() => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = SymbolSchema<undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<symbol>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<symbol>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<SymbolIssue>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/symbol/symbol.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { symbol, type SymbolIssue, type SymbolSchema } from './symbol.ts';\n\ndescribe('symbol', () => {\n  describe('should return schema object', () => {\n    const baseSchema: Omit<SymbolSchema<never>, 'message'> = {\n      kind: 'schema',\n      type: 'symbol',\n      reference: symbol,\n      expects: 'symbol',\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: SymbolSchema<undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(symbol()).toStrictEqual(schema);\n      expect(symbol(undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(symbol('message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies SymbolSchema<'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(symbol(message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies SymbolSchema<typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = symbol();\n\n    test('for symbols', () => {\n      expectNoSchemaIssue(schema, [Symbol(), Symbol('foo')]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = symbol('message');\n    const baseIssue: Omit<SymbolIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'symbol',\n      expected: 'symbol',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', 'foo', '123']);\n    });\n\n    // Complex types\n\n    test('for arrays', () => {\n      expectSchemaIssue(schema, baseIssue, [[], ['value']]);\n    });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n\n    test('for objects', () => {\n      expectSchemaIssue(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/symbol/symbol.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\n\n/**\n * Symbol issue interface.\n */\nexport interface SymbolIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'symbol';\n  /**\n   * The expected property.\n   */\n  readonly expected: 'symbol';\n}\n\n/**\n * Symbol schema interface.\n */\nexport interface SymbolSchema<\n  TMessage extends ErrorMessage<SymbolIssue> | undefined,\n> extends BaseSchema<symbol, symbol, SymbolIssue> {\n  /**\n   * The schema type.\n   */\n  readonly type: 'symbol';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof symbol;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'symbol';\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a symbol schema.\n *\n * @returns A symbol schema.\n */\nexport function symbol(): SymbolSchema<undefined>;\n\n/**\n * Creates a symbol schema.\n *\n * @param message The error message.\n *\n * @returns A symbol schema.\n */\nexport function symbol<\n  const TMessage extends ErrorMessage<SymbolIssue> | undefined,\n>(message: TMessage): SymbolSchema<TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function symbol(\n  message?: ErrorMessage<SymbolIssue>\n): SymbolSchema<ErrorMessage<SymbolIssue> | undefined> {\n  return {\n    kind: 'schema',\n    type: 'symbol',\n    reference: symbol,\n    expects: 'symbol',\n    async: false,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      if (typeof dataset.value === 'symbol') {\n        // @ts-expect-error\n        dataset.typed = true;\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n      // @ts-expect-error\n      return dataset as OutputDataset<symbol, SymbolIssue>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/tuple/index.ts",
    "content": "export * from './tuple.ts';\nexport * from './tupleAsync.ts';\nexport * from './types.ts';\n"
  },
  {
    "path": "library/src/schemas/tuple/tuple.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { boolean } from '../boolean/index.ts';\nimport {\n  number,\n  type NumberIssue,\n  type NumberSchema,\n} from '../number/index.ts';\nimport type { OptionalSchema } from '../optional/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { tuple, type TupleSchema } from './tuple.ts';\nimport type { TupleIssue } from './types.ts';\n\ndescribe('tuple', () => {\n  describe('should return schema object', () => {\n    const items = [string(), number(), boolean()] as const;\n    type Items = typeof items;\n\n    test('with undefined message', () => {\n      type Schema = TupleSchema<Items, undefined>;\n      expectTypeOf(tuple(items)).toEqualTypeOf<Schema>();\n      expectTypeOf(tuple(items, undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(tuple(items, 'message')).toEqualTypeOf<\n        TupleSchema<Items, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(tuple(items, () => 'message')).toEqualTypeOf<\n        TupleSchema<Items, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = TupleSchema<\n      [OptionalSchema<StringSchema<undefined>, 'foo'>, NumberSchema<undefined>],\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<\n        [string | undefined, number]\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<[string, number]>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        TupleIssue | StringIssue | NumberIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/tuple/tuple.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { boolean } from '../boolean/boolean.ts';\nimport { number } from '../number/index.ts';\nimport { optional } from '../optional/index.ts';\nimport { string, type StringIssue } from '../string/index.ts';\nimport { tuple, type TupleSchema } from './tuple.ts';\nimport type { TupleIssue } from './types.ts';\n\ndescribe('tuple', () => {\n  describe('should return schema object', () => {\n    const items = [optional(string()), number()] as const;\n    type Items = typeof items;\n    const baseSchema: Omit<TupleSchema<Items, never>, 'message'> = {\n      kind: 'schema',\n      type: 'tuple',\n      reference: tuple,\n      expects: 'Array',\n      items,\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: TupleSchema<Items, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(tuple(items)).toStrictEqual(schema);\n      expect(tuple(items, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(tuple(items, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies TupleSchema<Items, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(tuple(items, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies TupleSchema<Items, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for empty tuple', () => {\n      expectNoSchemaIssue(tuple([]), [[]]);\n    });\n\n    const schema = tuple([optional(string()), number()]);\n\n    test('for simple tuple', () => {\n      expectNoSchemaIssue(schema, [\n        ['foo', 123],\n        [undefined, 123],\n      ]);\n    });\n\n    test('for unknown items', () => {\n      expect(\n        schema['~run']({ value: ['foo', 123, null, true, undefined] }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: ['foo', 123],\n      });\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = tuple([optional(string()), number()], 'message');\n    const baseIssue: Omit<TupleIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'tuple',\n      expected: 'Array',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', 'abc', '123']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n\n    test('for objects', () => {\n      expectSchemaIssue(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n\n  describe('should return dataset without nested issues', () => {\n    const schema = tuple([optional(string()), number()]);\n\n    test('for simple tuple', () => {\n      expectNoSchemaIssue(schema, [\n        ['foo', 123],\n        [undefined, 123],\n      ]);\n    });\n\n    test('for nested tuple', () => {\n      expectNoSchemaIssue(tuple([schema, schema]), [\n        [\n          ['foo', 123],\n          [undefined, 123],\n        ],\n      ]);\n    });\n\n    test('for unknown items', () => {\n      expect(\n        schema['~run']({ value: ['foo', 123, null, true, undefined] }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: ['foo', 123],\n      });\n    });\n  });\n\n  describe('should return dataset with nested issues', () => {\n    const schema = tuple([string(), number(), boolean()]);\n\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    const stringIssue: StringIssue = {\n      ...baseInfo,\n      kind: 'schema',\n      type: 'string',\n      input: 123,\n      expected: 'string',\n      received: '123',\n      path: [\n        {\n          type: 'array',\n          origin: 'value',\n          input: [123, 456, 'true'],\n          key: 0,\n          value: 123,\n        },\n      ],\n    };\n\n    test('for wrong items', () => {\n      const input = [123, 456, 'true'];\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          stringIssue,\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'boolean',\n            input: 'true',\n            expected: 'boolean',\n            received: '\"true\"',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 2,\n                value: input[2],\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('with abort early', () => {\n      expect(\n        schema['~run']({ value: [123, 456, 'true'] }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: [],\n        issues: [{ ...stringIssue, abortEarly: true }],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for wrong nested items', () => {\n      const nestedSchema = tuple([schema, schema]);\n      const input: [[string, string, boolean], null] = [\n        ['foo', '123', false],\n        null,\n      ];\n      expect(nestedSchema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: '123',\n            expected: 'number',\n            received: '\"123\"',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 0,\n                value: input[0],\n              },\n              {\n                type: 'array',\n                origin: 'value',\n                input: input[0],\n                key: 1,\n                value: input[0][1],\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'tuple',\n            input: null,\n            expected: 'Array',\n            received: 'null',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 1,\n                value: input[1],\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof nestedSchema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/tuple/tuple.ts",
    "content": "import type {\n  ArrayPathItem,\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  InferTupleInput,\n  InferTupleIssue,\n  InferTupleOutput,\n  OutputDataset,\n  TupleItems,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\nimport type { TupleIssue } from './types.ts';\n\n/**\n * Tuple schema interface.\n */\nexport interface TupleSchema<\n  TItems extends TupleItems,\n  TMessage extends ErrorMessage<TupleIssue> | undefined,\n> extends BaseSchema<\n    InferTupleInput<TItems>,\n    InferTupleOutput<TItems>,\n    TupleIssue | InferTupleIssue<TItems>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'tuple';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof tuple;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Array';\n  /**\n   * The items schema.\n   */\n  readonly items: TItems;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a tuple schema.\n *\n * Hint: This schema removes unknown items. The output will only include the\n * items you specify. To include unknown items, use `looseTuple`. To\n * return an issue for unknown items, use `strictTuple`. To include and\n * validate unknown items, use `tupleWithRest`.\n *\n * @param items The items schema.\n *\n * @returns A tuple schema.\n */\nexport function tuple<const TItems extends TupleItems>(\n  items: TItems\n): TupleSchema<TItems, undefined>;\n\n/**\n * Creates a tuple schema.\n *\n * Hint: This schema removes unknown items. The output will only include the\n * items you specify. To include unknown items, use `looseTuple`. To\n * return an issue for unknown items, use `strictTuple`. To include and\n * validate unknown items, use `tupleWithRest`.\n *\n * @param items The items schema.\n * @param message The error message.\n *\n * @returns A tuple schema.\n */\nexport function tuple<\n  const TItems extends TupleItems,\n  const TMessage extends ErrorMessage<TupleIssue> | undefined,\n>(items: TItems, message: TMessage): TupleSchema<TItems, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function tuple(\n  items: TupleItems,\n  message?: ErrorMessage<TupleIssue>\n): TupleSchema<TupleItems, ErrorMessage<TupleIssue> | undefined> {\n  return {\n    kind: 'schema',\n    type: 'tuple',\n    reference: tuple,\n    expects: 'Array',\n    async: false,\n    items,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      // Get input value from dataset\n      const input = dataset.value;\n\n      // If root type is valid, check nested types\n      if (Array.isArray(input)) {\n        // Set typed to `true` and value to empty array\n        // @ts-expect-error\n        dataset.typed = true;\n        dataset.value = [];\n\n        // Parse schema of each tuple item\n        for (let key = 0; key < this.items.length; key++) {\n          const value = input[key];\n          const itemDataset = this.items[key]['~run']({ value }, config);\n\n          // If there are issues, capture them\n          if (itemDataset.issues) {\n            // Create tuple path item\n            const pathItem: ArrayPathItem = {\n              type: 'array',\n              origin: 'value',\n              input,\n              key,\n              value,\n            };\n\n            // Add modified item dataset issues to issues\n            for (const issue of itemDataset.issues) {\n              if (issue.path) {\n                issue.path.unshift(pathItem);\n              } else {\n                // @ts-expect-error\n                issue.path = [pathItem];\n              }\n              // @ts-expect-error\n              dataset.issues?.push(issue);\n            }\n            if (!dataset.issues) {\n              // @ts-expect-error\n              dataset.issues = itemDataset.issues;\n            }\n\n            // If necessary, abort early\n            if (config.abortEarly) {\n              dataset.typed = false;\n              break;\n            }\n          }\n\n          // If not typed, set typed to `false`\n          if (!itemDataset.typed) {\n            dataset.typed = false;\n          }\n\n          // Add item to dataset\n          // @ts-expect-error\n          dataset.value.push(itemDataset.value);\n        }\n\n        // Otherwise, add tuple issue\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        unknown[],\n        TupleIssue | BaseIssue<unknown>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/tuple/tupleAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { boolean } from '../boolean/index.ts';\nimport {\n  number,\n  type NumberIssue,\n  type NumberSchema,\n} from '../number/index.ts';\nimport type { OptionalSchema } from '../optional/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { tupleAsync, type TupleSchemaAsync } from './tupleAsync.ts';\nimport type { TupleIssue } from './types.ts';\n\ndescribe('tupleAsync', () => {\n  describe('should return schema object', () => {\n    const items = [string(), number(), boolean()] as const;\n    type Items = typeof items;\n\n    test('with undefined message', () => {\n      type Schema = TupleSchemaAsync<Items, undefined>;\n      expectTypeOf(tupleAsync(items)).toEqualTypeOf<Schema>();\n      expectTypeOf(tupleAsync(items, undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(tupleAsync(items, 'message')).toEqualTypeOf<\n        TupleSchemaAsync<Items, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(tupleAsync(items, () => 'message')).toEqualTypeOf<\n        TupleSchemaAsync<Items, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = TupleSchemaAsync<\n      [OptionalSchema<StringSchema<undefined>, 'foo'>, NumberSchema<undefined>],\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<\n        [string | undefined, number]\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<[string, number]>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        TupleIssue | StringIssue | NumberIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/tuple/tupleAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport {\n  expectNoSchemaIssueAsync,\n  expectSchemaIssueAsync,\n} from '../../vitest/index.ts';\nimport { boolean } from '../boolean/boolean.ts';\nimport { number } from '../number/index.ts';\nimport { optionalAsync } from '../optional/index.ts';\nimport { string, type StringIssue } from '../string/index.ts';\nimport { tupleAsync, type TupleSchemaAsync } from './tupleAsync.ts';\nimport type { TupleIssue } from './types.ts';\n\ndescribe('tupleAsync', () => {\n  describe('should return schema object', () => {\n    const items = [optionalAsync(string()), number()] as const;\n    type Items = typeof items;\n    const baseSchema: Omit<TupleSchemaAsync<Items, never>, 'message'> = {\n      kind: 'schema',\n      type: 'tuple',\n      reference: tupleAsync,\n      expects: 'Array',\n      items,\n      async: true,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: TupleSchemaAsync<Items, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(tupleAsync(items)).toStrictEqual(schema);\n      expect(tupleAsync(items, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(tupleAsync(items, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies TupleSchemaAsync<Items, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(tupleAsync(items, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies TupleSchemaAsync<Items, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for empty tuple', async () => {\n      await await expectNoSchemaIssueAsync(tupleAsync([]), [[]]);\n    });\n\n    const schema = tupleAsync([optionalAsync(string()), number()]);\n\n    test('for simple tuple', async () => {\n      await await expectNoSchemaIssueAsync(schema, [\n        ['foo', 123],\n        [undefined, 123],\n      ]);\n    });\n\n    test('for unknown items', async () => {\n      expect(\n        await schema['~run']({ value: ['foo', 123, null, true, undefined] }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: ['foo', 123],\n      });\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = tupleAsync([optionalAsync(string()), number()], 'message');\n    const baseIssue: Omit<TupleIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'tuple',\n      expected: 'Array',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, ['', 'abc', '123']);\n    });\n\n    test('for symbols', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        Symbol(),\n        Symbol('foo'),\n      ]);\n    });\n\n    // Complex types\n\n    test('for functions', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        () => {},\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        function () {},\n      ]);\n    });\n\n    test('for objects', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n\n  describe('should return dataset without nested issues', () => {\n    const schema = tupleAsync([optionalAsync(string()), number()]);\n\n    test('for simple tuple', async () => {\n      await expectNoSchemaIssueAsync(schema, [\n        ['foo', 123],\n        [undefined, 123],\n      ]);\n    });\n\n    test('for nested tuple', async () => {\n      await expectNoSchemaIssueAsync(tupleAsync([schema, schema]), [\n        [\n          ['foo', 123],\n          [undefined, 123],\n        ],\n      ]);\n    });\n\n    test('for unknown items', async () => {\n      expect(\n        await schema['~run']({ value: ['foo', 123, null, true, undefined] }, {})\n      ).toStrictEqual({\n        typed: true,\n        value: ['foo', 123],\n      });\n    });\n  });\n\n  describe('should return dataset with nested issues', () => {\n    const schema = tupleAsync([string(), number(), boolean()]);\n\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    const stringIssue: StringIssue = {\n      ...baseInfo,\n      kind: 'schema',\n      type: 'string',\n      input: 123,\n      expected: 'string',\n      received: '123',\n      path: [\n        {\n          type: 'array',\n          origin: 'value',\n          input: [123, 456, 'true'],\n          key: 0,\n          value: 123,\n        },\n      ],\n    };\n\n    test('for wrong items', async () => {\n      const input = [123, 456, 'true'];\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          stringIssue,\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'boolean',\n            input: 'true',\n            expected: 'boolean',\n            received: '\"true\"',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 2,\n                value: input[2],\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('with abort early', async () => {\n      expect(\n        await schema['~run'](\n          { value: [123, 456, 'true'] },\n          { abortEarly: true }\n        )\n      ).toStrictEqual({\n        typed: false,\n        value: [],\n        issues: [{ ...stringIssue, abortEarly: true }],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for wrong nested items', async () => {\n      const nestedSchema = tupleAsync([schema, schema]);\n      const input: [[string, string, boolean], null] = [\n        ['foo', '123', false],\n        null,\n      ];\n      expect(await nestedSchema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: '123',\n            expected: 'number',\n            received: '\"123\"',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 0,\n                value: input[0],\n              },\n              {\n                type: 'array',\n                origin: 'value',\n                input: input[0],\n                key: 1,\n                value: input[0][1],\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'tuple',\n            input: null,\n            expected: 'Array',\n            received: 'null',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 1,\n                value: input[1],\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof nestedSchema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/tuple/tupleAsync.ts",
    "content": "import type {\n  ArrayPathItem,\n  BaseIssue,\n  BaseSchemaAsync,\n  ErrorMessage,\n  InferTupleInput,\n  InferTupleIssue,\n  InferTupleOutput,\n  OutputDataset,\n  TupleItemsAsync,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\nimport type { tuple } from './tuple.ts';\nimport type { TupleIssue } from './types.ts';\n\n/**\n * Tuple schema async interface.\n */\nexport interface TupleSchemaAsync<\n  TItems extends TupleItemsAsync,\n  TMessage extends ErrorMessage<TupleIssue> | undefined,\n> extends BaseSchemaAsync<\n    InferTupleInput<TItems>,\n    InferTupleOutput<TItems>,\n    TupleIssue | InferTupleIssue<TItems>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'tuple';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof tuple | typeof tupleAsync;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Array';\n  /**\n   * The items schema.\n   */\n  readonly items: TItems;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a tuple schema.\n *\n * Hint: This schema removes unknown items. The output will only include the\n * items you specify. To include unknown items, use `looseTupleAsync`. To\n * return an issue for unknown items, use `strictTupleAsync`. To include and\n * validate unknown items, use `tupleWithRestAsync`.\n *\n * @param items The items schema.\n *\n * @returns A tuple schema.\n */\nexport function tupleAsync<const TItems extends TupleItemsAsync>(\n  items: TItems\n): TupleSchemaAsync<TItems, undefined>;\n\n/**\n * Creates a tuple schema.\n *\n * Hint: This schema removes unknown items. The output will only include the\n * items you specify. To include unknown items, use `looseTupleAsync`. To\n * return an issue for unknown items, use `strictTupleAsync`. To include and\n * validate unknown items, use `tupleWithRestAsync`.\n *\n * @param items The items schema.\n * @param message The error message.\n *\n * @returns A tuple schema.\n */\nexport function tupleAsync<\n  const TItems extends TupleItemsAsync,\n  const TMessage extends ErrorMessage<TupleIssue> | undefined,\n>(items: TItems, message: TMessage): TupleSchemaAsync<TItems, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function tupleAsync(\n  items: TupleItemsAsync,\n  message?: ErrorMessage<TupleIssue>\n): TupleSchemaAsync<TupleItemsAsync, ErrorMessage<TupleIssue> | undefined> {\n  return {\n    kind: 'schema',\n    type: 'tuple',\n    reference: tupleAsync,\n    expects: 'Array',\n    async: true,\n    items,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    async '~run'(dataset, config) {\n      // Get input value from dataset\n      const input = dataset.value;\n\n      // If root type is valid, check nested types\n      if (Array.isArray(input)) {\n        // Set typed to `true` and value to empty array\n        // @ts-expect-error\n        dataset.typed = true;\n        dataset.value = [];\n\n        // Parse schema of each tuple item\n        const itemDatasets = await Promise.all(\n          this.items.map(async (item, key) => {\n            const value = input[key];\n            return [key, value, await item['~run']({ value }, config)] as const;\n          })\n        );\n\n        // Process each tuple item dataset\n        for (const [key, value, itemDataset] of itemDatasets) {\n          // If there are issues, capture them\n          if (itemDataset.issues) {\n            // Create tuple path item\n            const pathItem: ArrayPathItem = {\n              type: 'array',\n              origin: 'value',\n              input,\n              key,\n              value,\n            };\n\n            // Add modified item dataset issues to issues\n            for (const issue of itemDataset.issues) {\n              if (issue.path) {\n                issue.path.unshift(pathItem);\n              } else {\n                // @ts-expect-error\n                issue.path = [pathItem];\n              }\n              // @ts-expect-error\n              dataset.issues?.push(issue);\n            }\n            if (!dataset.issues) {\n              // @ts-expect-error\n              dataset.issues = itemDataset.issues;\n            }\n\n            // If necessary, abort early\n            if (config.abortEarly) {\n              dataset.typed = false;\n              break;\n            }\n          }\n\n          // If not typed, set typed to `false`\n          if (!itemDataset.typed) {\n            dataset.typed = false;\n          }\n\n          // Add item to dataset\n          // @ts-expect-error\n          dataset.value.push(itemDataset.value);\n        }\n\n        // Otherwise, add tuple issue\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        unknown[],\n        TupleIssue | BaseIssue<unknown>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/tuple/types.ts",
    "content": "import type { BaseIssue } from '../../types/index.ts';\n\n/**\n * Tuple issue interface.\n */\nexport interface TupleIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'tuple';\n  /**\n   * The expected property.\n   */\n  readonly expected: 'Array';\n}\n"
  },
  {
    "path": "library/src/schemas/tupleWithRest/index.ts",
    "content": "export * from './tupleWithRest.ts';\nexport * from './tupleWithRestAsync.ts';\nexport * from './types.ts';\n"
  },
  {
    "path": "library/src/schemas/tupleWithRest/tupleWithRest.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  boolean,\n  type BooleanIssue,\n  type BooleanSchema,\n} from '../boolean/index.ts';\nimport { null_ } from '../null/index.ts';\nimport {\n  number,\n  type NumberIssue,\n  type NumberSchema,\n} from '../number/index.ts';\nimport type { OptionalSchema } from '../optional/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { tupleWithRest, type TupleWithRestSchema } from './tupleWithRest.ts';\nimport type { TupleWithRestIssue } from './types.ts';\n\ndescribe('tupleWithRest', () => {\n  describe('should return schema object', () => {\n    const items = [string(), number(), boolean()] as const;\n    type Items = typeof items;\n    const rest = null_();\n    type Rest = typeof rest;\n\n    test('with undefined message', () => {\n      type Schema = TupleWithRestSchema<Items, Rest, undefined>;\n      expectTypeOf(tupleWithRest(items, rest)).toEqualTypeOf<Schema>();\n      expectTypeOf(\n        tupleWithRest(items, rest, undefined)\n      ).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(tupleWithRest(items, rest, 'message')).toEqualTypeOf<\n        TupleWithRestSchema<Items, Rest, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(tupleWithRest(items, rest, () => 'message')).toEqualTypeOf<\n        TupleWithRestSchema<Items, Rest, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = TupleWithRestSchema<\n      [OptionalSchema<StringSchema<undefined>, 'foo'>, NumberSchema<undefined>],\n      OptionalSchema<BooleanSchema<undefined>, false>,\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<\n        [string | undefined, number, ...(boolean | undefined)[]]\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<\n        [string, number, ...boolean[]]\n      >();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        TupleWithRestIssue | StringIssue | NumberIssue | BooleanIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/tupleWithRest/tupleWithRest.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { boolean } from '../boolean/index.ts';\nimport { null_, type NullIssue } from '../null/index.ts';\nimport { number } from '../number/index.ts';\nimport { object } from '../object/index.ts';\nimport { optional } from '../optional/index.ts';\nimport { string, type StringIssue } from '../string/index.ts';\nimport { tupleWithRest, type TupleWithRestSchema } from './tupleWithRest.ts';\nimport type { TupleWithRestIssue } from './types.ts';\n\ndescribe('tupleWithRest', () => {\n  describe('should return schema object', () => {\n    const items = [optional(string()), number()] as const;\n    type Items = typeof items;\n    const rest = null_();\n    type Rest = typeof rest;\n    const baseSchema: Omit<\n      TupleWithRestSchema<Items, Rest, never>,\n      'message'\n    > = {\n      kind: 'schema',\n      type: 'tuple_with_rest',\n      reference: tupleWithRest,\n      expects: 'Array',\n      items,\n      rest,\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: TupleWithRestSchema<Items, Rest, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(tupleWithRest(items, rest)).toStrictEqual(schema);\n      expect(tupleWithRest(items, rest, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(tupleWithRest(items, rest, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies TupleWithRestSchema<Items, Rest, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(tupleWithRest(items, rest, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies TupleWithRestSchema<Items, Rest, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for empty tuple', () => {\n      expectNoSchemaIssue(tupleWithRest([], null_()), [[]]);\n    });\n\n    const schema = tupleWithRest([optional(string()), number()], null_());\n\n    test('for simple tuple', () => {\n      expectNoSchemaIssue(schema, [\n        ['foo', 123],\n        [undefined, 123],\n      ]);\n    });\n\n    test('for rest items', () => {\n      expectNoSchemaIssue(schema, [\n        [undefined, 123, null],\n        ['foo', 123, null, null, null, null],\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = tupleWithRest(\n      [optional(string()), number()],\n      null_(),\n      'message'\n    );\n    const baseIssue: Omit<TupleWithRestIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'tuple_with_rest',\n      expected: 'Array',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectSchemaIssue(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', 'abc', '123']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n\n    test('for objects', () => {\n      expectSchemaIssue(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n\n  describe('should return dataset without nested issues', () => {\n    const schema = tupleWithRest([optional(string()), number()], null_());\n\n    test('for simple tuple', () => {\n      expectNoSchemaIssue(schema, [\n        ['foo', 123],\n        [undefined, 123],\n      ]);\n    });\n\n    test('for nested tuple', () => {\n      expectNoSchemaIssue(tupleWithRest([schema, schema], null_()), [\n        [['foo', 123], [undefined, 123, null, null], null],\n      ]);\n    });\n\n    test('for rest items', () => {\n      expectNoSchemaIssue(schema, [\n        [undefined, 123, null],\n        ['foo', 123, null, null, null, null],\n      ]);\n    });\n  });\n\n  describe('should return dataset with nested issues', () => {\n    const schema = tupleWithRest([string(), number(), boolean()], null_());\n\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    const input = [123, 456, 'true', null, null, null];\n\n    const stringIssue: StringIssue = {\n      ...baseInfo,\n      kind: 'schema',\n      type: 'string',\n      input: 123,\n      expected: 'string',\n      received: '123',\n      path: [\n        {\n          type: 'array',\n          origin: 'value',\n          input,\n          key: 0,\n          value: 123,\n        },\n      ],\n    };\n\n    test('for invalid items', () => {\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          stringIssue,\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'boolean',\n            input: 'true',\n            expected: 'boolean',\n            received: '\"true\"',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 2,\n                value: input[2],\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('with abort early', () => {\n      expect(\n        schema['~run']({ value: input }, { abortEarly: true })\n      ).toStrictEqual({\n        typed: false,\n        value: [],\n        issues: [{ ...stringIssue, abortEarly: true }],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid nested items', () => {\n      const nestedSchema = tupleWithRest([schema, schema], null_());\n      const input: [[string, string, boolean], null, null] = [\n        ['foo', '123', false],\n        null,\n        null,\n      ];\n      expect(nestedSchema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: '123',\n            expected: 'number',\n            received: '\"123\"',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 0,\n                value: input[0],\n              },\n              {\n                type: 'array',\n                origin: 'value',\n                input: input[0],\n                key: 1,\n                value: input[0][1],\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'tuple_with_rest',\n            input: null,\n            expected: 'Array',\n            received: 'null',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 1,\n                value: input[1],\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof nestedSchema>>);\n    });\n\n    const nullIssue: NullIssue = {\n      ...baseInfo,\n      kind: 'schema',\n      type: 'null',\n      input: 'null',\n      expected: 'null',\n      received: '\"null\"',\n      path: [\n        {\n          type: 'array',\n          origin: 'value',\n          input: ['foo', 456, true, null, 'null', null, undefined],\n          key: 4,\n          value: 'null',\n        },\n      ],\n    };\n\n    test('for invalid rest', () => {\n      const input = ['foo', 456, true, null, 'null', null, undefined];\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          nullIssue,\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'null',\n            input: undefined,\n            expected: 'null',\n            received: 'undefined',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 6,\n                value: input[6],\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid rest with abort early', () => {\n      expect(\n        schema['~run'](\n          { value: ['foo', 456, true, null, 'null', null, undefined] },\n          { abortEarly: true }\n        )\n      ).toStrictEqual({\n        typed: false,\n        value: ['foo', 456, true, null],\n        issues: [{ ...nullIssue, abortEarly: true }],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid nested rest', () => {\n      const nestedSchema = tupleWithRest([string()], object({ key: number() }));\n      const input = [\n        'foo',\n        { key: '123' },\n        { key: 456 },\n        { key: null },\n      ] as const;\n      expect(nestedSchema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: '123',\n            expected: 'number',\n            received: '\"123\"',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 1,\n                value: input[1],\n              },\n              {\n                type: 'object',\n                origin: 'value',\n                input: input[1],\n                key: 'key',\n                value: input[1].key,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: null,\n            expected: 'number',\n            received: 'null',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 3,\n                value: input[3],\n              },\n              {\n                type: 'object',\n                origin: 'value',\n                input: input[3],\n                key: 'key',\n                value: input[3].key,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof nestedSchema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/tupleWithRest/tupleWithRest.ts",
    "content": "import type {\n  ArrayPathItem,\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  InferInput,\n  InferIssue,\n  InferOutput,\n  InferTupleInput,\n  InferTupleIssue,\n  InferTupleOutput,\n  OutputDataset,\n  TupleItems,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\nimport type { TupleWithRestIssue } from './types.ts';\n\n/**\n * Tuple with rest schema interface.\n */\nexport interface TupleWithRestSchema<\n  TItems extends TupleItems,\n  TRest extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  TMessage extends ErrorMessage<TupleWithRestIssue> | undefined,\n> extends BaseSchema<\n    [...InferTupleInput<TItems>, ...InferInput<TRest>[]],\n    [...InferTupleOutput<TItems>, ...InferOutput<TRest>[]],\n    TupleWithRestIssue | InferTupleIssue<TItems> | InferIssue<TRest>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'tuple_with_rest';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof tupleWithRest;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Array';\n  /**\n   * The items schema.\n   */\n  readonly items: TItems;\n  /**\n   * The rest schema.\n   */\n  readonly rest: TRest;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a tuple with rest schema.\n *\n * @param items The items schema.\n * @param rest The rest schema.\n *\n * @returns A tuple with rest schema.\n */\nexport function tupleWithRest<\n  const TItems extends TupleItems,\n  const TRest extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n>(items: TItems, rest: TRest): TupleWithRestSchema<TItems, TRest, undefined>;\n\n/**\n * Creates a tuple with rest schema.\n *\n * @param items The items schema.\n * @param rest The rest schema.\n * @param message The error message.\n *\n * @returns A tuple with rest schema.\n */\nexport function tupleWithRest<\n  const TItems extends TupleItems,\n  const TRest extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TMessage extends ErrorMessage<TupleWithRestIssue> | undefined,\n>(\n  items: TItems,\n  rest: TRest,\n  message: TMessage\n): TupleWithRestSchema<TItems, TRest, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function tupleWithRest(\n  items: TupleItems,\n  rest: BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  message?: ErrorMessage<TupleWithRestIssue>\n): TupleWithRestSchema<\n  TupleItems,\n  BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  ErrorMessage<TupleWithRestIssue> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'tuple_with_rest',\n    reference: tupleWithRest,\n    expects: 'Array',\n    async: false,\n    items,\n    rest,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      // Get input value from dataset\n      const input = dataset.value;\n\n      // If root type is valid, check nested types\n      if (Array.isArray(input)) {\n        // Set typed to `true` and value to empty array\n        // @ts-expect-error\n        dataset.typed = true;\n        dataset.value = [];\n\n        // Parse schema of each tuple item\n        for (let key = 0; key < this.items.length; key++) {\n          const value = input[key];\n          const itemDataset = this.items[key]['~run']({ value }, config);\n\n          // If there are issues, capture them\n          if (itemDataset.issues) {\n            // Create tuple path item\n            const pathItem: ArrayPathItem = {\n              type: 'array',\n              origin: 'value',\n              input,\n              key,\n              value,\n            };\n\n            // Add modified item dataset issues to issues\n            for (const issue of itemDataset.issues) {\n              if (issue.path) {\n                issue.path.unshift(pathItem);\n              } else {\n                // @ts-expect-error\n                issue.path = [pathItem];\n              }\n              // @ts-expect-error\n              dataset.issues?.push(issue);\n            }\n            if (!dataset.issues) {\n              // @ts-expect-error\n              dataset.issues = itemDataset.issues;\n            }\n\n            // If necessary, abort early\n            if (config.abortEarly) {\n              dataset.typed = false;\n              break;\n            }\n          }\n\n          // If not typed, set typed to `false`\n          if (!itemDataset.typed) {\n            dataset.typed = false;\n          }\n\n          // Add item to dataset\n          // @ts-expect-error\n          dataset.value.push(itemDataset.value);\n        }\n\n        // Parse rest with schema if necessary\n        if (!dataset.issues || !config.abortEarly) {\n          for (let key = this.items.length; key < input.length; key++) {\n            const value = input[key];\n            const itemDataset = this.rest['~run']({ value }, config);\n\n            // If there are issues, capture them\n            if (itemDataset.issues) {\n              // Create tuple path item\n              const pathItem: ArrayPathItem = {\n                type: 'array',\n                origin: 'value',\n                input,\n                key,\n                value,\n              };\n\n              // Add modified item dataset issues to issues\n              for (const issue of itemDataset.issues) {\n                if (issue.path) {\n                  issue.path.unshift(pathItem);\n                } else {\n                  // @ts-expect-error\n                  issue.path = [pathItem];\n                }\n                // @ts-expect-error\n                dataset.issues?.push(issue);\n              }\n              if (!dataset.issues) {\n                // @ts-expect-error\n                dataset.issues = itemDataset.issues;\n              }\n\n              // If necessary, abort early\n              if (config.abortEarly) {\n                dataset.typed = false;\n                break;\n              }\n            }\n\n            // If not typed, set typed to `false`\n            if (!itemDataset.typed) {\n              dataset.typed = false;\n            }\n\n            // Add item to dataset\n            // @ts-expect-error\n            dataset.value.push(itemDataset.value);\n          }\n        }\n\n        // Otherwise, add tuple issue\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        unknown[],\n        TupleWithRestIssue | BaseIssue<unknown>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/tupleWithRest/tupleWithRestAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  boolean,\n  type BooleanIssue,\n  type BooleanSchema,\n} from '../boolean/index.ts';\nimport { null_ } from '../null/index.ts';\nimport {\n  number,\n  type NumberIssue,\n  type NumberSchema,\n} from '../number/index.ts';\nimport type { OptionalSchema } from '../optional/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport {\n  tupleWithRestAsync,\n  type TupleWithRestSchemaAsync,\n} from './tupleWithRestAsync.ts';\nimport type { TupleWithRestIssue } from './types.ts';\n\ndescribe('tupleWithRestAsync', () => {\n  describe('should return schema object', () => {\n    const items = [string(), number(), boolean()] as const;\n    type Items = typeof items;\n    const rest = null_();\n    type Rest = typeof rest;\n\n    test('with undefined message', () => {\n      type Schema = TupleWithRestSchemaAsync<Items, Rest, undefined>;\n      expectTypeOf(tupleWithRestAsync(items, rest)).toEqualTypeOf<Schema>();\n      expectTypeOf(\n        tupleWithRestAsync(items, rest, undefined)\n      ).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(tupleWithRestAsync(items, rest, 'message')).toEqualTypeOf<\n        TupleWithRestSchemaAsync<Items, Rest, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(\n        tupleWithRestAsync(items, rest, () => 'message')\n      ).toEqualTypeOf<TupleWithRestSchemaAsync<Items, Rest, () => string>>();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = TupleWithRestSchemaAsync<\n      [OptionalSchema<StringSchema<undefined>, 'foo'>, NumberSchema<undefined>],\n      OptionalSchema<BooleanSchema<undefined>, false>,\n      undefined\n    >;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<\n        [string | undefined, number, ...(boolean | undefined)[]]\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<\n        [string, number, ...boolean[]]\n      >();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        TupleWithRestIssue | StringIssue | NumberIssue | BooleanIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/tupleWithRest/tupleWithRestAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { FailureDataset, InferIssue } from '../../types/index.ts';\nimport {\n  expectNoSchemaIssueAsync,\n  expectSchemaIssueAsync,\n} from '../../vitest/index.ts';\nimport { boolean } from '../boolean/index.ts';\nimport { null_, type NullIssue } from '../null/index.ts';\nimport { number } from '../number/index.ts';\nimport { objectAsync } from '../object/index.ts';\nimport { optionalAsync } from '../optional/index.ts';\nimport { string, type StringIssue } from '../string/index.ts';\nimport {\n  tupleWithRestAsync,\n  type TupleWithRestSchemaAsync,\n} from './tupleWithRestAsync.ts';\nimport type { TupleWithRestIssue } from './types.ts';\n\ndescribe('tupleWithRestAsync', () => {\n  describe('should return schema object', () => {\n    const items = [optionalAsync(string()), number()] as const;\n    type Items = typeof items;\n    const rest = null_();\n    type Rest = typeof rest;\n    const baseSchema: Omit<\n      TupleWithRestSchemaAsync<Items, Rest, never>,\n      'message'\n    > = {\n      kind: 'schema',\n      type: 'tuple_with_rest',\n      reference: tupleWithRestAsync,\n      expects: 'Array',\n      items,\n      rest,\n      async: true,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: TupleWithRestSchemaAsync<Items, Rest, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(tupleWithRestAsync(items, rest)).toStrictEqual(schema);\n      expect(tupleWithRestAsync(items, rest, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(tupleWithRestAsync(items, rest, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies TupleWithRestSchemaAsync<Items, Rest, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(tupleWithRestAsync(items, rest, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies TupleWithRestSchemaAsync<Items, Rest, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for empty tuple', async () => {\n      await expectNoSchemaIssueAsync(tupleWithRestAsync([], null_()), [[]]);\n    });\n\n    const schema = tupleWithRestAsync(\n      [optionalAsync(string()), number()],\n      null_()\n    );\n\n    test('for simple tuple', async () => {\n      await expectNoSchemaIssueAsync(schema, [\n        ['foo', 123],\n        [undefined, 123],\n      ]);\n    });\n\n    test('for rest items', async () => {\n      await expectNoSchemaIssueAsync(schema, [\n        [undefined, 123, null],\n        ['foo', 123, null, null, null, null],\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = tupleWithRestAsync(\n      [optionalAsync(string()), number()],\n      null_(),\n      'message'\n    );\n    const baseIssue: Omit<TupleWithRestIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'tuple_with_rest',\n      expected: 'Array',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [true, false]);\n    });\n\n    test('for null', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [null]);\n    });\n\n    test('for numbers', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [undefined]);\n    });\n\n    test('for strings', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, ['', 'abc', '123']);\n    });\n\n    test('for symbols', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        Symbol(),\n        Symbol('foo'),\n      ]);\n    });\n\n    // Complex types\n\n    test('for functions', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        () => {},\n        // eslint-disable-next-line @typescript-eslint/no-empty-function\n        function () {},\n      ]);\n    });\n\n    test('for objects', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n\n  describe('should return dataset without nested issues', () => {\n    const schema = tupleWithRestAsync(\n      [optionalAsync(string()), number()],\n      null_()\n    );\n\n    test('for simple tuple', async () => {\n      await expectNoSchemaIssueAsync(schema, [\n        ['foo', 123],\n        [undefined, 123],\n      ]);\n    });\n\n    test('for nested tuple', async () => {\n      await expectNoSchemaIssueAsync(\n        tupleWithRestAsync([schema, schema], null_()),\n        [[['foo', 123], [undefined, 123, null, null], null]]\n      );\n    });\n\n    test('for rest items', async () => {\n      await expectNoSchemaIssueAsync(schema, [\n        [undefined, 123, null],\n        ['foo', 123, null, null, null, null],\n      ]);\n    });\n  });\n\n  describe('should return dataset with nested issues', () => {\n    const schema = tupleWithRestAsync([string(), number(), boolean()], null_());\n\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    const stringIssue: StringIssue = {\n      ...baseInfo,\n      kind: 'schema',\n      type: 'string',\n      input: 123,\n      expected: 'string',\n      received: '123',\n      path: [\n        {\n          type: 'array',\n          origin: 'value',\n          input: [123, 456, 'true', null, null, null],\n          key: 0,\n          value: 123,\n        },\n      ],\n    };\n\n    test('for invalid items', async () => {\n      const input = [123, 456, 'true', null, null, null];\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          stringIssue,\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'boolean',\n            input: 'true',\n            expected: 'boolean',\n            received: '\"true\"',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 2,\n                value: input[2],\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('with abort early', async () => {\n      expect(\n        await schema['~run'](\n          { value: [123, 456, 'true', null, null, null] },\n          { abortEarly: true }\n        )\n      ).toStrictEqual({\n        typed: false,\n        value: [],\n        issues: [{ ...stringIssue, abortEarly: true }],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid nested items', async () => {\n      const nestedSchema = tupleWithRestAsync([schema, schema], null_());\n      const input: [[string, string, boolean], null, null] = [\n        ['foo', '123', false],\n        null,\n        null,\n      ];\n      expect(await nestedSchema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: '123',\n            expected: 'number',\n            received: '\"123\"',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 0,\n                value: input[0],\n              },\n              {\n                type: 'array',\n                origin: 'value',\n                input: input[0],\n                key: 1,\n                value: input[0][1],\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'tuple_with_rest',\n            input: null,\n            expected: 'Array',\n            received: 'null',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 1,\n                value: input[1],\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof nestedSchema>>);\n    });\n\n    const nullIssue: NullIssue = {\n      ...baseInfo,\n      kind: 'schema',\n      type: 'null',\n      input: 'null',\n      expected: 'null',\n      received: '\"null\"',\n      path: [\n        {\n          type: 'array',\n          origin: 'value',\n          input: ['foo', 456, true, null, 'null', null, undefined],\n          key: 4,\n          value: 'null',\n        },\n      ],\n    };\n\n    test('for invalid rest', async () => {\n      const input = ['foo', 456, true, null, 'null', null, undefined];\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          nullIssue,\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'null',\n            input: undefined,\n            expected: 'null',\n            received: 'undefined',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 6,\n                value: input[6],\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid rest with abort early', async () => {\n      expect(\n        await schema['~run'](\n          { value: ['foo', 456, true, null, 'null', null, undefined] },\n          { abortEarly: true }\n        )\n      ).toStrictEqual({\n        typed: false,\n        value: ['foo', 456, true, null],\n        issues: [{ ...nullIssue, abortEarly: true }],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid nested rest', async () => {\n      const nestedSchema = tupleWithRestAsync(\n        [string()],\n        objectAsync({ key: number() })\n      );\n      const input = [\n        'foo',\n        { key: '123' },\n        { key: 456 },\n        { key: null },\n      ] as const;\n      expect(await nestedSchema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: '123',\n            expected: 'number',\n            received: '\"123\"',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 1,\n                value: input[1],\n              },\n              {\n                type: 'object',\n                origin: 'value',\n                input: input[1],\n                key: 'key',\n                value: input[1].key,\n              },\n            ],\n          },\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'number',\n            input: null,\n            expected: 'number',\n            received: 'null',\n            path: [\n              {\n                type: 'array',\n                origin: 'value',\n                input: input,\n                key: 3,\n                value: input[3],\n              },\n              {\n                type: 'object',\n                origin: 'value',\n                input: input[3],\n                key: 'key',\n                value: input[3].key,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof nestedSchema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/tupleWithRest/tupleWithRestAsync.ts",
    "content": "import type {\n  ArrayPathItem,\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  ErrorMessage,\n  InferInput,\n  InferIssue,\n  InferOutput,\n  InferTupleInput,\n  InferTupleIssue,\n  InferTupleOutput,\n  OutputDataset,\n  TupleItemsAsync,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\nimport type { tupleWithRest } from './tupleWithRest.ts';\nimport type { TupleWithRestIssue } from './types.ts';\n\n/**\n * Tuple with rest schema async interface.\n */\nexport interface TupleWithRestSchemaAsync<\n  TItems extends TupleItemsAsync,\n  TRest extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  TMessage extends ErrorMessage<TupleWithRestIssue> | undefined,\n> extends BaseSchemaAsync<\n    [...InferTupleInput<TItems>, ...InferInput<TRest>[]],\n    [...InferTupleOutput<TItems>, ...InferOutput<TRest>[]],\n    TupleWithRestIssue | InferTupleIssue<TItems> | InferIssue<TRest>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'tuple_with_rest';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof tupleWithRest | typeof tupleWithRestAsync;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Array';\n  /**\n   * The items schema.\n   */\n  readonly items: TItems;\n  /**\n   * The rest schema.\n   */\n  readonly rest: TRest;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a tuple with rest schema.\n *\n * @param items The items schema.\n * @param rest The rest schema.\n *\n * @returns A tuple with rest schema.\n */\nexport function tupleWithRestAsync<\n  const TItems extends TupleItemsAsync,\n  const TRest extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(\n  items: TItems,\n  rest: TRest\n): TupleWithRestSchemaAsync<TItems, TRest, undefined>;\n\n/**\n * Creates a tuple with rest schema.\n *\n * @param items The items schema.\n * @param rest The rest schema.\n * @param message The error message.\n *\n * @returns A tuple with rest schema.\n */\nexport function tupleWithRestAsync<\n  const TItems extends TupleItemsAsync,\n  const TRest extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TMessage extends ErrorMessage<TupleWithRestIssue> | undefined,\n>(\n  items: TItems,\n  rest: TRest,\n  message: TMessage\n): TupleWithRestSchemaAsync<TItems, TRest, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function tupleWithRestAsync(\n  items: TupleItemsAsync,\n  rest:\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  message?: ErrorMessage<TupleWithRestIssue>\n): TupleWithRestSchemaAsync<\n  TupleItemsAsync,\n  | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n  | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  ErrorMessage<TupleWithRestIssue> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'tuple_with_rest',\n    reference: tupleWithRestAsync,\n    expects: 'Array',\n    async: true,\n    items,\n    rest,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    async '~run'(dataset, config) {\n      // Get input value from dataset\n      const input = dataset.value;\n\n      // If root type is valid, check nested types\n      if (Array.isArray(input)) {\n        // Set typed to `true` and value to empty array\n        // @ts-expect-error\n        dataset.typed = true;\n        dataset.value = [];\n\n        // Parse each normal and rest item\n        const [normalDatasets, restDatasets] = await Promise.all([\n          // Parse schema of each normal item\n          Promise.all(\n            this.items.map(async (item, key) => {\n              const value = input[key];\n              return [\n                key,\n                value,\n                await item['~run']({ value }, config),\n              ] as const;\n            })\n          ),\n\n          // Parse other items with rest schema\n          Promise.all(\n            input.slice(this.items.length).map(async (value, key) => {\n              return [\n                key + this.items.length,\n                value,\n                await this.rest['~run']({ value }, config),\n              ] as const;\n            })\n          ),\n        ]);\n\n        // Process each tuple item dataset\n        for (const [key, value, itemDataset] of normalDatasets) {\n          // If there are issues, capture them\n          if (itemDataset.issues) {\n            // Create tuple path item\n            const pathItem: ArrayPathItem = {\n              type: 'array',\n              origin: 'value',\n              input,\n              key,\n              value,\n            };\n\n            // Add modified item dataset issues to issues\n            for (const issue of itemDataset.issues) {\n              if (issue.path) {\n                issue.path.unshift(pathItem);\n              } else {\n                // @ts-expect-error\n                issue.path = [pathItem];\n              }\n              // @ts-expect-error\n              dataset.issues?.push(issue);\n            }\n            if (!dataset.issues) {\n              // @ts-expect-error\n              dataset.issues = itemDataset.issues;\n            }\n\n            // If necessary, abort early\n            if (config.abortEarly) {\n              dataset.typed = false;\n              break;\n            }\n          }\n\n          // If not typed, set typed to `false`\n          if (!itemDataset.typed) {\n            dataset.typed = false;\n          }\n\n          // Add item to dataset\n          // @ts-expect-error\n          dataset.value.push(itemDataset.value);\n        }\n\n        // Parse rest with schema if necessary\n        if (!dataset.issues || !config.abortEarly) {\n          for (const [key, value, itemDataset] of restDatasets) {\n            // If there are issues, capture them\n            if (itemDataset.issues) {\n              // Create tuple path item\n              const pathItem: ArrayPathItem = {\n                type: 'array',\n                origin: 'value',\n                input,\n                key,\n                value,\n              };\n\n              // Add modified item dataset issues to issues\n              for (const issue of itemDataset.issues) {\n                if (issue.path) {\n                  issue.path.unshift(pathItem);\n                } else {\n                  // @ts-expect-error\n                  issue.path = [pathItem];\n                }\n                // @ts-expect-error\n                dataset.issues?.push(issue);\n              }\n              if (!dataset.issues) {\n                // @ts-expect-error\n                dataset.issues = itemDataset.issues;\n              }\n\n              // If necessary, abort early\n              if (config.abortEarly) {\n                dataset.typed = false;\n                break;\n              }\n            }\n\n            // If not typed, set typed to `false`\n            if (!itemDataset.typed) {\n              dataset.typed = false;\n            }\n\n            // Add item to dataset\n            // @ts-expect-error\n            dataset.value.push(itemDataset.value);\n          }\n        }\n\n        // Otherwise, add tuple issue\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        unknown[],\n        TupleWithRestIssue | BaseIssue<unknown>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/tupleWithRest/types.ts",
    "content": "import type { BaseIssue } from '../../types/index.ts';\n\n/**\n * Tuple with rest issue interface.\n */\nexport interface TupleWithRestIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'tuple_with_rest';\n  /**\n   * The expected property.\n   */\n  readonly expected: 'Array';\n}\n"
  },
  {
    "path": "library/src/schemas/undefined/index.ts",
    "content": "export * from './undefined.ts';\n"
  },
  {
    "path": "library/src/schemas/undefined/undefined.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  undefined_,\n  type UndefinedIssue,\n  type UndefinedSchema,\n} from './undefined.ts';\n\ndescribe('undefined', () => {\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = UndefinedSchema<undefined>;\n      expectTypeOf(undefined_()).toEqualTypeOf<Schema>();\n      expectTypeOf(undefined_(undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(undefined_('message')).toEqualTypeOf<\n        UndefinedSchema<'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(undefined_(() => 'message')).toEqualTypeOf<\n        UndefinedSchema<() => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = UndefinedSchema<undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<undefined>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<undefined>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<UndefinedIssue>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/undefined/undefined.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport {\n  undefined_,\n  type UndefinedIssue,\n  type UndefinedSchema,\n} from './undefined.ts';\n\ndescribe('undefined', () => {\n  describe('should return schema object', () => {\n    const baseSchema: Omit<UndefinedSchema<never>, 'message'> = {\n      kind: 'schema',\n      type: 'undefined',\n      reference: undefined_,\n      expects: 'undefined',\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: UndefinedSchema<undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(undefined_()).toStrictEqual(schema);\n      expect(undefined_(undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(undefined_('message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies UndefinedSchema<'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(undefined_(message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies UndefinedSchema<typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = undefined_();\n\n    test('for undefined', () => {\n      expectNoSchemaIssue(schema, [undefined]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = undefined_('message');\n    const baseIssue: Omit<UndefinedIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'undefined',\n      expected: 'undefined',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', 'foo', '123']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    test('for arrays', () => {\n      expectSchemaIssue(schema, baseIssue, [[], ['value']]);\n    });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n\n    test('for objects', () => {\n      expectSchemaIssue(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/undefined/undefined.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\n\n/**\n * Undefined issue interface.\n */\nexport interface UndefinedIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'undefined';\n  /**\n   * The expected property.\n   */\n  readonly expected: 'undefined';\n}\n\n/**\n * Undefined schema interface.\n */\nexport interface UndefinedSchema<\n  TMessage extends ErrorMessage<UndefinedIssue> | undefined,\n> extends BaseSchema<undefined, undefined, UndefinedIssue> {\n  /**\n   * The schema type.\n   */\n  readonly type: 'undefined';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof undefined_;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'undefined';\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an undefined schema.\n *\n * @returns An undefined schema.\n */\nexport function undefined_(): UndefinedSchema<undefined>;\n\n/**\n * Creates an undefined schema.\n *\n * @param message The error message.\n *\n * @returns An undefined schema.\n */\nexport function undefined_<\n  const TMessage extends ErrorMessage<UndefinedIssue> | undefined,\n>(message: TMessage): UndefinedSchema<TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function undefined_(\n  message?: ErrorMessage<UndefinedIssue>\n): UndefinedSchema<ErrorMessage<UndefinedIssue> | undefined> {\n  return {\n    kind: 'schema',\n    type: 'undefined',\n    reference: undefined_,\n    expects: 'undefined',\n    async: false,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      if (dataset.value === undefined) {\n        // @ts-expect-error\n        dataset.typed = true;\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n      // @ts-expect-error\n      return dataset as OutputDataset<undefined, UndefinedIssue>;\n    },\n  };\n}\n\nexport { undefined_ as undefined };\n"
  },
  {
    "path": "library/src/schemas/undefinedable/index.ts",
    "content": "export * from './undefinedable.ts';\nexport * from './undefinedableAsync.ts';\n"
  },
  {
    "path": "library/src/schemas/undefinedable/types.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  DefaultAsync,\n  DefaultValue,\n  InferOutput,\n} from '../../types/index.ts';\n\n/**\n * Infer undefinedable output type.\n */\nexport type InferUndefinedableOutput<\n  TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  TDefault extends DefaultAsync<TWrapped, undefined>,\n> = undefined extends TDefault\n  ? InferOutput<TWrapped> | undefined\n  : InferOutput<TWrapped> | Extract<DefaultValue<TDefault>, undefined>;\n"
  },
  {
    "path": "library/src/schemas/undefinedable/undefinedable.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { TransformAction } from '../../actions/index.ts';\nimport type { SchemaWithPipe } from '../../methods/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { undefinedable, type UndefinedableSchema } from './undefinedable.ts';\n\ndescribe('undefinedable', () => {\n  describe('should return schema object', () => {\n    test('with undefined default', () => {\n      type Schema = UndefinedableSchema<StringSchema<undefined>, undefined>;\n      expectTypeOf(undefinedable(string())).toEqualTypeOf<Schema>();\n      expectTypeOf(undefinedable(string(), undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with undefined getter default', () => {\n      expectTypeOf(undefinedable(string(), () => undefined)).toEqualTypeOf<\n        UndefinedableSchema<StringSchema<undefined>, () => undefined>\n      >();\n    });\n\n    test('with value default', () => {\n      expectTypeOf(undefinedable(string(), 'foo')).toEqualTypeOf<\n        UndefinedableSchema<StringSchema<undefined>, 'foo'>\n      >();\n    });\n\n    test('with value getter default', () => {\n      expectTypeOf(undefinedable(string(), () => 'foo')).toEqualTypeOf<\n        UndefinedableSchema<StringSchema<undefined>, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema1 = UndefinedableSchema<StringSchema<undefined>, undefined>;\n    type Schema2 = UndefinedableSchema<StringSchema<undefined>, 'foo'>;\n    type Schema3 = UndefinedableSchema<\n      StringSchema<undefined>,\n      () => undefined\n    >;\n    type Schema4 = UndefinedableSchema<StringSchema<undefined>, () => 'foo'>;\n    type Schema5 = UndefinedableSchema<\n      SchemaWithPipe<\n        [StringSchema<undefined>, TransformAction<string, number>]\n      >,\n      'foo'\n    >;\n\n    test('of input', () => {\n      type Input = string | undefined;\n      expectTypeOf<InferInput<Schema1>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema2>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema3>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema4>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema5>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema1>>().toEqualTypeOf<string | undefined>();\n      expectTypeOf<InferOutput<Schema2>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema3>>().toEqualTypeOf<string | undefined>();\n      expectTypeOf<InferOutput<Schema4>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema5>>().toEqualTypeOf<number>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema1>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema2>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema3>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema4>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema5>>().toEqualTypeOf<StringIssue>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/undefinedable/undefinedable.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport { undefinedable, type UndefinedableSchema } from './undefinedable.ts';\n\ndescribe('undefinedable', () => {\n  describe('should return schema object', () => {\n    const baseSchema: Omit<\n      UndefinedableSchema<StringSchema<undefined>, string>,\n      'default'\n    > = {\n      kind: 'schema',\n      type: 'undefinedable',\n      reference: undefinedable,\n      expects: '(string | undefined)',\n      wrapped: {\n        ...string(),\n        '~standard': {\n          version: 1,\n          vendor: 'valibot',\n          validate: expect.any(Function),\n        },\n        '~run': expect.any(Function),\n      },\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined default', () => {\n      const expected: UndefinedableSchema<\n        StringSchema<undefined>,\n        undefined\n      > = {\n        ...baseSchema,\n        default: undefined,\n      };\n      expect(undefinedable(string())).toStrictEqual(expected);\n      expect(undefinedable(string(), undefined)).toStrictEqual(expected);\n    });\n\n    test('with undefined getter default', () => {\n      const getter = () => undefined;\n      expect(undefinedable(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies UndefinedableSchema<StringSchema<undefined>, typeof getter>);\n    });\n\n    test('with value default', () => {\n      expect(undefinedable(string(), 'foo')).toStrictEqual({\n        ...baseSchema,\n        default: 'foo',\n      } satisfies UndefinedableSchema<StringSchema<undefined>, 'foo'>);\n    });\n\n    test('with value getter default', () => {\n      const getter = () => 'foo';\n      expect(undefinedable(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies UndefinedableSchema<StringSchema<undefined>, typeof getter>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = undefinedable(string());\n\n    test('for wrapper type', () => {\n      expectNoSchemaIssue(schema, ['', 'foo', '#$%']);\n    });\n\n    test('for undefined', () => {\n      expectNoSchemaIssue(schema, [undefined]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = undefinedable(string('message'));\n    const baseIssue: Omit<StringIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'string',\n      expected: 'string',\n      message: 'message',\n    };\n\n    test('for invalid wrapper type', () => {\n      expectSchemaIssue(schema, baseIssue, [123, true, {}]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n  });\n\n  describe('should return dataset without default', () => {\n    test('for undefined default', () => {\n      expectNoSchemaIssue(undefinedable(string()), [undefined, 'foo']);\n      expectNoSchemaIssue(undefinedable(string(), undefined), [\n        undefined,\n        'foo',\n      ]);\n    });\n\n    test('for wrapper type', () => {\n      expectNoSchemaIssue(undefinedable(string(), 'foo'), ['', 'bar', '#$%']);\n    });\n  });\n\n  describe('should return dataset with default', () => {\n    const schema1 = undefinedable(string(), 'foo');\n    const schema2 = undefinedable(string(), () => undefined);\n    const schema3 = undefinedable(string(), () => 'foo');\n\n    test('for undefined', () => {\n      expect(schema1['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n      });\n      expect(schema2['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: undefined,\n      });\n      expect(schema3['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/undefinedable/undefinedable.ts",
    "content": "import { getDefault } from '../../methods/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  Default,\n  InferInput,\n  InferIssue,\n  SuccessDataset,\n} from '../../types/index.ts';\nimport { _getStandardProps } from '../../utils/index.ts';\nimport type { InferUndefinedableOutput } from './types.ts';\n\n/**\n * Undefinedable schema interface.\n */\nexport interface UndefinedableSchema<\n  TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  TDefault extends Default<TWrapped, undefined>,\n> extends BaseSchema<\n    InferInput<TWrapped> | undefined,\n    InferUndefinedableOutput<TWrapped, TDefault>,\n    InferIssue<TWrapped>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'undefinedable';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof undefinedable;\n  /**\n   * The expected property.\n   */\n  readonly expects: `(${TWrapped['expects']} | undefined)`;\n  /**\n   * The wrapped schema.\n   */\n  readonly wrapped: TWrapped;\n  /**\n   * The default value.\n   */\n  readonly default: TDefault;\n}\n\n/**\n * Creates an undefinedable schema.\n *\n * @param wrapped The wrapped schema.\n *\n * @returns An undefinedable schema.\n */\nexport function undefinedable<\n  const TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n>(wrapped: TWrapped): UndefinedableSchema<TWrapped, undefined>;\n\n/**\n * Creates an undefinedable schema.\n *\n * @param wrapped The wrapped schema.\n * @param default_ The default value.\n *\n * @returns An undefinedable schema.\n */\nexport function undefinedable<\n  const TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  const TDefault extends Default<TWrapped, undefined>,\n>(\n  wrapped: TWrapped,\n  default_: TDefault\n): UndefinedableSchema<TWrapped, TDefault>;\n\n// @__NO_SIDE_EFFECTS__\nexport function undefinedable(\n  wrapped: BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  default_?: unknown\n): UndefinedableSchema<\n  BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  unknown\n> {\n  return {\n    kind: 'schema',\n    type: 'undefinedable',\n    reference: undefinedable,\n    expects: `(${wrapped.expects} | undefined)`,\n    async: false,\n    wrapped,\n    default: default_,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      // If value is `undefined`, override it with default or return dataset\n      if (dataset.value === undefined) {\n        // If default is specified, override value of dataset\n        if (this.default !== undefined) {\n          dataset.value = getDefault(this, dataset, config);\n        }\n\n        // If value is still `undefined`, return dataset\n        if (dataset.value === undefined) {\n          // @ts-expect-error\n          dataset.typed = true;\n          // @ts-expect-error\n          return dataset as SuccessDataset<unknown>;\n        }\n      }\n\n      // Otherwise, return dataset of wrapped schema\n      return this.wrapped['~run'](dataset, config);\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/undefinedable/undefinedableAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { TransformActionAsync } from '../../actions/index.ts';\nimport type { SchemaWithPipeAsync } from '../../methods/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport {\n  undefinedableAsync,\n  type UndefinedableSchemaAsync,\n} from './undefinedableAsync.ts';\n\ndescribe('undefinedableAsync', () => {\n  describe('should return schema object', () => {\n    test('with undefined default', () => {\n      type Schema = UndefinedableSchemaAsync<\n        StringSchema<undefined>,\n        undefined\n      >;\n      expectTypeOf(undefinedableAsync(string())).toEqualTypeOf<Schema>();\n      expectTypeOf(\n        undefinedableAsync(string(), undefined)\n      ).toEqualTypeOf<Schema>();\n    });\n\n    test('with undefined getter default', () => {\n      expectTypeOf(undefinedableAsync(string(), () => undefined)).toEqualTypeOf<\n        UndefinedableSchemaAsync<StringSchema<undefined>, () => undefined>\n      >();\n    });\n\n    test('with async undefined getter default', () => {\n      expectTypeOf(\n        undefinedableAsync(string(), async () => undefined)\n      ).toEqualTypeOf<\n        UndefinedableSchemaAsync<\n          StringSchema<undefined>,\n          () => Promise<undefined>\n        >\n      >();\n    });\n\n    test('with value default', () => {\n      expectTypeOf(undefinedableAsync(string(), 'foo')).toEqualTypeOf<\n        UndefinedableSchemaAsync<StringSchema<undefined>, 'foo'>\n      >();\n    });\n\n    test('with value getter default', () => {\n      expectTypeOf(undefinedableAsync(string(), () => 'foo')).toEqualTypeOf<\n        UndefinedableSchemaAsync<StringSchema<undefined>, () => string>\n      >();\n    });\n\n    test('with async value getter default', () => {\n      expectTypeOf(\n        undefinedableAsync(string(), async () => 'foo')\n      ).toEqualTypeOf<\n        UndefinedableSchemaAsync<StringSchema<undefined>, () => Promise<string>>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema1 = UndefinedableSchemaAsync<StringSchema<undefined>, undefined>;\n    type Schema2 = UndefinedableSchemaAsync<StringSchema<undefined>, 'foo'>;\n    type Schema3 = UndefinedableSchemaAsync<\n      StringSchema<undefined>,\n      () => undefined\n    >;\n    type Schema4 = UndefinedableSchemaAsync<\n      StringSchema<undefined>,\n      () => 'foo'\n    >;\n    type Schema5 = UndefinedableSchemaAsync<\n      StringSchema<undefined>,\n      () => Promise<undefined>\n    >;\n    type Schema6 = UndefinedableSchemaAsync<\n      StringSchema<undefined>,\n      () => Promise<'foo'>\n    >;\n    type Schema7 = UndefinedableSchemaAsync<\n      SchemaWithPipeAsync<\n        [StringSchema<undefined>, TransformActionAsync<string, number>]\n      >,\n      'foo'\n    >;\n\n    test('of input', () => {\n      type Input = string | undefined;\n      expectTypeOf<InferInput<Schema1>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema2>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema3>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema4>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema5>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema6>>().toEqualTypeOf<Input>();\n      expectTypeOf<InferInput<Schema7>>().toEqualTypeOf<Input>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema1>>().toEqualTypeOf<string | undefined>();\n      expectTypeOf<InferOutput<Schema2>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema3>>().toEqualTypeOf<string | undefined>();\n      expectTypeOf<InferOutput<Schema4>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema5>>().toEqualTypeOf<string | undefined>();\n      expectTypeOf<InferOutput<Schema6>>().toEqualTypeOf<string>();\n      expectTypeOf<InferOutput<Schema7>>().toEqualTypeOf<number>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema1>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema2>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema3>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema4>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema5>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema6>>().toEqualTypeOf<StringIssue>();\n      expectTypeOf<InferIssue<Schema7>>().toEqualTypeOf<StringIssue>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/undefinedable/undefinedableAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  expectNoSchemaIssueAsync,\n  expectSchemaIssueAsync,\n} from '../../vitest/index.ts';\nimport {\n  string,\n  type StringIssue,\n  type StringSchema,\n} from '../string/index.ts';\nimport {\n  undefinedableAsync,\n  type UndefinedableSchemaAsync,\n} from './undefinedableAsync.ts';\n\ndescribe('undefinedableAsync', () => {\n  describe('should return schema object', () => {\n    const baseSchema: Omit<\n      UndefinedableSchemaAsync<StringSchema<undefined>, string>,\n      'default'\n    > = {\n      kind: 'schema',\n      type: 'undefinedable',\n      reference: undefinedableAsync,\n      expects: '(string | undefined)',\n      wrapped: {\n        ...string(),\n        '~standard': {\n          version: 1,\n          vendor: 'valibot',\n          validate: expect.any(Function),\n        },\n        '~run': expect.any(Function),\n      },\n      async: true,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined default', () => {\n      const expected: UndefinedableSchemaAsync<\n        StringSchema<undefined>,\n        undefined\n      > = {\n        ...baseSchema,\n        default: undefined,\n      };\n      expect(undefinedableAsync(string())).toStrictEqual(expected);\n      expect(undefinedableAsync(string(), undefined)).toStrictEqual(expected);\n    });\n\n    test('with undefined getter default', () => {\n      const getter = () => undefined;\n      expect(undefinedableAsync(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies UndefinedableSchemaAsync<\n        StringSchema<undefined>,\n        typeof getter\n      >);\n    });\n\n    test('with async undefined getter default', () => {\n      const getter = async () => undefined;\n      expect(undefinedableAsync(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies UndefinedableSchemaAsync<\n        StringSchema<undefined>,\n        typeof getter\n      >);\n    });\n\n    test('with value default', () => {\n      expect(undefinedableAsync(string(), 'foo')).toStrictEqual({\n        ...baseSchema,\n        default: 'foo',\n      } satisfies UndefinedableSchemaAsync<StringSchema<undefined>, 'foo'>);\n    });\n\n    test('with value getter default', () => {\n      const getter = () => 'foo';\n      expect(undefinedableAsync(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies UndefinedableSchemaAsync<\n        StringSchema<undefined>,\n        typeof getter\n      >);\n    });\n\n    test('with async value getter default', () => {\n      const getter = async () => 'foo';\n      expect(undefinedableAsync(string(), getter)).toStrictEqual({\n        ...baseSchema,\n        default: getter,\n      } satisfies UndefinedableSchemaAsync<\n        StringSchema<undefined>,\n        typeof getter\n      >);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = undefinedableAsync(string());\n\n    test('for wrapper type', async () => {\n      await expectNoSchemaIssueAsync(schema, ['', 'foo', '#$%']);\n    });\n\n    test('for undefined', async () => {\n      await expectNoSchemaIssueAsync(schema, [undefined]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = undefinedableAsync(string('message'));\n    const baseIssue: Omit<StringIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'string',\n      expected: 'string',\n      message: 'message',\n    };\n\n    test('for invalid wrapper type', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [123, true, {}]);\n    });\n\n    test('for null', async () => {\n      await expectSchemaIssueAsync(schema, baseIssue, [null]);\n    });\n  });\n\n  describe('should return dataset without default', () => {\n    test('for undefined default', async () => {\n      await expectNoSchemaIssueAsync(undefinedableAsync(string()), [\n        undefined,\n        'foo',\n      ]);\n      await expectNoSchemaIssueAsync(undefinedableAsync(string(), undefined), [\n        undefined,\n        'foo',\n      ]);\n    });\n\n    test('for wrapper type', async () => {\n      await expectNoSchemaIssueAsync(undefinedableAsync(string(), 'foo'), [\n        '',\n        'bar',\n        '#$%',\n      ]);\n    });\n  });\n\n  describe('should return dataset with default', () => {\n    const schema1 = undefinedableAsync(string(), 'foo');\n    const schema2 = undefinedableAsync(string(), () => undefined);\n    const schema3 = undefinedableAsync(string(), () => 'foo');\n    const schema4 = undefinedableAsync(string(), async () => undefined);\n    const schema5 = undefinedableAsync(string(), async () => 'foo');\n\n    test('for undefined', async () => {\n      expect(await schema1['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n      });\n      expect(await schema2['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: undefined,\n      });\n      expect(await schema3['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n      });\n      expect(await schema4['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: undefined,\n      });\n      expect(await schema5['~run']({ value: undefined }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/undefinedable/undefinedableAsync.ts",
    "content": "import { getDefault } from '../../methods/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  DefaultAsync,\n  InferInput,\n  InferIssue,\n  SuccessDataset,\n} from '../../types/index.ts';\nimport { _getStandardProps } from '../../utils/index.ts';\nimport type { InferUndefinedableOutput } from './types.ts';\nimport type { undefinedable } from './undefinedable.ts';\n\n/**\n * Undefinedable schema async interface.\n */\nexport interface UndefinedableSchemaAsync<\n  TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  TDefault extends DefaultAsync<TWrapped, undefined>,\n> extends BaseSchemaAsync<\n    InferInput<TWrapped> | undefined,\n    InferUndefinedableOutput<TWrapped, TDefault>,\n    InferIssue<TWrapped>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'undefinedable';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof undefinedable | typeof undefinedableAsync;\n  /**\n   * The expected property.\n   */\n  readonly expects: `(${TWrapped['expects']} | undefined)`;\n  /**\n   * The wrapped schema.\n   */\n  readonly wrapped: TWrapped;\n  /**\n   * The default value.\n   */\n  readonly default: TDefault;\n}\n\n/**\n * Creates an undefinedable schema.\n *\n * @param wrapped The wrapped schema.\n *\n * @returns An undefinedable schema.\n */\nexport function undefinedableAsync<\n  const TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(wrapped: TWrapped): UndefinedableSchemaAsync<TWrapped, undefined>;\n\n/**\n * Creates an undefinedable schema.\n *\n * @param wrapped The wrapped schema.\n * @param default_ The default value.\n *\n * @returns An undefinedable schema.\n */\nexport function undefinedableAsync<\n  const TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  const TDefault extends DefaultAsync<TWrapped, undefined>,\n>(\n  wrapped: TWrapped,\n  default_: TDefault\n): UndefinedableSchemaAsync<TWrapped, TDefault>;\n\n// @__NO_SIDE_EFFECTS__\nexport function undefinedableAsync(\n  wrapped:\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  default_?: unknown\n): UndefinedableSchemaAsync<\n  | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n  | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  unknown\n> {\n  return {\n    kind: 'schema',\n    type: 'undefinedable',\n    reference: undefinedableAsync,\n    expects: `(${wrapped.expects} | undefined)`,\n    async: true,\n    wrapped,\n    default: default_,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    async '~run'(dataset, config) {\n      // If value is `undefined`, override it with default or return dataset\n      if (dataset.value === undefined) {\n        // If default is specified, override value of dataset\n        if (this.default !== undefined) {\n          dataset.value = await getDefault(this, dataset, config);\n        }\n\n        // If value is still `undefined`, return dataset\n        if (dataset.value === undefined) {\n          // @ts-expect-error\n          dataset.typed = true;\n          // @ts-expect-error\n          return dataset as SuccessDataset<unknown>;\n        }\n      }\n\n      // Otherwise, return dataset of wrapped schema\n      return this.wrapped['~run'](dataset, config);\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/union/index.ts",
    "content": "export * from './types.ts';\nexport * from './union.ts';\nexport * from './unionAsync.ts';\n"
  },
  {
    "path": "library/src/schemas/union/types.ts",
    "content": "import type { BaseIssue } from '../../types/index.ts';\n\n/**\n * Union issue interface.\n */\nexport interface UnionIssue<TSubIssue extends BaseIssue<unknown>>\n  extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'union';\n  /**\n   * The expected property.\n   */\n  readonly expected: string;\n  /**\n   * The sub issues.\n   */\n  readonly issues?: [TSubIssue, ...TSubIssue[]];\n}\n"
  },
  {
    "path": "library/src/schemas/union/union.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { literal, type LiteralIssue } from '../literal/index.ts';\nimport { number, type NumberIssue } from '../number/index.ts';\nimport type { UnionIssue } from './types.ts';\nimport { union, type UnionSchema } from './union.ts';\n\ndescribe('union', () => {\n  const options = [literal('foo'), literal('bar'), number()] as const;\n  type Options = typeof options;\n\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = UnionSchema<Options, undefined>;\n      expectTypeOf(union(options)).toEqualTypeOf<Schema>();\n      expectTypeOf(union(options, undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(union(options, 'message')).toEqualTypeOf<\n        UnionSchema<Options, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(union(options, () => 'message')).toEqualTypeOf<\n        UnionSchema<Options, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = UnionSchema<Options, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<\n        'foo' | 'bar' | number\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<\n        'foo' | 'bar' | number\n      >();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        UnionIssue<LiteralIssue | NumberIssue> | LiteralIssue | NumberIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/union/union.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { email, minLength, url } from '../../actions/index.ts';\nimport { pipe } from '../../methods/index.ts';\nimport type {\n  FailureDataset,\n  InferIssue,\n  InferOutput,\n  PartialDataset,\n} from '../../types/index.ts';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { literal } from '../literal/literal.ts';\nimport { number } from '../number/index.ts';\nimport { string } from '../string/index.ts';\nimport { union, type UnionSchema } from './union.ts';\n\ndescribe('union', () => {\n  describe('should return schema object', () => {\n    const options = [literal('foo'), literal('bar'), number()] as const;\n    type Options = typeof options;\n    const baseSchema: Omit<UnionSchema<Options, never>, 'message'> = {\n      kind: 'schema',\n      type: 'union',\n      reference: union,\n      expects: '(\"foo\" | \"bar\" | number)',\n      options,\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: UnionSchema<Options, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(union(options)).toStrictEqual(schema);\n      expect(union(options, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(union(options, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies UnionSchema<Options, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(union(options, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies UnionSchema<Options, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for valid values', () => {\n      expectNoSchemaIssue(union([literal('foo'), literal('bar'), number()]), [\n        'foo',\n        'bar',\n        123,\n      ]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      path: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    test('with single typed issue', () => {\n      const schema = union([pipe(string(), minLength(5)), number()]);\n      type Schema = typeof schema;\n      expect(schema['~run']({ value: 'foo' }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'validation',\n            type: 'min_length',\n            input: 'foo',\n            expected: '>=5',\n            received: '3',\n            requirement: 5,\n          },\n        ],\n      } satisfies PartialDataset<InferOutput<Schema>, InferIssue<Schema>>);\n    });\n\n    test('with multiple typed issues', () => {\n      const schema = union([pipe(string(), email()), pipe(string(), url())]);\n      type Schema = typeof schema;\n      expect(schema['~run']({ value: 'foo' }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'union',\n            input: 'foo',\n            // TODO: Investigate if there is a better solution for `expected`\n            // and `received` to prevent such situations that are not logical\n            expected: 'string',\n            received: '\"foo\"',\n            issues: [\n              {\n                ...baseInfo,\n                kind: 'validation',\n                type: 'email',\n                input: 'foo',\n                expected: null,\n                received: '\"foo\"',\n                requirement: expect.any(RegExp),\n              },\n              {\n                ...baseInfo,\n                kind: 'validation',\n                type: 'url',\n                input: 'foo',\n                expected: null,\n                received: '\"foo\"',\n                requirement: expect.any(Function),\n              },\n            ],\n          },\n        ],\n      } satisfies PartialDataset<InferOutput<Schema>, InferIssue<Schema>>);\n    });\n\n    test('with zero untyped issue', () => {\n      expectSchemaIssue(\n        union([]),\n        {\n          kind: 'schema',\n          type: 'union',\n          expected: 'never',\n          message: expect.any(String),\n        },\n        ['foo', 123, null, undefined]\n      );\n    });\n\n    test('with single untyped issue', () => {\n      const schema = union([literal('foo')]);\n      expect(schema['~run']({ value: 'bar' }, {})).toStrictEqual({\n        typed: false,\n        value: 'bar',\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'literal',\n            input: 'bar',\n            expected: '\"foo\"',\n            received: '\"bar\"',\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('with multiple typed issues', () => {\n      const schema = union([string(), number()]);\n      expect(schema['~run']({ value: null }, {})).toStrictEqual({\n        typed: false,\n        value: null,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'union',\n            input: null,\n            expected: '(string | number)',\n            received: 'null',\n            issues: [\n              {\n                ...baseInfo,\n                kind: 'schema',\n                type: 'string',\n                input: null,\n                expected: 'string',\n                received: 'null',\n              },\n              {\n                ...baseInfo,\n                kind: 'schema',\n                type: 'number',\n                input: null,\n                expected: 'number',\n                received: 'null',\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/union/union.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  FailureDataset,\n  InferInput,\n  InferIssue,\n  InferOutput,\n  MaybeReadonly,\n  OutputDataset,\n  PartialDataset,\n  SuccessDataset,\n} from '../../types/index.ts';\nimport {\n  _addIssue,\n  _getStandardProps,\n  _joinExpects,\n} from '../../utils/index.ts';\nimport type { UnionIssue } from './types.ts';\nimport { _subIssues } from './utils/index.ts';\n\n/**\n * Union options type.\n */\nexport type UnionOptions = MaybeReadonly<\n  BaseSchema<unknown, unknown, BaseIssue<unknown>>[]\n>;\n\n/**\n * Union schema interface.\n */\nexport interface UnionSchema<\n  TOptions extends UnionOptions,\n  TMessage extends\n    | ErrorMessage<UnionIssue<InferIssue<TOptions[number]>>>\n    | undefined,\n> extends BaseSchema<\n    InferInput<TOptions[number]>,\n    InferOutput<TOptions[number]>,\n    UnionIssue<InferIssue<TOptions[number]>> | InferIssue<TOptions[number]>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'union';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof union;\n  /**\n   * The union options.\n   */\n  readonly options: TOptions;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an union schema.\n *\n * @param options The union options.\n *\n * @returns An union schema.\n */\nexport function union<const TOptions extends UnionOptions>(\n  options: TOptions\n): UnionSchema<TOptions, undefined>;\n\n/**\n * Creates an union schema.\n *\n * @param options The union options.\n * @param message The error message.\n *\n * @returns An union schema.\n */\nexport function union<\n  const TOptions extends UnionOptions,\n  const TMessage extends\n    | ErrorMessage<UnionIssue<InferIssue<TOptions[number]>>>\n    | undefined,\n>(options: TOptions, message: TMessage): UnionSchema<TOptions, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function union(\n  options: UnionOptions,\n  message?: ErrorMessage<UnionIssue<BaseIssue<unknown>>>\n): UnionSchema<\n  UnionOptions,\n  ErrorMessage<UnionIssue<BaseIssue<unknown>>> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'union',\n    reference: union,\n    expects: _joinExpects(\n      options.map((option) => option.expects),\n      '|'\n    ),\n    async: false,\n    options,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      // Create variables to collect datasets\n      let validDataset: SuccessDataset<unknown> | undefined;\n      let typedDatasets:\n        | PartialDataset<unknown, BaseIssue<unknown>>[]\n        | undefined;\n      let untypedDatasets: FailureDataset<BaseIssue<unknown>>[] | undefined;\n\n      // Parse schema of each option and collect datasets\n      for (const schema of this.options) {\n        const optionDataset = schema['~run']({ value: dataset.value }, config);\n\n        // If typed, add it to valid or typed datasets\n        if (optionDataset.typed) {\n          // If there are issues, add it to typed datasets\n          if (optionDataset.issues) {\n            if (typedDatasets) {\n              typedDatasets.push(optionDataset);\n            } else {\n              typedDatasets = [optionDataset];\n            }\n\n            // Otherwise, add it as valid dataset and break loop\n          } else {\n            validDataset = optionDataset;\n            break;\n          }\n\n          // Otherwise, add it to untyped datasets\n        } else {\n          if (untypedDatasets) {\n            untypedDatasets.push(optionDataset);\n          } else {\n            untypedDatasets = [optionDataset];\n          }\n        }\n      }\n\n      // If there is a valid dataset, return it\n      if (validDataset) {\n        return validDataset;\n      }\n\n      // If there are typed datasets process only those\n      if (typedDatasets) {\n        // If there is only one typed dataset, return it\n        if (typedDatasets.length === 1) {\n          return typedDatasets[0];\n        }\n\n        // Otherwise, add issue with typed subissues\n        // Hint: If there is more than one typed dataset, we use a general\n        // union issue with subissues because the issues could contradict\n        // each other.\n        _addIssue(this, 'type', dataset, config, {\n          issues: _subIssues(typedDatasets),\n        });\n\n        // And set typed to `true`\n        // @ts-expect-error\n        dataset.typed = true;\n\n        // Otherwise, if there is exactly one untyped dataset, return it\n      } else if (untypedDatasets?.length === 1) {\n        return untypedDatasets[0];\n\n        // Otherwise, add issue with untyped subissues\n      } else {\n        // Hint: If there are zero or more than one untyped results, we use a\n        // general union issue with subissues because the issues could\n        // contradict each other.\n        _addIssue(this, 'type', dataset, config, {\n          issues: _subIssues(untypedDatasets),\n        });\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<unknown, BaseIssue<unknown>>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/union/unionAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { literal, type LiteralIssue } from '../literal/index.ts';\nimport { number, type NumberIssue } from '../number/index.ts';\nimport type { UnionIssue } from './types.ts';\nimport { unionAsync, type UnionSchemaAsync } from './unionAsync.ts';\n\ndescribe('unionAsync', () => {\n  const options = [literal('foo'), literal('bar'), number()] as const;\n  type Options = typeof options;\n\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = UnionSchemaAsync<Options, undefined>;\n      expectTypeOf(unionAsync(options)).toEqualTypeOf<Schema>();\n      expectTypeOf(unionAsync(options, undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(unionAsync(options, 'message')).toEqualTypeOf<\n        UnionSchemaAsync<Options, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(unionAsync(options, () => 'message')).toEqualTypeOf<\n        UnionSchemaAsync<Options, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = UnionSchemaAsync<Options, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<\n        'foo' | 'bar' | number\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<\n        'foo' | 'bar' | number\n      >();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        UnionIssue<LiteralIssue | NumberIssue> | LiteralIssue | NumberIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/union/unionAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { email, minLength, url } from '../../actions/index.ts';\nimport { pipe } from '../../methods/index.ts';\nimport type {\n  FailureDataset,\n  InferIssue,\n  InferOutput,\n  PartialDataset,\n} from '../../types/index.ts';\nimport {\n  expectNoSchemaIssueAsync,\n  expectSchemaIssueAsync,\n} from '../../vitest/index.ts';\nimport { literal } from '../literal/literal.ts';\nimport { number } from '../number/index.ts';\nimport { string } from '../string/index.ts';\nimport { unionAsync, type UnionSchemaAsync } from './unionAsync.ts';\n\ndescribe('unionAsync', () => {\n  describe('should return schema object', () => {\n    const options = [literal('foo'), literal('bar'), number()] as const;\n    type Options = typeof options;\n    const baseSchema: Omit<UnionSchemaAsync<Options, never>, 'message'> = {\n      kind: 'schema',\n      type: 'union',\n      reference: unionAsync,\n      expects: '(\"foo\" | \"bar\" | number)',\n      options,\n      async: true,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: UnionSchemaAsync<Options, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(unionAsync(options)).toStrictEqual(schema);\n      expect(unionAsync(options, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(unionAsync(options, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies UnionSchemaAsync<Options, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(unionAsync(options, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies UnionSchemaAsync<Options, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for valid values', async () => {\n      await expectNoSchemaIssueAsync(\n        unionAsync([literal('foo'), literal('bar'), number()]),\n        ['foo', 'bar', 123]\n      );\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      path: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    test('with single typed issue', async () => {\n      const schema = unionAsync([pipe(string(), minLength(5)), number()]);\n      type Schema = typeof schema;\n      expect(await schema['~run']({ value: 'foo' }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'validation',\n            type: 'min_length',\n            input: 'foo',\n            expected: '>=5',\n            received: '3',\n            requirement: 5,\n          },\n        ],\n      } satisfies PartialDataset<InferOutput<Schema>, InferIssue<Schema>>);\n    });\n\n    test('with multiple typed issues', async () => {\n      const schema = unionAsync([\n        pipe(string(), email()),\n        pipe(string(), url()),\n      ]);\n      type Schema = typeof schema;\n      expect(await schema['~run']({ value: 'foo' }, {})).toStrictEqual({\n        typed: true,\n        value: 'foo',\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'union',\n            input: 'foo',\n            // TODO: Investigate if there is a better solution for `expected`\n            // and `received` to prevent such situations that are not logical\n            expected: 'string',\n            received: '\"foo\"',\n            issues: [\n              {\n                ...baseInfo,\n                kind: 'validation',\n                type: 'email',\n                input: 'foo',\n                expected: null,\n                received: '\"foo\"',\n                requirement: expect.any(RegExp),\n              },\n              {\n                ...baseInfo,\n                kind: 'validation',\n                type: 'url',\n                input: 'foo',\n                expected: null,\n                received: '\"foo\"',\n                requirement: expect.any(Function),\n              },\n            ],\n          },\n        ],\n      } satisfies PartialDataset<InferOutput<Schema>, InferIssue<Schema>>);\n    });\n\n    test('with zero untyped issue', async () => {\n      await expectSchemaIssueAsync(\n        unionAsync([]),\n        {\n          kind: 'schema',\n          type: 'union',\n          expected: 'never',\n          message: expect.any(String),\n        },\n        ['foo', 123, null, undefined]\n      );\n    });\n\n    test('with single untyped issue', async () => {\n      const schema = unionAsync([literal('foo')]);\n      expect(await schema['~run']({ value: 'bar' }, {})).toStrictEqual({\n        typed: false,\n        value: 'bar',\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'literal',\n            input: 'bar',\n            expected: '\"foo\"',\n            received: '\"bar\"',\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('with multiple typed issues', async () => {\n      const schema = unionAsync([string(), number()]);\n      expect(await schema['~run']({ value: null }, {})).toStrictEqual({\n        typed: false,\n        value: null,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'union',\n            input: null,\n            expected: '(string | number)',\n            received: 'null',\n            issues: [\n              {\n                ...baseInfo,\n                kind: 'schema',\n                type: 'string',\n                input: null,\n                expected: 'string',\n                received: 'null',\n              },\n              {\n                ...baseInfo,\n                kind: 'schema',\n                type: 'number',\n                input: null,\n                expected: 'number',\n                received: 'null',\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/union/unionAsync.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  ErrorMessage,\n  FailureDataset,\n  InferInput,\n  InferIssue,\n  InferOutput,\n  MaybeReadonly,\n  OutputDataset,\n  PartialDataset,\n  SuccessDataset,\n} from '../../types/index.ts';\nimport {\n  _addIssue,\n  _getStandardProps,\n  _joinExpects,\n} from '../../utils/index.ts';\nimport type { UnionIssue } from './types.ts';\nimport type { union } from './union.ts';\nimport { _subIssues } from './utils/index.ts';\n\n/**\n * Union options async type.\n */\nexport type UnionOptionsAsync = MaybeReadonly<\n  (\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n  )[]\n>;\n\n/**\n * Union schema async interface.\n */\nexport interface UnionSchemaAsync<\n  TOptions extends UnionOptionsAsync,\n  TMessage extends\n    | ErrorMessage<UnionIssue<InferIssue<TOptions[number]>>>\n    | undefined,\n> extends BaseSchemaAsync<\n    InferInput<TOptions[number]>,\n    InferOutput<TOptions[number]>,\n    UnionIssue<InferIssue<TOptions[number]>> | InferIssue<TOptions[number]>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'union';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof union | typeof unionAsync;\n  /**\n   * The union options.\n   */\n  readonly options: TOptions;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates an union schema.\n *\n * @param options The union options.\n *\n * @returns An union schema.\n */\nexport function unionAsync<const TOptions extends UnionOptionsAsync>(\n  options: TOptions\n): UnionSchemaAsync<TOptions, undefined>;\n\n/**\n * Creates an union schema.\n *\n * @param options The union options.\n * @param message The error message.\n *\n * @returns An union schema.\n */\nexport function unionAsync<\n  const TOptions extends UnionOptionsAsync,\n  const TMessage extends\n    | ErrorMessage<UnionIssue<InferIssue<TOptions[number]>>>\n    | undefined,\n>(options: TOptions, message: TMessage): UnionSchemaAsync<TOptions, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function unionAsync(\n  options: UnionOptionsAsync,\n  message?: ErrorMessage<UnionIssue<BaseIssue<unknown>>>\n): UnionSchemaAsync<\n  UnionOptionsAsync,\n  ErrorMessage<UnionIssue<BaseIssue<unknown>>> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'union',\n    reference: unionAsync,\n    expects: _joinExpects(\n      options.map((option) => option.expects),\n      '|'\n    ),\n    async: true,\n    options,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    async '~run'(dataset, config) {\n      // Create variables to collect datasets\n      let validDataset: SuccessDataset<unknown> | undefined;\n      let typedDatasets:\n        | PartialDataset<unknown, BaseIssue<unknown>>[]\n        | undefined;\n      let untypedDatasets: FailureDataset<BaseIssue<unknown>>[] | undefined;\n\n      // Parse schema of each option and collect datasets\n      for (const schema of this.options) {\n        const optionDataset = await schema['~run'](\n          { value: dataset.value },\n          config\n        );\n\n        // If typed, add it to valid or typed datasets\n        if (optionDataset.typed) {\n          // If there are issues, add it to typed datasets\n          if (optionDataset.issues) {\n            if (typedDatasets) {\n              typedDatasets.push(optionDataset);\n            } else {\n              typedDatasets = [optionDataset];\n            }\n\n            // Otherwise, add it as valid dataset and break loop\n          } else {\n            validDataset = optionDataset;\n            break;\n          }\n\n          // Otherwise, add it to untyped datasets\n        } else {\n          if (untypedDatasets) {\n            untypedDatasets.push(optionDataset);\n          } else {\n            untypedDatasets = [optionDataset];\n          }\n        }\n      }\n\n      // If there is a valid dataset, return it\n      if (validDataset) {\n        return validDataset;\n      }\n\n      // If there are typed datasets process only those\n      if (typedDatasets) {\n        // If there is only one typed dataset, return it\n        if (typedDatasets.length === 1) {\n          return typedDatasets[0];\n        }\n\n        // Otherwise, add issue with typed subissues\n        // Hint: If there is more than one typed dataset, we use a general\n        // union issue with subissues because the issues could contradict\n        // each other.\n        _addIssue(this, 'type', dataset, config, {\n          issues: _subIssues(typedDatasets),\n        });\n\n        // And set typed to `true`\n        // @ts-expect-error\n        dataset.typed = true;\n\n        // Otherwise, if there is exactly one untyped dataset, return it\n      } else if (untypedDatasets?.length === 1) {\n        return untypedDatasets[0];\n\n        // Otherwise, add issue with untyped subissues\n      } else {\n        // Hint: If there are zero or more than one untyped results, we use a\n        // general union issue with subissues because the issues could\n        // contradict each other.\n        _addIssue(this, 'type', dataset, config, {\n          issues: _subIssues(untypedDatasets),\n        });\n      }\n\n      // Return output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<unknown, BaseIssue<unknown>>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/union/utils/_subIssues/_subIssues.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { EmailIssue, UrlIssue } from '../../../../actions/index.ts';\nimport type { PartialDataset } from '../../../../types/index.ts';\nimport { _subIssues } from './_subIssues.ts';\n\ndescribe('_subIssues', () => {\n  describe('should return undefined', () => {\n    test('for undefined', () => {\n      expect(_subIssues(undefined)).toBeUndefined();\n    });\n\n    test('for empty array', () => {\n      expect(_subIssues([])).toBeUndefined();\n    });\n\n    test('for undefined issues', () => {\n      expect(_subIssues([{ typed: true, value: 'foo' }])).toBeUndefined();\n    });\n  });\n\n  describe('should return subissues', () => {\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      path: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    const emailIssue: EmailIssue<string> = {\n      ...baseInfo,\n      kind: 'validation',\n      type: 'email',\n      input: 'foo',\n      expected: null,\n      received: '\"foo\"',\n      requirement: expect.any(RegExp),\n    };\n\n    const urlIssue: UrlIssue<string> = {\n      ...baseInfo,\n      kind: 'validation',\n      type: 'url',\n      input: 'foo',\n      expected: null,\n      received: '\"foo\"',\n      requirement: expect.any(Function),\n    };\n\n    test('for single dataset with single issue', () => {\n      expect(\n        _subIssues([\n          {\n            typed: true,\n            value: 'foo',\n            issues: [emailIssue],\n          } satisfies PartialDataset<string, EmailIssue<string>>,\n        ])\n      ).toStrictEqual([emailIssue]);\n    });\n\n    test('for single dataset with multiple issues', () => {\n      expect(\n        _subIssues([\n          {\n            typed: true,\n            value: 'foo',\n            issues: [emailIssue, urlIssue],\n          } satisfies PartialDataset<\n            string,\n            EmailIssue<string> | UrlIssue<string>\n          >,\n        ])\n      ).toStrictEqual([emailIssue, urlIssue]);\n    });\n\n    test('for multiple datasets with single issue', () => {\n      expect(\n        _subIssues([\n          {\n            typed: true,\n            value: 'foo',\n            issues: [emailIssue],\n          },\n          {\n            typed: true,\n            value: 'foo',\n            issues: [urlIssue],\n          },\n        ] satisfies PartialDataset<\n          string,\n          EmailIssue<string> | UrlIssue<string>\n        >[])\n      ).toStrictEqual([emailIssue, urlIssue]);\n    });\n\n    test('for multiple datasets with multiple issues', () => {\n      expect(\n        _subIssues([\n          {\n            typed: true,\n            value: 'foo',\n            issues: [emailIssue, urlIssue],\n          },\n          {\n            typed: true,\n            value: 'foo',\n            issues: [emailIssue, urlIssue],\n          },\n        ] satisfies PartialDataset<\n          string,\n          EmailIssue<string> | UrlIssue<string>\n        >[])\n      ).toStrictEqual([emailIssue, urlIssue, emailIssue, urlIssue]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/union/utils/_subIssues/_subIssues.ts",
    "content": "import type { BaseIssue, OutputDataset } from '../../../../types/index.ts';\n\n/**\n * Returns the sub issues of the provided datasets for the union issue.\n *\n * @param datasets The datasets.\n *\n * @returns The sub issues.\n *\n * @internal\n */\n// @__NO_SIDE_EFFECTS__\nexport function _subIssues(\n  datasets: OutputDataset<unknown, BaseIssue<unknown>>[] | undefined\n): [BaseIssue<unknown>, ...BaseIssue<unknown>[]] | undefined {\n  let issues: [BaseIssue<unknown>, ...BaseIssue<unknown>[]] | undefined;\n  if (datasets) {\n    for (const dataset of datasets) {\n      if (issues) {\n        // Hint: According to the implementation of `union` and `unionAsync`,\n        // `dataset.issues` can never be `undefined`.\n        issues.push(...dataset.issues!);\n      } else {\n        issues = dataset.issues;\n      }\n    }\n  }\n  return issues;\n}\n"
  },
  {
    "path": "library/src/schemas/union/utils/_subIssues/index.ts",
    "content": "export * from './_subIssues.ts';\n"
  },
  {
    "path": "library/src/schemas/union/utils/index.ts",
    "content": "export * from './_subIssues/index.ts';\n"
  },
  {
    "path": "library/src/schemas/unknown/index.ts",
    "content": "export * from './unknown.ts';\n"
  },
  {
    "path": "library/src/schemas/unknown/unknown.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { unknown, type UnknownSchema } from './unknown.ts';\n\ndescribe('unknown', () => {\n  test('should return schema object', () => {\n    expectTypeOf(unknown()).toEqualTypeOf<UnknownSchema>();\n  });\n\n  describe('should infer correct types', () => {\n    test('of input', () => {\n      expectTypeOf<InferInput<UnknownSchema>>().toEqualTypeOf<unknown>();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<UnknownSchema>>().toEqualTypeOf<unknown>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<UnknownSchema>>().toEqualTypeOf<never>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/unknown/unknown.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { expectNoSchemaIssue } from '../../vitest/index.ts';\nimport { unknown, type UnknownSchema } from './unknown.ts';\n\ndescribe('unknown', () => {\n  test('should return schema object', () => {\n    expect(unknown()).toStrictEqual({\n      kind: 'schema',\n      type: 'unknown',\n      reference: unknown,\n      expects: 'unknown',\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    } satisfies UnknownSchema);\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = unknown();\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectNoSchemaIssue(schema, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectNoSchemaIssue(schema, [true, false]);\n    });\n\n    test('for null', () => {\n      expectNoSchemaIssue(schema, [null]);\n    });\n\n    test('for numbers', () => {\n      expectNoSchemaIssue(schema, [-1, 0, 123, 45.67]);\n    });\n\n    test('for undefined', () => {\n      expectNoSchemaIssue(schema, [undefined]);\n    });\n\n    test('for strings', () => {\n      expectNoSchemaIssue(schema, ['', 'foo', '123']);\n    });\n\n    test('for symbols', () => {\n      expectNoSchemaIssue(schema, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    test('for arrays', () => {\n      expectNoSchemaIssue(schema, [[], ['value']]);\n    });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectNoSchemaIssue(schema, [() => {}, function () {}]);\n    });\n\n    test('for objects', () => {\n      expectNoSchemaIssue(schema, [{}, { key: 'value' }]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/unknown/unknown.ts",
    "content": "import type { BaseSchema, SuccessDataset } from '../../types/index.ts';\nimport { _getStandardProps } from '../../utils/index.ts';\n\n/**\n * Unknown schema interface.\n */\nexport interface UnknownSchema extends BaseSchema<unknown, unknown, never> {\n  /**\n   * The schema type.\n   */\n  readonly type: 'unknown';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof unknown;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'unknown';\n}\n\n/**\n * Creates a unknown schema.\n *\n * @returns A unknown schema.\n */\n// @__NO_SIDE_EFFECTS__\nexport function unknown(): UnknownSchema {\n  return {\n    kind: 'schema',\n    type: 'unknown',\n    reference: unknown,\n    expects: 'unknown',\n    async: false,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset) {\n      // @ts-expect-error\n      dataset.typed = true;\n      // @ts-expect-error\n      return dataset as SuccessDataset<unknown>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/variant/index.ts",
    "content": "export type {\n  VariantIssue,\n  VariantOptions,\n  VariantOptionsAsync,\n} from './types.ts';\nexport * from './variant.ts';\nexport * from './variantAsync.ts';\n"
  },
  {
    "path": "library/src/schemas/variant/types.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  ErrorMessage,\n  InferIssue,\n  MaybeReadonly,\n  ObjectEntries,\n  ObjectEntriesAsync,\n  OptionalEntrySchema,\n  OptionalEntrySchemaAsync,\n} from '../../types/index.ts';\nimport type {\n  LooseObjectIssue,\n  LooseObjectSchema,\n  LooseObjectSchemaAsync,\n} from '../looseObject/index.ts';\nimport type {\n  ObjectIssue,\n  ObjectSchema,\n  ObjectSchemaAsync,\n} from '../object/index.ts';\nimport type {\n  ObjectWithRestIssue,\n  ObjectWithRestSchema,\n  ObjectWithRestSchemaAsync,\n} from '../objectWithRest/index.ts';\nimport type {\n  StrictObjectIssue,\n  StrictObjectSchema,\n  StrictObjectSchemaAsync,\n} from '../strictObject/index.ts';\nimport type { variant } from './variant.ts';\nimport type { variantAsync } from './variantAsync.ts';\n\n/**\n * Variant issue interface.\n */\nexport interface VariantIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'variant';\n  /**\n   * The expected property.\n   */\n  readonly expected: string;\n}\n\n/**\n * Variant option schema interface.\n */\nexport interface VariantOptionSchema<TKey extends string>\n  extends BaseSchema<unknown, unknown, VariantIssue | BaseIssue<unknown>> {\n  readonly type: 'variant';\n  readonly reference: typeof variant;\n  readonly key: string;\n  readonly options: VariantOptions<TKey>;\n  readonly message: ErrorMessage<VariantIssue> | undefined;\n}\n\n/**\n * Variant option schema async interface.\n */\nexport interface VariantOptionSchemaAsync<TKey extends string>\n  extends BaseSchemaAsync<unknown, unknown, VariantIssue | BaseIssue<unknown>> {\n  readonly type: 'variant';\n  readonly reference: typeof variant | typeof variantAsync;\n  readonly key: string;\n  readonly options: VariantOptionsAsync<TKey>;\n  readonly message: ErrorMessage<VariantIssue> | undefined;\n}\n\n/**\n * Variant object entries type.\n */\ntype VariantObjectEntries<TKey extends string> = Record<\n  TKey,\n  BaseSchema<unknown, unknown, BaseIssue<unknown>> | OptionalEntrySchema\n> &\n  ObjectEntries;\n\n/**\n * Variant object entries async type.\n */\ntype VariantObjectEntriesAsync<TKey extends string> = Record<\n  TKey,\n  | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n  | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n  | OptionalEntrySchema\n  | OptionalEntrySchemaAsync\n> &\n  ObjectEntriesAsync;\n\n/**\n * Variant option type.\n */\ntype VariantOption<TKey extends string> =\n  | LooseObjectSchema<\n      VariantObjectEntries<TKey>,\n      ErrorMessage<LooseObjectIssue> | undefined\n    >\n  | ObjectSchema<\n      VariantObjectEntries<TKey>,\n      ErrorMessage<ObjectIssue> | undefined\n    >\n  | ObjectWithRestSchema<\n      VariantObjectEntries<TKey>,\n      BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n      ErrorMessage<ObjectWithRestIssue> | undefined\n    >\n  | StrictObjectSchema<\n      VariantObjectEntries<TKey>,\n      ErrorMessage<StrictObjectIssue> | undefined\n    >\n  | VariantOptionSchema<TKey>;\n\n/**\n * Variant option async type.\n */\ntype VariantOptionAsync<TKey extends string> =\n  | LooseObjectSchemaAsync<\n      VariantObjectEntriesAsync<TKey>,\n      ErrorMessage<LooseObjectIssue> | undefined\n    >\n  | ObjectSchemaAsync<\n      VariantObjectEntriesAsync<TKey>,\n      ErrorMessage<ObjectIssue> | undefined\n    >\n  | ObjectWithRestSchemaAsync<\n      VariantObjectEntriesAsync<TKey>,\n      | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n      | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n      ErrorMessage<ObjectWithRestIssue> | undefined\n    >\n  | StrictObjectSchemaAsync<\n      VariantObjectEntriesAsync<TKey>,\n      ErrorMessage<StrictObjectIssue> | undefined\n    >\n  | VariantOptionSchemaAsync<TKey>;\n\n/**\n * Variant options type.\n */\nexport type VariantOptions<TKey extends string> = MaybeReadonly<\n  VariantOption<TKey>[]\n>;\n\n/**\n * Variant options async type.\n */\nexport type VariantOptionsAsync<TKey extends string> = MaybeReadonly<\n  (VariantOption<TKey> | VariantOptionAsync<TKey>)[]\n>;\n\n/**\n * Infer variant issue type.\n */\nexport type InferVariantIssue<\n  TOptions extends VariantOptions<string> | VariantOptionsAsync<string>,\n> = Exclude<\n  InferIssue<TOptions[number]>,\n  { type: 'loose_object' | 'object' | 'object_with_rest' }\n>;\n"
  },
  {
    "path": "library/src/schemas/variant/variant.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { literal, type LiteralIssue } from '../literal/index.ts';\nimport { object } from '../object/object.ts';\nimport { strictObject, type StrictObjectIssue } from '../strictObject/index.ts';\nimport type { VariantIssue } from './types.ts';\nimport { variant, type VariantSchema } from './variant.ts';\n\ndescribe('variant', () => {\n  const key = 'type' as const;\n  type Key = typeof key;\n  const options = [\n    object({ type: literal('foo') }),\n    strictObject({ type: literal('bar') }),\n  ] as const;\n  type Options = typeof options;\n\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = VariantSchema<Key, Options, undefined>;\n      expectTypeOf(variant(key, options)).toEqualTypeOf<Schema>();\n      expectTypeOf(variant(key, options, undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(variant(key, options, 'message')).toEqualTypeOf<\n        VariantSchema<Key, Options, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(variant(key, options, () => 'message')).toEqualTypeOf<\n        VariantSchema<Key, Options, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = VariantSchema<Key, Options, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<\n        { type: 'foo' } | { type: 'bar' }\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<\n        { type: 'foo' } | { type: 'bar' }\n      >();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        VariantIssue | StrictObjectIssue | LiteralIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/variant/variant.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { decimal, email, url } from '../../actions/index.ts';\nimport { pipe } from '../../methods/index.ts';\nimport { EMAIL_REGEX } from '../../regex.ts';\nimport type {\n  FailureDataset,\n  InferIssue,\n  InferOutput,\n  PartialDataset,\n} from '../../types/index.ts';\nimport { expectNoSchemaIssue } from '../../vitest/index.ts';\nimport { bigint } from '../bigint/bigint.ts';\nimport { boolean } from '../boolean/index.ts';\nimport { exactOptional } from '../exactOptional/index.ts';\nimport { literal } from '../literal/literal.ts';\nimport { null_ } from '../null/null.ts';\nimport { nullish } from '../nullish/index.ts';\nimport { number } from '../number/index.ts';\nimport { object } from '../object/index.ts';\nimport { optional } from '../optional/index.ts';\nimport { strictObject } from '../strictObject/index.ts';\nimport { string } from '../string/index.ts';\nimport { variant, type VariantSchema } from './variant.ts';\n\ndescribe('variant', () => {\n  describe('should return schema object', () => {\n    const key = 'type' as const;\n    type Key = typeof key;\n    const options = [\n      object({ type: literal('foo') }),\n      strictObject({ type: literal('bar') }),\n    ] as const;\n    type Options = typeof options;\n    const baseSchema: Omit<VariantSchema<Key, Options, never>, 'message'> = {\n      kind: 'schema',\n      type: 'variant',\n      reference: variant,\n      expects: 'Object',\n      key,\n      options,\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: VariantSchema<Key, Options, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(variant(key, options)).toStrictEqual(schema);\n      expect(variant(key, options, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(variant(key, options, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies VariantSchema<Key, Options, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(variant(key, options, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies VariantSchema<Key, Options, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for simple variants', () => {\n      expectNoSchemaIssue(\n        variant('type', [\n          object({ type: literal('foo') }),\n          object({ type: literal('bar') }),\n          object({ type: null_() }),\n        ]),\n        [{ type: 'foo' }, { type: 'bar' }, { type: null }]\n      );\n    });\n\n    test('for same discriminators', () => {\n      expectNoSchemaIssue(\n        variant('type', [\n          object({ type: literal('foo'), other: string() }),\n          object({ type: literal('foo'), other: number() }),\n          object({ type: literal('foo'), other: boolean() }),\n        ]),\n        [\n          { type: 'foo', other: 'hello' },\n          { type: 'foo', other: 123 },\n          { type: 'foo', other: true },\n        ]\n      );\n    });\n\n    test('for nested variants', () => {\n      expectNoSchemaIssue(\n        variant('type', [\n          object({ type: literal('foo') }),\n          variant('type', [\n            object({ type: literal('bar') }),\n            object({ type: null_() }),\n          ]),\n        ]),\n        [{ type: 'foo' }, { type: 'bar' }, { type: null }]\n      );\n    });\n\n    test('for deeply nested variants', () => {\n      expectNoSchemaIssue(\n        variant('type', [\n          object({ type: literal('foo') }),\n          variant('type', [\n            object({ type: literal('bar') }),\n            variant('type', [object({ type: null_() })]),\n          ]),\n        ]),\n        [{ type: 'foo' }, { type: 'bar' }, { type: null }]\n      );\n    });\n\n    test('for optional discriminators', () => {\n      expectNoSchemaIssue(\n        variant('type', [\n          object({ type: literal('foo') }),\n          object({ type: exactOptional(literal('bar')) }),\n          object({ type: literal('baz') }),\n        ]),\n        [{}, { type: 'bar' }]\n      );\n      expectNoSchemaIssue(\n        variant('type', [\n          object({ type: literal('foo') }),\n          object({ type: optional(literal('bar')) }),\n          object({ type: literal('baz') }),\n        ]),\n        [{}, { type: undefined }, { type: 'bar' }]\n      );\n      expectNoSchemaIssue(\n        variant('type', [\n          object({ type: literal('foo') }),\n          object({ type: nullish(literal('bar')) }),\n          object({ type: literal('baz') }),\n        ]),\n        [{}, { type: null }, { type: undefined }, { type: 'bar' }]\n      );\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      path: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    test('for invalid base type', () => {\n      const schema = variant('type', [\n        object({ type: literal('foo') }),\n        object({ type: literal('bar') }),\n      ]);\n      expect(schema['~run']({ value: 'foo' }, {})).toStrictEqual({\n        typed: false,\n        value: 'foo',\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'variant',\n            input: 'foo',\n            expected: 'Object',\n            received: '\"foo\"',\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for empty options', () => {\n      const schema = variant('type', []);\n      const input = { type: 'foo' };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'variant',\n            input: input.type,\n            expected: 'never',\n            received: `\"${input.type}\"`,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'type',\n                value: input.type,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for missing discriminator', () => {\n      const schema = variant('type', [\n        object({ type: literal('foo') }),\n        object({ type: literal('bar') }),\n      ]);\n      const input = { other: 123 };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'variant',\n            input: undefined,\n            expected: '(\"foo\" | \"bar\")',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'type',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid discriminator', () => {\n      const schema = variant('type', [\n        object({ type: literal('foo') }),\n        object({ type: literal('bar') }),\n      ]);\n      const input = { type: 'baz' };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'variant',\n            input: input.type,\n            expected: '(\"foo\" | \"bar\")',\n            received: `\"${input.type}\"`,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'type',\n                value: input.type,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for nested missing discriminator', () => {\n      const schema = variant('type', [\n        object({ type: literal('foo') }),\n        variant('other', [\n          object({ type: literal('bar'), other: string() }),\n          object({ type: literal('bar'), other: boolean() }),\n          object({ type: literal('baz'), other: number() }),\n        ]),\n      ]);\n      const input = { type: 'bar' };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'variant',\n            input: undefined,\n            expected: '(string | boolean)',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'other',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for nested invalid discriminator', () => {\n      const schema = variant('type', [\n        object({ type: literal('foo') }),\n        variant('other', [\n          object({ type: literal('bar'), other: string() }),\n          object({ type: literal('bar'), other: boolean() }),\n          object({ type: literal('baz'), other: number() }),\n        ]),\n      ]);\n      const input = { type: 'bar', other: 123 };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'variant',\n            input: input.other,\n            expected: '(string | boolean)',\n            received: `${input.other}`,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'other',\n                value: input.other,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for first missing invalid discriminator', () => {\n      const schema = variant('type', [\n        variant('subType1', [\n          object({\n            type: literal('foo'),\n            subType1: literal('foo-1'),\n            other1: string(),\n          }),\n          object({\n            type: literal('bar'),\n            subType1: literal('bar-1'),\n            other2: string(),\n          }),\n        ]),\n        variant('subType2', [\n          object({\n            type: literal('foo'),\n            subType2: literal('foo-2'),\n            other3: string(),\n          }),\n          object({\n            type: literal('bar'),\n            subType2: literal('bar-2'),\n            other4: string(),\n          }),\n        ]),\n      ]);\n      const input = {};\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'variant',\n            input: undefined,\n            expected: '(\"foo\" | \"bar\")',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'type',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for first nested missing discriminator', () => {\n      const schema = variant('type', [\n        variant('subType1', [\n          object({\n            type: literal('foo'),\n            subType1: literal('foo-1'),\n            other1: string(),\n          }),\n          object({\n            type: literal('bar'),\n            subType1: literal('bar-1'),\n            other2: string(),\n          }),\n        ]),\n        variant('subType2', [\n          object({\n            type: literal('foo'),\n            subType2: literal('foo-2'),\n            other3: string(),\n          }),\n          object({\n            type: literal('bar'),\n            subType2: literal('bar-2'),\n            other4: string(),\n          }),\n        ]),\n      ]);\n      const input = { type: 'bar' };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'variant',\n            input: undefined,\n            expected: '\"bar-1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'subType1',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for first nested invalid discriminator', () => {\n      const schema = variant('type', [\n        variant('subType1', [\n          object({\n            type: literal('foo'),\n            subType1: literal('foo-1'),\n            other1: string(),\n          }),\n          object({\n            type: literal('bar'),\n            subType1: literal('bar-1'),\n            other2: string(),\n          }),\n        ]),\n        variant('subType2', [\n          object({\n            type: literal('foo'),\n            subType2: literal('foo-2'),\n            other3: string(),\n          }),\n          object({\n            type: literal('bar'),\n            subType2: literal('bar-2'),\n            other4: string(),\n          }),\n        ]),\n      ]);\n      const input = { type: 'bar', subType2: 'baz-2' };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'variant',\n            input: input.subType2,\n            expected: '\"bar-2\"',\n            received: `\"${input.subType2}\"`,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'subType2',\n                value: input.subType2,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for first nested invalid discriminator', () => {\n      const schema = variant('type', [\n        variant('subType1', [\n          object({\n            type: literal('foo'),\n            subType1: literal('foo-1'),\n            other1: string(),\n          }),\n          object({\n            type: literal('bar'),\n            subType1: literal('bar-1'),\n            other2: string(),\n          }),\n        ]),\n        variant('subType2', [\n          object({\n            type: literal('foo'),\n            subType2: literal('foo-2'),\n            other3: string(),\n          }),\n          object({\n            type: literal('bar'),\n            subType2: literal('bar-2'),\n            other4: string(),\n          }),\n        ]),\n      ]);\n      const input = { type: 'bar', subType1: 'invalid', subType2: 'invalid' };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'variant',\n            input: input.subType1,\n            expected: '\"bar-1\"',\n            received: `\"${input.subType1}\"`,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'subType1',\n                value: input.subType1,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for first nested invalid discriminator', () => {\n      const schema = variant('type', [\n        variant('subType1', [\n          variant('subType2', [\n            object({\n              type: literal('foo'),\n              subType1: literal('foo-1'),\n              subType2: literal('foo-2'),\n              other1: string(),\n            }),\n            object({\n              type: literal('bar'),\n              subType1: literal('bar-1'),\n              subType2: literal('bar-2'),\n              other2: string(),\n            }),\n          ]),\n        ]),\n        variant('subType2', [\n          object({\n            type: literal('foo'),\n            subType2: literal('foz-2'),\n            other3: string(),\n          }),\n          object({\n            type: literal('bar'),\n            subType2: literal('baz-2'),\n            other4: string(),\n          }),\n        ]),\n      ]);\n      const input = { type: 'bar', subType1: 'bar-1', subType2: 'invalid' };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'variant',\n            input: input.subType2,\n            expected: '(\"bar-2\" | \"baz-2\")',\n            received: `\"${input.subType2}\"`,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'subType2',\n                value: input.subType2,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for first nested invalid discriminator', () => {\n      const schema = variant('type', [\n        variant('subType2', [\n          object({\n            type: literal('foo'),\n            subType2: literal('foz-2'),\n            other3: string(),\n          }),\n          object({\n            type: literal('bar'),\n            subType2: literal('baz-2'),\n            other4: string(),\n          }),\n        ]),\n        variant('subType1', [\n          variant('subType2', [\n            object({\n              type: literal('foo'),\n              subType1: literal('foo-1'),\n              subType2: literal('foo-2'),\n              other1: string(),\n            }),\n            object({\n              type: literal('bar'),\n              subType1: literal('bar-1'),\n              subType2: literal('bar-2'),\n              other2: string(),\n            }),\n          ]),\n        ]),\n      ]);\n      const input = { type: 'bar', subType1: 'bar-1', subType2: 'invalid' };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'variant',\n            input: input.subType2,\n            expected: '(\"baz-2\" | \"bar-2\")',\n            received: `\"${input.subType2}\"`,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'subType2',\n                value: input.subType2,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for first nested invalid discriminator', () => {\n      const schema = variant('type', [\n        variant('subType1', [\n          object({\n            type: literal('foo'),\n            subType1: literal('foo-1'),\n            other1: string(),\n          }),\n          object({\n            type: literal('bar'),\n            subType1: literal('bar-1'),\n            other2: string(),\n          }),\n          variant('subType2', [\n            object({\n              type: literal('bar'),\n              subType1: literal('baz-1'),\n              subType2: literal('baz-2'),\n              other5: string(),\n            }),\n          ]),\n        ]),\n        variant('subType2', [\n          object({\n            type: literal('foo'),\n            subType2: literal('foo-2'),\n            other3: string(),\n          }),\n          object({\n            type: literal('bar'),\n            subType2: literal('bar-2'),\n            other4: string(),\n          }),\n        ]),\n      ]);\n      const input = { type: 'bar', subType2: 'baz-2' };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'variant',\n            input: input.subType2,\n            expected: '\"bar-2\"',\n            received: `\"${input.subType2}\"`,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'subType2',\n                value: input.subType2,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for untyped object', () => {\n      const schema = variant('type', [\n        object({ type: literal('foo'), other: bigint() }),\n        object({ type: literal('bar'), other: string() }),\n        object({ type: literal('baz'), other: number() }),\n      ]);\n      const input = { type: 'bar', other: null };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: input.other,\n            expected: 'string',\n            received: `${input.other}`,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'other',\n                value: input.other,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for nested untyped object', () => {\n      const schema = variant('type', [\n        object({ type: literal('foo') }),\n        variant('type', [\n          object({ type: literal('bar'), other: string() }),\n          object({ type: literal('baz'), other: number() }),\n        ]),\n      ]);\n      const input = { type: 'bar', other: null };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: input.other,\n            expected: 'string',\n            received: `${input.other}`,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'other',\n                value: input.other,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for multiple untyped objects', () => {\n      const schema = variant('type', [\n        object({ type: literal('foo'), other: bigint() }),\n        object({ type: literal('bar'), other: string() }),\n        object({ type: literal('bar'), other: number() }),\n        object({ type: literal('bar'), other: boolean() }),\n      ]);\n      const input = { type: 'bar', other: null };\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: input.other,\n            expected: 'string',\n            received: `${input.other}`,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'other',\n                value: input.other,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for typed objects', () => {\n      const schema = variant('type', [\n        object({ type: literal('foo'), other: number() }),\n        object({ type: literal('bar'), other: pipe(string(), email()) }),\n        object({ type: literal('baz'), other: boolean() }),\n      ]);\n      type Schema = typeof schema;\n      const input = { type: 'bar', other: 'hello' } as const;\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: true,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'validation',\n            type: 'email',\n            input: input.other,\n            expected: null,\n            received: `\"${input.other}\"`,\n            requirement: EMAIL_REGEX,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'other',\n                value: input.other,\n              },\n            ],\n          },\n        ],\n      } satisfies PartialDataset<InferOutput<Schema>, InferIssue<Schema>>);\n    });\n\n    test('for nested typed objects', () => {\n      const schema = variant('type', [\n        object({ type: literal('foo'), other: number() }),\n        variant('type', [\n          object({ type: literal('bar'), other: pipe(string(), email()) }),\n          object({ type: literal('baz'), other: boolean() }),\n        ]),\n      ]);\n      type Schema = typeof schema;\n      const input = { type: 'bar', other: 'hello' } as const;\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: true,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'validation',\n            type: 'email',\n            input: input.other,\n            expected: null,\n            received: `\"${input.other}\"`,\n            requirement: EMAIL_REGEX,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'other',\n                value: input.other,\n              },\n            ],\n          },\n        ],\n      } satisfies PartialDataset<InferOutput<Schema>, InferIssue<Schema>>);\n    });\n\n    test('for multiple typed objects', () => {\n      const schema = variant('type', [\n        object({ type: literal('foo'), other: number() }),\n        object({ type: literal('foo'), other: pipe(string(), email()) }),\n        object({ type: literal('foo'), other: pipe(string(), url()) }),\n        object({ type: literal('foo'), other: pipe(string(), decimal()) }),\n        object({ type: literal('foo'), other: boolean() }),\n      ]);\n      type Schema = typeof schema;\n      const input = { type: 'foo', other: 'hello' } as const;\n      expect(schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: true,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'validation',\n            type: 'email',\n            input: input.other,\n            expected: null,\n            received: `\"${input.other}\"`,\n            requirement: EMAIL_REGEX,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'other',\n                value: input.other,\n              },\n            ],\n          },\n        ],\n      } satisfies PartialDataset<InferOutput<Schema>, InferIssue<Schema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/variant/variant.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  InferInput,\n  InferOutput,\n  OutputDataset,\n} from '../../types/index.ts';\nimport {\n  _addIssue,\n  _getStandardProps,\n  _joinExpects,\n} from '../../utils/index.ts';\nimport type {\n  InferVariantIssue,\n  VariantIssue,\n  VariantOptions,\n  VariantOptionSchema,\n} from './types.ts';\n\n/**\n * Variant schema interface.\n */\nexport interface VariantSchema<\n  TKey extends string,\n  TOptions extends VariantOptions<TKey>,\n  TMessage extends ErrorMessage<VariantIssue> | undefined,\n> extends BaseSchema<\n    InferInput<TOptions[number]>,\n    InferOutput<TOptions[number]>,\n    VariantIssue | InferVariantIssue<TOptions>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'variant';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof variant;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Object';\n  /**\n   * The discriminator key.\n   */\n  readonly key: TKey;\n  /**\n   * The variant options.\n   */\n  readonly options: TOptions;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a variant schema.\n *\n * @param key The discriminator key.\n * @param options The variant options.\n *\n * @returns A variant schema.\n */\nexport function variant<\n  const TKey extends string,\n  const TOptions extends VariantOptions<TKey>,\n>(key: TKey, options: TOptions): VariantSchema<TKey, TOptions, undefined>;\n\n/**\n * Creates a variant schema.\n *\n * @param key The discriminator key.\n * @param options The variant options.\n * @param message The error message.\n *\n * @returns An variant schema.\n */\nexport function variant<\n  const TKey extends string,\n  const TOptions extends VariantOptions<TKey>,\n  const TMessage extends ErrorMessage<VariantIssue> | undefined,\n>(\n  key: TKey,\n  options: TOptions,\n  message: TMessage\n): VariantSchema<TKey, TOptions, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function variant(\n  key: string,\n  options: VariantOptions<string>,\n  message?: ErrorMessage<VariantIssue>\n): VariantSchema<\n  string,\n  VariantOptions<string>,\n  ErrorMessage<VariantIssue> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'variant',\n    reference: variant,\n    expects: 'Object',\n    async: false,\n    key,\n    options,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      // Get input value from dataset\n      const input = dataset.value;\n\n      // If root type is valid, check nested types\n      if (input && typeof input === 'object') {\n        // Create output dataset variable\n        let outputDataset:\n          | OutputDataset<unknown, BaseIssue<unknown>>\n          | undefined;\n\n        // Create variables to store invalid discriminator information\n        let maxDiscriminatorPriority = 0;\n        let invalidDiscriminatorKey = this.key;\n        let expectedDiscriminators: string[] = [];\n\n        // Create recursive function to parse nested variant options\n        const parseOptions = (\n          variant: VariantOptionSchema<string>,\n          allKeys: Set<string>\n        ) => {\n          for (const schema of variant.options) {\n            // If it is a variant schema, parse its options recursively\n            if (schema.type === 'variant') {\n              parseOptions(schema, new Set(allKeys).add(schema.key));\n\n              // Otherwise, check discriminators and parse object schema\n            } else {\n              // Create variables to store local discriminator information\n              let keysAreValid = true;\n              let currentPriority = 0;\n\n              // Check if all discriminator keys are valid and collect\n              // information about invalid discriminator keys if not\n              for (const currentKey of allKeys) {\n                // If any discriminator is invalid, mark keys as invalid\n                const discriminatorSchema = schema.entries[currentKey];\n                if (\n                  currentKey in input\n                    ? discriminatorSchema['~run'](\n                        // @ts-expect-error\n                        { typed: false, value: input[currentKey] },\n                        { abortEarly: true }\n                      ).issues\n                    : discriminatorSchema.type !== 'exact_optional' &&\n                      discriminatorSchema.type !== 'optional' &&\n                      discriminatorSchema.type !== 'nullish'\n                ) {\n                  keysAreValid = false;\n\n                  // If invalid discriminator key is not equal to current key\n                  // and if current key has a higher priority or same priority\n                  // but is the first one present in input, reset invalid\n                  // discriminator information\n                  if (\n                    invalidDiscriminatorKey !== currentKey &&\n                    (maxDiscriminatorPriority < currentPriority ||\n                      (maxDiscriminatorPriority === currentPriority &&\n                        currentKey in input &&\n                        !(invalidDiscriminatorKey in input)))\n                  ) {\n                    maxDiscriminatorPriority = currentPriority;\n                    invalidDiscriminatorKey = currentKey;\n                    expectedDiscriminators = [];\n                  }\n\n                  // If invalid discriminator key is equal to current key,\n                  // store its expected value\n                  if (invalidDiscriminatorKey === currentKey) {\n                    expectedDiscriminators.push(\n                      schema.entries[currentKey].expects\n                    );\n                  }\n\n                  // Break loop on first invalid discriminator key\n                  break;\n                }\n\n                // Increase priority for next discriminator key\n                currentPriority++;\n              }\n\n              // If all discriminators are valid, parse input with schema of option\n              if (keysAreValid) {\n                const optionDataset = schema['~run']({ value: input }, config);\n\n                // Store output dataset if necessary\n                // Hint: Only the first untyped or typed dataset is returned, and\n                // typed datasets take precedence over untyped ones.\n                if (\n                  !outputDataset ||\n                  (!outputDataset.typed && optionDataset.typed)\n                ) {\n                  outputDataset = optionDataset;\n                }\n              }\n            }\n\n            // If valid option is found, break loop\n            // Hint: The `break` statement is intentionally placed at the end of\n            // the loop to break any outer loops in case of recursive execution.\n            if (outputDataset && !outputDataset.issues) {\n              break;\n            }\n          }\n        };\n\n        // Parse input with nested variant options recursively\n        parseOptions(this, new Set([this.key]));\n\n        // If any output dataset is available, return it\n        if (outputDataset) {\n          return outputDataset;\n        }\n\n        // Otherwise, add discriminator issue\n        _addIssue(this, 'type', dataset, config, {\n          // @ts-expect-error\n          input: input[invalidDiscriminatorKey],\n          expected: _joinExpects(expectedDiscriminators, '|'),\n          path: [\n            {\n              type: 'object',\n              origin: 'value',\n              input: input as Record<string, unknown>,\n              key: invalidDiscriminatorKey,\n              // @ts-expect-error\n              value: input[invalidDiscriminatorKey],\n            },\n          ],\n        });\n\n        // Otherwise, add variant issue\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Finally, return  output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        InferOutput<VariantOptions<string>[number]>,\n        VariantIssue | BaseIssue<unknown>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/variant/variantAsync.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { literal, type LiteralIssue } from '../literal/index.ts';\nimport { object } from '../object/object.ts';\nimport {\n  strictObjectAsync,\n  type StrictObjectIssue,\n} from '../strictObject/index.ts';\nimport type { VariantIssue } from './types.ts';\nimport { variantAsync, type VariantSchemaAsync } from './variantAsync.ts';\n\ndescribe('variantAsync', () => {\n  const key = 'type' as const;\n  type Key = typeof key;\n  const options = [\n    object({ type: literal('foo') }),\n    strictObjectAsync({ type: literal('bar') }),\n  ] as const;\n  type Options = typeof options;\n\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = VariantSchemaAsync<Key, Options, undefined>;\n      expectTypeOf(variantAsync(key, options)).toEqualTypeOf<Schema>();\n      expectTypeOf(\n        variantAsync(key, options, undefined)\n      ).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(variantAsync(key, options, 'message')).toEqualTypeOf<\n        VariantSchemaAsync<Key, Options, 'message'>\n      >();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(variantAsync(key, options, () => 'message')).toEqualTypeOf<\n        VariantSchemaAsync<Key, Options, () => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = VariantSchemaAsync<Key, Options, undefined>;\n\n    test('of input', () => {\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<\n        { type: 'foo' } | { type: 'bar' }\n      >();\n    });\n\n    test('of output', () => {\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<\n        { type: 'foo' } | { type: 'bar' }\n      >();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<\n        VariantIssue | StrictObjectIssue | LiteralIssue\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/variant/variantAsync.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { decimal, email, url } from '../../actions/index.ts';\nimport { pipe } from '../../methods/index.ts';\nimport { EMAIL_REGEX } from '../../regex.ts';\nimport type {\n  FailureDataset,\n  InferIssue,\n  InferOutput,\n  PartialDataset,\n} from '../../types/index.ts';\nimport { expectNoSchemaIssueAsync } from '../../vitest/index.ts';\nimport { bigint } from '../bigint/bigint.ts';\nimport { boolean } from '../boolean/index.ts';\nimport { exactOptional, exactOptionalAsync } from '../exactOptional/index.ts';\nimport { literal } from '../literal/literal.ts';\nimport { null_ } from '../null/null.ts';\nimport { nullish, nullishAsync } from '../nullish/index.ts';\nimport { number } from '../number/index.ts';\nimport { object, objectAsync } from '../object/index.ts';\nimport { optional, optionalAsync } from '../optional/index.ts';\nimport { strictObjectAsync } from '../strictObject/index.ts';\nimport { string } from '../string/index.ts';\nimport { variantAsync, type VariantSchemaAsync } from './variantAsync.ts';\n\ndescribe('variantAsync', () => {\n  describe('should return schema object', () => {\n    const key = 'type' as const;\n    type Key = typeof key;\n    const options = [\n      object({ type: literal('foo') }),\n      strictObjectAsync({ type: literal('bar') }),\n    ] as const;\n    type Options = typeof options;\n    const baseSchema: Omit<\n      VariantSchemaAsync<Key, Options, never>,\n      'message'\n    > = {\n      kind: 'schema',\n      type: 'variant',\n      reference: variantAsync,\n      expects: 'Object',\n      key,\n      options,\n      async: true,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: VariantSchemaAsync<Key, Options, undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(variantAsync(key, options)).toStrictEqual(schema);\n      expect(variantAsync(key, options, undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(variantAsync(key, options, 'message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies VariantSchemaAsync<Key, Options, 'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(variantAsync(key, options, message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies VariantSchemaAsync<Key, Options, typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    test('for simple variants', async () => {\n      await expectNoSchemaIssueAsync(\n        variantAsync('type', [\n          object({ type: literal('foo') }),\n          object({ type: literal('bar') }),\n          objectAsync({ type: null_() }),\n        ]),\n        [{ type: 'foo' }, { type: 'bar' }, { type: null }]\n      );\n    });\n\n    test('for same discriminators', async () => {\n      await expectNoSchemaIssueAsync(\n        variantAsync('type', [\n          object({ type: literal('foo'), other: string() }),\n          object({ type: literal('foo'), other: number() }),\n          objectAsync({ type: literal('foo'), other: boolean() }),\n        ]),\n        [\n          { type: 'foo', other: 'hello' },\n          { type: 'foo', other: 123 },\n          { type: 'foo', other: true },\n        ]\n      );\n    });\n\n    test('for nested variants', async () => {\n      await expectNoSchemaIssueAsync(\n        variantAsync('type', [\n          object({ type: literal('foo') }),\n          variantAsync('type', [\n            object({ type: literal('bar') }),\n            objectAsync({ type: null_() }),\n          ]),\n        ]),\n        [{ type: 'foo' }, { type: 'bar' }, { type: null }]\n      );\n    });\n\n    test('for deeply nested variants', async () => {\n      await expectNoSchemaIssueAsync(\n        variantAsync('type', [\n          object({ type: literal('foo') }),\n          variantAsync('type', [\n            object({ type: literal('bar') }),\n            variantAsync('type', [object({ type: null_() })]),\n          ]),\n        ]),\n        [{ type: 'foo' }, { type: 'bar' }, { type: null }]\n      );\n    });\n\n    test('for optional discriminators', async () => {\n      await expectNoSchemaIssueAsync(\n        variantAsync('type', [\n          object({ type: literal('foo') }),\n          object({ type: exactOptional(literal('bar')) }),\n          object({ type: literal('baz') }),\n        ]),\n        [{}, { type: 'bar' }]\n      );\n      await expectNoSchemaIssueAsync(\n        variantAsync('type', [\n          object({ type: literal('foo') }),\n          objectAsync({ type: exactOptionalAsync(literal('bar')) }),\n          object({ type: literal('baz') }),\n        ]),\n        [{}, { type: 'bar' }]\n      );\n      await expectNoSchemaIssueAsync(\n        variantAsync('type', [\n          object({ type: literal('foo') }),\n          object({ type: optional(literal('bar')) }),\n          object({ type: literal('baz') }),\n        ]),\n        [{}, { type: undefined }, { type: 'bar' }]\n      );\n      await expectNoSchemaIssueAsync(\n        variantAsync('type', [\n          object({ type: literal('foo') }),\n          objectAsync({ type: optionalAsync(literal('bar')) }),\n          object({ type: literal('baz') }),\n        ]),\n        [{}, { type: undefined }, { type: 'bar' }]\n      );\n      await expectNoSchemaIssueAsync(\n        variantAsync('type', [\n          object({ type: literal('foo') }),\n          object({ type: nullish(literal('bar')) }),\n          object({ type: literal('baz') }),\n        ]),\n        [{}, { type: null }, { type: undefined }, { type: 'bar' }]\n      );\n      await expectNoSchemaIssueAsync(\n        variantAsync('type', [\n          object({ type: literal('foo') }),\n          objectAsync({ type: nullishAsync(literal('bar')) }),\n          object({ type: literal('baz') }),\n        ]),\n        [{}, { type: null }, { type: undefined }, { type: 'bar' }]\n      );\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const baseInfo = {\n      message: expect.any(String),\n      requirement: undefined,\n      path: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    test('for invalid base type', async () => {\n      const schema = variantAsync('type', [\n        object({ type: literal('foo') }),\n        objectAsync({ type: literal('bar') }),\n      ]);\n      expect(await schema['~run']({ value: 'foo' }, {})).toStrictEqual({\n        typed: false,\n        value: 'foo',\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'variant',\n            input: 'foo',\n            expected: 'Object',\n            received: '\"foo\"',\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for empty options', async () => {\n      const schema = variantAsync('type', []);\n      const input = { type: 'foo' };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'variant',\n            input: input.type,\n            expected: 'never',\n            received: `\"${input.type}\"`,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'type',\n                value: input.type,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for missing discriminator', async () => {\n      const schema = variantAsync('type', [\n        object({ type: literal('foo') }),\n        objectAsync({ type: literal('bar') }),\n      ]);\n      const input = { other: 123 };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'variant',\n            input: undefined,\n            expected: '(\"foo\" | \"bar\")',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'type',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for invalid discriminator', async () => {\n      const schema = variantAsync('type', [\n        object({ type: literal('foo') }),\n        objectAsync({ type: literal('bar') }),\n      ]);\n      const input = { type: 'baz' };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'variant',\n            input: input.type,\n            expected: '(\"foo\" | \"bar\")',\n            received: `\"${input.type}\"`,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'type',\n                value: input.type,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for nested missing discriminator', async () => {\n      const schema = variantAsync('type', [\n        object({ type: literal('foo') }),\n        variantAsync('other', [\n          object({ type: literal('bar'), other: string() }),\n          object({ type: literal('bar'), other: boolean() }),\n          object({ type: literal('baz'), other: number() }),\n        ]),\n      ]);\n      const input = { type: 'bar' };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'variant',\n            input: undefined,\n            expected: '(string | boolean)',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'other',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for nested invalid discriminator', async () => {\n      const schema = variantAsync('type', [\n        object({ type: literal('foo') }),\n        variantAsync('other', [\n          object({ type: literal('bar'), other: string() }),\n          object({ type: literal('bar'), other: boolean() }),\n          object({ type: literal('baz'), other: number() }),\n        ]),\n      ]);\n      const input = { type: 'bar', other: 123 };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'variant',\n            input: input.other,\n            expected: '(string | boolean)',\n            received: `${input.other}`,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'other',\n                value: input.other,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for first missing invalid discriminator', async () => {\n      const schema = variantAsync('type', [\n        variantAsync('subType1', [\n          object({\n            type: literal('foo'),\n            subType1: literal('foo-1'),\n            other1: string(),\n          }),\n          object({\n            type: literal('bar'),\n            subType1: literal('bar-1'),\n            other2: string(),\n          }),\n        ]),\n        variantAsync('subType2', [\n          object({\n            type: literal('foo'),\n            subType2: literal('foo-2'),\n            other3: string(),\n          }),\n          object({\n            type: literal('bar'),\n            subType2: literal('bar-2'),\n            other4: string(),\n          }),\n        ]),\n      ]);\n      const input = {};\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'variant',\n            input: undefined,\n            expected: '(\"foo\" | \"bar\")',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'type',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for first nested missing discriminator', async () => {\n      const schema = variantAsync('type', [\n        variantAsync('subType1', [\n          object({\n            type: literal('foo'),\n            subType1: literal('foo-1'),\n            other1: string(),\n          }),\n          object({\n            type: literal('bar'),\n            subType1: literal('bar-1'),\n            other2: string(),\n          }),\n        ]),\n        variantAsync('subType2', [\n          object({\n            type: literal('foo'),\n            subType2: literal('foo-2'),\n            other3: string(),\n          }),\n          object({\n            type: literal('bar'),\n            subType2: literal('bar-2'),\n            other4: string(),\n          }),\n        ]),\n      ]);\n      const input = { type: 'bar' };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'variant',\n            input: undefined,\n            expected: '\"bar-1\"',\n            received: 'undefined',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'subType1',\n                value: undefined,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for first nested invalid discriminator', async () => {\n      const schema = variantAsync('type', [\n        variantAsync('subType1', [\n          object({\n            type: literal('foo'),\n            subType1: literal('foo-1'),\n            other1: string(),\n          }),\n          object({\n            type: literal('bar'),\n            subType1: literal('bar-1'),\n            other2: string(),\n          }),\n        ]),\n        variantAsync('subType2', [\n          object({\n            type: literal('foo'),\n            subType2: literal('foo-2'),\n            other3: string(),\n          }),\n          object({\n            type: literal('bar'),\n            subType2: literal('bar-2'),\n            other4: string(),\n          }),\n        ]),\n      ]);\n      const input = { type: 'bar', subType2: 'baz-2' };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'variant',\n            input: input.subType2,\n            expected: '\"bar-2\"',\n            received: `\"${input.subType2}\"`,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'subType2',\n                value: input.subType2,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for first nested invalid discriminator', async () => {\n      const schema = variantAsync('type', [\n        variantAsync('subType1', [\n          object({\n            type: literal('foo'),\n            subType1: literal('foo-1'),\n            other1: string(),\n          }),\n          object({\n            type: literal('bar'),\n            subType1: literal('bar-1'),\n            other2: string(),\n          }),\n        ]),\n        variantAsync('subType2', [\n          object({\n            type: literal('foo'),\n            subType2: literal('foo-2'),\n            other3: string(),\n          }),\n          object({\n            type: literal('bar'),\n            subType2: literal('bar-2'),\n            other4: string(),\n          }),\n        ]),\n      ]);\n      const input = { type: 'bar', subType1: 'invalid', subType2: 'invalid' };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'variant',\n            input: input.subType1,\n            expected: '\"bar-1\"',\n            received: `\"${input.subType1}\"`,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'subType1',\n                value: input.subType1,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for first nested invalid discriminator', async () => {\n      const schema = variantAsync('type', [\n        variantAsync('subType1', [\n          variantAsync('subType2', [\n            object({\n              type: literal('foo'),\n              subType1: literal('foo-1'),\n              subType2: literal('foo-2'),\n              other1: string(),\n            }),\n            object({\n              type: literal('bar'),\n              subType1: literal('bar-1'),\n              subType2: literal('bar-2'),\n              other2: string(),\n            }),\n          ]),\n        ]),\n        variantAsync('subType2', [\n          object({\n            type: literal('foo'),\n            subType2: literal('foz-2'),\n            other3: string(),\n          }),\n          object({\n            type: literal('bar'),\n            subType2: literal('baz-2'),\n            other4: string(),\n          }),\n        ]),\n      ]);\n      const input = { type: 'bar', subType1: 'bar-1', subType2: 'invalid' };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'variant',\n            input: input.subType2,\n            expected: '(\"bar-2\" | \"baz-2\")',\n            received: `\"${input.subType2}\"`,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'subType2',\n                value: input.subType2,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for first nested invalid discriminator', async () => {\n      const schema = variantAsync('type', [\n        variantAsync('subType2', [\n          object({\n            type: literal('foo'),\n            subType2: literal('foz-2'),\n            other3: string(),\n          }),\n          object({\n            type: literal('bar'),\n            subType2: literal('baz-2'),\n            other4: string(),\n          }),\n        ]),\n        variantAsync('subType1', [\n          variantAsync('subType2', [\n            object({\n              type: literal('foo'),\n              subType1: literal('foo-1'),\n              subType2: literal('foo-2'),\n              other1: string(),\n            }),\n            object({\n              type: literal('bar'),\n              subType1: literal('bar-1'),\n              subType2: literal('bar-2'),\n              other2: string(),\n            }),\n          ]),\n        ]),\n      ]);\n      const input = { type: 'bar', subType1: 'bar-1', subType2: 'invalid' };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'variant',\n            input: input.subType2,\n            expected: '(\"baz-2\" | \"bar-2\")',\n            received: `\"${input.subType2}\"`,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'subType2',\n                value: input.subType2,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for first nested invalid discriminator', async () => {\n      const schema = variantAsync('type', [\n        variantAsync('subType1', [\n          object({\n            type: literal('foo'),\n            subType1: literal('foo-1'),\n            other1: string(),\n          }),\n          object({\n            type: literal('bar'),\n            subType1: literal('bar-1'),\n            other2: string(),\n          }),\n          variantAsync('subType2', [\n            object({\n              type: literal('bar'),\n              subType1: literal('baz-1'),\n              subType2: literal('baz-2'),\n              other5: string(),\n            }),\n          ]),\n        ]),\n        variantAsync('subType2', [\n          object({\n            type: literal('foo'),\n            subType2: literal('foo-2'),\n            other3: string(),\n          }),\n          object({\n            type: literal('bar'),\n            subType2: literal('bar-2'),\n            other4: string(),\n          }),\n        ]),\n      ]);\n      const input = { type: 'bar', subType2: 'baz-2' };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'variant',\n            input: input.subType2,\n            expected: '\"bar-2\"',\n            received: `\"${input.subType2}\"`,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'subType2',\n                value: input.subType2,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for untyped object', async () => {\n      const schema = variantAsync('type', [\n        object({ type: literal('foo'), other: bigint() }),\n        object({ type: literal('bar'), other: string() }),\n        objectAsync({ type: literal('baz'), other: number() }),\n      ]);\n      const input = { type: 'bar', other: null };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: input.other,\n            expected: 'string',\n            received: `${input.other}`,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'other',\n                value: input.other,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for nested untyped object', async () => {\n      const schema = variantAsync('type', [\n        object({ type: literal('foo') }),\n        variantAsync('type', [\n          object({ type: literal('bar'), other: string() }),\n          objectAsync({ type: literal('baz'), other: number() }),\n        ]),\n      ]);\n      const input = { type: 'bar', other: null };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: input.other,\n            expected: 'string',\n            received: `${input.other}`,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'other',\n                value: input.other,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for multiple untyped objects', async () => {\n      const schema = variantAsync('type', [\n        object({ type: literal('foo'), other: bigint() }),\n        object({ type: literal('bar'), other: string() }),\n        object({ type: literal('bar'), other: number() }),\n        objectAsync({ type: literal('bar'), other: boolean() }),\n      ]);\n      const input = { type: 'bar', other: null };\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: false,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'schema',\n            type: 'string',\n            input: input.other,\n            expected: 'string',\n            received: `${input.other}`,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'other',\n                value: input.other,\n              },\n            ],\n          },\n        ],\n      } satisfies FailureDataset<InferIssue<typeof schema>>);\n    });\n\n    test('for typed objects', async () => {\n      const schema = variantAsync('type', [\n        object({ type: literal('foo'), other: number() }),\n        object({ type: literal('bar'), other: pipe(string(), email()) }),\n        objectAsync({ type: literal('baz'), other: boolean() }),\n      ]);\n      type Schema = typeof schema;\n      const input = { type: 'bar', other: 'hello' } as const;\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: true,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'validation',\n            type: 'email',\n            input: input.other,\n            expected: null,\n            received: `\"${input.other}\"`,\n            requirement: EMAIL_REGEX,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'other',\n                value: input.other,\n              },\n            ],\n          },\n        ],\n      } satisfies PartialDataset<InferOutput<Schema>, InferIssue<Schema>>);\n    });\n\n    test('for nested typed objects', async () => {\n      const schema = variantAsync('type', [\n        object({ type: literal('foo'), other: number() }),\n        variantAsync('type', [\n          object({ type: literal('bar'), other: pipe(string(), email()) }),\n          objectAsync({ type: literal('baz'), other: boolean() }),\n        ]),\n      ]);\n      type Schema = typeof schema;\n      const input = { type: 'bar', other: 'hello' } as const;\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: true,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'validation',\n            type: 'email',\n            input: input.other,\n            expected: null,\n            received: `\"${input.other}\"`,\n            requirement: EMAIL_REGEX,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'other',\n                value: input.other,\n              },\n            ],\n          },\n        ],\n      } satisfies PartialDataset<InferOutput<Schema>, InferIssue<Schema>>);\n    });\n\n    test('for multiple typed objects', async () => {\n      const schema = variantAsync('type', [\n        object({ type: literal('foo'), other: number() }),\n        object({ type: literal('foo'), other: pipe(string(), email()) }),\n        object({ type: literal('foo'), other: pipe(string(), url()) }),\n        object({ type: literal('foo'), other: pipe(string(), decimal()) }),\n        objectAsync({ type: literal('foo'), other: boolean() }),\n      ]);\n      type Schema = typeof schema;\n      const input = { type: 'foo', other: 'hello' } as const;\n      expect(await schema['~run']({ value: input }, {})).toStrictEqual({\n        typed: true,\n        value: input,\n        issues: [\n          {\n            ...baseInfo,\n            kind: 'validation',\n            type: 'email',\n            input: input.other,\n            expected: null,\n            received: `\"${input.other}\"`,\n            requirement: EMAIL_REGEX,\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input,\n                key: 'other',\n                value: input.other,\n              },\n            ],\n          },\n        ],\n      } satisfies PartialDataset<InferOutput<Schema>, InferIssue<Schema>>);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/variant/variantAsync.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchemaAsync,\n  ErrorMessage,\n  InferInput,\n  InferOutput,\n  OutputDataset,\n} from '../../types/index.ts';\nimport {\n  _addIssue,\n  _getStandardProps,\n  _joinExpects,\n} from '../../utils/index.ts';\nimport type {\n  InferVariantIssue,\n  VariantIssue,\n  VariantOptionsAsync,\n  VariantOptionSchema,\n  VariantOptionSchemaAsync,\n} from './types.ts';\nimport type { variant } from './variant.ts';\n\n/**\n * Variant schema async interface.\n */\nexport interface VariantSchemaAsync<\n  TKey extends string,\n  TOptions extends VariantOptionsAsync<TKey>,\n  TMessage extends ErrorMessage<VariantIssue> | undefined,\n> extends BaseSchemaAsync<\n    InferInput<TOptions[number]>,\n    InferOutput<TOptions[number]>,\n    VariantIssue | InferVariantIssue<TOptions>\n  > {\n  /**\n   * The schema type.\n   */\n  readonly type: 'variant';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof variant | typeof variantAsync;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'Object';\n  /**\n   * The discriminator key.\n   */\n  readonly key: TKey;\n  /**\n   * The variant options.\n   */\n  readonly options: TOptions;\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a variant schema.\n *\n * @param key The discriminator key.\n * @param options The variant options.\n *\n * @returns A variant schema.\n */\nexport function variantAsync<\n  const TKey extends string,\n  const TOptions extends VariantOptionsAsync<TKey>,\n>(key: TKey, options: TOptions): VariantSchemaAsync<TKey, TOptions, undefined>;\n\n/**\n * Creates a variant schema.\n *\n * @param key The discriminator key.\n * @param options The variant options.\n * @param message The error message.\n *\n * @returns An variant schema.\n */\nexport function variantAsync<\n  const TKey extends string,\n  const TOptions extends VariantOptionsAsync<TKey>,\n  const TMessage extends ErrorMessage<VariantIssue> | undefined,\n>(\n  key: TKey,\n  options: TOptions,\n  message: TMessage\n): VariantSchemaAsync<TKey, TOptions, TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function variantAsync(\n  key: string,\n  options: VariantOptionsAsync<string>,\n  message?: ErrorMessage<VariantIssue>\n): VariantSchemaAsync<\n  string,\n  VariantOptionsAsync<string>,\n  ErrorMessage<VariantIssue> | undefined\n> {\n  return {\n    kind: 'schema',\n    type: 'variant',\n    reference: variantAsync,\n    expects: 'Object',\n    async: true,\n    key,\n    options,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    async '~run'(dataset, config) {\n      // Get input value from dataset\n      const input = dataset.value;\n\n      // If root type is valid, check nested types\n      if (input && typeof input === 'object') {\n        // Create output dataset variable\n        let outputDataset:\n          | OutputDataset<unknown, BaseIssue<unknown>>\n          | undefined;\n\n        // Create variables to store invalid discriminator information\n        let maxDiscriminatorPriority = 0;\n        let invalidDiscriminatorKey = this.key;\n        let expectedDiscriminators: string[] = [];\n\n        // Create recursive function to parse nested variant options\n        const parseOptions = async (\n          variant:\n            | VariantOptionSchema<string>\n            | VariantOptionSchemaAsync<string>,\n          allKeys: Set<string>\n        ) => {\n          for (const schema of variant.options) {\n            // If it is a variant schema, parse its options recursively\n            if (schema.type === 'variant') {\n              await parseOptions(schema, new Set(allKeys).add(schema.key));\n\n              // Otherwise, check discriminators and parse object schema\n            } else {\n              // Create variables to store local discriminator information\n              let keysAreValid = true;\n              let currentPriority = 0;\n\n              // Check if all discriminator keys are valid and collect\n              // information about invalid discriminator keys if not\n              for (const currentKey of allKeys) {\n                // If any discriminator is invalid, mark keys as invalid\n                const discriminatorSchema = schema.entries[currentKey];\n                if (\n                  currentKey in input\n                    ? (\n                        await discriminatorSchema['~run'](\n                          // @ts-expect-error\n                          { typed: false, value: input[currentKey] },\n                          { abortEarly: true }\n                        )\n                      ).issues\n                    : discriminatorSchema.type !== 'exact_optional' &&\n                      discriminatorSchema.type !== 'optional' &&\n                      discriminatorSchema.type !== 'nullish'\n                ) {\n                  keysAreValid = false;\n\n                  // If invalid discriminator key is not equal to current key\n                  // and if current key has a higher priority or same priority\n                  // but is the first one present in input, reset invalid\n                  // discriminator information\n                  if (\n                    invalidDiscriminatorKey !== currentKey &&\n                    (maxDiscriminatorPriority < currentPriority ||\n                      (maxDiscriminatorPriority === currentPriority &&\n                        currentKey in input &&\n                        !(invalidDiscriminatorKey in input)))\n                  ) {\n                    maxDiscriminatorPriority = currentPriority;\n                    invalidDiscriminatorKey = currentKey;\n                    expectedDiscriminators = [];\n                  }\n\n                  // If invalid discriminator key is equal to current key,\n                  // store its expected value\n                  if (invalidDiscriminatorKey === currentKey) {\n                    expectedDiscriminators.push(\n                      schema.entries[currentKey].expects\n                    );\n                  }\n\n                  // Break loop on first invalid discriminator key\n                  break;\n                }\n\n                // Increase priority for next discriminator key\n                currentPriority++;\n              }\n\n              // If all discriminators are valid, parse input with schema of option\n              if (keysAreValid) {\n                const optionDataset = await schema['~run'](\n                  { value: input },\n                  config\n                );\n\n                // Store output dataset if necessary\n                // Hint: Only the first untyped or typed dataset is returned, and\n                // typed datasets take precedence over untyped ones.\n                if (\n                  !outputDataset ||\n                  (!outputDataset.typed && optionDataset.typed)\n                ) {\n                  outputDataset = optionDataset;\n                }\n              }\n            }\n\n            // If valid option is found, break loop\n            // Hint: The `break` statement is intentionally placed at the end of\n            // the loop to break any outer loops in case of recursive execution.\n            if (outputDataset && !outputDataset.issues) {\n              break;\n            }\n          }\n        };\n\n        // Parse input with nested variant options recursively\n        await parseOptions(this, new Set([this.key]));\n\n        // If any output dataset is available, return it\n        if (outputDataset) {\n          return outputDataset;\n        }\n\n        // Otherwise, add discriminator issue\n        _addIssue(this, 'type', dataset, config, {\n          // @ts-expect-error\n          input: input[invalidDiscriminatorKey],\n          expected: _joinExpects(expectedDiscriminators, '|'),\n          path: [\n            {\n              type: 'object',\n              origin: 'value',\n              input: input as Record<string, unknown>,\n              key: invalidDiscriminatorKey,\n              // @ts-expect-error\n              value: input[invalidDiscriminatorKey],\n            },\n          ],\n        });\n\n        // Otherwise, add variant issue\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n\n      // Finally, return  output dataset\n      // @ts-expect-error\n      return dataset as OutputDataset<\n        InferOutput<VariantOptionsAsync<string>[number]>,\n        VariantIssue | BaseIssue<unknown>\n      >;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/schemas/void/index.ts",
    "content": "export * from './void.ts';\n"
  },
  {
    "path": "library/src/schemas/void/void.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type { InferInput, InferIssue, InferOutput } from '../../types/index.ts';\nimport { void_, type VoidIssue, type VoidSchema } from './void.ts';\n\ndescribe('void', () => {\n  describe('should return schema object', () => {\n    test('with undefined message', () => {\n      type Schema = VoidSchema<undefined>;\n      expectTypeOf(void_()).toEqualTypeOf<Schema>();\n      expectTypeOf(void_(undefined)).toEqualTypeOf<Schema>();\n    });\n\n    test('with string message', () => {\n      expectTypeOf(void_('message')).toEqualTypeOf<VoidSchema<'message'>>();\n    });\n\n    test('with function message', () => {\n      expectTypeOf(void_(() => 'message')).toEqualTypeOf<\n        VoidSchema<() => string>\n      >();\n    });\n  });\n\n  describe('should infer correct types', () => {\n    type Schema = VoidSchema<undefined>;\n\n    test('of input', () => {\n      // eslint-disable-next-line @typescript-eslint/no-invalid-void-type\n      expectTypeOf<InferInput<Schema>>().toEqualTypeOf<void>();\n    });\n\n    test('of output', () => {\n      // eslint-disable-next-line @typescript-eslint/no-invalid-void-type\n      expectTypeOf<InferOutput<Schema>>().toEqualTypeOf<void>();\n    });\n\n    test('of issue', () => {\n      expectTypeOf<InferIssue<Schema>>().toEqualTypeOf<VoidIssue>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/void/void.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { expectNoSchemaIssue, expectSchemaIssue } from '../../vitest/index.ts';\nimport { void_, type VoidIssue, type VoidSchema } from './void.ts';\n\ndescribe('void', () => {\n  describe('should return schema object', () => {\n    const baseSchema: Omit<VoidSchema<never>, 'message'> = {\n      kind: 'schema',\n      type: 'void',\n      reference: void_,\n      expects: 'void',\n      async: false,\n      '~standard': {\n        version: 1,\n        vendor: 'valibot',\n        validate: expect.any(Function),\n      },\n      '~run': expect.any(Function),\n    };\n\n    test('with undefined message', () => {\n      const schema: VoidSchema<undefined> = {\n        ...baseSchema,\n        message: undefined,\n      };\n      expect(void_()).toStrictEqual(schema);\n      expect(void_(undefined)).toStrictEqual(schema);\n    });\n\n    test('with string message', () => {\n      expect(void_('message')).toStrictEqual({\n        ...baseSchema,\n        message: 'message',\n      } satisfies VoidSchema<'message'>);\n    });\n\n    test('with function message', () => {\n      const message = () => 'message';\n      expect(void_(message)).toStrictEqual({\n        ...baseSchema,\n        message,\n      } satisfies VoidSchema<typeof message>);\n    });\n  });\n\n  describe('should return dataset without issues', () => {\n    const schema = void_();\n\n    test('for undefined', () => {\n      expectNoSchemaIssue(schema, [undefined]);\n    });\n  });\n\n  describe('should return dataset with issues', () => {\n    const schema = void_('message');\n    const baseIssue: Omit<VoidIssue, 'input' | 'received'> = {\n      kind: 'schema',\n      type: 'void',\n      expected: 'void',\n      message: 'message',\n    };\n\n    // Primitive types\n\n    test('for bigints', () => {\n      expectSchemaIssue(schema, baseIssue, [-1n, 0n, 123n]);\n    });\n\n    test('for booleans', () => {\n      expectSchemaIssue(schema, baseIssue, [true, false]);\n    });\n\n    test('for numbers', () => {\n      expectSchemaIssue(schema, baseIssue, [-1, 0, 123, 45.67]);\n    });\n\n    test('for null', () => {\n      expectSchemaIssue(schema, baseIssue, [null]);\n    });\n\n    test('for strings', () => {\n      expectSchemaIssue(schema, baseIssue, ['', 'foo', '123']);\n    });\n\n    test('for symbols', () => {\n      expectSchemaIssue(schema, baseIssue, [Symbol(), Symbol('foo')]);\n    });\n\n    // Complex types\n\n    test('for arrays', () => {\n      expectSchemaIssue(schema, baseIssue, [[], ['value']]);\n    });\n\n    test('for functions', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-function\n      expectSchemaIssue(schema, baseIssue, [() => {}, function () {}]);\n    });\n\n    test('for objects', () => {\n      expectSchemaIssue(schema, baseIssue, [{}, { key: 'value' }]);\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/schemas/void/void.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  ErrorMessage,\n  OutputDataset,\n} from '../../types/index.ts';\nimport { _addIssue, _getStandardProps } from '../../utils/index.ts';\n\n/**\n * Void issue interface.\n */\nexport interface VoidIssue extends BaseIssue<unknown> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The issue type.\n   */\n  readonly type: 'void';\n  /**\n   * The expected property.\n   */\n  readonly expected: 'void';\n}\n\n/**\n * Void schema interface.\n */\nexport interface VoidSchema<\n  TMessage extends ErrorMessage<VoidIssue> | undefined,\n> extends BaseSchema<void, void, VoidIssue> {\n  /**\n   * The schema type.\n   */\n  readonly type: 'void';\n  /**\n   * The schema reference.\n   */\n  readonly reference: typeof void_;\n  /**\n   * The expected property.\n   */\n  readonly expects: 'void';\n  /**\n   * The error message.\n   */\n  readonly message: TMessage;\n}\n\n/**\n * Creates a void schema.\n *\n * @returns A void schema.\n */\nexport function void_(): VoidSchema<undefined>;\n\n/**\n * Creates a void schema.\n *\n * @param message The error message.\n *\n * @returns A void schema.\n */\nexport function void_<\n  const TMessage extends ErrorMessage<VoidIssue> | undefined,\n>(message: TMessage): VoidSchema<TMessage>;\n\n// @__NO_SIDE_EFFECTS__\nexport function void_(\n  message?: ErrorMessage<VoidIssue>\n): VoidSchema<ErrorMessage<VoidIssue> | undefined> {\n  return {\n    kind: 'schema',\n    type: 'void',\n    reference: void_,\n    expects: 'void',\n    async: false,\n    message,\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      if (dataset.value === undefined) {\n        // @ts-expect-error\n        dataset.typed = true;\n      } else {\n        _addIssue(this, 'type', dataset, config);\n      }\n      // @ts-expect-error\n      return dataset as OutputDataset<void, VoidIssue>;\n    },\n  };\n}\n\nexport { void_ as void };\n"
  },
  {
    "path": "library/src/storages/globalConfig/globalConfig.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { Config } from '../../types/index.ts';\nimport {\n  deleteGlobalConfig,\n  getGlobalConfig,\n  type GlobalConfig,\n  setGlobalConfig,\n} from './globalConfig.ts';\n\ndescribe('config', () => {\n  const initialConfig: Config<never> = {\n    lang: undefined,\n    message: undefined,\n    abortEarly: undefined,\n    abortPipeEarly: undefined,\n  };\n\n  const customConfig: GlobalConfig = {\n    lang: 'en',\n    abortEarly: true,\n    abortPipeEarly: false,\n  };\n\n  test('should be undefined initially', () => {\n    expect(getGlobalConfig()).toStrictEqual(initialConfig);\n  });\n\n  test('should set and get global config', () => {\n    setGlobalConfig(customConfig);\n    expect(getGlobalConfig()).toStrictEqual({\n      ...initialConfig,\n      ...customConfig,\n    });\n  });\n\n  test('should merge config argument', () => {\n    expect(getGlobalConfig({ lang: 'de' })).toStrictEqual({\n      ...initialConfig,\n      ...customConfig,\n      lang: 'de',\n    });\n  });\n\n  test('should delete global config', () => {\n    deleteGlobalConfig();\n    expect(getGlobalConfig()).toStrictEqual(initialConfig);\n  });\n});\n"
  },
  {
    "path": "library/src/storages/globalConfig/globalConfig.ts",
    "content": "import type { BaseIssue, Config } from '../../types/index.ts';\n\n/**\n * The global config type.\n */\nexport type GlobalConfig = Omit<Config<never>, 'message'>;\n\n// Create global configuration store\nlet store: GlobalConfig | undefined;\n\n/**\n * Sets the global configuration.\n *\n * @param config The configuration.\n */\nexport function setGlobalConfig(config: GlobalConfig): void {\n  store = { ...store, ...config };\n}\n\n/**\n * Returns the global configuration.\n *\n * @param config The config to merge.\n *\n * @returns The configuration.\n */\n// @__NO_SIDE_EFFECTS__\nexport function getGlobalConfig<const TIssue extends BaseIssue<unknown>>(\n  config?: Config<TIssue>\n): Config<TIssue> {\n  // Hint: The configuration is deliberately not constructed with the spread\n  // operator for performance reasons\n  return {\n    lang: config?.lang ?? store?.lang,\n    message: config?.message,\n    abortEarly: config?.abortEarly ?? store?.abortEarly,\n    abortPipeEarly: config?.abortPipeEarly ?? store?.abortPipeEarly,\n  };\n}\n\n/**\n * Deletes the global configuration.\n */\nexport function deleteGlobalConfig(): void {\n  store = undefined;\n}\n"
  },
  {
    "path": "library/src/storages/globalConfig/index.ts",
    "content": "export * from './globalConfig.ts';\n"
  },
  {
    "path": "library/src/storages/globalMessage/globalMessage.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  deleteGlobalMessage,\n  getGlobalMessage,\n  setGlobalMessage,\n} from './globalMessage.ts';\n\ndescribe('globalMessage', () => {\n  const lang = 'de';\n\n  test('should be undefined initially', () => {\n    expect(getGlobalMessage()).toBeUndefined();\n    expect(getGlobalMessage(lang)).toBeUndefined();\n  });\n\n  test('should set and get string message', () => {\n    const message1 = 'Custom message';\n    setGlobalMessage(message1);\n    expect(getGlobalMessage()).toBe(message1);\n    setGlobalMessage(message1, lang);\n    expect(getGlobalMessage(lang)).toBe(message1);\n  });\n\n  test('should set and get function message', () => {\n    const message2 = () => 'Custom message';\n    setGlobalMessage(message2);\n    expect(getGlobalMessage()).toBe(message2);\n    setGlobalMessage(message2, lang);\n    expect(getGlobalMessage(lang)).toBe(message2);\n  });\n\n  test('should delete global message', () => {\n    deleteGlobalMessage();\n    expect(getGlobalMessage()).toBeUndefined();\n    deleteGlobalMessage(lang);\n    expect(getGlobalMessage(lang)).toBeUndefined();\n  });\n});\n"
  },
  {
    "path": "library/src/storages/globalMessage/globalMessage.ts",
    "content": "import type { BaseIssue, ErrorMessage } from '../../types/index.ts';\n\n// Create global message store\nlet store: Map<string | undefined, ErrorMessage<BaseIssue<unknown>>>;\n\n/**\n * Sets a global error message.\n *\n * @param message The error message.\n * @param lang The language of the message.\n */\nexport function setGlobalMessage(\n  message: ErrorMessage<BaseIssue<unknown>>,\n  lang?: string\n): void {\n  if (!store) store = new Map();\n  store.set(lang, message);\n}\n\n/**\n * Returns a global error message.\n *\n * @param lang The language of the message.\n *\n * @returns The error message.\n */\n// @__NO_SIDE_EFFECTS__\nexport function getGlobalMessage(\n  lang?: string\n): ErrorMessage<BaseIssue<unknown>> | undefined {\n  return store?.get(lang);\n}\n\n/**\n * Deletes a global error message.\n *\n * @param lang The language of the message.\n */\nexport function deleteGlobalMessage(lang?: string): void {\n  store?.delete(lang);\n}\n"
  },
  {
    "path": "library/src/storages/globalMessage/index.ts",
    "content": "export * from './globalMessage.ts';\n"
  },
  {
    "path": "library/src/storages/index.ts",
    "content": "export * from './globalConfig/index.ts';\nexport * from './globalMessage/index.ts';\nexport * from './schemaMessage/index.ts';\nexport * from './specificMessage/index.ts';\n"
  },
  {
    "path": "library/src/storages/schemaMessage/index.ts",
    "content": "export * from './schemaMessage.ts';\n"
  },
  {
    "path": "library/src/storages/schemaMessage/schemaMessage.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  deleteSchemaMessage,\n  getSchemaMessage,\n  setSchemaMessage,\n} from './schemaMessage.ts';\n\ndescribe('schemaMessage', () => {\n  const lang = 'de';\n\n  test('should be undefined initially', () => {\n    expect(getSchemaMessage()).toBeUndefined();\n    expect(getSchemaMessage(lang)).toBeUndefined();\n  });\n\n  test('should set and get string message', () => {\n    const message1 = 'Custom message';\n    setSchemaMessage(message1);\n    expect(getSchemaMessage()).toBe(message1);\n    setSchemaMessage(message1, lang);\n    expect(getSchemaMessage(lang)).toBe(message1);\n  });\n\n  test('should set and get function message', () => {\n    const message2 = () => 'Custom message';\n    setSchemaMessage(message2);\n    expect(getSchemaMessage()).toBe(message2);\n    setSchemaMessage(message2, lang);\n    expect(getSchemaMessage(lang)).toBe(message2);\n  });\n\n  test('should delete schema message', () => {\n    deleteSchemaMessage();\n    expect(getSchemaMessage()).toBeUndefined();\n    deleteSchemaMessage(lang);\n    expect(getSchemaMessage(lang)).toBeUndefined();\n  });\n});\n"
  },
  {
    "path": "library/src/storages/schemaMessage/schemaMessage.ts",
    "content": "import type { BaseIssue, ErrorMessage } from '../../types/index.ts';\n\n// Create schema message store\nlet store: Map<string | undefined, ErrorMessage<BaseIssue<unknown>>>;\n\n/**\n * Sets a schema error message.\n *\n * @param message The error message.\n * @param lang The language of the message.\n */\nexport function setSchemaMessage(\n  message: ErrorMessage<BaseIssue<unknown>>,\n  lang?: string\n): void {\n  if (!store) store = new Map();\n  store.set(lang, message);\n}\n\n/**\n * Returns a schema error message.\n *\n * @param lang The language of the message.\n *\n * @returns The error message.\n */\n// @__NO_SIDE_EFFECTS__\nexport function getSchemaMessage(\n  lang?: string\n): ErrorMessage<BaseIssue<unknown>> | undefined {\n  return store?.get(lang);\n}\n\n/**\n * Deletes a schema error message.\n *\n * @param lang The language of the message.\n */\nexport function deleteSchemaMessage(lang?: string): void {\n  store?.delete(lang);\n}\n"
  },
  {
    "path": "library/src/storages/specificMessage/index.ts",
    "content": "export * from './specificMessage.ts';\n"
  },
  {
    "path": "library/src/storages/specificMessage/specificMessage.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { string } from '../../schemas/index.ts';\nimport {\n  deleteSpecificMessage,\n  getSpecificMessage,\n  setSpecificMessage,\n} from './specificMessage.ts';\n\ndescribe('schemaMessage', () => {\n  const reference = string;\n  const lang = 'de';\n\n  test('should be undefined initially', () => {\n    expect(getSpecificMessage(reference)).toBeUndefined();\n    expect(getSpecificMessage(reference, lang)).toBeUndefined();\n  });\n\n  test('should set and get string message', () => {\n    const message1 = 'Custom message';\n    setSpecificMessage(reference, message1);\n    expect(getSpecificMessage(reference)).toBe(message1);\n    setSpecificMessage(reference, message1, lang);\n    expect(getSpecificMessage(reference, lang)).toBe(message1);\n  });\n\n  test('should set and get function message', () => {\n    const message2 = () => 'Custom message';\n    setSpecificMessage(reference, message2);\n    expect(getSpecificMessage(reference)).toBe(message2);\n    setSpecificMessage(reference, message2, lang);\n    expect(getSpecificMessage(reference, lang)).toBe(message2);\n  });\n\n  test('should delete schema message', () => {\n    deleteSpecificMessage(reference);\n    expect(getSpecificMessage(reference)).toBeUndefined();\n    deleteSpecificMessage(reference, lang);\n    expect(getSpecificMessage(reference, lang)).toBeUndefined();\n  });\n});\n"
  },
  {
    "path": "library/src/storages/specificMessage/specificMessage.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  BaseTransformation,\n  BaseTransformationAsync,\n  BaseValidation,\n  BaseValidationAsync,\n  ErrorMessage,\n  InferIssue,\n} from '../../types/index.ts';\n\n/**\n * Reference type.\n */\ntype Reference = (\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  ...args: any[]\n) =>\n  | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n  | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n  | BaseValidation<unknown, unknown, BaseIssue<unknown>>\n  | BaseValidationAsync<unknown, unknown, BaseIssue<unknown>>\n  | BaseTransformation<unknown, unknown, BaseIssue<unknown>>\n  | BaseTransformationAsync<unknown, unknown, BaseIssue<unknown>>;\n\n// Create specific message store\nlet store: Map<\n  Reference,\n  Map<string | undefined, ErrorMessage<BaseIssue<unknown>>>\n>;\n\n/**\n * Sets a specific error message.\n *\n * @param reference The identifier reference.\n * @param message The error message.\n * @param lang The language of the message.\n */\nexport function setSpecificMessage<const TReference extends Reference>(\n  reference: TReference,\n  message: ErrorMessage<InferIssue<ReturnType<TReference>>>,\n  lang?: string\n): void {\n  if (!store) store = new Map();\n  if (!store.get(reference)) store.set(reference, new Map());\n  store.get(reference)!.set(lang, message);\n}\n\n/**\n * Returns a specific error message.\n *\n * @param reference The identifier reference.\n * @param lang The language of the message.\n *\n * @returns The error message.\n */\n// @__NO_SIDE_EFFECTS__\nexport function getSpecificMessage<const TReference extends Reference>(\n  reference: TReference,\n  lang?: string\n): ErrorMessage<InferIssue<ReturnType<TReference>>> | undefined {\n  return store?.get(reference)?.get(lang);\n}\n\n/**\n * Deletes a specific error message.\n *\n * @param reference The identifier reference.\n * @param lang The language of the message.\n */\nexport function deleteSpecificMessage(\n  reference: Reference,\n  lang?: string\n): void {\n  store?.get(reference)?.delete(lang);\n}\n"
  },
  {
    "path": "library/src/types/config.ts",
    "content": "import type { BaseIssue } from './issue.ts';\nimport type { ErrorMessage } from './other.ts';\n\n/**\n * Config interface.\n */\nexport interface Config<TIssue extends BaseIssue<unknown>> {\n  /**\n   * The selected language.\n   */\n  readonly lang?: string | undefined;\n  /**\n   * The error message.\n   */\n  readonly message?: ErrorMessage<TIssue> | undefined;\n  /**\n   * Whether it should be aborted early.\n   */\n  readonly abortEarly?: boolean | undefined;\n  /**\n   * Whether a pipe should be aborted early.\n   */\n  readonly abortPipeEarly?: boolean | undefined;\n}\n"
  },
  {
    "path": "library/src/types/dataset.ts",
    "content": "import type { BaseIssue } from './issue.ts';\n\n/**\n * Unknown dataset interface.\n */\nexport interface UnknownDataset {\n  /**\n   * Whether is's typed.\n   */\n  typed?: false;\n  /**\n   * The dataset value.\n   */\n  value: unknown;\n  /**\n   * The dataset issues.\n   */\n  issues?: undefined;\n}\n\n/**\n * Success dataset interface.\n */\nexport interface SuccessDataset<TValue> {\n  /**\n   * Whether is's typed.\n   */\n  typed: true;\n  /**\n   * The dataset value.\n   */\n  value: TValue;\n  /**\n   * The dataset issues.\n   */\n  issues?: undefined;\n}\n\n/**\n * Partial dataset interface.\n */\nexport interface PartialDataset<TValue, TIssue extends BaseIssue<unknown>> {\n  /**\n   * Whether is's typed.\n   */\n  typed: true;\n  /**\n   * The dataset value.\n   */\n  value: TValue;\n  /**\n   * The dataset issues.\n   */\n  issues: [TIssue, ...TIssue[]];\n}\n\n/**\n * Failure dataset interface.\n */\nexport interface FailureDataset<TIssue extends BaseIssue<unknown>> {\n  /**\n   * Whether is's typed.\n   */\n  typed: false;\n  /**\n   * The dataset value.\n   */\n  value: unknown;\n  /**\n   * The dataset issues.\n   */\n  issues: [TIssue, ...TIssue[]];\n}\n\n/**\n * Output dataset type.\n */\nexport type OutputDataset<TValue, TIssue extends BaseIssue<unknown>> =\n  | SuccessDataset<TValue>\n  | PartialDataset<TValue, TIssue>\n  | FailureDataset<TIssue>;\n"
  },
  {
    "path": "library/src/types/index.ts",
    "content": "export * from './config.ts';\nexport * from './dataset.ts';\nexport * from './infer.ts';\nexport * from './issue.ts';\nexport * from './metadata.ts';\nexport * from './object.ts';\nexport * from './other.ts';\nexport * from './pipe.ts';\nexport * from './schema.ts';\nexport * from './standard.ts';\nexport * from './transformation.ts';\nexport * from './tuple.ts';\nexport * from './utils.ts';\nexport * from './validation.ts';\n"
  },
  {
    "path": "library/src/types/infer.ts",
    "content": "/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { BaseIssue } from './issue.ts';\nimport type { BaseMetadata } from './metadata.ts';\nimport type { BaseSchema, BaseSchemaAsync } from './schema.ts';\nimport type {\n  BaseTransformation,\n  BaseTransformationAsync,\n} from './transformation.ts';\nimport type { BaseValidation, BaseValidationAsync } from './validation.ts';\n\n/**\n * Infer input type.\n */\nexport type InferInput<\n  TItem extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n    | BaseValidation<any, unknown, BaseIssue<unknown>>\n    | BaseValidationAsync<any, unknown, BaseIssue<unknown>>\n    | BaseTransformation<any, unknown, BaseIssue<unknown>>\n    | BaseTransformationAsync<any, unknown, BaseIssue<unknown>>\n    | BaseMetadata<any>,\n> = NonNullable<TItem['~types']>['input'];\n\n/**\n * Infer output type.\n */\nexport type InferOutput<\n  TItem extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n    | BaseValidation<any, unknown, BaseIssue<unknown>>\n    | BaseValidationAsync<any, unknown, BaseIssue<unknown>>\n    | BaseTransformation<any, unknown, BaseIssue<unknown>>\n    | BaseTransformationAsync<any, unknown, BaseIssue<unknown>>\n    | BaseMetadata<any>,\n> = NonNullable<TItem['~types']>['output'];\n\n/**\n * Infer issue type.\n */\nexport type InferIssue<\n  TItem extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n    | BaseValidation<any, unknown, BaseIssue<unknown>>\n    | BaseValidationAsync<any, unknown, BaseIssue<unknown>>\n    | BaseTransformation<any, unknown, BaseIssue<unknown>>\n    | BaseTransformationAsync<any, unknown, BaseIssue<unknown>>\n    | BaseMetadata<any>,\n> = NonNullable<TItem['~types']>['issue'];\n"
  },
  {
    "path": "library/src/types/issue.ts",
    "content": "import type { SchemaWithPipe, SchemaWithPipeAsync } from '../methods/index.ts';\nimport type {\n  ArrayIssue,\n  ArraySchema,\n  ArraySchemaAsync,\n  ExactOptionalSchema,\n  ExactOptionalSchemaAsync,\n  IntersectIssue,\n  IntersectSchema,\n  IntersectSchemaAsync,\n  LazySchema,\n  LazySchemaAsync,\n  LooseObjectIssue,\n  LooseObjectSchema,\n  LooseObjectSchemaAsync,\n  LooseTupleIssue,\n  LooseTupleSchema,\n  LooseTupleSchemaAsync,\n  MapIssue,\n  MapSchema,\n  MapSchemaAsync,\n  NonNullableIssue,\n  NonNullableSchema,\n  NonNullableSchemaAsync,\n  NonNullishIssue,\n  NonNullishSchema,\n  NonNullishSchemaAsync,\n  NonOptionalIssue,\n  NonOptionalSchema,\n  NonOptionalSchemaAsync,\n  NullableSchema,\n  NullableSchemaAsync,\n  NullishSchema,\n  NullishSchemaAsync,\n  ObjectIssue,\n  ObjectSchema,\n  ObjectSchemaAsync,\n  ObjectWithRestIssue,\n  ObjectWithRestSchema,\n  ObjectWithRestSchemaAsync,\n  OptionalSchema,\n  OptionalSchemaAsync,\n  RecordIssue,\n  RecordSchema,\n  RecordSchemaAsync,\n  SetIssue,\n  SetSchema,\n  SetSchemaAsync,\n  StrictObjectIssue,\n  StrictObjectSchema,\n  StrictObjectSchemaAsync,\n  StrictTupleIssue,\n  StrictTupleSchema,\n  StrictTupleSchemaAsync,\n  TupleIssue,\n  TupleSchema,\n  TupleSchemaAsync,\n  TupleWithRestIssue,\n  TupleWithRestSchema,\n  TupleWithRestSchemaAsync,\n  UndefinedableSchema,\n  UndefinedableSchemaAsync,\n  UnionIssue,\n  UnionSchema,\n  UnionSchemaAsync,\n  VariantIssue,\n  VariantSchema,\n  VariantSchemaAsync,\n} from '../schemas/index.ts';\nimport type { Config } from './config.ts';\nimport type { InferInput } from './infer.ts';\nimport type { ObjectEntries, ObjectEntriesAsync } from './object.ts';\nimport type { Default, DefaultAsync, ErrorMessage } from './other.ts';\nimport type { BaseSchema, BaseSchemaAsync } from './schema.ts';\nimport type { TupleItems, TupleItemsAsync } from './tuple.ts';\nimport type { FirstTupleItem, MaybeReadonly } from './utils.ts';\n\n/**\n * Array path item interface.\n */\nexport interface ArrayPathItem {\n  /**\n   * The path item type.\n   */\n  readonly type: 'array';\n  /**\n   * The path item origin.\n   */\n  readonly origin: 'value';\n  /**\n   * The path item input.\n   */\n  readonly input: MaybeReadonly<unknown[]>;\n  /**\n   * The path item key.\n   */\n  readonly key: number;\n  /**\n   * The path item value.\n   */\n  readonly value: unknown;\n}\n\n/**\n * Map path item interface.\n */\nexport interface MapPathItem {\n  /**\n   * The path item type.\n   */\n  readonly type: 'map';\n  /**\n   * The path item origin.\n   */\n  readonly origin: 'key' | 'value';\n  /**\n   * The path item input.\n   */\n  readonly input: Map<unknown, unknown>;\n  /**\n   * The path item key.\n   */\n  readonly key: unknown;\n  /**\n   * The path item value.\n   */\n  readonly value: unknown;\n}\n\n/**\n * Object path item interface.\n */\nexport interface ObjectPathItem {\n  /**\n   * The path item type.\n   */\n  readonly type: 'object';\n  /**\n   * The path item origin.\n   */\n  readonly origin: 'key' | 'value';\n  /**\n   * The path item input.\n   */\n  readonly input: Record<string, unknown>;\n  /**\n   * The path item key.\n   */\n  readonly key: string;\n  /**\n   * The path item value.\n   */\n  readonly value: unknown;\n}\n\n/**\n * Set path item interface.\n */\nexport interface SetPathItem {\n  /**\n   * The path item type.\n   */\n  readonly type: 'set';\n  /**\n   * The path item origin.\n   */\n  readonly origin: 'value';\n  /**\n   * The path item input.\n   */\n  readonly input: Set<unknown>;\n  /**\n   * The path item key.\n   */\n  readonly key: null;\n  /**\n   * The path item key.\n   */\n  readonly value: unknown;\n}\n\n/**\n * Unknown path item interface.\n */\nexport interface UnknownPathItem {\n  /**\n   * The path item type.\n   */\n  readonly type: 'unknown';\n  /**\n   * The path item origin.\n   */\n  readonly origin: 'key' | 'value';\n  /**\n   * The path item input.\n   */\n  readonly input: unknown;\n  /**\n   * The path item key.\n   */\n  readonly key: unknown;\n  /**\n   * The path item value.\n   */\n  readonly value: unknown;\n}\n\n/**\n * Issue path item type.\n */\nexport type IssuePathItem =\n  | ArrayPathItem\n  | MapPathItem\n  | ObjectPathItem\n  | SetPathItem\n  | UnknownPathItem;\n\n/**\n * Base issue interface.\n */\nexport interface BaseIssue<TInput> extends Config<BaseIssue<TInput>> {\n  /**\n   * The issue kind.\n   */\n  readonly kind: 'schema' | 'validation' | 'transformation';\n  /**\n   * The issue type.\n   */\n  readonly type: string;\n  /**\n   * The raw input data.\n   */\n  readonly input: TInput;\n  /**\n   * The expected property.\n   */\n  readonly expected: string | null;\n  /**\n   * The received property.\n   */\n  readonly received: string;\n  /**\n   * The error message.\n   */\n  readonly message: string;\n  /**\n   * The input requirement.\n   */\n  readonly requirement?: unknown | undefined;\n  /**\n   * The issue path.\n   */\n  readonly path?: [IssuePathItem, ...IssuePathItem[]] | undefined;\n  /**\n   * The sub issues.\n   */\n  readonly issues?: [BaseIssue<TInput>, ...BaseIssue<TInput>[]] | undefined;\n}\n\n/**\n * Generic issue type.\n */\nexport type GenericIssue<TInput = unknown> = BaseIssue<TInput>;\n\n/**\n * Dot path type.\n */\ntype DotPath<\n  TKey extends string | number | symbol,\n  TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n> = TKey extends string | number\n  ? `${TKey}` | `${TKey}.${IssueDotPath<TSchema>}`\n  : never;\n\n/**\n * Object path type.\n */\ntype ObjectPath<TEntries extends ObjectEntries | ObjectEntriesAsync> = {\n  [TKey in keyof TEntries]: DotPath<TKey, TEntries[TKey]>;\n}[keyof TEntries];\n\n/**\n * Tuple keys type.\n */\ntype TupleKeys<TItems extends TupleItems | TupleItemsAsync> = Exclude<\n  keyof TItems,\n  keyof []\n>;\n\n/**\n * Tuple path type.\n */\ntype TuplePath<TItems extends TupleItems | TupleItemsAsync> = {\n  [TKey in TupleKeys<TItems>]: TItems[TKey] extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n    ? DotPath<TKey, TItems[TKey]>\n    : never;\n}[TupleKeys<TItems>];\n\n/**\n * Issue dot path type.\n */\nexport type IssueDotPath<\n  TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n> =\n  // Pipe (sync)\n  TSchema extends SchemaWithPipe<infer TPipe>\n    ? IssueDotPath<FirstTupleItem<TPipe>>\n    : // Pipe (async)\n      TSchema extends SchemaWithPipeAsync<infer TPipe>\n      ? IssueDotPath<FirstTupleItem<TPipe>>\n      : // Array (sync)\n        TSchema extends ArraySchema<\n            infer TItem,\n            ErrorMessage<ArrayIssue> | undefined\n          >\n        ? DotPath<number, TItem>\n        : // Array (async)\n          TSchema extends ArraySchemaAsync<\n              infer TItem,\n              ErrorMessage<ArrayIssue> | undefined\n            >\n          ? DotPath<number, TItem>\n          : // Intersect, Union or Variant (sync)\n            TSchema extends\n                | IntersectSchema<\n                    infer TOptions,\n                    ErrorMessage<IntersectIssue> | undefined\n                  >\n                | UnionSchema<\n                    infer TOptions,\n                    ErrorMessage<UnionIssue<BaseIssue<unknown>>> | undefined\n                  >\n                | VariantSchema<\n                    string,\n                    infer TOptions,\n                    ErrorMessage<VariantIssue> | undefined\n                  >\n            ? IssueDotPath<TOptions[number]>\n            : // Intersect, Union or Variant (async)\n              TSchema extends\n                  | IntersectSchemaAsync<\n                      infer TOptions,\n                      ErrorMessage<IntersectIssue> | undefined\n                    >\n                  | UnionSchemaAsync<\n                      infer TOptions,\n                      ErrorMessage<UnionIssue<BaseIssue<unknown>>> | undefined\n                    >\n                  | VariantSchemaAsync<\n                      string,\n                      infer TOptions,\n                      ErrorMessage<VariantIssue> | undefined\n                    >\n              ? IssueDotPath<TOptions[number]>\n              : // Map or Record (sync)\n                TSchema extends\n                    | MapSchema<\n                        infer TKey,\n                        infer TValue,\n                        ErrorMessage<MapIssue> | undefined\n                      >\n                    | RecordSchema<\n                        infer TKey,\n                        infer TValue,\n                        ErrorMessage<RecordIssue> | undefined\n                      >\n                ? DotPath<InferInput<TKey>, TValue>\n                : // Map or Record (async)\n                  TSchema extends\n                      | MapSchemaAsync<\n                          infer TKey,\n                          infer TValue,\n                          ErrorMessage<MapIssue> | undefined\n                        >\n                      | RecordSchemaAsync<\n                          infer TKey,\n                          infer TValue,\n                          ErrorMessage<RecordIssue> | undefined\n                        >\n                  ? DotPath<InferInput<TKey>, TValue>\n                  : // Object (sync)\n                    TSchema extends\n                        | LooseObjectSchema<\n                            infer TEntries,\n                            ErrorMessage<LooseObjectIssue> | undefined\n                          >\n                        | ObjectSchema<\n                            infer TEntries,\n                            ErrorMessage<ObjectIssue> | undefined\n                          >\n                        | StrictObjectSchema<\n                            infer TEntries,\n                            ErrorMessage<StrictObjectIssue> | undefined\n                          >\n                    ? ObjectPath<TEntries>\n                    : // Object (async)\n                      TSchema extends\n                          | LooseObjectSchemaAsync<\n                              infer TEntries,\n                              ErrorMessage<LooseObjectIssue> | undefined\n                            >\n                          | ObjectSchemaAsync<\n                              infer TEntries,\n                              ErrorMessage<ObjectIssue> | undefined\n                            >\n                          | StrictObjectSchemaAsync<\n                              infer TEntries,\n                              ErrorMessage<StrictObjectIssue> | undefined\n                            >\n                      ? ObjectPath<TEntries>\n                      : // Object with Rest (sync)\n                        TSchema extends ObjectWithRestSchema<\n                            ObjectEntries,\n                            BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n                            ErrorMessage<ObjectWithRestIssue> | undefined\n                          >\n                        ? string\n                        : // Object with Rest (async)\n                          TSchema extends ObjectWithRestSchemaAsync<\n                              ObjectEntriesAsync,\n                              | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n                              | BaseSchemaAsync<\n                                  unknown,\n                                  unknown,\n                                  BaseIssue<unknown>\n                                >,\n                              ErrorMessage<ObjectWithRestIssue> | undefined\n                            >\n                          ? string\n                          : // Set (sync)\n                            TSchema extends SetSchema<\n                                infer TValue,\n                                ErrorMessage<SetIssue> | undefined\n                              >\n                            ? DotPath<number, TValue>\n                            : // Set (async)\n                              TSchema extends SetSchemaAsync<\n                                  infer TValue,\n                                  ErrorMessage<SetIssue> | undefined\n                                >\n                              ? DotPath<number, TValue>\n                              : // Tuple (sync)\n                                TSchema extends\n                                    | LooseTupleSchema<\n                                        infer TItems,\n                                        | ErrorMessage<LooseTupleIssue>\n                                        | undefined\n                                      >\n                                    | StrictTupleSchema<\n                                        infer TItems,\n                                        | ErrorMessage<StrictTupleIssue>\n                                        | undefined\n                                      >\n                                    | TupleSchema<\n                                        infer TItems,\n                                        ErrorMessage<TupleIssue> | undefined\n                                      >\n                                ? TuplePath<TItems>\n                                : // Tuple (async)\n                                  TSchema extends\n                                      | LooseTupleSchemaAsync<\n                                          infer TItems,\n                                          | ErrorMessage<LooseTupleIssue>\n                                          | undefined\n                                        >\n                                      | StrictTupleSchemaAsync<\n                                          infer TItems,\n                                          | ErrorMessage<StrictTupleIssue>\n                                          | undefined\n                                        >\n                                      | TupleSchemaAsync<\n                                          infer TItems,\n                                          ErrorMessage<TupleIssue> | undefined\n                                        >\n                                  ? TuplePath<TItems>\n                                  : // Tuple with Rest (sync)\n                                    TSchema extends TupleWithRestSchema<\n                                        infer TItems,\n                                        infer TRest,\n                                        | ErrorMessage<TupleWithRestIssue>\n                                        | undefined\n                                      >\n                                    ? TuplePath<TItems> | DotPath<number, TRest>\n                                    : // Tuple with Rest (async)\n                                      TSchema extends TupleWithRestSchemaAsync<\n                                          infer TItems,\n                                          infer TRest,\n                                          | ErrorMessage<TupleWithRestIssue>\n                                          | undefined\n                                        >\n                                      ?\n                                          | TuplePath<TItems>\n                                          | DotPath<number, TRest>\n                                      : // Wrapped (sync)\n                                        TSchema extends\n                                            | ExactOptionalSchema<\n                                                infer TWrapped,\n                                                Default<\n                                                  BaseSchema<\n                                                    unknown,\n                                                    unknown,\n                                                    BaseIssue<unknown>\n                                                  >,\n                                                  never\n                                                >\n                                              >\n                                            | LazySchema<infer TWrapped>\n                                            | NonNullableSchema<\n                                                infer TWrapped,\n                                                | ErrorMessage<NonNullableIssue>\n                                                | undefined\n                                              >\n                                            | NonNullishSchema<\n                                                infer TWrapped,\n                                                | ErrorMessage<NonNullishIssue>\n                                                | undefined\n                                              >\n                                            | NonOptionalSchema<\n                                                infer TWrapped,\n                                                | ErrorMessage<NonOptionalIssue>\n                                                | undefined\n                                              >\n                                            | NullableSchema<\n                                                infer TWrapped,\n                                                Default<\n                                                  BaseSchema<\n                                                    unknown,\n                                                    unknown,\n                                                    BaseIssue<unknown>\n                                                  >,\n                                                  null\n                                                >\n                                              >\n                                            | NullishSchema<\n                                                infer TWrapped,\n                                                Default<\n                                                  BaseSchema<\n                                                    unknown,\n                                                    unknown,\n                                                    BaseIssue<unknown>\n                                                  >,\n                                                  null | undefined\n                                                >\n                                              >\n                                            | OptionalSchema<\n                                                infer TWrapped,\n                                                Default<\n                                                  BaseSchema<\n                                                    unknown,\n                                                    unknown,\n                                                    BaseIssue<unknown>\n                                                  >,\n                                                  undefined\n                                                >\n                                              >\n                                            | UndefinedableSchema<\n                                                infer TWrapped,\n                                                Default<\n                                                  BaseSchema<\n                                                    unknown,\n                                                    unknown,\n                                                    BaseIssue<unknown>\n                                                  >,\n                                                  undefined\n                                                >\n                                              >\n                                        ? IssueDotPath<TWrapped>\n                                        : // Wrapped (async)\n                                          TSchema extends\n                                              | ExactOptionalSchemaAsync<\n                                                  infer TWrapped,\n                                                  DefaultAsync<\n                                                    | BaseSchema<\n                                                        unknown,\n                                                        unknown,\n                                                        BaseIssue<unknown>\n                                                      >\n                                                    | BaseSchemaAsync<\n                                                        unknown,\n                                                        unknown,\n                                                        BaseIssue<unknown>\n                                                      >,\n                                                    never\n                                                  >\n                                                >\n                                              | LazySchemaAsync<infer TWrapped>\n                                              | NonNullableSchemaAsync<\n                                                  infer TWrapped,\n                                                  | ErrorMessage<NonNullableIssue>\n                                                  | undefined\n                                                >\n                                              | NonNullishSchemaAsync<\n                                                  infer TWrapped,\n                                                  | ErrorMessage<NonNullishIssue>\n                                                  | undefined\n                                                >\n                                              | NonOptionalSchemaAsync<\n                                                  infer TWrapped,\n                                                  | ErrorMessage<NonOptionalIssue>\n                                                  | undefined\n                                                >\n                                              | NullableSchemaAsync<\n                                                  infer TWrapped,\n                                                  DefaultAsync<\n                                                    | BaseSchema<\n                                                        unknown,\n                                                        unknown,\n                                                        BaseIssue<unknown>\n                                                      >\n                                                    | BaseSchemaAsync<\n                                                        unknown,\n                                                        unknown,\n                                                        BaseIssue<unknown>\n                                                      >,\n                                                    null\n                                                  >\n                                                >\n                                              | NullishSchemaAsync<\n                                                  infer TWrapped,\n                                                  DefaultAsync<\n                                                    | BaseSchema<\n                                                        unknown,\n                                                        unknown,\n                                                        BaseIssue<unknown>\n                                                      >\n                                                    | BaseSchemaAsync<\n                                                        unknown,\n                                                        unknown,\n                                                        BaseIssue<unknown>\n                                                      >,\n                                                    null | undefined\n                                                  >\n                                                >\n                                              | OptionalSchemaAsync<\n                                                  infer TWrapped,\n                                                  DefaultAsync<\n                                                    | BaseSchema<\n                                                        unknown,\n                                                        unknown,\n                                                        BaseIssue<unknown>\n                                                      >\n                                                    | BaseSchemaAsync<\n                                                        unknown,\n                                                        unknown,\n                                                        BaseIssue<unknown>\n                                                      >,\n                                                    undefined\n                                                  >\n                                                >\n                                              | UndefinedableSchemaAsync<\n                                                  infer TWrapped,\n                                                  DefaultAsync<\n                                                    | BaseSchema<\n                                                        unknown,\n                                                        unknown,\n                                                        BaseIssue<unknown>\n                                                      >\n                                                    | BaseSchemaAsync<\n                                                        unknown,\n                                                        unknown,\n                                                        BaseIssue<unknown>\n                                                      >,\n                                                    undefined\n                                                  >\n                                                >\n                                          ? IssueDotPath<TWrapped>\n                                          : // Otherwise\n                                            never;\n"
  },
  {
    "path": "library/src/types/metadata.ts",
    "content": "/**\n * Base metadata interface.\n */\nexport interface BaseMetadata<TInput> {\n  /**\n   * The object kind.\n   */\n  readonly kind: 'metadata';\n  /**\n   * The metadata type.\n   */\n  readonly type: string;\n  /**\n   * The metadata reference.\n   */\n  readonly reference: (\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    ...args: any[]\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  ) => BaseMetadata<any>;\n  /**\n   * The input, output and issue type.\n   *\n   * @internal\n   */\n  readonly '~types'?:\n    | {\n        readonly input: TInput;\n        readonly output: TInput;\n        readonly issue: never;\n      }\n    | undefined;\n}\n\n/**\n * Generic metadata type.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type GenericMetadata<TInput = any> = BaseMetadata<TInput>;\n"
  },
  {
    "path": "library/src/types/object.ts",
    "content": "import type { ReadonlyAction } from '../actions/index.ts';\nimport type {\n  SchemaWithFallback,\n  SchemaWithFallbackAsync,\n  SchemaWithPipe,\n  SchemaWithPipeAsync,\n} from '../methods/index.ts';\nimport type {\n  ExactOptionalSchema,\n  ExactOptionalSchemaAsync,\n  LooseObjectIssue,\n  LooseObjectSchema,\n  LooseObjectSchemaAsync,\n  NullishSchema,\n  NullishSchemaAsync,\n  ObjectIssue,\n  ObjectSchema,\n  ObjectSchemaAsync,\n  ObjectWithRestIssue,\n  ObjectWithRestSchema,\n  ObjectWithRestSchemaAsync,\n  OptionalSchema,\n  OptionalSchemaAsync,\n  StrictObjectIssue,\n  StrictObjectSchema,\n  StrictObjectSchemaAsync,\n} from '../schemas/index.ts';\nimport type { InferInput, InferIssue, InferOutput } from './infer.ts';\nimport type { BaseIssue } from './issue.ts';\nimport type { ErrorMessage } from './other.ts';\nimport type { BaseSchema, BaseSchemaAsync } from './schema.ts';\nimport type { MarkOptional, MaybeReadonly, Prettify } from './utils.ts';\n\n/**\n * Optional entry schema type.\n */\nexport type OptionalEntrySchema =\n  | ExactOptionalSchema<\n      BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n      unknown\n    >\n  | NullishSchema<BaseSchema<unknown, unknown, BaseIssue<unknown>>, unknown>\n  | OptionalSchema<BaseSchema<unknown, unknown, BaseIssue<unknown>>, unknown>;\n\n/**\n * Optional entry schema async type.\n */\nexport type OptionalEntrySchemaAsync =\n  | ExactOptionalSchemaAsync<\n      | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n      | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n      unknown\n    >\n  | NullishSchemaAsync<\n      | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n      | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n      unknown\n    >\n  | OptionalSchemaAsync<\n      | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n      | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n      unknown\n    >;\n\n/**\n * Object entries interface.\n */\nexport interface ObjectEntries {\n  [key: string]:\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | SchemaWithFallback<\n        BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n        unknown\n      >\n    | OptionalEntrySchema;\n}\n\n/**\n * Object entries async interface.\n */\nexport interface ObjectEntriesAsync {\n  [key: string]:\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n    | SchemaWithFallback<\n        BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n        unknown\n      >\n    | SchemaWithFallbackAsync<\n        | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n        | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n        unknown\n      >\n    | OptionalEntrySchema\n    | OptionalEntrySchemaAsync;\n}\n\n/**\n * Object keys type.\n */\nexport type ObjectKeys<\n  TSchema extends\n    | LooseObjectSchema<\n        ObjectEntries,\n        ErrorMessage<LooseObjectIssue> | undefined\n      >\n    | LooseObjectSchemaAsync<\n        ObjectEntriesAsync,\n        ErrorMessage<LooseObjectIssue> | undefined\n      >\n    | ObjectSchema<ObjectEntries, ErrorMessage<ObjectIssue> | undefined>\n    | ObjectSchemaAsync<\n        ObjectEntriesAsync,\n        ErrorMessage<ObjectIssue> | undefined\n      >\n    | ObjectWithRestSchema<\n        ObjectEntries,\n        BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n        ErrorMessage<ObjectWithRestIssue> | undefined\n      >\n    | ObjectWithRestSchemaAsync<\n        ObjectEntriesAsync,\n        | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n        | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n        ErrorMessage<ObjectWithRestIssue> | undefined\n      >\n    | StrictObjectSchema<\n        ObjectEntries,\n        ErrorMessage<StrictObjectIssue> | undefined\n      >\n    | StrictObjectSchemaAsync<\n        ObjectEntriesAsync,\n        ErrorMessage<StrictObjectIssue> | undefined\n      >,\n> = MaybeReadonly<[keyof TSchema['entries'], ...(keyof TSchema['entries'])[]]>;\n\n/**\n * Infer entries input type.\n */\ntype InferEntriesInput<TEntries extends ObjectEntries | ObjectEntriesAsync> = {\n  -readonly [TKey in keyof TEntries]: InferInput<TEntries[TKey]>;\n};\n\n/**\n * Infer entries output type.\n */\ntype InferEntriesOutput<TEntries extends ObjectEntries | ObjectEntriesAsync> = {\n  -readonly [TKey in keyof TEntries]: InferOutput<TEntries[TKey]>;\n};\n\n/**\n * Optional input keys type.\n */\ntype OptionalInputKeys<TEntries extends ObjectEntries | ObjectEntriesAsync> = {\n  [TKey in keyof TEntries]: TEntries[TKey] extends\n    | OptionalEntrySchema\n    | OptionalEntrySchemaAsync\n    ? TKey\n    : never;\n}[keyof TEntries];\n\n/**\n * Optional output keys type.\n */\ntype OptionalOutputKeys<TEntries extends ObjectEntries | ObjectEntriesAsync> = {\n  [TKey in keyof TEntries]: TEntries[TKey] extends\n    | OptionalEntrySchema\n    | OptionalEntrySchemaAsync\n    ? undefined extends TEntries[TKey]['default']\n      ? TKey\n      : never\n    : never;\n}[keyof TEntries];\n\n/**\n * Input with question marks type.\n */\ntype InputWithQuestionMarks<\n  TEntries extends ObjectEntries | ObjectEntriesAsync,\n  TObject extends InferEntriesInput<TEntries>,\n> = MarkOptional<TObject, OptionalInputKeys<TEntries>>;\n\n/**\n * Output with question marks type.\n */\ntype OutputWithQuestionMarks<\n  TEntries extends ObjectEntries | ObjectEntriesAsync,\n  TObject extends InferEntriesOutput<TEntries>,\n> = MarkOptional<TObject, OptionalOutputKeys<TEntries>>;\n\n/**\n * Readonly output keys type.\n */\ntype ReadonlyOutputKeys<TEntries extends ObjectEntries | ObjectEntriesAsync> = {\n  [TKey in keyof TEntries]: TEntries[TKey] extends\n    | SchemaWithPipe<infer TPipe>\n    | SchemaWithPipeAsync<infer TPipe>\n    ? // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      ReadonlyAction<any> extends TPipe[number]\n      ? TKey\n      : never\n    : never;\n}[keyof TEntries];\n\n/**\n * Output with readonly type.\n */\ntype OutputWithReadonly<\n  TEntries extends ObjectEntries | ObjectEntriesAsync,\n  TObject extends OutputWithQuestionMarks<\n    TEntries,\n    InferEntriesOutput<TEntries>\n  >,\n> = Readonly<TObject> &\n  Pick<TObject, Exclude<keyof TObject, ReadonlyOutputKeys<TEntries>>>;\n\n/**\n * Infer object input type.\n */\nexport type InferObjectInput<\n  TEntries extends ObjectEntries | ObjectEntriesAsync,\n> = Prettify<InputWithQuestionMarks<TEntries, InferEntriesInput<TEntries>>>;\n\n/**\n * Infer object output type.\n */\nexport type InferObjectOutput<\n  TEntries extends ObjectEntries | ObjectEntriesAsync,\n> = Prettify<\n  OutputWithReadonly<\n    TEntries,\n    OutputWithQuestionMarks<TEntries, InferEntriesOutput<TEntries>>\n  >\n>;\n\n/**\n * Infer object issue type.\n */\nexport type InferObjectIssue<\n  TEntries extends ObjectEntries | ObjectEntriesAsync,\n> = InferIssue<TEntries[keyof TEntries]>;\n"
  },
  {
    "path": "library/src/types/other.ts",
    "content": "import type { Config } from './config.ts';\nimport type { UnknownDataset } from './dataset.ts';\nimport type { InferInput, InferIssue } from './infer.ts';\nimport type { BaseIssue } from './issue.ts';\nimport type { BaseSchema, BaseSchemaAsync } from './schema.ts';\nimport type { MaybeDeepReadonly, MaybePromise } from './utils.ts';\n\n/**\n * Error message type.\n */\nexport type ErrorMessage<TIssue extends BaseIssue<unknown>> =\n  | ((issue: TIssue) => string)\n  | string;\n\n/**\n * Default type.\n */\nexport type Default<\n  TWrapped extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n  TInput extends null | undefined,\n> =\n  | MaybeDeepReadonly<InferInput<TWrapped> | TInput>\n  | ((\n      dataset?: UnknownDataset,\n      config?: Config<InferIssue<TWrapped>>\n    ) => MaybeDeepReadonly<InferInput<TWrapped> | TInput>)\n  | undefined;\n\n/**\n * Default async type.\n */\nexport type DefaultAsync<\n  TWrapped extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n  TInput extends null | undefined,\n> =\n  | MaybeDeepReadonly<InferInput<TWrapped> | TInput>\n  | ((\n      dataset?: UnknownDataset,\n      config?: Config<InferIssue<TWrapped>>\n    ) => MaybePromise<MaybeDeepReadonly<InferInput<TWrapped> | TInput>>)\n  | undefined;\n\n/**\n * Default value type.\n */\nexport type DefaultValue<\n  TDefault extends\n    | Default<\n        BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n        null | undefined\n      >\n    | DefaultAsync<\n        | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n        | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n        null | undefined\n      >,\n> =\n  TDefault extends DefaultAsync<\n    infer TWrapped extends\n      | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n      | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n    infer TInput\n  >\n    ? TDefault extends (\n        dataset?: UnknownDataset,\n        config?: Config<InferIssue<TWrapped>>\n      ) => MaybePromise<MaybeDeepReadonly<InferInput<TWrapped> | TInput>>\n      ? Awaited<ReturnType<TDefault>>\n      : TDefault\n    : never;\n"
  },
  {
    "path": "library/src/types/pipe.ts",
    "content": "import type { BaseIssue } from './issue.ts';\nimport type { BaseMetadata } from './metadata.ts';\nimport type { BaseSchema, BaseSchemaAsync } from './schema.ts';\nimport type {\n  BaseTransformation,\n  BaseTransformationAsync,\n} from './transformation.ts';\nimport type { BaseValidation, BaseValidationAsync } from './validation.ts';\n\n/**\n * Pipe action type.\n */\nexport type PipeAction<TInput, TOutput, TIssue extends BaseIssue<unknown>> =\n  | BaseValidation<TInput, TOutput, TIssue>\n  | BaseTransformation<TInput, TOutput, TIssue>\n  | BaseMetadata<TInput>;\n\n/**\n * Pipe action async type.\n */\nexport type PipeActionAsync<\n  TInput,\n  TOutput,\n  TIssue extends BaseIssue<unknown>,\n> =\n  | BaseValidationAsync<TInput, TOutput, TIssue>\n  | BaseTransformationAsync<TInput, TOutput, TIssue>;\n\n/**\n * Pipe item type.\n */\nexport type PipeItem<TInput, TOutput, TIssue extends BaseIssue<unknown>> =\n  | BaseSchema<TInput, TOutput, TIssue>\n  | PipeAction<TInput, TOutput, TIssue>;\n\n/**\n * Pipe item async type.\n */\nexport type PipeItemAsync<TInput, TOutput, TIssue extends BaseIssue<unknown>> =\n  | BaseSchemaAsync<TInput, TOutput, TIssue>\n  | PipeActionAsync<TInput, TOutput, TIssue>;\n\n/**\n * Schema without pipe type.\n */\nexport type SchemaWithoutPipe<\n  TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n> = TSchema & { pipe?: never };\n\n/**\n * Generic pipe action type.\n */\nexport type GenericPipeAction<\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  TInput = any,\n  TOutput = TInput,\n  TIssue extends BaseIssue<unknown> = BaseIssue<unknown>,\n> = PipeAction<TInput, TOutput, TIssue>;\n\n/**\n * Generic pipe action async type.\n */\nexport type GenericPipeActionAsync<\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  TInput = any,\n  TOutput = TInput,\n  TIssue extends BaseIssue<unknown> = BaseIssue<unknown>,\n> = PipeActionAsync<TInput, TOutput, TIssue>;\n\n/**\n * Generic pipe item type.\n */\nexport type GenericPipeItem<\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  TInput = any,\n  TOutput = TInput,\n  TIssue extends BaseIssue<unknown> = BaseIssue<unknown>,\n> = PipeItem<TInput, TOutput, TIssue>;\n\n/**\n * Generic pipe item async type.\n */\nexport type GenericPipeItemAsync<\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  TInput = any,\n  TOutput = TInput,\n  TIssue extends BaseIssue<unknown> = BaseIssue<unknown>,\n> = PipeItemAsync<TInput, TOutput, TIssue>;\n"
  },
  {
    "path": "library/src/types/schema.ts",
    "content": "import type { Config } from './config.ts';\nimport type { OutputDataset, UnknownDataset } from './dataset.ts';\nimport type { BaseIssue } from './issue.ts';\nimport type { StandardProps } from './standard.ts';\n\n/**\n * Base schema interface.\n */\nexport interface BaseSchema<\n  TInput,\n  TOutput,\n  TIssue extends BaseIssue<unknown>,\n> {\n  /**\n   * The object kind.\n   */\n  readonly kind: 'schema';\n  /**\n   * The schema type.\n   */\n  readonly type: string;\n  /**\n   * The schema reference.\n   */\n  readonly reference: (\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    ...args: any[]\n  ) => BaseSchema<unknown, unknown, BaseIssue<unknown>>;\n  /**\n   * The expected property.\n   */\n  readonly expects: string;\n  /**\n   * Whether it's async.\n   */\n  readonly async: false;\n  /**\n   * The Standard Schema properties.\n   *\n   * @internal\n   */\n  readonly '~standard': StandardProps<TInput, TOutput>;\n  /**\n   * Parses unknown input values.\n   *\n   * @param dataset The input dataset.\n   * @param config The configuration.\n   *\n   * @returns The output dataset.\n   *\n   * @internal\n   */\n  readonly '~run': (\n    dataset: UnknownDataset,\n    config: Config<BaseIssue<unknown>>\n  ) => OutputDataset<TOutput, TIssue>;\n  /**\n   * The input, output and issue type.\n   *\n   * @internal\n   */\n  readonly '~types'?:\n    | {\n        readonly input: TInput;\n        readonly output: TOutput;\n        readonly issue: TIssue;\n      }\n    | undefined;\n}\n\n/**\n * Base schema async interface.\n */\nexport interface BaseSchemaAsync<\n  TInput,\n  TOutput,\n  TIssue extends BaseIssue<unknown>,\n> extends Omit<\n    BaseSchema<TInput, TOutput, TIssue>,\n    'reference' | 'async' | '~run'\n  > {\n  /**\n   * The schema reference.\n   */\n  readonly reference: (\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    ...args: any[]\n  ) =>\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>;\n  /**\n   * Whether it's async.\n   */\n  readonly async: true;\n  /**\n   * Parses unknown input values.\n   *\n   * @param dataset The input dataset.\n   * @param config The configuration.\n   *\n   * @returns The output dataset.\n   *\n   * @internal\n   */\n  readonly '~run': (\n    dataset: UnknownDataset,\n    config: Config<BaseIssue<unknown>>\n  ) => Promise<OutputDataset<TOutput, TIssue>>;\n}\n\n/**\n * Generic schema type.\n */\nexport type GenericSchema<\n  TInput = unknown,\n  TOutput = TInput,\n  TIssue extends BaseIssue<unknown> = BaseIssue<unknown>,\n> = BaseSchema<TInput, TOutput, TIssue>;\n\n/**\n * Generic schema async type.\n */\nexport type GenericSchemaAsync<\n  TInput = unknown,\n  TOutput = TInput,\n  TIssue extends BaseIssue<unknown> = BaseIssue<unknown>,\n> = BaseSchemaAsync<TInput, TOutput, TIssue>;\n"
  },
  {
    "path": "library/src/types/standard.ts",
    "content": "/**\n * The Standard Schema properties interface.\n */\nexport interface StandardProps<TInput, TOutput> {\n  /**\n   * The version number of the standard.\n   */\n  readonly version: 1;\n  /**\n   * The vendor name of the schema library.\n   */\n  readonly vendor: 'valibot';\n  /**\n   * Validates unknown input values.\n   */\n  readonly validate: (\n    value: unknown\n  ) => StandardResult<TOutput> | Promise<StandardResult<TOutput>>;\n  /**\n   * Inferred types associated with the schema.\n   */\n  readonly types?: StandardTypes<TInput, TOutput> | undefined;\n}\n\n/**\n * The result interface of the validate function.\n */\nexport type StandardResult<TOutput> =\n  | StandardSuccessResult<TOutput>\n  | StandardFailureResult;\n\n/**\n * The result interface if validation succeeds.\n */\nexport interface StandardSuccessResult<TOutput> {\n  /**\n   * The typed output value.\n   */\n  readonly value: TOutput;\n  /**\n   * The non-existent issues.\n   */\n  readonly issues?: undefined;\n}\n\n/**\n * The result interface if validation fails.\n */\nexport interface StandardFailureResult {\n  /**\n   * The issues of failed validation.\n   */\n  readonly issues: readonly StandardIssue[];\n}\n\n/**\n * The issue interface of the failure output.\n */\nexport interface StandardIssue {\n  /**\n   * The error message of the issue.\n   */\n  readonly message: string;\n  /**\n   * The path of the issue, if any.\n   */\n  readonly path?: readonly (PropertyKey | StandardPathItem)[] | undefined;\n}\n\n/**\n * The path item interface of the issue.\n */\nexport interface StandardPathItem {\n  /**\n   * The key of the path item.\n   */\n  readonly key: PropertyKey;\n}\n\n/**\n * The Standard Schema types interface.\n */\nexport interface StandardTypes<TInput, TOutput> {\n  /**\n   * The input type of the schema.\n   */\n  readonly input: TInput;\n  /**\n   * The output type of the schema.\n   */\n  readonly output: TOutput;\n}\n"
  },
  {
    "path": "library/src/types/transformation.ts",
    "content": "import type { Config } from './config.ts';\nimport type { OutputDataset, SuccessDataset } from './dataset.ts';\nimport type { BaseIssue } from './issue.ts';\n\n/**\n * Base transformation interface.\n */\nexport interface BaseTransformation<\n  TInput,\n  TOutput,\n  TIssue extends BaseIssue<unknown>,\n> {\n  /**\n   * The object kind.\n   */\n  readonly kind: 'transformation';\n  /**\n   * The transformation type.\n   */\n  readonly type: string;\n  /**\n   * The transformation reference.\n   */\n  readonly reference: (\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    ...args: any[]\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  ) => BaseTransformation<any, any, BaseIssue<unknown>>;\n  /**\n   * Whether it's async.\n   */\n  readonly async: false;\n  /**\n   * Transforms known input values.\n   *\n   * @param dataset The input dataset.\n   * @param config The configuration.\n   *\n   * @returns The output dataset.\n   *\n   * @internal\n   */\n  readonly '~run': (\n    dataset: SuccessDataset<TInput>,\n    config: Config<BaseIssue<unknown>>\n  ) => OutputDataset<TOutput, BaseIssue<unknown> | TIssue>;\n  /**\n   * The input, output and issue type.\n   *\n   * @internal\n   */\n  readonly '~types'?:\n    | {\n        readonly input: TInput;\n        readonly output: TOutput;\n        readonly issue: TIssue;\n      }\n    | undefined;\n}\n\n/**\n * Base transformation async interface.\n */\nexport interface BaseTransformationAsync<\n  TInput,\n  TOutput,\n  TIssue extends BaseIssue<unknown>,\n> extends Omit<\n    BaseTransformation<TInput, TOutput, TIssue>,\n    'reference' | 'async' | '~run'\n  > {\n  /**\n   * The transformation reference.\n   */\n  readonly reference: (\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    ...args: any[]\n  ) => // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  | BaseTransformation<any, any, BaseIssue<unknown>>\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    | BaseTransformationAsync<any, any, BaseIssue<unknown>>;\n  /**\n   * Whether it's async.\n   */\n  readonly async: true;\n  /**\n   * Transforms known input values.\n   *\n   * @param dataset The input dataset.\n   * @param config The configuration.\n   *\n   * @returns The output dataset.\n   *\n   * @internal\n   */\n  readonly '~run': (\n    dataset: SuccessDataset<TInput>,\n    config: Config<BaseIssue<unknown>>\n  ) => Promise<OutputDataset<TOutput, BaseIssue<unknown> | TIssue>>;\n}\n\n/**\n * Generic transformation type.\n */\nexport type GenericTransformation<\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  TInput = any,\n  TOutput = TInput,\n  TIssue extends BaseIssue<unknown> = BaseIssue<unknown>,\n> = BaseTransformation<TInput, TOutput, TIssue>;\n\n/**\n * Generic transformation async type.\n */\nexport type GenericTransformationAsync<\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  TInput = any,\n  TOutput = TInput,\n  TIssue extends BaseIssue<unknown> = BaseIssue<unknown>,\n> = BaseTransformationAsync<TInput, TOutput, TIssue>;\n"
  },
  {
    "path": "library/src/types/tuple.ts",
    "content": "import type { InferInput, InferIssue, InferOutput } from './infer.ts';\nimport type { BaseIssue } from './issue.ts';\nimport type { BaseSchema, BaseSchemaAsync } from './schema.ts';\nimport type { MaybeReadonly } from './utils.ts';\n\n/**\n * Tuple items type.\n */\nexport type TupleItems = MaybeReadonly<\n  BaseSchema<unknown, unknown, BaseIssue<unknown>>[]\n>;\n\n/**\n * Tuple items async type.\n */\nexport type TupleItemsAsync = MaybeReadonly<\n  (\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n  )[]\n>;\n\n/**\n * Infer tuple input type.\n */\nexport type InferTupleInput<TItems extends TupleItems | TupleItemsAsync> = {\n  -readonly [TKey in keyof TItems]: InferInput<TItems[TKey]>;\n};\n\n/**\n * Infer tuple output type.\n */\nexport type InferTupleOutput<TItems extends TupleItems | TupleItemsAsync> = {\n  -readonly [TKey in keyof TItems]: InferOutput<TItems[TKey]>;\n};\n\n/**\n * Infer tuple issue type.\n */\nexport type InferTupleIssue<TItems extends TupleItems | TupleItemsAsync> =\n  InferIssue<TItems[number]>;\n"
  },
  {
    "path": "library/src/types/utils.ts",
    "content": "/**\n * Checks if a type is `any`.\n */\nexport type IsAny<Type> = 0 extends 1 & Type ? true : false;\n\n/**\n * Checks if a type is `never`.\n */\nexport type IsNever<Type> = [Type] extends [never] ? true : false;\n\n/**\n * Extracts `null` from a type.\n */\nexport type NonNullable<TValue> = TValue extends null ? never : TValue;\n\n/**\n * Extracts `null` and `undefined` from a type.\n */\nexport type NonNullish<TValue> = TValue extends null | undefined\n  ? never\n  : TValue;\n\n/**\n * Extracts `undefined` from a type.\n */\nexport type NonOptional<TValue> = TValue extends undefined ? never : TValue;\n\n/**\n * Constructs a type that is maybe readonly.\n */\nexport type MaybeReadonly<TValue> = TValue | Readonly<TValue>;\n\n/**\n * Constructs a type that is deeply readonly.\n */\nexport type DeepReadonly<TValue> = TValue extends\n  | Record<string, unknown>\n  | readonly unknown[]\n  ? { readonly [TKey in keyof TValue]: DeepReadonly<TValue[TKey]> }\n  : TValue;\n\n/**\n * Constructs a type that is maybe deeply readonly.\n */\nexport type MaybeDeepReadonly<TValue> = TValue | DeepReadonly<TValue>;\n\n/**\n * Constructs a type that is maybe a promise.\n */\nexport type MaybePromise<TValue> = TValue | Promise<TValue>;\n\n/**\n * Prettifies a type for better readability.\n *\n * Hint: This type has no effect and is only used so that TypeScript displays\n * the final type in the preview instead of the utility types used.\n */\nexport type Prettify<TObject> = { [TKey in keyof TObject]: TObject[TKey] } & {};\n\n/**\n * Marks specific keys as optional.\n */\nexport type MarkOptional<TObject, TKeys extends keyof TObject> =\n  // Mapping any entry to unknown preserves key order in final output\n  { [TKey in keyof TObject]?: unknown } & Omit<TObject, TKeys> &\n    Partial<Pick<TObject, TKeys>>;\n\n/**\n * Merges two objects. Overlapping entries from the second object overwrite\n * properties from the first object.\n */\nexport type Merge<TFirstObject, TSecondObject> = Omit<\n  TFirstObject,\n  keyof TFirstObject & keyof TSecondObject\n> &\n  TSecondObject;\n\n/**\n * Extracts first tuple item.\n */\nexport type FirstTupleItem<TTuple extends readonly [unknown, ...unknown[]]> =\n  TTuple[0];\n\n/**\n * Extracts last tuple item.\n */\nexport type LastTupleItem<TTuple extends readonly [unknown, ...unknown[]]> =\n  TTuple[TTuple extends readonly [unknown, ...infer TRest]\n    ? TRest['length']\n    : never];\n\n/**\n * Converts union to intersection type.\n */\nexport type UnionToIntersect<TUnion> =\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  (TUnion extends any ? (arg: TUnion) => void : never) extends (\n    arg: infer Intersect\n  ) => void\n    ? Intersect\n    : never;\n\n/**\n * Converts union to tuple type using an accumulator.\n *\n * For more information: {@link https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-5.html#tail-recursion-elimination-on-conditional-types}\n */\ntype UnionToTupleHelper<TUnion, TResult extends unknown[]> =\n  UnionToIntersect<\n    TUnion extends never ? never : () => TUnion\n  > extends () => infer TLast\n    ? UnionToTupleHelper<Exclude<TUnion, TLast>, [TLast, ...TResult]>\n    : TResult;\n\n/**\n * Converts union to tuple type.\n */\nexport type UnionToTuple<TUnion> = UnionToTupleHelper<TUnion, []>;\n"
  },
  {
    "path": "library/src/types/validation.ts",
    "content": "import type { Config } from './config.ts';\nimport type { OutputDataset } from './dataset.ts';\nimport type { BaseIssue } from './issue.ts';\n\n/**\n * Base validation interface.\n */\nexport interface BaseValidation<\n  TInput,\n  TOutput,\n  TIssue extends BaseIssue<unknown>,\n> {\n  /**\n   * The object kind.\n   */\n  readonly kind: 'validation';\n  /**\n   * The validation type.\n   */\n  readonly type: string;\n  /**\n   * The validation reference.\n   */\n  readonly reference: (\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    ...args: any[]\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  ) => BaseValidation<any, any, BaseIssue<unknown>>;\n  /**\n   * The expected property.\n   */\n  readonly expects: string | null;\n  /**\n   * Whether it's async.\n   */\n  readonly async: false;\n  /**\n   * Validates known input values.\n   *\n   * @param dataset The input dataset.\n   * @param config The configuration.\n   *\n   * @returns The output dataset.\n   *\n   * @internal\n   */\n  readonly '~run': (\n    dataset: OutputDataset<TInput, BaseIssue<unknown>>,\n    config: Config<BaseIssue<unknown>>\n  ) => OutputDataset<TOutput, BaseIssue<unknown> | TIssue>;\n  /**\n   * The input, output and issue type.\n   *\n   * @internal\n   */\n  readonly '~types'?:\n    | {\n        readonly input: TInput;\n        readonly output: TOutput;\n        readonly issue: TIssue;\n      }\n    | undefined;\n}\n\n/**\n * Base validation async interface.\n */\nexport interface BaseValidationAsync<\n  TInput,\n  TOutput,\n  TIssue extends BaseIssue<unknown>,\n> extends Omit<\n    BaseValidation<TInput, TOutput, TIssue>,\n    'reference' | 'async' | '~run'\n  > {\n  /**\n   * The validation reference.\n   */\n  readonly reference: (\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    ...args: any[]\n  ) => // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  | BaseValidation<any, any, BaseIssue<unknown>>\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    | BaseValidationAsync<any, any, BaseIssue<unknown>>;\n  /**\n   * Whether it's async.\n   */\n  readonly async: true;\n  /**\n   * Validates known input values.\n   *\n   * @param dataset The input dataset.\n   * @param config The configuration.\n   *\n   * @returns The output dataset.\n   *\n   * @internal\n   */\n  readonly '~run': (\n    dataset: OutputDataset<TInput, BaseIssue<unknown>>,\n    config: Config<BaseIssue<unknown>>\n  ) => Promise<OutputDataset<TOutput, BaseIssue<unknown> | TIssue>>;\n}\n\n/**\n * Generic validation type.\n */\nexport type GenericValidation<\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  TInput = any,\n  TOutput = TInput,\n  TIssue extends BaseIssue<unknown> = BaseIssue<unknown>,\n> = BaseValidation<TInput, TOutput, TIssue>;\n\n/**\n * Generic validation async type.\n */\nexport type GenericValidationAsync<\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  TInput = any,\n  TOutput = TInput,\n  TIssue extends BaseIssue<unknown> = BaseIssue<unknown>,\n> = BaseValidationAsync<TInput, TOutput, TIssue>;\n"
  },
  {
    "path": "library/src/utils/ValiError/ValiError.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport {\n  minLength,\n  type MinLengthIssue,\n  url,\n  type UrlIssue,\n} from '../../actions/index.ts';\nimport { pipe } from '../../methods/index.ts';\nimport { string, type StringIssue } from '../../schemas/index.ts';\nimport { ValiError } from './ValiError.ts';\n\ndescribe('ValiError', () => {\n  test('should infer issues from schema', () => {\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    const schema = pipe(string(), minLength(10), url());\n    const error = new ValiError<typeof schema>([\n      {\n        kind: 'validation',\n        type: 'min_length',\n        input: 'foo',\n        expected: '>=10',\n        received: '3',\n        message: 'Invalid length: Expected >=10 but received 3',\n        requirement: 10,\n      },\n    ]);\n    type Issue = StringIssue | MinLengthIssue<string, 10> | UrlIssue<string>;\n    expectTypeOf(error.issues).toEqualTypeOf<[Issue, ...Issue[]]>();\n  });\n});\n"
  },
  {
    "path": "library/src/utils/ValiError/ValiError.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { MinLengthIssue, UrlIssue } from '../../actions/index.ts';\nimport { ValiError } from './ValiError.ts';\n\ndescribe('ValiError', () => {\n  test('should create error instance', () => {\n    const minLengthIssue: MinLengthIssue<string, 10> = {\n      kind: 'validation',\n      type: 'min_length',\n      input: 'foo',\n      expected: '>=10',\n      received: '3',\n      message: 'Invalid length: Expected >=10 but received 3',\n      requirement: 10,\n    };\n\n    const urlIssue: UrlIssue<string> = {\n      kind: 'validation',\n      type: 'url',\n      input: 'foo',\n      expected: null,\n      received: '\"foo\"',\n      message: 'Invalid URL: Received \"foo\"',\n      requirement: expect.any(Function),\n    };\n\n    const error = new ValiError([minLengthIssue, urlIssue]);\n    expect(error).toBeInstanceOf(ValiError);\n    expect(error.name).toBe('ValiError');\n    expect(error.message).toBe(minLengthIssue.message);\n    expect(error.issues).toStrictEqual([minLengthIssue, urlIssue]);\n  });\n});\n"
  },
  {
    "path": "library/src/utils/ValiError/ValiError.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  InferIssue,\n} from '../../types/index.ts';\n\n/**\n * A Valibot error with useful information.\n */\nexport class ValiError<\n  TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n> extends Error {\n  /**\n   * The error issues.\n   */\n  public readonly issues: [InferIssue<TSchema>, ...InferIssue<TSchema>[]];\n\n  /**\n   * Creates a Valibot error with useful information.\n   *\n   * @param issues The error issues.\n   */\n  // @__NO_SIDE_EFFECTS__\n  constructor(issues: [InferIssue<TSchema>, ...InferIssue<TSchema>[]]) {\n    super(issues[0].message);\n    this.name = 'ValiError';\n    this.issues = issues;\n  }\n}\n"
  },
  {
    "path": "library/src/utils/ValiError/index.ts",
    "content": "export * from './ValiError.ts';\n"
  },
  {
    "path": "library/src/utils/_addIssue/_addIssue.test.ts",
    "content": "import { afterEach, describe, expect, test } from 'vitest';\nimport {\n  decimal,\n  type DecimalIssue,\n  minLength,\n  type MinLengthIssue,\n  url,\n} from '../../actions/index.ts';\nimport { DECIMAL_REGEX } from '../../regex.ts';\nimport { number, type NumberIssue, string } from '../../schemas/index.ts';\nimport {\n  deleteGlobalMessage,\n  deleteSchemaMessage,\n  deleteSpecificMessage,\n  setGlobalMessage,\n  setSchemaMessage,\n  setSpecificMessage,\n} from '../../storages/index.ts';\nimport type {\n  BaseIssue,\n  FailureDataset,\n  IssuePathItem,\n  PartialDataset,\n  SuccessDataset,\n  UnknownDataset,\n} from '../../types/index.ts';\nimport { _addIssue } from './_addIssue.ts';\n\ndescribe('_addIssue', () => {\n  describe('should add issue to dataset', () => {\n    const baseInfo = {\n      path: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n\n    type MinLength1Issue = MinLengthIssue<string, 1>;\n    const minLengthIssue: MinLength1Issue = {\n      ...baseInfo,\n      kind: 'validation',\n      type: 'min_length',\n      input: '',\n      expected: '>=1',\n      received: '0',\n      message: 'Invalid length: Expected >=1 but received 0',\n      requirement: 1,\n    };\n\n    const dataset: SuccessDataset<string> = { typed: true, value: '' };\n\n    test('for issue one', () => {\n      _addIssue(minLength(1), 'length', dataset, {}, { received: '0' });\n      expect(dataset).toStrictEqual({\n        typed: true,\n        value: '',\n        issues: [minLengthIssue],\n      } satisfies PartialDataset<string, MinLength1Issue>);\n    });\n\n    const decimalIssue: DecimalIssue<string> = {\n      ...baseInfo,\n      kind: 'validation',\n      type: 'decimal',\n      input: '',\n      expected: null,\n      received: '\"\"',\n      message: 'Invalid decimal: Received \"\"',\n      requirement: DECIMAL_REGEX,\n    };\n\n    test('for issue two', () => {\n      _addIssue(decimal(), 'decimal', dataset, {});\n      expect(dataset).toStrictEqual({\n        typed: true,\n        value: '',\n        issues: [minLengthIssue, decimalIssue],\n      } satisfies PartialDataset<\n        string,\n        MinLength1Issue | DecimalIssue<string>\n      >);\n    });\n  });\n\n  describe('should generate default message', () => {\n    test('with expected and received', () => {\n      const dataset: UnknownDataset = { value: null };\n      _addIssue(string(), 'type', dataset, {});\n      // @ts-expect-error\n      expect(dataset.issues?.[0].message).toBe(\n        'Invalid type: Expected string but received null'\n      );\n    });\n\n    test('with only received', () => {\n      const dataset: SuccessDataset<string> = {\n        typed: true,\n        value: 'foo',\n      };\n      _addIssue(url(), 'URL', dataset, {});\n      // @ts-expect-error\n      expect(dataset.issues?.[0].message).toBe('Invalid URL: Received \"foo\"');\n    });\n  });\n\n  describe('should include custom message', () => {\n    const contextMessage = 'context message';\n    const configMessage = 'config message';\n    const specificMessage = 'specific message';\n    const schemaMessage = 'schema message';\n    const globalMessage = 'global message';\n\n    afterEach(() => {\n      deleteGlobalMessage();\n      deleteSchemaMessage();\n      deleteSpecificMessage(string);\n    });\n\n    test('from context object', () => {\n      setSpecificMessage(string, specificMessage);\n      setSchemaMessage(() => schemaMessage);\n      setGlobalMessage(globalMessage);\n      const dataset: UnknownDataset = { value: null };\n      _addIssue(string(contextMessage), 'type', dataset, {\n        message: () => configMessage,\n      });\n      // @ts-expect-error\n      expect(dataset.issues?.[0].message).toBe(contextMessage);\n    });\n\n    test('from context object with empty string', () => {\n      setSpecificMessage(string, specificMessage);\n      setSchemaMessage(() => schemaMessage);\n      setGlobalMessage(globalMessage);\n      const dataset: UnknownDataset = { value: null };\n      _addIssue(string(''), 'type', dataset, {\n        message: () => configMessage,\n      });\n      // @ts-expect-error\n      expect(dataset.issues?.[0].message).toBe('');\n    });\n\n    test('from specific storage', () => {\n      setSpecificMessage(string, specificMessage);\n      setSchemaMessage(() => schemaMessage);\n      setGlobalMessage(globalMessage);\n      const dataset: UnknownDataset = { value: null };\n      _addIssue(string(), 'type', dataset, {\n        message: () => configMessage,\n      });\n      // @ts-expect-error\n      expect(dataset.issues?.[0].message).toBe(specificMessage);\n    });\n\n    test('from specific storage with empty string', () => {\n      setSpecificMessage(string, '');\n      setSchemaMessage(() => schemaMessage);\n      setGlobalMessage(globalMessage);\n      const dataset: UnknownDataset = { value: null };\n      _addIssue(string(), 'type', dataset, {\n        message: () => configMessage,\n      });\n      // @ts-expect-error\n      expect(dataset.issues?.[0].message).toBe('');\n    });\n\n    test('from schema storage', () => {\n      setSchemaMessage(() => schemaMessage);\n      setGlobalMessage(globalMessage);\n      const dataset: UnknownDataset = { value: null };\n      _addIssue(string(), 'type', dataset, {\n        message: () => configMessage,\n      });\n      // @ts-expect-error\n      expect(dataset.issues?.[0].message).toBe(schemaMessage);\n    });\n\n    test('from schema storage with empty string', () => {\n      setSchemaMessage(() => '');\n      setGlobalMessage(globalMessage);\n      const dataset: UnknownDataset = { value: null };\n      _addIssue(string(), 'type', dataset, {\n        message: () => configMessage,\n      });\n      // @ts-expect-error\n      expect(dataset.issues?.[0].message).toBe('');\n    });\n\n    test('not from schema storage', () => {\n      setSchemaMessage(() => schemaMessage);\n      setGlobalMessage(globalMessage);\n      const dataset: SuccessDataset<string> = {\n        typed: true,\n        value: 'foo',\n      };\n      _addIssue(url(), 'type', dataset, {\n        message: () => configMessage,\n      });\n      // @ts-expect-error\n      expect(dataset.issues?.[0].message).not.toBe(schemaMessage);\n    });\n\n    test('from config object', () => {\n      setGlobalMessage(globalMessage);\n      const dataset: UnknownDataset = { value: null };\n      _addIssue(string(), 'type', dataset, {\n        message: () => configMessage,\n      });\n      // @ts-expect-error\n      expect(dataset.issues?.[0].message).toBe(configMessage);\n    });\n\n    test('from config object with empty string', () => {\n      setGlobalMessage(globalMessage);\n      const dataset: UnknownDataset = { value: null };\n      _addIssue(string(), 'type', dataset, {\n        message: () => '',\n      });\n      // @ts-expect-error\n      expect(dataset.issues?.[0].message).toBe('');\n    });\n\n    test('from global storage', () => {\n      setGlobalMessage(globalMessage);\n      const dataset: UnknownDataset = { value: null };\n      _addIssue(string(), 'type', dataset, {});\n      // @ts-expect-error\n      expect(dataset.issues?.[0].message).toBe(globalMessage);\n    });\n\n    test('from global storage with empty string', () => {\n      setGlobalMessage('');\n      const dataset: UnknownDataset = { value: null };\n      _addIssue(string(), 'type', dataset, {});\n      // @ts-expect-error\n      expect(dataset.issues?.[0].message).toBe('');\n    });\n  });\n\n  test('should include configuration', () => {\n    const dataset: UnknownDataset = { value: null };\n    const config = {\n      lang: 'en',\n      abortEarly: true,\n      abortPipeEarly: true,\n    };\n    _addIssue(string(), 'type', dataset, config);\n    expect(dataset.issues?.[0]).toMatchObject(config);\n  });\n\n  test('should include other information', () => {\n    const dataset: UnknownDataset = { value: null };\n    const other = {\n      received: '\"foo\"',\n      expected: '\"bar\"',\n      path: [\n        {\n          type: 'object',\n          origin: 'value',\n          input: { key: 'foo' },\n          key: 'key',\n          value: 'foo',\n        },\n      ] satisfies [IssuePathItem],\n      issues: [\n        {\n          kind: 'schema',\n          type: 'special',\n          input: 'foo',\n          expected: '\"baz\"',\n          received: '\"foo\"',\n          message: 'Custom messsage',\n        },\n      ] satisfies [BaseIssue<string>],\n    };\n    _addIssue(string(), 'type', dataset, {}, other);\n    expect(dataset.issues?.[0]).toMatchObject({\n      ...other,\n      message: 'Invalid type: Expected \"bar\" but received \"foo\"',\n    });\n  });\n\n  test('should set typed if schema to false', () => {\n    const dataset: SuccessDataset<number> = {\n      typed: true,\n      value: NaN,\n    };\n    _addIssue(number(), 'type', dataset, {});\n    expect(dataset).toStrictEqual({\n      typed: false,\n      value: NaN,\n      issues: expect.any(Array),\n    } satisfies FailureDataset<NumberIssue>);\n  });\n});\n"
  },
  {
    "path": "library/src/utils/_addIssue/_addIssue.ts",
    "content": "import {\n  getGlobalMessage,\n  getSchemaMessage,\n  getSpecificMessage,\n} from '../../storages/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  BaseTransformation,\n  BaseTransformationAsync,\n  BaseValidation,\n  BaseValidationAsync,\n  Config,\n  ErrorMessage,\n  InferInput,\n  InferIssue,\n  IssuePathItem,\n  OutputDataset,\n  UnknownDataset,\n} from '../../types/index.ts';\nimport { _stringify } from '../_stringify/index.ts';\n\n/**\n * Context type.\n */\ntype Context =\n  | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n  | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  | BaseValidation<any, unknown, BaseIssue<unknown>>\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  | BaseValidationAsync<any, unknown, BaseIssue<unknown>>\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  | BaseTransformation<any, unknown, BaseIssue<unknown>>\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  | BaseTransformationAsync<any, unknown, BaseIssue<unknown>>;\n\n/**\n * Other interface.\n */\ninterface Other<TContext extends Context> {\n  input?: unknown | undefined;\n  expected?: string | undefined;\n  received?: string | undefined;\n  message?: ErrorMessage<InferIssue<TContext>> | undefined;\n  path?: [IssuePathItem, ...IssuePathItem[]] | undefined;\n  issues?:\n    | [BaseIssue<InferInput<TContext>>, ...BaseIssue<InferInput<TContext>>[]]\n    | undefined;\n}\n\n/**\n * Adds an issue to the dataset.\n *\n * @param context The issue context.\n * @param label The issue label.\n * @param dataset The input dataset.\n * @param config The configuration.\n * @param other The optional props.\n *\n * @internal\n */\nexport function _addIssue<const TContext extends Context>(\n  context: TContext & {\n    expects?: string | null;\n    requirement?: unknown;\n    message?:\n      | ErrorMessage<Extract<InferIssue<TContext>, { type: TContext['type'] }>>\n      | undefined;\n  },\n  label: string,\n  dataset: UnknownDataset | OutputDataset<unknown, BaseIssue<unknown>>,\n  config: Config<InferIssue<TContext>>,\n  other?: Other<TContext>\n): void {\n  // Get expected and received string\n  const input = other && 'input' in other ? other.input : dataset.value;\n  const expected = other?.expected ?? context.expects ?? null;\n  const received = other?.received ?? _stringify(input);\n\n  // Create issue object\n  // Hint: The issue is deliberately not constructed with the spread operator\n  // for performance reasons\n  const issue: BaseIssue<unknown> = {\n    kind: context.kind,\n    type: context.type,\n    input,\n    expected,\n    received,\n    message: `Invalid ${label}: ${\n      expected ? `Expected ${expected} but r` : 'R'\n    }eceived ${received}`,\n    requirement: context.requirement,\n    path: other?.path,\n    issues: other?.issues,\n    lang: config.lang,\n    abortEarly: config.abortEarly,\n    abortPipeEarly: config.abortPipeEarly,\n  };\n\n  // Check if context is a schema\n  const isSchema = context.kind === 'schema';\n\n  // Get custom issue message\n  const message =\n    other?.message ??\n    context.message ??\n    getSpecificMessage(context.reference, issue.lang) ??\n    (isSchema ? getSchemaMessage(issue.lang) : null) ??\n    config.message ??\n    getGlobalMessage(issue.lang);\n\n  // If custom message if specified, override default message\n  if (message !== undefined) {\n    // @ts-expect-error\n    issue.message =\n      typeof message === 'function'\n        ? // @ts-expect-error\n          message(issue)\n        : message;\n  }\n\n  // If context is a schema, set typed to `false`\n  if (isSchema) {\n    dataset.typed = false;\n  }\n\n  // Add issue to dataset\n  if (dataset.issues) {\n    dataset.issues.push(issue);\n  } else {\n    // @ts-expect-error\n    dataset.issues = [issue];\n  }\n}\n"
  },
  {
    "path": "library/src/utils/_addIssue/index.ts",
    "content": "export * from './_addIssue.ts';\n"
  },
  {
    "path": "library/src/utils/_cloneDataset/_cloneDataset.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type {\n  BaseIssue,\n  FailureDataset,\n  PartialDataset,\n  SuccessDataset,\n} from '../../types/index.ts';\nimport { _cloneDataset } from './_cloneDataset.ts';\n\ndescribe('_cloneDataset', () => {\n  test('should clone success dataset', () => {\n    const value = { key: 'foo' };\n    const dataset: SuccessDataset<typeof value> = {\n      typed: true,\n      value,\n    };\n    const clonedDataset = _cloneDataset(dataset);\n\n    expect(clonedDataset).toStrictEqual({\n      typed: true,\n      value,\n      issues: undefined,\n    });\n    expect(clonedDataset).not.toBe(dataset);\n    expect(clonedDataset.value).toBe(value);\n  });\n\n  test('should clone partial dataset issues array', () => {\n    const issue: BaseIssue<unknown> = {\n      kind: 'schema',\n      type: 'string',\n      input: 123,\n      expected: 'string',\n      received: '123',\n      message: 'Invalid type: Expected string but received 123',\n      requirement: undefined,\n      path: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n    const dataset: PartialDataset<string, BaseIssue<unknown>> = {\n      typed: true,\n      value: 'foo',\n      issues: [issue],\n    };\n    const clonedDataset = _cloneDataset(dataset);\n\n    expect(clonedDataset).toStrictEqual(dataset);\n    expect(clonedDataset).not.toBe(dataset);\n    expect(clonedDataset.issues).toBeDefined();\n    expect(clonedDataset.issues).not.toBe(dataset.issues);\n    expect(clonedDataset.issues![0]).toBe(issue);\n  });\n\n  test('should clone failure dataset issues array', () => {\n    const issue: BaseIssue<unknown> = {\n      kind: 'schema',\n      type: 'string',\n      input: 123,\n      expected: 'string',\n      received: '123',\n      message: 'Invalid type: Expected string but received 123',\n      requirement: undefined,\n      path: undefined,\n      issues: undefined,\n      lang: undefined,\n      abortEarly: undefined,\n      abortPipeEarly: undefined,\n    };\n    const dataset: FailureDataset<BaseIssue<unknown>> = {\n      typed: false,\n      value: 123,\n      issues: [issue],\n    };\n    const clonedDataset = _cloneDataset(dataset);\n\n    expect(clonedDataset).toStrictEqual(dataset);\n    expect(clonedDataset).not.toBe(dataset);\n    expect(clonedDataset.issues).toBeDefined();\n    expect(clonedDataset.issues).not.toBe(dataset.issues);\n  });\n});\n"
  },
  {
    "path": "library/src/utils/_cloneDataset/_cloneDataset.ts",
    "content": "import type { BaseIssue, OutputDataset } from '../../types/index.ts';\n\n/**\n * Creates a shallow copy of a dataset.\n *\n * Hint: The `value` is copied by reference, but the `issues` array is cloned\n * to avoid reusing mutable dataset state across multiple runs. Mutating a\n * returned object or array value can therefore affect later cache hits that\n * reuse the same cached output.\n *\n * @param dataset The output dataset.\n *\n * @returns The copied output dataset.\n */\n// @__NO_SIDE_EFFECTS__\nexport function _cloneDataset<TValue, TIssue extends BaseIssue<unknown>>(\n  dataset: OutputDataset<TValue, TIssue>\n): OutputDataset<TValue, TIssue> {\n  // Hint: We assign the known dataset properties directly instead of using the\n  // spread operator for better runtime performance.\n  // @ts-expect-error\n  return {\n    typed: dataset.typed,\n    value: dataset.value,\n    issues: dataset.issues && [...dataset.issues],\n  };\n}\n"
  },
  {
    "path": "library/src/utils/_cloneDataset/index.ts",
    "content": "export * from './_cloneDataset.ts';\n"
  },
  {
    "path": "library/src/utils/_getByteCount/_getByteCount.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { _getByteCount } from './_getByteCount.ts';\n\ndescribe('_getByteCount', () => {\n  test('should return byte count', () => {\n    expect(_getByteCount('hello world')).toBe(11);\n    expect(_getByteCount('😀')).toBe(4);\n    expect(_getByteCount('🧑🏻‍💻')).toBe(15);\n    expect(_getByteCount('𝄞')).toBe(4);\n    expect(_getByteCount('สวัสดี')).toBe(18);\n  });\n});\n"
  },
  {
    "path": "library/src/utils/_getByteCount/_getByteCount.ts",
    "content": "let textEncoder: TextEncoder;\n\n/**\n * Returns the byte count of the input.\n *\n * @param input The input to be measured.\n *\n * @returns The byte count.\n *\n * @internal\n */\n// @__NO_SIDE_EFFECTS__\nexport function _getByteCount(input: string): number {\n  if (!textEncoder) {\n    textEncoder = new TextEncoder();\n  }\n  return textEncoder.encode(input).length;\n}\n"
  },
  {
    "path": "library/src/utils/_getByteCount/index.ts",
    "content": "export * from './_getByteCount.ts';\n"
  },
  {
    "path": "library/src/utils/_getGraphemeCount/_getGraphemeCount.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { _getGraphemeCount } from './_getGraphemeCount.ts';\n\ndescribe('_getGraphemeCount', () => {\n  test('should return grapheme count', () => {\n    expect(_getGraphemeCount('hello world')).toBe(11);\n    expect(_getGraphemeCount('😀')).toBe(1);\n    expect(_getGraphemeCount('🧑🏻‍💻')).toBe(1);\n    expect(_getGraphemeCount('𝄞')).toBe(1);\n    expect(_getGraphemeCount('สวัสดี')).toBe(4);\n  });\n});\n"
  },
  {
    "path": "library/src/utils/_getGraphemeCount/_getGraphemeCount.ts",
    "content": "let segmenter: Intl.Segmenter;\n\n/**\n * Returns the grapheme count of the input.\n *\n * @param input The input to be measured.\n *\n * @returns The grapheme count.\n *\n * @internal\n */\n// @__NO_SIDE_EFFECTS__\nexport function _getGraphemeCount(input: string): number {\n  if (!segmenter) {\n    segmenter = new Intl.Segmenter();\n  }\n  const segments = segmenter.segment(input);\n  let count = 0;\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  for (const _ of segments) {\n    count++;\n  }\n  return count;\n}\n"
  },
  {
    "path": "library/src/utils/_getGraphemeCount/index.ts",
    "content": "export * from './_getGraphemeCount.ts';\n"
  },
  {
    "path": "library/src/utils/_getLastMetadata/_getLastMetadata.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { email, title } from '../../actions/index.ts';\nimport { pipe } from '../../methods/index.ts';\nimport { string } from '../../schemas/index.ts';\nimport { _getLastMetadata } from './_getLastMetadata.ts';\n\ndescribe('_getLastMetadata', () => {\n  describe('should return undefined', () => {\n    test('for schema without a pipeline', () => {\n      expect(_getLastMetadata(string(), 'title')).toBeUndefined();\n    });\n\n    test('for schema with an empty pipeline', () => {\n      expect(_getLastMetadata(pipe(string()), 'title')).toBeUndefined();\n    });\n\n    test('for schema without metadata', () => {\n      expect(\n        _getLastMetadata(pipe(string(), email()), 'title')\n      ).toBeUndefined();\n    });\n  });\n\n  describe('should return last top-level metadata', () => {\n    test('for simple schema with single metadata', () => {\n      expect(_getLastMetadata(pipe(string(), title('foo')), 'title')).toBe(\n        'foo'\n      );\n    });\n\n    test('for simple schema with multiple metadata', () => {\n      expect(\n        _getLastMetadata(pipe(string(), title('foo'), title('bar')), 'title')\n      ).toBe('bar');\n    });\n\n    test('for schema with nested pipelines', () => {\n      expect(\n        _getLastMetadata(\n          pipe(string(), title('foo'), pipe(string(), title('bar'))),\n          'title'\n        )\n      ).toBe('foo');\n      expect(\n        _getLastMetadata(\n          pipe(string(), email(), pipe(string(), title('foo'))),\n          'title'\n        )\n      ).toBe('foo');\n      expect(\n        _getLastMetadata(\n          pipe(pipe(string(), title('foo')), title('bar')),\n          'title'\n        )\n      ).toBe('bar');\n      expect(\n        _getLastMetadata(pipe(pipe(string(), title('foo')), email()), 'title')\n      ).toBe('foo');\n    });\n\n    test('for schema with deeply nested pipelines', () => {\n      expect(\n        _getLastMetadata(\n          pipe(pipe(pipe(string(), title('foo'))), email()),\n          'title'\n        )\n      ).toBe('foo');\n      expect(\n        _getLastMetadata(\n          pipe(pipe(pipe(string(), title('foo')), title('bar')), email()),\n          'title'\n        )\n      ).toBe('bar');\n    });\n\n    test('for nested schema without matching metadata', () => {\n      expect(\n        _getLastMetadata(\n          pipe(pipe(string(), title('found')), pipe(string(), email())),\n          'title'\n        )\n      ).toBe('found');\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/utils/_getLastMetadata/_getLastMetadata.ts",
    "content": "import type { DescriptionAction, TitleAction } from '../../actions/index.ts';\nimport type {\n  SchemaWithPipe,\n  SchemaWithPipeAsync,\n} from '../../methods/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  PipeItem,\n  PipeItemAsync,\n} from '../../types/index.ts';\n\n/**\n * Metadata action type.\n */\ntype MetadataAction =\n  | TitleAction<unknown, string>\n  | DescriptionAction<unknown, string>;\n\n/**\n * Schema type.\n */\ntype Schema =\n  | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n  | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n  | SchemaWithPipe<\n      readonly [\n        BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        ...(PipeItem<any, unknown, BaseIssue<unknown>> | MetadataAction)[],\n      ]\n    >\n  | SchemaWithPipeAsync<\n      readonly [\n        (\n          | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n          | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>\n        ),\n        ...(\n          | PipeItem<any, unknown, BaseIssue<unknown>> // eslint-disable-line @typescript-eslint/no-explicit-any\n          | PipeItemAsync<any, unknown, BaseIssue<unknown>> // eslint-disable-line @typescript-eslint/no-explicit-any\n          | MetadataAction\n        )[],\n      ]\n    >;\n\n/**\n * Returns the last top-level value of a given metadata type from a schema\n * using a breadth-first search that starts with the last item in the pipeline.\n *\n * @param schema The schema to search.\n * @param type The metadata type.\n *\n * @returns The value, if any.\n *\n * @internal\n */\n// @__NO_SIDE_EFFECTS__\nexport function _getLastMetadata(\n  schema: Schema,\n  type: 'title' | 'description'\n): string | undefined {\n  if ('pipe' in schema) {\n    const nestedSchemas: Schema[] = [];\n    for (let index = schema.pipe.length - 1; index >= 0; index--) {\n      const item = schema.pipe[index];\n      if (item.kind === 'schema' && 'pipe' in item) {\n        nestedSchemas.push(item);\n      } else if (item.kind === 'metadata' && item.type === type) {\n        // @ts-expect-error\n        return item[type];\n      }\n    }\n    for (const nestedSchema of nestedSchemas) {\n      const result = _getLastMetadata(nestedSchema, type);\n      if (result !== undefined) {\n        return result;\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "library/src/utils/_getLastMetadata/index.ts",
    "content": "export * from './_getLastMetadata.ts';\n"
  },
  {
    "path": "library/src/utils/_getStandardProps/_getStandardProps.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport { transform } from '../../actions/index.ts';\nimport { pipe } from '../../methods/index.ts';\nimport { object, string } from '../../schemas/index.ts';\nimport type { StandardProps } from '../../types/index.ts';\nimport { _getStandardProps } from './_getStandardProps.ts';\n\ndescribe('_getStandardProps', () => {\n  test('should return spec properties', () => {\n    expectTypeOf(_getStandardProps(string())).toEqualTypeOf<\n      StandardProps<string, string>\n    >();\n    expectTypeOf(\n      _getStandardProps(pipe(string(), transform(Number)))\n    ).toEqualTypeOf<StandardProps<string, number>>();\n    expectTypeOf(\n      _getStandardProps(\n        pipe(\n          object({ foo: string() }),\n          transform((input) => ({ ...input, bar: 123 }))\n        )\n      )\n    ).toEqualTypeOf<\n      StandardProps<{ foo: string }, { foo: string; bar: number }>\n    >();\n  });\n});\n"
  },
  {
    "path": "library/src/utils/_getStandardProps/_getStandardProps.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { email, endsWith } from '../../actions/index.ts';\nimport { pipe } from '../../methods/index.ts';\nimport { array, object, string } from '../../schemas/index.ts';\nimport { deleteGlobalConfig, setGlobalConfig } from '../../storages/index.ts';\nimport type {\n  StandardFailureResult,\n  StandardProps,\n  StandardSuccessResult,\n} from '../../types/index.ts';\nimport { _getStandardProps } from './_getStandardProps.ts';\n\ndescribe('_getStandardProps', () => {\n  test('should return spec properties', () => {\n    expect(_getStandardProps(string())).toStrictEqual({\n      version: 1,\n      vendor: 'valibot',\n      validate: expect.any(Function),\n    } satisfies StandardProps<string, string>);\n  });\n\n  test('should validate simple input', () => {\n    const props = _getStandardProps(string());\n    expect(props.validate('foo')).toMatchObject({\n      value: 'foo',\n    } satisfies StandardSuccessResult<string>);\n    expect(props.validate(null)).toMatchObject({\n      issues: [\n        {\n          message: 'Invalid type: Expected string but received null',\n        },\n      ],\n    } satisfies StandardFailureResult);\n    expect(props.validate(123)).toMatchObject({\n      issues: [\n        {\n          message: 'Invalid type: Expected string but received 123',\n        },\n      ],\n    } satisfies StandardFailureResult);\n  });\n\n  test('should validate complex input', () => {\n    const props = _getStandardProps(\n      object({ nested: array(object({ key: string() })) })\n    );\n    const input1 = { nested: [{ key: 'foo' }, { key: 'bar' }] };\n    expect(props.validate(input1)).toMatchObject({\n      value: input1,\n    } satisfies StandardSuccessResult<{ nested: { key: string }[] }>);\n    const input2 = { nested: [{ key: 'foo' }, { key: 123 }] };\n    expect(props.validate(input2)).toMatchObject({\n      issues: [\n        {\n          message: 'Invalid type: Expected string but received 123',\n          path: [{ key: 'nested' }, { key: 1 }, { key: 'key' }],\n        },\n      ],\n    } satisfies StandardFailureResult);\n  });\n\n  test('should use global config', () => {\n    const props = _getStandardProps(\n      pipe(string(), email(), endsWith('@example.com'))\n    );\n    expect(props.validate('foo')).toMatchObject({\n      issues: [\n        {\n          message: 'Invalid email: Received \"foo\"',\n        },\n        {\n          message: 'Invalid end: Expected \"@example.com\" but received \"foo\"',\n        },\n      ],\n    } satisfies StandardFailureResult);\n    setGlobalConfig({ abortPipeEarly: true });\n    expect(props.validate('foo')).toMatchObject({\n      issues: [\n        {\n          message: 'Invalid email: Received \"foo\"',\n        },\n      ],\n    } satisfies StandardFailureResult);\n    deleteGlobalConfig();\n  });\n});\n"
  },
  {
    "path": "library/src/utils/_getStandardProps/_getStandardProps.ts",
    "content": "import { getGlobalConfig } from '../../storages/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  InferInput,\n  InferOutput,\n  StandardProps,\n  StandardResult,\n} from '../../types/index.ts';\n\n/**\n * Returns the Standard Schema properties.\n *\n * @param context The schema context.\n *\n * @returns The Standard Schema properties.\n */\n// @__NO_SIDE_EFFECTS__\nexport function _getStandardProps<\n  TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(context: TSchema): StandardProps<InferInput<TSchema>, InferOutput<TSchema>> {\n  return {\n    version: 1,\n    vendor: 'valibot',\n    validate(value) {\n      return context['~run']({ value }, getGlobalConfig()) as\n        | StandardResult<InferOutput<TSchema>>\n        | Promise<StandardResult<InferOutput<TSchema>>>;\n    },\n  };\n}\n"
  },
  {
    "path": "library/src/utils/_getStandardProps/index.ts",
    "content": "export * from './_getStandardProps.ts';\n"
  },
  {
    "path": "library/src/utils/_getWordCount/_getWordCount.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { _getWordCount } from './_getWordCount.ts';\n\ndescribe('_getWordCount', () => {\n  test('should return word count', () => {\n    expect(_getWordCount('en', '')).toBe(0);\n    expect(_getWordCount('en', 'h')).toBe(1);\n    expect(_getWordCount('en', 'hello')).toBe(1);\n    expect(_getWordCount('en', 'hello world')).toBe(2);\n    expect(_getWordCount('en', '🧑🏻‍💻')).toBe(0);\n    expect(_getWordCount('th', 'สวัสดี')).toBe(1);\n  });\n\n  // TODO: This test is failing in CI, but works locally 😑\n  // test('should take locale into account', () => {\n  //   expect(_getWordCount('zh', 'foo:bar baz:qux')).toBe(4);\n  //   expect(_getWordCount('he', 'foo:bar baz:qux')).toBe(4);\n  //   expect(_getWordCount('sv', 'foo:bar baz:qux')).toBe(2);\n  //   expect(_getWordCount('fi', 'foo:bar baz:qux')).toBe(2);\n  // });\n});\n"
  },
  {
    "path": "library/src/utils/_getWordCount/_getWordCount.ts",
    "content": "let store: Map<Intl.LocalesArgument, Intl.Segmenter>;\n\n/**\n * Returns the word count of the input.\n *\n * @param locales The locales to be used.\n * @param input The input to be measured.\n *\n * @returns The word count.\n *\n * @internal\n */\n// @__NO_SIDE_EFFECTS__\nexport function _getWordCount(\n  locales: Intl.LocalesArgument,\n  input: string\n): number {\n  if (!store) {\n    store = new Map();\n  }\n  if (!store.get(locales)) {\n    store.set(locales, new Intl.Segmenter(locales, { granularity: 'word' }));\n  }\n  const segments = store.get(locales)!.segment(input);\n  let count = 0;\n  for (const segment of segments) {\n    if (segment.isWordLike) {\n      count++;\n    }\n  }\n  return count;\n}\n"
  },
  {
    "path": "library/src/utils/_getWordCount/index.ts",
    "content": "export * from './_getWordCount.ts';\n"
  },
  {
    "path": "library/src/utils/_isLuhnAlgo/_isLuhnAlgo.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { _isLuhnAlgo } from './_isLuhnAlgo.ts';\n\ndescribe('_isLuhnAlgo', () => {\n  test('should return true', () => {\n    expect(_isLuhnAlgo('536498459191226')).toBe(true);\n    expect(_isLuhnAlgo('860548042618881')).toBe(true);\n    expect(_isLuhnAlgo('304517506893326')).toBe(true);\n    expect(_isLuhnAlgo('378282246310005')).toBe(true);\n    expect(_isLuhnAlgo('6011000990139424')).toBe(true);\n    expect(_isLuhnAlgo('7238493252455')).toBe(true);\n    expect(_isLuhnAlgo('8924578427422')).toBe(true);\n  });\n\n  test('should return false', () => {\n    expect(_isLuhnAlgo('53649845919122')).toBe(false);\n    expect(_isLuhnAlgo('5146713835430')).toBe(false);\n    expect(_isLuhnAlgo('72348235235')).toBe(false);\n    expect(_isLuhnAlgo('83793719357')).toBe(false);\n    expect(_isLuhnAlgo('892457842742223')).toBe(false);\n  });\n});\n"
  },
  {
    "path": "library/src/utils/_isLuhnAlgo/_isLuhnAlgo.ts",
    "content": "/**\n * Non-digit regex.\n */\nconst NON_DIGIT_REGEX = /\\D/gu;\n\n/**\n * Checks whether a string with numbers corresponds to the luhn algorithm.\n *\n * @param input The input to be checked.\n *\n * @returns Whether input is valid.\n *\n * @internal\n */\n// @__NO_SIDE_EFFECTS__\nexport function _isLuhnAlgo(input: string): boolean {\n  // Remove any non-digit chars\n  const number = input.replace(NON_DIGIT_REGEX, '');\n\n  // Create necessary variables\n  let length = number.length;\n  let bit = 1;\n  let sum = 0;\n\n  // Calculate sum of algorithm\n  while (length) {\n    const value = +number[--length];\n    bit ^= 1;\n    sum += bit ? [0, 2, 4, 6, 8, 1, 3, 5, 7, 9][value] : value;\n  }\n\n  // Return whether its valid\n  return sum % 10 === 0;\n}\n"
  },
  {
    "path": "library/src/utils/_isLuhnAlgo/index.ts",
    "content": "export * from './_isLuhnAlgo.ts';\n"
  },
  {
    "path": "library/src/utils/_isValidObjectKey/_isValidObjectKey.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { _isValidObjectKey } from './_isValidObjectKey.ts';\n\ndescribe('_isValidObjectKey', () => {\n  test('should return true for allowed keys', () => {\n    const object = { foo: 1, bar: 2, 123: 3 };\n    expect(_isValidObjectKey(object, 'foo')).toBe(true);\n    expect(_isValidObjectKey(object, 'bar')).toBe(true);\n    expect(_isValidObjectKey(object, '123')).toBe(true);\n  });\n\n  test('should return false for inherited keys', () => {\n    const object = Object.create({ foo: 1, bar: 2, 123: 3 });\n    expect(_isValidObjectKey(object, 'foo')).toBe(false);\n    expect(_isValidObjectKey(object, 'bar')).toBe(false);\n    expect(_isValidObjectKey(object, '123')).toBe(false);\n  });\n\n  test('should return false for disallowed keys', () => {\n    const object = { __proto__: 1, prototype: 2, constructor: 3 };\n    expect(_isValidObjectKey(object, '__proto__')).toBe(false);\n    expect(_isValidObjectKey(object, 'prototype')).toBe(false);\n    expect(_isValidObjectKey(object, 'constructor')).toBe(false);\n  });\n});\n"
  },
  {
    "path": "library/src/utils/_isValidObjectKey/_isValidObjectKey.ts",
    "content": "/**\n * Disallows inherited object properties and prevents object prototype\n * pollution by disallowing certain keys.\n *\n * @param object The object to check.\n * @param key The key to check.\n *\n * @returns Whether the key is allowed.\n *\n * @internal\n */\n// @__NO_SIDE_EFFECTS__\nexport function _isValidObjectKey(object: object, key: string): boolean {\n  return (\n    Object.hasOwn(object, key) &&\n    key !== '__proto__' &&\n    key !== 'prototype' &&\n    key !== 'constructor'\n  );\n}\n"
  },
  {
    "path": "library/src/utils/_isValidObjectKey/index.ts",
    "content": "export * from './_isValidObjectKey.ts';\n"
  },
  {
    "path": "library/src/utils/_joinExpects/_joinExpects.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { _joinExpects } from './_joinExpects.ts';\n\ndescribe('_joinExpects', () => {\n  test('should remove duplicates', () => {\n    expect(_joinExpects(['\"foo\"', '\"foo\"'], '|')).toBe('\"foo\"');\n    expect(_joinExpects(['\"foo\"', 'string', '\"foo\"'], '&')).toBe(\n      '(\"foo\" & string)'\n    );\n  });\n\n  test('should join multiple items', () => {\n    expect(_joinExpects(['\"foo\"', 'string'], '&')).toBe('(\"foo\" & string)');\n    expect(_joinExpects(['\"foo\"', 'number', 'boolean', 'Object'], '|')).toBe(\n      '(\"foo\" | number | boolean | Object)'\n    );\n  });\n\n  test('should return first item if only one', () => {\n    expect(_joinExpects(['\"foo\"'], '|')).toBe('\"foo\"');\n    expect(_joinExpects(['string'], '&')).toBe('string');\n  });\n\n  test('should return \"never\" if empty', () => {\n    expect(_joinExpects([], '|')).toBe('never');\n    expect(_joinExpects([], '&')).toBe('never');\n  });\n});\n"
  },
  {
    "path": "library/src/utils/_joinExpects/_joinExpects.ts",
    "content": "/**\n * Joins multiple `expects` values with the given separator.\n *\n * @param values The `expects` values.\n * @param separator The separator.\n *\n * @returns The joined `expects` property.\n *\n * @internal\n */\n// @__NO_SIDE_EFFECTS__\nexport function _joinExpects(values: string[], separator: '&' | '|'): string {\n  // Create list without duplicates\n  const list = [...new Set(values)];\n\n  // If list has more than one item, join them\n  if (list.length > 1) {\n    return `(${list.join(` ${separator} `)})`;\n  }\n\n  // Otherwise, return first item or \"never\"\n  return list[0] ?? 'never';\n}\n"
  },
  {
    "path": "library/src/utils/_joinExpects/index.ts",
    "content": "export * from './_joinExpects.ts';\n"
  },
  {
    "path": "library/src/utils/_stringify/_stringify.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { _stringify } from './_stringify.ts';\n\ndescribe('_stringify', () => {\n  test('should return string literal', () => {\n    expect(_stringify('hello')).toBe('\"hello\"');\n  });\n\n  test('should return number literal', () => {\n    expect(_stringify(123)).toBe('123');\n  });\n\n  test('should return bigint literal', () => {\n    expect(_stringify(123n)).toBe('123');\n  });\n\n  test('should return boolean literal', () => {\n    expect(_stringify(true)).toBe('true');\n    expect(_stringify(false)).toBe('false');\n  });\n\n  test('should return type of symbol', () => {\n    expect(_stringify(Symbol('foo'))).toBe('symbol');\n  });\n\n  test('should return type of undefined', () => {\n    expect(_stringify(undefined)).toBe('undefined');\n  });\n\n  test('should return Object constructor name', () => {\n    expect(_stringify({})).toBe('Object');\n  });\n\n  test('should return Array constructor name', () => {\n    expect(_stringify([])).toBe('Array');\n  });\n\n  test('should return Function constructor name', () => {\n    // eslint-disable-next-line @typescript-eslint/no-empty-function\n    expect(_stringify(() => {})).toBe('Function');\n  });\n\n  test('should return Date constructor name', () => {\n    expect(_stringify(new Date())).toBe('Date');\n  });\n\n  test('should return null as string', () => {\n    expect(_stringify(null)).toBe('null');\n    expect(_stringify(Object.create(null))).toBe('null');\n    // eslint-disable-next-line @typescript-eslint/no-empty-function\n    function EmptyObject() {}\n    EmptyObject.prototype = Object.create(null);\n    // @ts-expect-error\n    const emptyObject = new EmptyObject();\n    expect(_stringify(emptyObject)).toBe('null');\n  });\n});\n"
  },
  {
    "path": "library/src/utils/_stringify/_stringify.ts",
    "content": "/**\n * Stringifies an unknown input to a literal or type string.\n *\n * @param input The unknown input.\n *\n * @returns A literal or type string.\n *\n * @internal\n */\n// @__NO_SIDE_EFFECTS__\nexport function _stringify(input: unknown): string {\n  const type = typeof input;\n  if (type === 'string') {\n    return `\"${input}\"`;\n  }\n  // TODO: Should we add \"n\" suffix to bigints?\n  if (type === 'number' || type === 'bigint' || type === 'boolean') {\n    return `${input}`;\n  }\n  if (type === 'object' || type === 'function') {\n    return (input && Object.getPrototypeOf(input)?.constructor?.name) ?? 'null';\n  }\n  return type;\n}\n"
  },
  {
    "path": "library/src/utils/_stringify/index.ts",
    "content": "export * from './_stringify.ts';\n"
  },
  {
    "path": "library/src/utils/entriesFromList/entriesFromList.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport { arrayAsync, string } from '../../schemas/index.ts';\nimport { entriesFromList } from './entriesFromList.ts';\n\ndescribe('entriesFromList', () => {\n  describe('should return object entries', () => {\n    const symbol = Symbol();\n\n    test('for sync schemas', () => {\n      const schema = string();\n      expectTypeOf(entriesFromList(['foo', 123, symbol], schema)).toEqualTypeOf<\n        Record<'foo' | 123 | typeof symbol, typeof schema>\n      >();\n    });\n\n    test('for async schemas', () => {\n      const schema = arrayAsync(string());\n      expectTypeOf(entriesFromList(['foo', 123, symbol], schema)).toEqualTypeOf<\n        Record<'foo' | 123 | typeof symbol, typeof schema>\n      >();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/utils/entriesFromList/entriesFromList.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { arrayAsync, string } from '../../schemas/index.ts';\nimport { entriesFromList } from './entriesFromList.ts';\n\ndescribe('entriesFromList', () => {\n  describe('should return object entries', () => {\n    const symbol = Symbol();\n\n    test('for sync schemas', () => {\n      const schema = string();\n      expect(entriesFromList(['foo', 123, symbol], schema)).toStrictEqual({\n        foo: schema,\n        [123]: schema,\n        [symbol]: schema,\n      });\n    });\n\n    test('for async schemas', () => {\n      const schema = arrayAsync(string());\n      expect(entriesFromList(['foo', 123, symbol], schema)).toStrictEqual({\n        foo: schema,\n        [123]: schema,\n        [symbol]: schema,\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/utils/entriesFromList/entriesFromList.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n} from '../../types/index.ts';\n\n/**\n * Creates an object entries definition from a list of keys and a schema.\n *\n * @param list A list of keys.\n * @param schema The schema of the keys.\n *\n * @returns The object entries.\n */\n// @__NO_SIDE_EFFECTS__\nexport function entriesFromList<\n  const TList extends readonly (string | number | symbol)[],\n  const TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(list: TList, schema: TSchema): Record<TList[number], TSchema> {\n  // @ts-expect-error\n  const entries: Record<TList[number], TSchema> = {};\n  for (const key of list) {\n    entries[key as TList[number]] = schema;\n  }\n  return entries;\n}\n"
  },
  {
    "path": "library/src/utils/entriesFromList/index.ts",
    "content": "export * from './entriesFromList.ts';\n"
  },
  {
    "path": "library/src/utils/entriesFromObjects/entriesFromObjects.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport {\n  boolean,\n  type BooleanSchema,\n  number,\n  type NumberSchema,\n  object,\n  objectAsync,\n  string,\n  type StringSchema,\n} from '../../schemas/index.ts';\nimport { entriesFromObjects } from './entriesFromObjects.ts';\n\ndescribe('entriesFromObjects', () => {\n  describe('should return objects entries', () => {\n    const schema1 = object({ foo: string(), bar: string() });\n    const schema2 = objectAsync({ baz: number(), qux: number() });\n    const schema3 = object({ foo: boolean(), baz: boolean() });\n\n    test('for missing schema', () => {\n      expectTypeOf(\n        // @ts-expect-error\n        entriesFromObjects([])\n      ).toEqualTypeOf<never>();\n    });\n\n    test('for single schema', () => {\n      expectTypeOf(entriesFromObjects([schema1])).toEqualTypeOf<{\n        readonly foo: StringSchema<undefined>;\n        readonly bar: StringSchema<undefined>;\n      }>();\n    });\n\n    test('for multiple schemes', () => {\n      expectTypeOf(entriesFromObjects([schema1, schema2])).toEqualTypeOf<{\n        readonly foo: StringSchema<undefined>;\n        readonly bar: StringSchema<undefined>;\n        readonly baz: NumberSchema<undefined>;\n        readonly qux: NumberSchema<undefined>;\n      }>();\n    });\n\n    test('with overwrites', () => {\n      expectTypeOf(\n        entriesFromObjects([schema1, schema2, schema3])\n      ).toEqualTypeOf<{\n        readonly bar: StringSchema<undefined>;\n        readonly qux: NumberSchema<undefined>;\n        readonly foo: BooleanSchema<undefined>;\n        readonly baz: BooleanSchema<undefined>;\n      }>();\n    });\n\n    test('for empty entries', () => {\n      // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n      expectTypeOf(entriesFromObjects([object({})])).toEqualTypeOf<{}>();\n      expectTypeOf(\n        entriesFromObjects([object({}), objectAsync({})])\n        // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n      ).toEqualTypeOf<{}>();\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/utils/entriesFromObjects/entriesFromObjects.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport {\n  boolean,\n  number,\n  object,\n  objectAsync,\n  string,\n} from '../../schemas/index.ts';\nimport { entriesFromObjects } from './entriesFromObjects.ts';\n\ndescribe('entriesFromObjects', () => {\n  describe('should return objects entries', () => {\n    const schema1 = object({ foo: string(), bar: string() });\n    const schema2 = objectAsync({ baz: number(), qux: number() });\n    const schema3 = object({ foo: boolean(), baz: boolean() });\n\n    test('for missing schema', () => {\n      expect(\n        // @ts-expect-error\n        entriesFromObjects([])\n      ).toStrictEqual({});\n    });\n\n    test('for single schema', () => {\n      expect(entriesFromObjects([schema1])).toStrictEqual(schema1.entries);\n    });\n\n    test('for multiple schemes', () => {\n      expect(entriesFromObjects([schema1, schema2])).toStrictEqual({\n        ...schema1.entries,\n        ...schema2.entries,\n      });\n    });\n\n    test('with overwrites', () => {\n      expect(entriesFromObjects([schema1, schema2, schema3])).toStrictEqual({\n        ...schema1.entries,\n        ...schema2.entries,\n        ...schema3.entries,\n      });\n    });\n\n    test('for empty entries', () => {\n      expect(entriesFromObjects([object({})])).toStrictEqual({});\n      expect(entriesFromObjects([object({}), objectAsync({})])).toStrictEqual(\n        {}\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "library/src/utils/entriesFromObjects/entriesFromObjects.ts",
    "content": "import type {\n  LooseObjectIssue,\n  LooseObjectSchema,\n  LooseObjectSchemaAsync,\n  ObjectIssue,\n  ObjectSchema,\n  ObjectSchemaAsync,\n  ObjectWithRestIssue,\n  ObjectWithRestSchema,\n  ObjectWithRestSchemaAsync,\n  StrictObjectIssue,\n  StrictObjectSchema,\n  StrictObjectSchemaAsync,\n} from '../../schemas/index.ts';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  ErrorMessage,\n  Merge,\n  ObjectEntries,\n  ObjectEntriesAsync,\n  Prettify,\n} from '../../types/index.ts';\n\n/**\n * Schema type.\n */\ntype Schema =\n  | LooseObjectSchema<ObjectEntries, ErrorMessage<LooseObjectIssue> | undefined>\n  | LooseObjectSchemaAsync<\n      ObjectEntriesAsync,\n      ErrorMessage<LooseObjectIssue> | undefined\n    >\n  | ObjectSchema<ObjectEntries, ErrorMessage<ObjectIssue> | undefined>\n  | ObjectSchemaAsync<ObjectEntriesAsync, ErrorMessage<ObjectIssue> | undefined>\n  | ObjectWithRestSchema<\n      ObjectEntries,\n      BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n      ErrorMessage<ObjectWithRestIssue> | undefined\n    >\n  | ObjectWithRestSchemaAsync<\n      ObjectEntriesAsync,\n      | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n      | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n      ErrorMessage<ObjectWithRestIssue> | undefined\n    >\n  | StrictObjectSchema<\n      ObjectEntries,\n      ErrorMessage<StrictObjectIssue> | undefined\n    >\n  | StrictObjectSchemaAsync<\n      ObjectEntriesAsync,\n      ErrorMessage<StrictObjectIssue> | undefined\n    >;\n\n/**\n * Recursive merge type.\n */\ntype RecursiveMerge<TSchemas extends readonly [Schema, ...Schema[]]> =\n  TSchemas extends readonly [infer TFirstSchema extends Schema]\n    ? TFirstSchema['entries']\n    : TSchemas extends readonly [\n          infer TFirstSchema extends Schema,\n          ...infer TRestSchemas extends readonly [Schema, ...Schema[]],\n        ]\n      ? Merge<TFirstSchema['entries'], RecursiveMerge<TRestSchemas>>\n      : never;\n\n/**\n * Merged entries types.\n */\ntype MergedEntries<TSchemas extends readonly [Schema, ...Schema[]]> = Prettify<\n  RecursiveMerge<TSchemas>\n>;\n\n/**\n * Creates a new object entries definition from existing object schemas.\n *\n * @param schemas The schemas to merge the entries from.\n *\n * @returns The object entries from the schemas.\n */\nexport function entriesFromObjects<\n  const TSchemas extends readonly [Schema, ...Schema[]],\n>(schemas: TSchemas): MergedEntries<TSchemas>;\n\n// @__NO_SIDE_EFFECTS__\nexport function entriesFromObjects(\n  schemas: [Schema, ...Schema[]]\n): MergedEntries<[Schema, ...Schema[]]> {\n  const entries = {};\n  for (const schema of schemas) {\n    Object.assign(entries, schema.entries);\n  }\n  // @ts-expect-error\n  return entries;\n}\n"
  },
  {
    "path": "library/src/utils/entriesFromObjects/index.ts",
    "content": "export * from './entriesFromObjects.ts';\n"
  },
  {
    "path": "library/src/utils/getDotPath/getDotPath.test-d.ts",
    "content": "import { describe, expectTypeOf, test } from 'vitest';\nimport type {\n  ArraySchema,\n  NumberIssue,\n  NumberSchema,\n  ObjectSchema,\n} from '../../schemas/index.ts';\nimport type { ArrayPathItem, ObjectPathItem } from '../../types/index.ts';\nimport { getDotPath } from './getDotPath.ts';\n\ndescribe('getDotPath', () => {\n  const issue: NumberIssue = {\n    kind: 'schema',\n    type: 'number',\n    input: 'foo',\n    expected: 'number',\n    received: '\"foo\"',\n    message: 'Invalid type: Expected number but received \"foo\"',\n    path: [\n      {\n        type: 'object',\n        origin: 'value',\n        input: { dot: [{ path: 'foo' }] },\n        key: 'dot',\n        value: [{ path: 'foo' }],\n      } satisfies ObjectPathItem,\n      {\n        type: 'array',\n        origin: 'value',\n        input: [{ path: 'foo' }],\n        key: 0,\n        value: { path: 'foo' },\n      } satisfies ArrayPathItem,\n      {\n        type: 'object',\n        origin: 'value',\n        input: { path: 'foo' },\n        key: 'path',\n        value: 'foo',\n      } satisfies ObjectPathItem,\n    ],\n    abortEarly: undefined,\n    abortPipeEarly: undefined,\n    issues: undefined,\n    lang: undefined,\n  };\n\n  test('should return generic dot path', () => {\n    expectTypeOf(getDotPath(issue)).toEqualTypeOf<string | null>();\n  });\n\n  test('should return specific dot path', () => {\n    type Schema = ObjectSchema<\n      {\n        dot: ArraySchema<\n          ObjectSchema<{ path: NumberSchema<undefined> }, undefined>,\n          undefined\n        >;\n      },\n      undefined\n    >;\n    expectTypeOf(getDotPath<Schema>(issue)).toEqualTypeOf<\n      'dot' | `dot.${number}` | `dot.${number}.path` | null\n    >();\n  });\n});\n"
  },
  {
    "path": "library/src/utils/getDotPath/getDotPath.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { getDotPath } from './getDotPath.ts';\n\ndescribe('getDotPath', () => {\n  test('should return null if path is undefined', () => {\n    expect(\n      getDotPath({\n        kind: 'schema',\n        type: 'string',\n        input: undefined,\n        expected: 'string',\n        received: 'undefined',\n        message: 'Invalid type: Expected string but received undefined',\n        path: undefined,\n      })\n    ).toBeNull();\n  });\n\n  test('should return null if path contains item without key', () => {\n    expect(\n      getDotPath({\n        kind: 'schema',\n        type: 'string',\n        input: 123,\n        expected: 'string',\n        received: '123',\n        message: 'Invalid type: Expected string but received 123',\n        path: [\n          {\n            type: 'set',\n            origin: 'value',\n            input: new Set(['foo', 123, 'baz', null]),\n            key: null,\n            value: 123,\n          },\n        ],\n      })\n    ).toBeNull();\n  });\n\n  test('should return null if path contains key that is not string or number', () => {\n    const key = new Map<string, string>([['foo', 'bar']]);\n    const input = new Map<Map<string, string>, { title: unknown }>([\n      [key, { title: 123 }],\n    ]);\n    expect(\n      getDotPath({\n        kind: 'schema',\n        type: 'string',\n        input: 123,\n        expected: 'string',\n        received: '123',\n        message: 'Invalid type: Expected string but received 123',\n        path: [\n          {\n            type: 'map',\n            origin: 'value',\n            input,\n            key,\n            value: input.get(key),\n          },\n          {\n            type: 'object',\n            origin: 'value',\n            input: input.get(key)!,\n            key: 'title',\n            value: input.get(key)!.title,\n          },\n        ],\n      })\n    ).toBeNull();\n  });\n\n  test('should return the dot path if it can be created', () => {\n    const input = { nested: [{ dot: [{ path: undefined }] }] };\n    expect(\n      getDotPath({\n        kind: 'schema',\n        type: 'number',\n        input: undefined,\n        expected: 'number',\n        received: 'undefined',\n        message: 'Invalid type: Expected number but received undefined',\n        path: [\n          {\n            type: 'object',\n            origin: 'value',\n            input,\n            key: 'nested',\n            value: input.nested,\n          },\n          {\n            type: 'array',\n            origin: 'value',\n            input: input.nested,\n            key: 0,\n            value: input.nested[0],\n          },\n          {\n            type: 'object',\n            origin: 'value',\n            input: input.nested[0],\n            key: 'dot',\n            value: input.nested[0].dot,\n          },\n          {\n            type: 'array',\n            origin: 'value',\n            input: input.nested[0].dot,\n            key: 0,\n            value: input.nested[0].dot[0],\n          },\n          {\n            type: 'object',\n            origin: 'value',\n            input: input.nested[0].dot[0],\n            key: 'path',\n            value: input.nested[0].dot[0].path,\n          },\n        ],\n      })\n    ).toBe('nested.0.dot.0.path');\n  });\n});\n"
  },
  {
    "path": "library/src/utils/getDotPath/getDotPath.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n  InferIssue,\n  IssueDotPath,\n} from '../../types/index.ts';\n\n/**\n * Creates and returns the dot path of an issue if possible.\n *\n * @param issue The issue to get the dot path from.\n *\n * @returns The dot path or null.\n */\nexport function getDotPath(issue: BaseIssue<unknown>): string | null;\n\n/**\n * Creates and returns the dot path of an issue if possible.\n *\n * @param issue The issue to get the dot path from.\n *\n * @returns The dot path or null.\n */\nexport function getDotPath<\n  TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(issue: InferIssue<TSchema>): IssueDotPath<TSchema> | null;\n\n// @__NO_SIDE_EFFECTS__\nexport function getDotPath(issue: BaseIssue<unknown>): string | null {\n  if (issue.path) {\n    let key = '';\n    for (const item of issue.path) {\n      if (typeof item.key === 'string' || typeof item.key === 'number') {\n        if (key) {\n          key += `.${item.key}`;\n        } else {\n          key += item.key;\n        }\n      } else {\n        return null;\n      }\n    }\n    return key;\n  }\n  return null;\n}\n"
  },
  {
    "path": "library/src/utils/getDotPath/index.ts",
    "content": "export * from './getDotPath.ts';\n"
  },
  {
    "path": "library/src/utils/index.ts",
    "content": "export * from './_addIssue/index.ts';\nexport * from './_cloneDataset/index.ts';\nexport * from './_getByteCount/index.ts';\nexport * from './_getGraphemeCount/index.ts';\nexport * from './_getLastMetadata/index.ts';\nexport * from './_getStandardProps/index.ts';\nexport * from './_getWordCount/index.ts';\nexport * from './_isLuhnAlgo/index.ts';\nexport * from './_isValidObjectKey/index.ts';\nexport * from './_joinExpects/index.ts';\nexport * from './_stringify/index.ts';\nexport * from './entriesFromList/index.ts';\nexport * from './entriesFromObjects/index.ts';\nexport * from './getDotPath/index.ts';\nexport * from './isOfKind/index.ts';\nexport * from './isOfType/index.ts';\nexport * from './isValiError/index.ts';\nexport * from './ValiError/index.ts';\n"
  },
  {
    "path": "library/src/utils/isOfKind/index.ts",
    "content": "export * from './isOfKind.ts';\n"
  },
  {
    "path": "library/src/utils/isOfKind/isOfKind.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { decimal, trim } from '../../actions/index.ts';\nimport { string } from '../../schemas/index.ts';\nimport { isOfKind } from './isOfKind.ts';\n\ndescribe('isOfKind', () => {\n  test('should check string schema', () => {\n    const schema = string();\n    expect(isOfKind('schema', schema)).toBe(true);\n    // @ts-expect-error\n    expect(isOfKind('validation', schema)).toBe(false);\n    // @ts-expect-error\n    expect(isOfKind('transformation', schema)).toBe(false);\n  });\n\n  test('should check decimal action', () => {\n    const action = decimal();\n    expect(isOfKind('validation', action)).toBe(true);\n    // @ts-expect-error\n    expect(isOfKind('schema', action)).toBe(false);\n    // @ts-expect-error\n    expect(isOfKind('transformation', action)).toBe(false);\n  });\n\n  test('should check trim action', () => {\n    const action = trim();\n    expect(isOfKind('transformation', action)).toBe(true);\n    // @ts-expect-error\n    expect(isOfKind('schema', action)).toBe(false);\n    // @ts-expect-error\n    expect(isOfKind('validation', action)).toBe(false);\n  });\n});\n"
  },
  {
    "path": "library/src/utils/isOfKind/isOfKind.ts",
    "content": "/**\n * A generic type guard to check the kind of an object.\n *\n * @param kind The kind to check for.\n * @param object The object to check.\n *\n * @returns Whether it matches.\n */\n// @__NO_SIDE_EFFECTS__\nexport function isOfKind<\n  const TKind extends TObject['kind'],\n  const TObject extends { kind: string },\n>(kind: TKind, object: TObject): object is Extract<TObject, { kind: TKind }> {\n  return object.kind === kind;\n}\n"
  },
  {
    "path": "library/src/utils/isOfType/index.ts",
    "content": "export * from './isOfType.ts';\n"
  },
  {
    "path": "library/src/utils/isOfType/isOfType.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport { number, object, string } from '../../schemas/index.ts';\nimport { isOfType } from './isOfType.ts';\n\ndescribe('isOfType', () => {\n  test('should check string schema', () => {\n    const schema = string();\n    expect(isOfType('string', schema)).toBe(true);\n    // @ts-expect-error\n    expect(isOfType('number', schema)).toBe(false);\n    // @ts-expect-error\n    expect(isOfType('object', schema)).toBe(false);\n  });\n\n  test('should check number schema', () => {\n    const schema = number();\n    expect(isOfType('number', schema)).toBe(true);\n    // @ts-expect-error\n    expect(isOfType('string', schema)).toBe(false);\n    // @ts-expect-error\n    expect(isOfType('object', schema)).toBe(false);\n  });\n\n  test('should check object schema', () => {\n    const schema = object({ key: string() });\n    expect(isOfType('object', schema)).toBe(true);\n    // @ts-expect-error\n    expect(isOfType('string', schema)).toBe(false);\n    // @ts-expect-error\n    expect(isOfType('number', schema)).toBe(false);\n  });\n});\n"
  },
  {
    "path": "library/src/utils/isOfType/isOfType.ts",
    "content": "/**\n * A generic type guard to check the type of an object.\n *\n * @param type The type to check for.\n * @param object The object to check.\n *\n * @returns Whether it matches.\n */\n// @__NO_SIDE_EFFECTS__\nexport function isOfType<\n  const TType extends TObject['type'],\n  const TObject extends { type: string },\n>(type: TType, object: TObject): object is Extract<TObject, { type: TType }> {\n  return object.type === type;\n}\n"
  },
  {
    "path": "library/src/utils/isValiError/index.ts",
    "content": "export * from './isValiError.ts';\n"
  },
  {
    "path": "library/src/utils/isValiError/isValiError.test.ts",
    "content": "import { describe, expect, test } from 'vitest';\nimport type { StringIssue } from '../../schemas/index.ts';\nimport { ValiError } from '../../utils/index.ts';\nimport { isValiError } from './isValiError.ts';\n\ndescribe('isValiError', () => {\n  test('should return true if ValiError', () => {\n    expect(\n      isValiError(\n        new ValiError([\n          {\n            kind: 'schema',\n            type: 'string',\n            input: null,\n            expected: 'string',\n            received: 'null',\n            message: 'Invalid type: Expected string but received null',\n          } satisfies StringIssue,\n        ])\n      )\n    ).toBe(true);\n  });\n\n  test('should return false if other error', () => {\n    expect(isValiError(new Error())).toBe(false);\n    expect(isValiError(new TypeError())).toBe(false);\n    expect(isValiError(new RangeError())).toBe(false);\n  });\n});\n"
  },
  {
    "path": "library/src/utils/isValiError/isValiError.ts",
    "content": "import type {\n  BaseIssue,\n  BaseSchema,\n  BaseSchemaAsync,\n} from '../../types/index.ts';\nimport { ValiError } from '../../utils/index.ts';\n\n/**\n * A type guard to check if an error is a ValiError.\n *\n * @param error The error to check.\n *\n * @returns Whether its a ValiError.\n */\n// @__NO_SIDE_EFFECTS__\nexport function isValiError<\n  TSchema extends\n    | BaseSchema<unknown, unknown, BaseIssue<unknown>>\n    | BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(error: unknown): error is ValiError<TSchema> {\n  return error instanceof ValiError;\n}\n"
  },
  {
    "path": "library/src/vitest/expectActionIssue.ts",
    "content": "import { expect } from 'vitest';\nimport type {\n  BaseIssue,\n  BaseValidation,\n  InferInput,\n  InferIssue,\n  PartialDataset,\n} from '../types/index.ts';\nimport { _stringify } from '../utils/index.ts';\n\n/**\n * Expect an action issue to be returned.\n *\n * @param action The action to test.\n * @param baseIssue The base issue data.\n * @param values The values to test.\n * @param getReceived Received value getter.\n */\nexport function expectActionIssue<\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  TAction extends BaseValidation<any, unknown, BaseIssue<unknown>>,\n>(\n  action: TAction,\n  baseIssue: Omit<InferIssue<TAction>, 'input' | 'received'>,\n  values: InferInput<TAction>[],\n  getReceived?: (value: InferInput<TAction>) => string\n): void {\n  for (const value of values) {\n    expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n      typed: true,\n      value,\n      issues: [\n        {\n          requirement: undefined,\n          path: undefined,\n          issues: undefined,\n          lang: undefined,\n          abortEarly: undefined,\n          abortPipeEarly: undefined,\n          input: value,\n          received: getReceived?.(value) ?? _stringify(value),\n          ...baseIssue,\n        },\n      ],\n    } satisfies PartialDataset<typeof value, InferIssue<TAction>>);\n  }\n}\n"
  },
  {
    "path": "library/src/vitest/expectActionIssueAsync.ts",
    "content": "import { expect } from 'vitest';\nimport type {\n  BaseIssue,\n  BaseValidationAsync,\n  InferInput,\n  InferIssue,\n  PartialDataset,\n} from '../types/index.ts';\nimport { _stringify } from '../utils/index.ts';\n\n/**\n * Expect an action issue to be returned.\n *\n * @param action The action to test.\n * @param baseIssue The base issue data.\n * @param values The values to test.\n * @param getReceived Received value getter.\n */\nexport async function expectActionIssueAsync<\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  TAction extends BaseValidationAsync<any, unknown, BaseIssue<unknown>>,\n>(\n  action: TAction,\n  baseIssue: Omit<InferIssue<TAction>, 'input' | 'received'>,\n  values: InferInput<TAction>[],\n  getReceived?: (value: InferInput<TAction>) => string\n): Promise<void> {\n  for (const value of values) {\n    expect(await action['~run']({ typed: true, value }, {})).toStrictEqual({\n      typed: true,\n      value,\n      issues: [\n        {\n          requirement: undefined,\n          path: undefined,\n          issues: undefined,\n          lang: undefined,\n          abortEarly: undefined,\n          abortPipeEarly: undefined,\n          input: value,\n          received: getReceived?.(value) ?? _stringify(value),\n          ...baseIssue,\n        },\n      ],\n    } satisfies PartialDataset<typeof value, InferIssue<TAction>>);\n  }\n}\n"
  },
  {
    "path": "library/src/vitest/expectNoActionIssue.ts",
    "content": "import { expect } from 'vitest';\nimport type { BaseIssue, BaseValidation, InferInput } from '../types/index.ts';\n\n/**\n * Expect no action issue to be returned.\n *\n * @param action The action to test.\n * @param values The values to test.\n */\nexport function expectNoActionIssue<\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  TAction extends BaseValidation<any, unknown, BaseIssue<unknown>>,\n>(action: TAction, values: InferInput<TAction>[]): void {\n  for (const value of values) {\n    expect(action['~run']({ typed: true, value }, {})).toStrictEqual({\n      typed: true,\n      value,\n    });\n  }\n}\n"
  },
  {
    "path": "library/src/vitest/expectNoActionIssueAsync.ts",
    "content": "import { expect } from 'vitest';\nimport type {\n  BaseIssue,\n  BaseValidationAsync,\n  InferInput,\n} from '../types/index.ts';\n\n/**\n * Expect no action issue to be returned.\n *\n * @param action The action to test.\n * @param values The values to test.\n */\nexport async function expectNoActionIssueAsync<\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  TAction extends BaseValidationAsync<any, unknown, BaseIssue<unknown>>,\n>(action: TAction, values: InferInput<TAction>[]): Promise<void> {\n  for (const value of values) {\n    expect(await action['~run']({ typed: true, value }, {})).toStrictEqual({\n      typed: true,\n      value,\n    });\n  }\n}\n"
  },
  {
    "path": "library/src/vitest/expectNoSchemaIssue.ts",
    "content": "import { expect } from 'vitest';\nimport type { BaseIssue, BaseSchema, InferInput } from '../types/index.ts';\n\n/**\n * Expect no schema issue to be returned.\n *\n * @param schema The schema to test.\n * @param values The values to test.\n */\nexport function expectNoSchemaIssue<\n  TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n>(schema: TSchema, values: InferInput<TSchema>[]): void {\n  for (const value of values) {\n    expect(schema['~run']({ value }, {})).toStrictEqual({\n      typed: true,\n      value,\n    });\n  }\n}\n"
  },
  {
    "path": "library/src/vitest/expectNoSchemaIssueAsync.ts",
    "content": "import { expect } from 'vitest';\nimport type { BaseIssue, BaseSchemaAsync, InferInput } from '../types/index.ts';\n\n/**\n * Expect no schema issue to be returned.\n *\n * @param schema The schema to test.\n * @param values The values to test.\n */\nexport async function expectNoSchemaIssueAsync<\n  TSchema extends BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(schema: TSchema, values: InferInput<TSchema>[]): Promise<void> {\n  for (const value of values) {\n    expect(await schema['~run']({ value }, {})).toStrictEqual({\n      typed: true,\n      value,\n    });\n  }\n}\n"
  },
  {
    "path": "library/src/vitest/expectSchemaIssue.ts",
    "content": "import { expect } from 'vitest';\nimport type {\n  BaseIssue,\n  BaseSchema,\n  FailureDataset,\n  InferIssue,\n} from '../types/index.ts';\nimport { _stringify } from '../utils/index.ts';\n\n/**\n * Expect an schema issue to be returned.\n *\n * @param schema The schema to test.\n * @param baseIssue The base issue data.\n * @param values The values to test.\n * @param received The received value.\n */\nexport function expectSchemaIssue<\n  TSchema extends BaseSchema<unknown, unknown, BaseIssue<unknown>>,\n>(\n  schema: TSchema,\n  baseIssue: Omit<InferIssue<TSchema>, 'input' | 'received'>,\n  values: unknown[],\n  received?: string\n): void {\n  for (const value of values) {\n    expect(schema['~run']({ value }, {})).toStrictEqual({\n      typed: false,\n      value,\n      issues: [\n        {\n          requirement: undefined,\n          path: undefined,\n          issues: undefined,\n          lang: undefined,\n          abortEarly: undefined,\n          abortPipeEarly: undefined,\n          ...baseIssue,\n          input: value,\n          received: received ?? _stringify(value),\n        },\n      ],\n    } satisfies FailureDataset<InferIssue<TSchema>>);\n  }\n}\n"
  },
  {
    "path": "library/src/vitest/expectSchemaIssueAsync.ts",
    "content": "import { expect } from 'vitest';\nimport type {\n  BaseIssue,\n  BaseSchemaAsync,\n  FailureDataset,\n  InferIssue,\n} from '../types/index.ts';\nimport { _stringify } from '../utils/index.ts';\n\n/**\n * Expect an schema issue to be returned.\n *\n * @param schema The schema to test.\n * @param baseIssue The base issue data.\n * @param values The values to test.\n */\nexport async function expectSchemaIssueAsync<\n  TSchema extends BaseSchemaAsync<unknown, unknown, BaseIssue<unknown>>,\n>(\n  schema: TSchema,\n  baseIssue: Omit<InferIssue<TSchema>, 'input' | 'received'>,\n  values: unknown[]\n): Promise<void> {\n  for (const value of values) {\n    expect(await schema['~run']({ value }, {})).toStrictEqual({\n      typed: false,\n      value,\n      issues: [\n        {\n          requirement: undefined,\n          path: undefined,\n          issues: undefined,\n          lang: undefined,\n          abortEarly: undefined,\n          abortPipeEarly: undefined,\n          ...baseIssue,\n          input: value,\n          received: _stringify(value),\n        },\n      ],\n    } satisfies FailureDataset<InferIssue<TSchema>>);\n  }\n}\n"
  },
  {
    "path": "library/src/vitest/index.ts",
    "content": "export * from './expectActionIssue.ts';\nexport * from './expectActionIssueAsync.ts';\nexport * from './expectNoActionIssue.ts';\nexport * from './expectNoActionIssueAsync.ts';\nexport * from './expectNoSchemaIssue.ts';\nexport * from './expectNoSchemaIssueAsync.ts';\nexport * from './expectSchemaIssue.ts';\nexport * from './expectSchemaIssueAsync.ts';\n"
  },
  {
    "path": "library/tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"allowImportingTsExtensions\": true,\n    \"declaration\": true,\n    \"exactOptionalPropertyTypes\": true,\n    \"isolatedDeclarations\": true,\n    \"lib\": [\"ESNext\", \"DOM\"],\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"node\",\n    \"noEmit\": true,\n    \"skipLibCheck\": true,\n    \"strict\": true,\n    \"target\": \"ES2020\"\n  },\n  \"include\": [\"src\"]\n}\n"
  },
  {
    "path": "library/tsdown.config.ts",
    "content": "import { defineConfig } from 'tsdown';\n\nexport default defineConfig([\n  {\n    entry: ['./src/index.ts'],\n    clean: true,\n    format: ['es', 'cjs'],\n    minify: false,\n    dts: true,\n    outDir: './dist',\n  },\n  {\n    entry: ['./src/index.ts'],\n    clean: true,\n    format: ['es', 'cjs'],\n    minify: true,\n    dts: false,\n    outDir: './dist',\n    outExtensions: ({ format }) => ({\n      js: format === 'cjs' ? '.min.cjs' : '.min.mjs',\n    }),\n  },\n]);\n"
  },
  {
    "path": "library/vitest.config.ts",
    "content": "import { defineConfig } from 'vitest/config';\n\nexport default defineConfig({\n  test: {\n    environment: 'jsdom',\n    isolate: false,\n    coverage: {\n      include: ['src'],\n      exclude: [\n        'src/types',\n        'src/vitest',\n        'src/regex.ts',\n        '**/index.ts',\n        '**/types.ts',\n        '**/*.test.ts',\n        '**/*.test-d.ts',\n        '**/.DS_Store',\n      ],\n    },\n  },\n});\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"valibot\",\n  \"description\": \"The modular and type safe schema library for validating structural data\",\n  \"version\": \"0.0.0\",\n  \"license\": \"MIT\",\n  \"author\": \"Fabian Hiller\",\n  \"homepage\": \"https://valibot.dev\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/open-circle/valibot\"\n  },\n  \"private\": true,\n  \"scripts\": {\n    \"test\": \"pnpm -r run test\",\n    \"lint\": \"pnpm -r run lint\",\n    \"format\": \"pnpm -r run format\",\n    \"format.check\": \"pnpm -r run format.check\",\n    \"build\": \"pnpm -r --filter='!website' run build\"\n  },\n  \"devDependencies\": {\n    \"@trivago/prettier-plugin-sort-imports\": \"^6.0.0\",\n    \"prettier\": \"^3.6.2\",\n    \"prettier-plugin-tailwindcss\": \"^0.7.1\",\n    \"typescript\": \"^5.9.3\"\n  }\n}\n"
  },
  {
    "path": "packages/i18n/.gitignore",
    "content": "index.ts\nindex.mjs\nindex.cjs\nindex.d.mts\nindex.d.cts\nar\naz\nca\ncs\nde\nel\nes\nfa\nfi\nfr\nhu\nid\nit\nja\nko\nkr\nmn\nnb\nnl\npl\npt\nro\nru\nsk\nsl\nsv\ntr\nuk\nvi\nzh-CN\nzh-TW"
  },
  {
    "path": "packages/i18n/CHANGELOG.md",
    "content": "# Changelog\n\nAll notable changes to the library will be documented in this file.\n\n## v1.1.0 (March 17, 2026)\n\n- Add Greek (el) translations (pull request #1311)\n- Add Slovak (sk) translations (pull request #1334)\n- Add Finnish (fi) translations (pull request #1318)\n- Add Azerbaijani (az) translations (pull request #1409)\n- Add Mongolian (mn) translations (pull request #1224)\n- Add new and missing actions to translations (pull request #1306)\n- Change Valibot peer dependency to `^1.3.0`\n- Fix ISO 639-1 code for Korean (`ko`) (pull request #1306)\n\n## v1.0.0 (March 19, 2025)\n\n- Add new and missing actions to translations\n- Add Farsi (fa) translations (pull request #838)\n- Add Czech (cs) translations (pull request #886)\n- Add Vietnamese (vi) translations (pull request #951)\n- Change Romanian (ro) translations (pull request #1070)\n- Change Valibot peer dependency to v1.0.0\n\n## v0.17.0 (July 26, 2024)\n\n- Add Indonesian (id) translations (pull request #683)\n\n## v0.16.0 (June 19, 2024)\n\n- Add Polish (pl) translations (pull request #584)\n- Add Catalan (ca) translations (pull request #652)\n\n## v0.15.0 (June 07, 2024)\n\n- Migrate i18n library to Valibot v0.31.0\n- Change peer dependency to `>=0.31.0 <1`\n\n## v0.14.0 (June 07, 2024)\n\n- Add Italian (it) translations (pull request #605)\n- Add Swedish (sv) translations (pull request #606)\n\n## v0.13.0 (May 18, 2024)\n\n- Add Spanish (es) translations (pull request #581)\n\n## v0.12.0 (May 11, 2024)\n\n- Add Hungarian (hu) translations (pull request #560)\n\n## v0.11.0 (April 30, 2024)\n\n- Add Arabic (ar) translations (pull request #527)\n- Add Turkish (tr) translations (pull request #549)\n\n## v0.10.0 (April 09, 2024)\n\n- Add Portuguese (pt) translations (pull request #509)\n\n## v0.9.0 (March 09, 2024)\n\n- Add Romanian (ro) translations (pull request #472)\n- Remove translation for deprecated `equal` validation (issue #474)\n- Change peer dependency to `>=0.30.0 <1`\n\n## v0.8.0 (March 04, 2024)\n\n- Change peer dependency to `>=0.29.0 <1` (pull request #468)\n\n## v0.7.0 (February 19, 2024)\n\n- Add Norwegian (nb) translations (pull request #439)\n\n## v0.6.0 (February 16, 2024)\n\n- Add Dutch (nl) translations (pull request #438)\n\n## v0.5.0 (February 12, 2024)\n\n- Add Russian (ru) translations (pull request #434)\n\n## v0.4.0 (February 11, 2024)\n\n- Add Japanese (ja) translations (pull request #431)\n- Add Korean (kr) translations (pull request #429)\n\n## v0.3.0 (February 09, 2024)\n\n- Add Chinese (zh-CN) translations (pull request #419)\n- Add Chinese (zh-TW) translations (pull request #427)\n- Add Slovenian (sl) translations (pull request #422)\n\n## v0.2.0 (February 06, 2024)\n\n- Add French (fr) translations (pull request #418)\n- Add Ukrainian (uk) translations (pull request #423)\n\n## v0.1.0 (February 05, 2024)\n\n- Initial release\n"
  },
  {
    "path": "packages/i18n/LICENSE.md",
    "content": "MIT License\n\nCopyright (c) Fabian Hiller\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "packages/i18n/README.md",
    "content": "# Valibot i18n\n\nThe official i18n translations for Valibot. See the [internationalization guide](https://valibot.dev/guides/internationalization/) for more details.\n\n## Current status\n\nValibot ships English messages by default, so this package publishes translated submodules for the languages below.\n\n| Language         | Pull Request         | Status |\n| ---------------- | -------------------- | ------ |\n| Arabic (ar)      | [#527][pr-527-url]   | ✅     |\n| Azerbaijani (az) | [#1409][pr-1409-url] | ✅     |\n| Catalan (ca)     | [#652][pr-652-url]   | ✅     |\n| Chinese (zh-CN)  | [#419][pr-419-url]   | ✅     |\n| Chinese (zh-TW)  | [#427][pr-427-url]   | ✅     |\n| Czech (cs)       | [#886][pr-886-url]   | ✅     |\n| Dutch (nl)       | [#438][pr-438-url]   | ✅     |\n| English (en)     | [#397][pr-397-url]   | ✅     |\n| Farsi (fa)       | [#838][pr-838-url]   | ✅     |\n| Finnish (fi)     | [#1318][pr-1318-url] | ✅     |\n| French (fr)      | [#418][pr-418-url]   | ✅     |\n| German (de)      | [#397][pr-397-url]   | ✅     |\n| Greek (el)       | [#1311][pr-1311-url] | ✅     |\n| Hungarian (hu)   | [#560][pr-560-url]   | ✅     |\n| Indonesian (id)  | [#683][pr-683-url]   | ✅     |\n| Italian (it)     | [#605][pr-605-url]   | ✅     |\n| Japanese (ja)    | [#431][pr-431-url]   | ✅     |\n| Korean (ko)      | [#1306][pr-1306-url] | ✅     |\n| Mongolian (mn)   | [#1224][pr-1224-url] | ✅     |\n| Norwegian (nb)   | [#439][pr-439-url]   | ✅     |\n| Polish (pl)      | [#584][pr-584-url]   | ✅     |\n| Portuguese (pt)  | [#509][pr-509-url]   | ✅     |\n| Romanian (ro)    | [#472][pr-472-url]   | ✅     |\n| Russian (ru)     | [#434][pr-434-url]   | ✅     |\n| Slovak (sk)      | [#1334][pr-1334-url] | ✅     |\n| Slovenian (sl)   | [#422][pr-422-url]   | ✅     |\n| Spanish (es)     | [#581][pr-581-url]   | ✅     |\n| Swedish (sv)     | [#606][pr-606-url]   | ✅     |\n| Turkish (tr)     | [#549][pr-549-url]   | ✅     |\n| Ukrainian (uk)   | [#423][pr-423-url]   | ✅     |\n| Vietnamese (vi)  | [#951][pr-951-url]   | ✅     |\n\nThe deprecated `kr` submodule remains available as an alias of `ko` for compatibility, but new integrations should use `ko`.\n\n[pr-397-url]: https://github.com/open-circle/valibot/pull/397\n[pr-418-url]: https://github.com/open-circle/valibot/pull/418\n[pr-419-url]: https://github.com/open-circle/valibot/pull/419\n[pr-422-url]: https://github.com/open-circle/valibot/pull/422\n[pr-423-url]: https://github.com/open-circle/valibot/pull/423\n[pr-427-url]: https://github.com/open-circle/valibot/pull/427\n[pr-431-url]: https://github.com/open-circle/valibot/pull/431\n[pr-434-url]: https://github.com/open-circle/valibot/pull/434\n[pr-438-url]: https://github.com/open-circle/valibot/pull/438\n[pr-439-url]: https://github.com/open-circle/valibot/pull/439\n[pr-472-url]: https://github.com/open-circle/valibot/pull/472\n[pr-509-url]: https://github.com/open-circle/valibot/pull/509\n[pr-527-url]: https://github.com/open-circle/valibot/pull/527\n[pr-549-url]: https://github.com/open-circle/valibot/pull/549\n[pr-560-url]: https://github.com/open-circle/valibot/pull/560\n[pr-581-url]: https://github.com/open-circle/valibot/pull/581\n[pr-584-url]: https://github.com/open-circle/valibot/pull/584\n[pr-605-url]: https://github.com/open-circle/valibot/pull/605\n[pr-606-url]: https://github.com/open-circle/valibot/pull/606\n[pr-652-url]: https://github.com/open-circle/valibot/pull/652\n[pr-683-url]: https://github.com/open-circle/valibot/pull/683\n[pr-838-url]: https://github.com/open-circle/valibot/pull/838\n[pr-886-url]: https://github.com/open-circle/valibot/pull/886\n[pr-951-url]: https://github.com/open-circle/valibot/pull/951\n[pr-1224-url]: https://github.com/open-circle/valibot/pull/1224\n[pr-1306-url]: https://github.com/open-circle/valibot/pull/1306\n[pr-1311-url]: https://github.com/open-circle/valibot/pull/1311\n[pr-1318-url]: https://github.com/open-circle/valibot/pull/1318\n[pr-1334-url]: https://github.com/open-circle/valibot/pull/1334\n[pr-1409-url]: https://github.com/open-circle/valibot/pull/1409\n\n## Getting started\n\nStep 1: Clone repository\n\n```bash\ngit clone git@github.com:open-circle/valibot.git\n```\n\nStep 2: Install dependencies\n\n```bash\npnpm install\n```\n\nStep 3: Build core library\n\n```bash\ncd ./library && pnpm build\n```\n\nStep 4: Change to directory\n\n```bash\ncd ../packages/i18n\n```\n\n## Add language\n\n1. Add the ISO code to `src/types.ts`\n2. Duplicate `src/en.ts` and change file name to ISO code\n3. Change ISO code and translate messages in new file\n4. Import new language file in `scripts/build-npm.ts` and `scripts/build-jsr.ts`\n5. Add the new import to the `languages` array\n6. Update the \"Current status\" table in this README\n\n## Build library\n\nExecute build script\n\n```bash\npnpm build.npm      # for npm\npnpm build.jsr      # for JSR\n```\n"
  },
  {
    "path": "packages/i18n/jsr.json",
    "content": "{\n  \"name\": \"@valibot/i18n\",\n  \"version\": \"1.1.0\",\n  \"exclude\": [\n    \"scripts\",\n    \"src\",\n    \"CHANGELOG.md\",\n    \"package.json\",\n    \"tsconfig.json\",\n    \"!index.ts\",\n    \"!ar\",\n    \"!az\",\n    \"!ca\",\n    \"!cs\",\n    \"!de\",\n    \"!el\",\n    \"!es\",\n    \"!fa\",\n    \"!fi\",\n    \"!fr\",\n    \"!hu\",\n    \"!id\",\n    \"!it\",\n    \"!ja\",\n    \"!ko\",\n    \"!kr\",\n    \"!mn\",\n    \"!nb\",\n    \"!nl\",\n    \"!pl\",\n    \"!pt\",\n    \"!ro\",\n    \"!ru\",\n    \"!sk\",\n    \"!sl\",\n    \"!sv\",\n    \"!tr\",\n    \"!uk\",\n    \"!vi\",\n    \"!zh-CN\",\n    \"!zh-TW\"\n  ],\n  \"exports\": {\n    \".\": \"./index.ts\",\n    \"./ar\": \"./ar/index.ts\",\n    \"./ar/schema\": \"./ar/schema.ts\",\n    \"./ar/base64\": \"./ar/base64.ts\",\n    \"./ar/bic\": \"./ar/bic.ts\",\n    \"./ar/bytes\": \"./ar/bytes.ts\",\n    \"./ar/check\": \"./ar/check.ts\",\n    \"./ar/checkAsync\": \"./ar/checkAsync.ts\",\n    \"./ar/checkItems\": \"./ar/checkItems.ts\",\n    \"./ar/checkItemsAsync\": \"./ar/checkItemsAsync.ts\",\n    \"./ar/creditCard\": \"./ar/creditCard.ts\",\n    \"./ar/cuid2\": \"./ar/cuid2.ts\",\n    \"./ar/decimal\": \"./ar/decimal.ts\",\n    \"./ar/digits\": \"./ar/digits.ts\",\n    \"./ar/domain\": \"./ar/domain.ts\",\n    \"./ar/email\": \"./ar/email.ts\",\n    \"./ar/emoji\": \"./ar/emoji.ts\",\n    \"./ar/empty\": \"./ar/empty.ts\",\n    \"./ar/endsWith\": \"./ar/endsWith.ts\",\n    \"./ar/entries\": \"./ar/entries.ts\",\n    \"./ar/everyItem\": \"./ar/everyItem.ts\",\n    \"./ar/excludes\": \"./ar/excludes.ts\",\n    \"./ar/finite\": \"./ar/finite.ts\",\n    \"./ar/graphemes\": \"./ar/graphemes.ts\",\n    \"./ar/gtValue\": \"./ar/gtValue.ts\",\n    \"./ar/guard\": \"./ar/guard.ts\",\n    \"./ar/hash\": \"./ar/hash.ts\",\n    \"./ar/hexadecimal\": \"./ar/hexadecimal.ts\",\n    \"./ar/hexColor\": \"./ar/hexColor.ts\",\n    \"./ar/imei\": \"./ar/imei.ts\",\n    \"./ar/includes\": \"./ar/includes.ts\",\n    \"./ar/integer\": \"./ar/integer.ts\",\n    \"./ar/ip\": \"./ar/ip.ts\",\n    \"./ar/ipv4\": \"./ar/ipv4.ts\",\n    \"./ar/ipv6\": \"./ar/ipv6.ts\",\n    \"./ar/isbn\": \"./ar/isbn.ts\",\n    \"./ar/isoDate\": \"./ar/isoDate.ts\",\n    \"./ar/isoDateTime\": \"./ar/isoDateTime.ts\",\n    \"./ar/isoTime\": \"./ar/isoTime.ts\",\n    \"./ar/isoTimeSecond\": \"./ar/isoTimeSecond.ts\",\n    \"./ar/isoTimestamp\": \"./ar/isoTimestamp.ts\",\n    \"./ar/isoWeek\": \"./ar/isoWeek.ts\",\n    \"./ar/isrc\": \"./ar/isrc.ts\",\n    \"./ar/jwsCompact\": \"./ar/jwsCompact.ts\",\n    \"./ar/length\": \"./ar/length.ts\",\n    \"./ar/ltValue\": \"./ar/ltValue.ts\",\n    \"./ar/mac\": \"./ar/mac.ts\",\n    \"./ar/mac48\": \"./ar/mac48.ts\",\n    \"./ar/mac64\": \"./ar/mac64.ts\",\n    \"./ar/maxBytes\": \"./ar/maxBytes.ts\",\n    \"./ar/maxEntries\": \"./ar/maxEntries.ts\",\n    \"./ar/maxGraphemes\": \"./ar/maxGraphemes.ts\",\n    \"./ar/maxLength\": \"./ar/maxLength.ts\",\n    \"./ar/maxSize\": \"./ar/maxSize.ts\",\n    \"./ar/maxValue\": \"./ar/maxValue.ts\",\n    \"./ar/maxWords\": \"./ar/maxWords.ts\",\n    \"./ar/mimeType\": \"./ar/mimeType.ts\",\n    \"./ar/minBytes\": \"./ar/minBytes.ts\",\n    \"./ar/minEntries\": \"./ar/minEntries.ts\",\n    \"./ar/minGraphemes\": \"./ar/minGraphemes.ts\",\n    \"./ar/minLength\": \"./ar/minLength.ts\",\n    \"./ar/minSize\": \"./ar/minSize.ts\",\n    \"./ar/minValue\": \"./ar/minValue.ts\",\n    \"./ar/minWords\": \"./ar/minWords.ts\",\n    \"./ar/multipleOf\": \"./ar/multipleOf.ts\",\n    \"./ar/nanoid\": \"./ar/nanoid.ts\",\n    \"./ar/nonEmpty\": \"./ar/nonEmpty.ts\",\n    \"./ar/notBytes\": \"./ar/notBytes.ts\",\n    \"./ar/notEntries\": \"./ar/notEntries.ts\",\n    \"./ar/notGraphemes\": \"./ar/notGraphemes.ts\",\n    \"./ar/notLength\": \"./ar/notLength.ts\",\n    \"./ar/notSize\": \"./ar/notSize.ts\",\n    \"./ar/notValue\": \"./ar/notValue.ts\",\n    \"./ar/notValues\": \"./ar/notValues.ts\",\n    \"./ar/notWords\": \"./ar/notWords.ts\",\n    \"./ar/octal\": \"./ar/octal.ts\",\n    \"./ar/parseBoolean\": \"./ar/parseBoolean.ts\",\n    \"./ar/parseJson\": \"./ar/parseJson.ts\",\n    \"./ar/partialCheck\": \"./ar/partialCheck.ts\",\n    \"./ar/rawCheck\": \"./ar/rawCheck.ts\",\n    \"./ar/rawTransform\": \"./ar/rawTransform.ts\",\n    \"./ar/regex\": \"./ar/regex.ts\",\n    \"./ar/rfcEmail\": \"./ar/rfcEmail.ts\",\n    \"./ar/safeInteger\": \"./ar/safeInteger.ts\",\n    \"./ar/size\": \"./ar/size.ts\",\n    \"./ar/slug\": \"./ar/slug.ts\",\n    \"./ar/someItem\": \"./ar/someItem.ts\",\n    \"./ar/startsWith\": \"./ar/startsWith.ts\",\n    \"./ar/stringifyJson\": \"./ar/stringifyJson.ts\",\n    \"./ar/toBigint\": \"./ar/toBigint.ts\",\n    \"./ar/toDate\": \"./ar/toDate.ts\",\n    \"./ar/toNumber\": \"./ar/toNumber.ts\",\n    \"./ar/toString\": \"./ar/toString.ts\",\n    \"./ar/ulid\": \"./ar/ulid.ts\",\n    \"./ar/url\": \"./ar/url.ts\",\n    \"./ar/uuid\": \"./ar/uuid.ts\",\n    \"./ar/value\": \"./ar/value.ts\",\n    \"./ar/values\": \"./ar/values.ts\",\n    \"./ar/words\": \"./ar/words.ts\",\n    \"./az\": \"./az/index.ts\",\n    \"./az/schema\": \"./az/schema.ts\",\n    \"./az/base64\": \"./az/base64.ts\",\n    \"./az/bic\": \"./az/bic.ts\",\n    \"./az/bytes\": \"./az/bytes.ts\",\n    \"./az/check\": \"./az/check.ts\",\n    \"./az/checkAsync\": \"./az/checkAsync.ts\",\n    \"./az/checkItems\": \"./az/checkItems.ts\",\n    \"./az/checkItemsAsync\": \"./az/checkItemsAsync.ts\",\n    \"./az/creditCard\": \"./az/creditCard.ts\",\n    \"./az/cuid2\": \"./az/cuid2.ts\",\n    \"./az/decimal\": \"./az/decimal.ts\",\n    \"./az/digits\": \"./az/digits.ts\",\n    \"./az/domain\": \"./az/domain.ts\",\n    \"./az/email\": \"./az/email.ts\",\n    \"./az/emoji\": \"./az/emoji.ts\",\n    \"./az/empty\": \"./az/empty.ts\",\n    \"./az/endsWith\": \"./az/endsWith.ts\",\n    \"./az/entries\": \"./az/entries.ts\",\n    \"./az/everyItem\": \"./az/everyItem.ts\",\n    \"./az/excludes\": \"./az/excludes.ts\",\n    \"./az/finite\": \"./az/finite.ts\",\n    \"./az/graphemes\": \"./az/graphemes.ts\",\n    \"./az/gtValue\": \"./az/gtValue.ts\",\n    \"./az/guard\": \"./az/guard.ts\",\n    \"./az/hash\": \"./az/hash.ts\",\n    \"./az/hexadecimal\": \"./az/hexadecimal.ts\",\n    \"./az/hexColor\": \"./az/hexColor.ts\",\n    \"./az/imei\": \"./az/imei.ts\",\n    \"./az/includes\": \"./az/includes.ts\",\n    \"./az/integer\": \"./az/integer.ts\",\n    \"./az/ip\": \"./az/ip.ts\",\n    \"./az/ipv4\": \"./az/ipv4.ts\",\n    \"./az/ipv6\": \"./az/ipv6.ts\",\n    \"./az/isbn\": \"./az/isbn.ts\",\n    \"./az/isoDate\": \"./az/isoDate.ts\",\n    \"./az/isoDateTime\": \"./az/isoDateTime.ts\",\n    \"./az/isoTime\": \"./az/isoTime.ts\",\n    \"./az/isoTimeSecond\": \"./az/isoTimeSecond.ts\",\n    \"./az/isoTimestamp\": \"./az/isoTimestamp.ts\",\n    \"./az/isoWeek\": \"./az/isoWeek.ts\",\n    \"./az/isrc\": \"./az/isrc.ts\",\n    \"./az/jwsCompact\": \"./az/jwsCompact.ts\",\n    \"./az/length\": \"./az/length.ts\",\n    \"./az/ltValue\": \"./az/ltValue.ts\",\n    \"./az/mac\": \"./az/mac.ts\",\n    \"./az/mac48\": \"./az/mac48.ts\",\n    \"./az/mac64\": \"./az/mac64.ts\",\n    \"./az/maxBytes\": \"./az/maxBytes.ts\",\n    \"./az/maxEntries\": \"./az/maxEntries.ts\",\n    \"./az/maxGraphemes\": \"./az/maxGraphemes.ts\",\n    \"./az/maxLength\": \"./az/maxLength.ts\",\n    \"./az/maxSize\": \"./az/maxSize.ts\",\n    \"./az/maxValue\": \"./az/maxValue.ts\",\n    \"./az/maxWords\": \"./az/maxWords.ts\",\n    \"./az/mimeType\": \"./az/mimeType.ts\",\n    \"./az/minBytes\": \"./az/minBytes.ts\",\n    \"./az/minEntries\": \"./az/minEntries.ts\",\n    \"./az/minGraphemes\": \"./az/minGraphemes.ts\",\n    \"./az/minLength\": \"./az/minLength.ts\",\n    \"./az/minSize\": \"./az/minSize.ts\",\n    \"./az/minValue\": \"./az/minValue.ts\",\n    \"./az/minWords\": \"./az/minWords.ts\",\n    \"./az/multipleOf\": \"./az/multipleOf.ts\",\n    \"./az/nanoid\": \"./az/nanoid.ts\",\n    \"./az/nonEmpty\": \"./az/nonEmpty.ts\",\n    \"./az/notBytes\": \"./az/notBytes.ts\",\n    \"./az/notEntries\": \"./az/notEntries.ts\",\n    \"./az/notGraphemes\": \"./az/notGraphemes.ts\",\n    \"./az/notLength\": \"./az/notLength.ts\",\n    \"./az/notSize\": \"./az/notSize.ts\",\n    \"./az/notValue\": \"./az/notValue.ts\",\n    \"./az/notValues\": \"./az/notValues.ts\",\n    \"./az/notWords\": \"./az/notWords.ts\",\n    \"./az/octal\": \"./az/octal.ts\",\n    \"./az/parseBoolean\": \"./az/parseBoolean.ts\",\n    \"./az/parseJson\": \"./az/parseJson.ts\",\n    \"./az/partialCheck\": \"./az/partialCheck.ts\",\n    \"./az/rawCheck\": \"./az/rawCheck.ts\",\n    \"./az/rawTransform\": \"./az/rawTransform.ts\",\n    \"./az/regex\": \"./az/regex.ts\",\n    \"./az/rfcEmail\": \"./az/rfcEmail.ts\",\n    \"./az/safeInteger\": \"./az/safeInteger.ts\",\n    \"./az/size\": \"./az/size.ts\",\n    \"./az/slug\": \"./az/slug.ts\",\n    \"./az/someItem\": \"./az/someItem.ts\",\n    \"./az/startsWith\": \"./az/startsWith.ts\",\n    \"./az/stringifyJson\": \"./az/stringifyJson.ts\",\n    \"./az/toBigint\": \"./az/toBigint.ts\",\n    \"./az/toDate\": \"./az/toDate.ts\",\n    \"./az/toNumber\": \"./az/toNumber.ts\",\n    \"./az/toString\": \"./az/toString.ts\",\n    \"./az/ulid\": \"./az/ulid.ts\",\n    \"./az/url\": \"./az/url.ts\",\n    \"./az/uuid\": \"./az/uuid.ts\",\n    \"./az/value\": \"./az/value.ts\",\n    \"./az/values\": \"./az/values.ts\",\n    \"./az/words\": \"./az/words.ts\",\n    \"./ca\": \"./ca/index.ts\",\n    \"./ca/schema\": \"./ca/schema.ts\",\n    \"./ca/base64\": \"./ca/base64.ts\",\n    \"./ca/bic\": \"./ca/bic.ts\",\n    \"./ca/bytes\": \"./ca/bytes.ts\",\n    \"./ca/check\": \"./ca/check.ts\",\n    \"./ca/checkAsync\": \"./ca/checkAsync.ts\",\n    \"./ca/checkItems\": \"./ca/checkItems.ts\",\n    \"./ca/checkItemsAsync\": \"./ca/checkItemsAsync.ts\",\n    \"./ca/creditCard\": \"./ca/creditCard.ts\",\n    \"./ca/cuid2\": \"./ca/cuid2.ts\",\n    \"./ca/decimal\": \"./ca/decimal.ts\",\n    \"./ca/digits\": \"./ca/digits.ts\",\n    \"./ca/domain\": \"./ca/domain.ts\",\n    \"./ca/email\": \"./ca/email.ts\",\n    \"./ca/emoji\": \"./ca/emoji.ts\",\n    \"./ca/empty\": \"./ca/empty.ts\",\n    \"./ca/endsWith\": \"./ca/endsWith.ts\",\n    \"./ca/entries\": \"./ca/entries.ts\",\n    \"./ca/everyItem\": \"./ca/everyItem.ts\",\n    \"./ca/excludes\": \"./ca/excludes.ts\",\n    \"./ca/finite\": \"./ca/finite.ts\",\n    \"./ca/graphemes\": \"./ca/graphemes.ts\",\n    \"./ca/gtValue\": \"./ca/gtValue.ts\",\n    \"./ca/guard\": \"./ca/guard.ts\",\n    \"./ca/hash\": \"./ca/hash.ts\",\n    \"./ca/hexadecimal\": \"./ca/hexadecimal.ts\",\n    \"./ca/hexColor\": \"./ca/hexColor.ts\",\n    \"./ca/imei\": \"./ca/imei.ts\",\n    \"./ca/includes\": \"./ca/includes.ts\",\n    \"./ca/integer\": \"./ca/integer.ts\",\n    \"./ca/ip\": \"./ca/ip.ts\",\n    \"./ca/ipv4\": \"./ca/ipv4.ts\",\n    \"./ca/ipv6\": \"./ca/ipv6.ts\",\n    \"./ca/isbn\": \"./ca/isbn.ts\",\n    \"./ca/isoDate\": \"./ca/isoDate.ts\",\n    \"./ca/isoDateTime\": \"./ca/isoDateTime.ts\",\n    \"./ca/isoTime\": \"./ca/isoTime.ts\",\n    \"./ca/isoTimeSecond\": \"./ca/isoTimeSecond.ts\",\n    \"./ca/isoTimestamp\": \"./ca/isoTimestamp.ts\",\n    \"./ca/isoWeek\": \"./ca/isoWeek.ts\",\n    \"./ca/isrc\": \"./ca/isrc.ts\",\n    \"./ca/jwsCompact\": \"./ca/jwsCompact.ts\",\n    \"./ca/length\": \"./ca/length.ts\",\n    \"./ca/ltValue\": \"./ca/ltValue.ts\",\n    \"./ca/mac\": \"./ca/mac.ts\",\n    \"./ca/mac48\": \"./ca/mac48.ts\",\n    \"./ca/mac64\": \"./ca/mac64.ts\",\n    \"./ca/maxBytes\": \"./ca/maxBytes.ts\",\n    \"./ca/maxEntries\": \"./ca/maxEntries.ts\",\n    \"./ca/maxGraphemes\": \"./ca/maxGraphemes.ts\",\n    \"./ca/maxLength\": \"./ca/maxLength.ts\",\n    \"./ca/maxSize\": \"./ca/maxSize.ts\",\n    \"./ca/maxValue\": \"./ca/maxValue.ts\",\n    \"./ca/maxWords\": \"./ca/maxWords.ts\",\n    \"./ca/mimeType\": \"./ca/mimeType.ts\",\n    \"./ca/minBytes\": \"./ca/minBytes.ts\",\n    \"./ca/minEntries\": \"./ca/minEntries.ts\",\n    \"./ca/minGraphemes\": \"./ca/minGraphemes.ts\",\n    \"./ca/minLength\": \"./ca/minLength.ts\",\n    \"./ca/minSize\": \"./ca/minSize.ts\",\n    \"./ca/minValue\": \"./ca/minValue.ts\",\n    \"./ca/minWords\": \"./ca/minWords.ts\",\n    \"./ca/multipleOf\": \"./ca/multipleOf.ts\",\n    \"./ca/nanoid\": \"./ca/nanoid.ts\",\n    \"./ca/nonEmpty\": \"./ca/nonEmpty.ts\",\n    \"./ca/notBytes\": \"./ca/notBytes.ts\",\n    \"./ca/notEntries\": \"./ca/notEntries.ts\",\n    \"./ca/notGraphemes\": \"./ca/notGraphemes.ts\",\n    \"./ca/notLength\": \"./ca/notLength.ts\",\n    \"./ca/notSize\": \"./ca/notSize.ts\",\n    \"./ca/notValue\": \"./ca/notValue.ts\",\n    \"./ca/notValues\": \"./ca/notValues.ts\",\n    \"./ca/notWords\": \"./ca/notWords.ts\",\n    \"./ca/octal\": \"./ca/octal.ts\",\n    \"./ca/parseBoolean\": \"./ca/parseBoolean.ts\",\n    \"./ca/parseJson\": \"./ca/parseJson.ts\",\n    \"./ca/partialCheck\": \"./ca/partialCheck.ts\",\n    \"./ca/rawCheck\": \"./ca/rawCheck.ts\",\n    \"./ca/rawTransform\": \"./ca/rawTransform.ts\",\n    \"./ca/regex\": \"./ca/regex.ts\",\n    \"./ca/rfcEmail\": \"./ca/rfcEmail.ts\",\n    \"./ca/safeInteger\": \"./ca/safeInteger.ts\",\n    \"./ca/size\": \"./ca/size.ts\",\n    \"./ca/slug\": \"./ca/slug.ts\",\n    \"./ca/someItem\": \"./ca/someItem.ts\",\n    \"./ca/startsWith\": \"./ca/startsWith.ts\",\n    \"./ca/stringifyJson\": \"./ca/stringifyJson.ts\",\n    \"./ca/toBigint\": \"./ca/toBigint.ts\",\n    \"./ca/toDate\": \"./ca/toDate.ts\",\n    \"./ca/toNumber\": \"./ca/toNumber.ts\",\n    \"./ca/toString\": \"./ca/toString.ts\",\n    \"./ca/ulid\": \"./ca/ulid.ts\",\n    \"./ca/url\": \"./ca/url.ts\",\n    \"./ca/uuid\": \"./ca/uuid.ts\",\n    \"./ca/value\": \"./ca/value.ts\",\n    \"./ca/values\": \"./ca/values.ts\",\n    \"./ca/words\": \"./ca/words.ts\",\n    \"./cs\": \"./cs/index.ts\",\n    \"./cs/schema\": \"./cs/schema.ts\",\n    \"./cs/base64\": \"./cs/base64.ts\",\n    \"./cs/bic\": \"./cs/bic.ts\",\n    \"./cs/bytes\": \"./cs/bytes.ts\",\n    \"./cs/check\": \"./cs/check.ts\",\n    \"./cs/checkAsync\": \"./cs/checkAsync.ts\",\n    \"./cs/checkItems\": \"./cs/checkItems.ts\",\n    \"./cs/checkItemsAsync\": \"./cs/checkItemsAsync.ts\",\n    \"./cs/creditCard\": \"./cs/creditCard.ts\",\n    \"./cs/cuid2\": \"./cs/cuid2.ts\",\n    \"./cs/decimal\": \"./cs/decimal.ts\",\n    \"./cs/digits\": \"./cs/digits.ts\",\n    \"./cs/domain\": \"./cs/domain.ts\",\n    \"./cs/email\": \"./cs/email.ts\",\n    \"./cs/emoji\": \"./cs/emoji.ts\",\n    \"./cs/empty\": \"./cs/empty.ts\",\n    \"./cs/endsWith\": \"./cs/endsWith.ts\",\n    \"./cs/entries\": \"./cs/entries.ts\",\n    \"./cs/everyItem\": \"./cs/everyItem.ts\",\n    \"./cs/excludes\": \"./cs/excludes.ts\",\n    \"./cs/finite\": \"./cs/finite.ts\",\n    \"./cs/graphemes\": \"./cs/graphemes.ts\",\n    \"./cs/gtValue\": \"./cs/gtValue.ts\",\n    \"./cs/guard\": \"./cs/guard.ts\",\n    \"./cs/hash\": \"./cs/hash.ts\",\n    \"./cs/hexadecimal\": \"./cs/hexadecimal.ts\",\n    \"./cs/hexColor\": \"./cs/hexColor.ts\",\n    \"./cs/imei\": \"./cs/imei.ts\",\n    \"./cs/includes\": \"./cs/includes.ts\",\n    \"./cs/integer\": \"./cs/integer.ts\",\n    \"./cs/ip\": \"./cs/ip.ts\",\n    \"./cs/ipv4\": \"./cs/ipv4.ts\",\n    \"./cs/ipv6\": \"./cs/ipv6.ts\",\n    \"./cs/isbn\": \"./cs/isbn.ts\",\n    \"./cs/isoDate\": \"./cs/isoDate.ts\",\n    \"./cs/isoDateTime\": \"./cs/isoDateTime.ts\",\n    \"./cs/isoTime\": \"./cs/isoTime.ts\",\n    \"./cs/isoTimeSecond\": \"./cs/isoTimeSecond.ts\",\n    \"./cs/isoTimestamp\": \"./cs/isoTimestamp.ts\",\n    \"./cs/isoWeek\": \"./cs/isoWeek.ts\",\n    \"./cs/isrc\": \"./cs/isrc.ts\",\n    \"./cs/jwsCompact\": \"./cs/jwsCompact.ts\",\n    \"./cs/length\": \"./cs/length.ts\",\n    \"./cs/ltValue\": \"./cs/ltValue.ts\",\n    \"./cs/mac\": \"./cs/mac.ts\",\n    \"./cs/mac48\": \"./cs/mac48.ts\",\n    \"./cs/mac64\": \"./cs/mac64.ts\",\n    \"./cs/maxBytes\": \"./cs/maxBytes.ts\",\n    \"./cs/maxEntries\": \"./cs/maxEntries.ts\",\n    \"./cs/maxGraphemes\": \"./cs/maxGraphemes.ts\",\n    \"./cs/maxLength\": \"./cs/maxLength.ts\",\n    \"./cs/maxSize\": \"./cs/maxSize.ts\",\n    \"./cs/maxValue\": \"./cs/maxValue.ts\",\n    \"./cs/maxWords\": \"./cs/maxWords.ts\",\n    \"./cs/mimeType\": \"./cs/mimeType.ts\",\n    \"./cs/minBytes\": \"./cs/minBytes.ts\",\n    \"./cs/minEntries\": \"./cs/minEntries.ts\",\n    \"./cs/minGraphemes\": \"./cs/minGraphemes.ts\",\n    \"./cs/minLength\": \"./cs/minLength.ts\",\n    \"./cs/minSize\": \"./cs/minSize.ts\",\n    \"./cs/minValue\": \"./cs/minValue.ts\",\n    \"./cs/minWords\": \"./cs/minWords.ts\",\n    \"./cs/multipleOf\": \"./cs/multipleOf.ts\",\n    \"./cs/nanoid\": \"./cs/nanoid.ts\",\n    \"./cs/nonEmpty\": \"./cs/nonEmpty.ts\",\n    \"./cs/notBytes\": \"./cs/notBytes.ts\",\n    \"./cs/notEntries\": \"./cs/notEntries.ts\",\n    \"./cs/notGraphemes\": \"./cs/notGraphemes.ts\",\n    \"./cs/notLength\": \"./cs/notLength.ts\",\n    \"./cs/notSize\": \"./cs/notSize.ts\",\n    \"./cs/notValue\": \"./cs/notValue.ts\",\n    \"./cs/notValues\": \"./cs/notValues.ts\",\n    \"./cs/notWords\": \"./cs/notWords.ts\",\n    \"./cs/octal\": \"./cs/octal.ts\",\n    \"./cs/parseBoolean\": \"./cs/parseBoolean.ts\",\n    \"./cs/parseJson\": \"./cs/parseJson.ts\",\n    \"./cs/partialCheck\": \"./cs/partialCheck.ts\",\n    \"./cs/rawCheck\": \"./cs/rawCheck.ts\",\n    \"./cs/rawTransform\": \"./cs/rawTransform.ts\",\n    \"./cs/regex\": \"./cs/regex.ts\",\n    \"./cs/rfcEmail\": \"./cs/rfcEmail.ts\",\n    \"./cs/safeInteger\": \"./cs/safeInteger.ts\",\n    \"./cs/size\": \"./cs/size.ts\",\n    \"./cs/slug\": \"./cs/slug.ts\",\n    \"./cs/someItem\": \"./cs/someItem.ts\",\n    \"./cs/startsWith\": \"./cs/startsWith.ts\",\n    \"./cs/stringifyJson\": \"./cs/stringifyJson.ts\",\n    \"./cs/toBigint\": \"./cs/toBigint.ts\",\n    \"./cs/toDate\": \"./cs/toDate.ts\",\n    \"./cs/toNumber\": \"./cs/toNumber.ts\",\n    \"./cs/toString\": \"./cs/toString.ts\",\n    \"./cs/ulid\": \"./cs/ulid.ts\",\n    \"./cs/url\": \"./cs/url.ts\",\n    \"./cs/uuid\": \"./cs/uuid.ts\",\n    \"./cs/value\": \"./cs/value.ts\",\n    \"./cs/values\": \"./cs/values.ts\",\n    \"./cs/words\": \"./cs/words.ts\",\n    \"./de\": \"./de/index.ts\",\n    \"./de/schema\": \"./de/schema.ts\",\n    \"./de/base64\": \"./de/base64.ts\",\n    \"./de/bic\": \"./de/bic.ts\",\n    \"./de/bytes\": \"./de/bytes.ts\",\n    \"./de/check\": \"./de/check.ts\",\n    \"./de/checkAsync\": \"./de/checkAsync.ts\",\n    \"./de/checkItems\": \"./de/checkItems.ts\",\n    \"./de/checkItemsAsync\": \"./de/checkItemsAsync.ts\",\n    \"./de/creditCard\": \"./de/creditCard.ts\",\n    \"./de/cuid2\": \"./de/cuid2.ts\",\n    \"./de/decimal\": \"./de/decimal.ts\",\n    \"./de/digits\": \"./de/digits.ts\",\n    \"./de/domain\": \"./de/domain.ts\",\n    \"./de/email\": \"./de/email.ts\",\n    \"./de/emoji\": \"./de/emoji.ts\",\n    \"./de/empty\": \"./de/empty.ts\",\n    \"./de/endsWith\": \"./de/endsWith.ts\",\n    \"./de/entries\": \"./de/entries.ts\",\n    \"./de/everyItem\": \"./de/everyItem.ts\",\n    \"./de/excludes\": \"./de/excludes.ts\",\n    \"./de/finite\": \"./de/finite.ts\",\n    \"./de/graphemes\": \"./de/graphemes.ts\",\n    \"./de/gtValue\": \"./de/gtValue.ts\",\n    \"./de/guard\": \"./de/guard.ts\",\n    \"./de/hash\": \"./de/hash.ts\",\n    \"./de/hexadecimal\": \"./de/hexadecimal.ts\",\n    \"./de/hexColor\": \"./de/hexColor.ts\",\n    \"./de/imei\": \"./de/imei.ts\",\n    \"./de/includes\": \"./de/includes.ts\",\n    \"./de/integer\": \"./de/integer.ts\",\n    \"./de/ip\": \"./de/ip.ts\",\n    \"./de/ipv4\": \"./de/ipv4.ts\",\n    \"./de/ipv6\": \"./de/ipv6.ts\",\n    \"./de/isbn\": \"./de/isbn.ts\",\n    \"./de/isoDate\": \"./de/isoDate.ts\",\n    \"./de/isoDateTime\": \"./de/isoDateTime.ts\",\n    \"./de/isoTime\": \"./de/isoTime.ts\",\n    \"./de/isoTimeSecond\": \"./de/isoTimeSecond.ts\",\n    \"./de/isoTimestamp\": \"./de/isoTimestamp.ts\",\n    \"./de/isoWeek\": \"./de/isoWeek.ts\",\n    \"./de/isrc\": \"./de/isrc.ts\",\n    \"./de/jwsCompact\": \"./de/jwsCompact.ts\",\n    \"./de/length\": \"./de/length.ts\",\n    \"./de/ltValue\": \"./de/ltValue.ts\",\n    \"./de/mac\": \"./de/mac.ts\",\n    \"./de/mac48\": \"./de/mac48.ts\",\n    \"./de/mac64\": \"./de/mac64.ts\",\n    \"./de/maxBytes\": \"./de/maxBytes.ts\",\n    \"./de/maxEntries\": \"./de/maxEntries.ts\",\n    \"./de/maxGraphemes\": \"./de/maxGraphemes.ts\",\n    \"./de/maxLength\": \"./de/maxLength.ts\",\n    \"./de/maxSize\": \"./de/maxSize.ts\",\n    \"./de/maxValue\": \"./de/maxValue.ts\",\n    \"./de/maxWords\": \"./de/maxWords.ts\",\n    \"./de/mimeType\": \"./de/mimeType.ts\",\n    \"./de/minBytes\": \"./de/minBytes.ts\",\n    \"./de/minEntries\": \"./de/minEntries.ts\",\n    \"./de/minGraphemes\": \"./de/minGraphemes.ts\",\n    \"./de/minLength\": \"./de/minLength.ts\",\n    \"./de/minSize\": \"./de/minSize.ts\",\n    \"./de/minValue\": \"./de/minValue.ts\",\n    \"./de/minWords\": \"./de/minWords.ts\",\n    \"./de/multipleOf\": \"./de/multipleOf.ts\",\n    \"./de/nanoid\": \"./de/nanoid.ts\",\n    \"./de/nonEmpty\": \"./de/nonEmpty.ts\",\n    \"./de/notBytes\": \"./de/notBytes.ts\",\n    \"./de/notEntries\": \"./de/notEntries.ts\",\n    \"./de/notGraphemes\": \"./de/notGraphemes.ts\",\n    \"./de/notLength\": \"./de/notLength.ts\",\n    \"./de/notSize\": \"./de/notSize.ts\",\n    \"./de/notValue\": \"./de/notValue.ts\",\n    \"./de/notValues\": \"./de/notValues.ts\",\n    \"./de/notWords\": \"./de/notWords.ts\",\n    \"./de/octal\": \"./de/octal.ts\",\n    \"./de/parseBoolean\": \"./de/parseBoolean.ts\",\n    \"./de/parseJson\": \"./de/parseJson.ts\",\n    \"./de/partialCheck\": \"./de/partialCheck.ts\",\n    \"./de/rawCheck\": \"./de/rawCheck.ts\",\n    \"./de/rawTransform\": \"./de/rawTransform.ts\",\n    \"./de/regex\": \"./de/regex.ts\",\n    \"./de/rfcEmail\": \"./de/rfcEmail.ts\",\n    \"./de/safeInteger\": \"./de/safeInteger.ts\",\n    \"./de/size\": \"./de/size.ts\",\n    \"./de/slug\": \"./de/slug.ts\",\n    \"./de/someItem\": \"./de/someItem.ts\",\n    \"./de/startsWith\": \"./de/startsWith.ts\",\n    \"./de/stringifyJson\": \"./de/stringifyJson.ts\",\n    \"./de/toBigint\": \"./de/toBigint.ts\",\n    \"./de/toDate\": \"./de/toDate.ts\",\n    \"./de/toNumber\": \"./de/toNumber.ts\",\n    \"./de/toString\": \"./de/toString.ts\",\n    \"./de/ulid\": \"./de/ulid.ts\",\n    \"./de/url\": \"./de/url.ts\",\n    \"./de/uuid\": \"./de/uuid.ts\",\n    \"./de/value\": \"./de/value.ts\",\n    \"./de/values\": \"./de/values.ts\",\n    \"./de/words\": \"./de/words.ts\",\n    \"./el\": \"./el/index.ts\",\n    \"./el/schema\": \"./el/schema.ts\",\n    \"./el/base64\": \"./el/base64.ts\",\n    \"./el/bic\": \"./el/bic.ts\",\n    \"./el/bytes\": \"./el/bytes.ts\",\n    \"./el/check\": \"./el/check.ts\",\n    \"./el/checkAsync\": \"./el/checkAsync.ts\",\n    \"./el/checkItems\": \"./el/checkItems.ts\",\n    \"./el/checkItemsAsync\": \"./el/checkItemsAsync.ts\",\n    \"./el/creditCard\": \"./el/creditCard.ts\",\n    \"./el/cuid2\": \"./el/cuid2.ts\",\n    \"./el/decimal\": \"./el/decimal.ts\",\n    \"./el/digits\": \"./el/digits.ts\",\n    \"./el/domain\": \"./el/domain.ts\",\n    \"./el/email\": \"./el/email.ts\",\n    \"./el/emoji\": \"./el/emoji.ts\",\n    \"./el/empty\": \"./el/empty.ts\",\n    \"./el/endsWith\": \"./el/endsWith.ts\",\n    \"./el/entries\": \"./el/entries.ts\",\n    \"./el/everyItem\": \"./el/everyItem.ts\",\n    \"./el/excludes\": \"./el/excludes.ts\",\n    \"./el/finite\": \"./el/finite.ts\",\n    \"./el/graphemes\": \"./el/graphemes.ts\",\n    \"./el/gtValue\": \"./el/gtValue.ts\",\n    \"./el/guard\": \"./el/guard.ts\",\n    \"./el/hash\": \"./el/hash.ts\",\n    \"./el/hexadecimal\": \"./el/hexadecimal.ts\",\n    \"./el/hexColor\": \"./el/hexColor.ts\",\n    \"./el/imei\": \"./el/imei.ts\",\n    \"./el/includes\": \"./el/includes.ts\",\n    \"./el/integer\": \"./el/integer.ts\",\n    \"./el/ip\": \"./el/ip.ts\",\n    \"./el/ipv4\": \"./el/ipv4.ts\",\n    \"./el/ipv6\": \"./el/ipv6.ts\",\n    \"./el/isbn\": \"./el/isbn.ts\",\n    \"./el/isoDate\": \"./el/isoDate.ts\",\n    \"./el/isoDateTime\": \"./el/isoDateTime.ts\",\n    \"./el/isoTime\": \"./el/isoTime.ts\",\n    \"./el/isoTimeSecond\": \"./el/isoTimeSecond.ts\",\n    \"./el/isoTimestamp\": \"./el/isoTimestamp.ts\",\n    \"./el/isoWeek\": \"./el/isoWeek.ts\",\n    \"./el/isrc\": \"./el/isrc.ts\",\n    \"./el/jwsCompact\": \"./el/jwsCompact.ts\",\n    \"./el/length\": \"./el/length.ts\",\n    \"./el/ltValue\": \"./el/ltValue.ts\",\n    \"./el/mac\": \"./el/mac.ts\",\n    \"./el/mac48\": \"./el/mac48.ts\",\n    \"./el/mac64\": \"./el/mac64.ts\",\n    \"./el/maxBytes\": \"./el/maxBytes.ts\",\n    \"./el/maxEntries\": \"./el/maxEntries.ts\",\n    \"./el/maxGraphemes\": \"./el/maxGraphemes.ts\",\n    \"./el/maxLength\": \"./el/maxLength.ts\",\n    \"./el/maxSize\": \"./el/maxSize.ts\",\n    \"./el/maxValue\": \"./el/maxValue.ts\",\n    \"./el/maxWords\": \"./el/maxWords.ts\",\n    \"./el/mimeType\": \"./el/mimeType.ts\",\n    \"./el/minBytes\": \"./el/minBytes.ts\",\n    \"./el/minEntries\": \"./el/minEntries.ts\",\n    \"./el/minGraphemes\": \"./el/minGraphemes.ts\",\n    \"./el/minLength\": \"./el/minLength.ts\",\n    \"./el/minSize\": \"./el/minSize.ts\",\n    \"./el/minValue\": \"./el/minValue.ts\",\n    \"./el/minWords\": \"./el/minWords.ts\",\n    \"./el/multipleOf\": \"./el/multipleOf.ts\",\n    \"./el/nanoid\": \"./el/nanoid.ts\",\n    \"./el/nonEmpty\": \"./el/nonEmpty.ts\",\n    \"./el/notBytes\": \"./el/notBytes.ts\",\n    \"./el/notEntries\": \"./el/notEntries.ts\",\n    \"./el/notGraphemes\": \"./el/notGraphemes.ts\",\n    \"./el/notLength\": \"./el/notLength.ts\",\n    \"./el/notSize\": \"./el/notSize.ts\",\n    \"./el/notValue\": \"./el/notValue.ts\",\n    \"./el/notValues\": \"./el/notValues.ts\",\n    \"./el/notWords\": \"./el/notWords.ts\",\n    \"./el/octal\": \"./el/octal.ts\",\n    \"./el/parseBoolean\": \"./el/parseBoolean.ts\",\n    \"./el/parseJson\": \"./el/parseJson.ts\",\n    \"./el/partialCheck\": \"./el/partialCheck.ts\",\n    \"./el/rawCheck\": \"./el/rawCheck.ts\",\n    \"./el/rawTransform\": \"./el/rawTransform.ts\",\n    \"./el/regex\": \"./el/regex.ts\",\n    \"./el/rfcEmail\": \"./el/rfcEmail.ts\",\n    \"./el/safeInteger\": \"./el/safeInteger.ts\",\n    \"./el/size\": \"./el/size.ts\",\n    \"./el/slug\": \"./el/slug.ts\",\n    \"./el/someItem\": \"./el/someItem.ts\",\n    \"./el/startsWith\": \"./el/startsWith.ts\",\n    \"./el/stringifyJson\": \"./el/stringifyJson.ts\",\n    \"./el/toBigint\": \"./el/toBigint.ts\",\n    \"./el/toDate\": \"./el/toDate.ts\",\n    \"./el/toNumber\": \"./el/toNumber.ts\",\n    \"./el/toString\": \"./el/toString.ts\",\n    \"./el/ulid\": \"./el/ulid.ts\",\n    \"./el/url\": \"./el/url.ts\",\n    \"./el/uuid\": \"./el/uuid.ts\",\n    \"./el/value\": \"./el/value.ts\",\n    \"./el/values\": \"./el/values.ts\",\n    \"./el/words\": \"./el/words.ts\",\n    \"./es\": \"./es/index.ts\",\n    \"./es/schema\": \"./es/schema.ts\",\n    \"./es/base64\": \"./es/base64.ts\",\n    \"./es/bic\": \"./es/bic.ts\",\n    \"./es/bytes\": \"./es/bytes.ts\",\n    \"./es/check\": \"./es/check.ts\",\n    \"./es/checkAsync\": \"./es/checkAsync.ts\",\n    \"./es/checkItems\": \"./es/checkItems.ts\",\n    \"./es/checkItemsAsync\": \"./es/checkItemsAsync.ts\",\n    \"./es/creditCard\": \"./es/creditCard.ts\",\n    \"./es/cuid2\": \"./es/cuid2.ts\",\n    \"./es/decimal\": \"./es/decimal.ts\",\n    \"./es/digits\": \"./es/digits.ts\",\n    \"./es/domain\": \"./es/domain.ts\",\n    \"./es/email\": \"./es/email.ts\",\n    \"./es/emoji\": \"./es/emoji.ts\",\n    \"./es/empty\": \"./es/empty.ts\",\n    \"./es/endsWith\": \"./es/endsWith.ts\",\n    \"./es/entries\": \"./es/entries.ts\",\n    \"./es/everyItem\": \"./es/everyItem.ts\",\n    \"./es/excludes\": \"./es/excludes.ts\",\n    \"./es/finite\": \"./es/finite.ts\",\n    \"./es/graphemes\": \"./es/graphemes.ts\",\n    \"./es/gtValue\": \"./es/gtValue.ts\",\n    \"./es/guard\": \"./es/guard.ts\",\n    \"./es/hash\": \"./es/hash.ts\",\n    \"./es/hexadecimal\": \"./es/hexadecimal.ts\",\n    \"./es/hexColor\": \"./es/hexColor.ts\",\n    \"./es/imei\": \"./es/imei.ts\",\n    \"./es/includes\": \"./es/includes.ts\",\n    \"./es/integer\": \"./es/integer.ts\",\n    \"./es/ip\": \"./es/ip.ts\",\n    \"./es/ipv4\": \"./es/ipv4.ts\",\n    \"./es/ipv6\": \"./es/ipv6.ts\",\n    \"./es/isbn\": \"./es/isbn.ts\",\n    \"./es/isoDate\": \"./es/isoDate.ts\",\n    \"./es/isoDateTime\": \"./es/isoDateTime.ts\",\n    \"./es/isoTime\": \"./es/isoTime.ts\",\n    \"./es/isoTimeSecond\": \"./es/isoTimeSecond.ts\",\n    \"./es/isoTimestamp\": \"./es/isoTimestamp.ts\",\n    \"./es/isoWeek\": \"./es/isoWeek.ts\",\n    \"./es/isrc\": \"./es/isrc.ts\",\n    \"./es/jwsCompact\": \"./es/jwsCompact.ts\",\n    \"./es/length\": \"./es/length.ts\",\n    \"./es/ltValue\": \"./es/ltValue.ts\",\n    \"./es/mac\": \"./es/mac.ts\",\n    \"./es/mac48\": \"./es/mac48.ts\",\n    \"./es/mac64\": \"./es/mac64.ts\",\n    \"./es/maxBytes\": \"./es/maxBytes.ts\",\n    \"./es/maxEntries\": \"./es/maxEntries.ts\",\n    \"./es/maxGraphemes\": \"./es/maxGraphemes.ts\",\n    \"./es/maxLength\": \"./es/maxLength.ts\",\n    \"./es/maxSize\": \"./es/maxSize.ts\",\n    \"./es/maxValue\": \"./es/maxValue.ts\",\n    \"./es/maxWords\": \"./es/maxWords.ts\",\n    \"./es/mimeType\": \"./es/mimeType.ts\",\n    \"./es/minBytes\": \"./es/minBytes.ts\",\n    \"./es/minEntries\": \"./es/minEntries.ts\",\n    \"./es/minGraphemes\": \"./es/minGraphemes.ts\",\n    \"./es/minLength\": \"./es/minLength.ts\",\n    \"./es/minSize\": \"./es/minSize.ts\",\n    \"./es/minValue\": \"./es/minValue.ts\",\n    \"./es/minWords\": \"./es/minWords.ts\",\n    \"./es/multipleOf\": \"./es/multipleOf.ts\",\n    \"./es/nanoid\": \"./es/nanoid.ts\",\n    \"./es/nonEmpty\": \"./es/nonEmpty.ts\",\n    \"./es/notBytes\": \"./es/notBytes.ts\",\n    \"./es/notEntries\": \"./es/notEntries.ts\",\n    \"./es/notGraphemes\": \"./es/notGraphemes.ts\",\n    \"./es/notLength\": \"./es/notLength.ts\",\n    \"./es/notSize\": \"./es/notSize.ts\",\n    \"./es/notValue\": \"./es/notValue.ts\",\n    \"./es/notValues\": \"./es/notValues.ts\",\n    \"./es/notWords\": \"./es/notWords.ts\",\n    \"./es/octal\": \"./es/octal.ts\",\n    \"./es/parseBoolean\": \"./es/parseBoolean.ts\",\n    \"./es/parseJson\": \"./es/parseJson.ts\",\n    \"./es/partialCheck\": \"./es/partialCheck.ts\",\n    \"./es/rawCheck\": \"./es/rawCheck.ts\",\n    \"./es/rawTransform\": \"./es/rawTransform.ts\",\n    \"./es/regex\": \"./es/regex.ts\",\n    \"./es/rfcEmail\": \"./es/rfcEmail.ts\",\n    \"./es/safeInteger\": \"./es/safeInteger.ts\",\n    \"./es/size\": \"./es/size.ts\",\n    \"./es/slug\": \"./es/slug.ts\",\n    \"./es/someItem\": \"./es/someItem.ts\",\n    \"./es/startsWith\": \"./es/startsWith.ts\",\n    \"./es/stringifyJson\": \"./es/stringifyJson.ts\",\n    \"./es/toBigint\": \"./es/toBigint.ts\",\n    \"./es/toDate\": \"./es/toDate.ts\",\n    \"./es/toNumber\": \"./es/toNumber.ts\",\n    \"./es/toString\": \"./es/toString.ts\",\n    \"./es/ulid\": \"./es/ulid.ts\",\n    \"./es/url\": \"./es/url.ts\",\n    \"./es/uuid\": \"./es/uuid.ts\",\n    \"./es/value\": \"./es/value.ts\",\n    \"./es/values\": \"./es/values.ts\",\n    \"./es/words\": \"./es/words.ts\",\n    \"./fa\": \"./fa/index.ts\",\n    \"./fa/schema\": \"./fa/schema.ts\",\n    \"./fa/base64\": \"./fa/base64.ts\",\n    \"./fa/bic\": \"./fa/bic.ts\",\n    \"./fa/bytes\": \"./fa/bytes.ts\",\n    \"./fa/check\": \"./fa/check.ts\",\n    \"./fa/checkAsync\": \"./fa/checkAsync.ts\",\n    \"./fa/checkItems\": \"./fa/checkItems.ts\",\n    \"./fa/checkItemsAsync\": \"./fa/checkItemsAsync.ts\",\n    \"./fa/creditCard\": \"./fa/creditCard.ts\",\n    \"./fa/cuid2\": \"./fa/cuid2.ts\",\n    \"./fa/decimal\": \"./fa/decimal.ts\",\n    \"./fa/digits\": \"./fa/digits.ts\",\n    \"./fa/domain\": \"./fa/domain.ts\",\n    \"./fa/email\": \"./fa/email.ts\",\n    \"./fa/emoji\": \"./fa/emoji.ts\",\n    \"./fa/empty\": \"./fa/empty.ts\",\n    \"./fa/endsWith\": \"./fa/endsWith.ts\",\n    \"./fa/entries\": \"./fa/entries.ts\",\n    \"./fa/everyItem\": \"./fa/everyItem.ts\",\n    \"./fa/excludes\": \"./fa/excludes.ts\",\n    \"./fa/finite\": \"./fa/finite.ts\",\n    \"./fa/graphemes\": \"./fa/graphemes.ts\",\n    \"./fa/gtValue\": \"./fa/gtValue.ts\",\n    \"./fa/guard\": \"./fa/guard.ts\",\n    \"./fa/hash\": \"./fa/hash.ts\",\n    \"./fa/hexadecimal\": \"./fa/hexadecimal.ts\",\n    \"./fa/hexColor\": \"./fa/hexColor.ts\",\n    \"./fa/imei\": \"./fa/imei.ts\",\n    \"./fa/includes\": \"./fa/includes.ts\",\n    \"./fa/integer\": \"./fa/integer.ts\",\n    \"./fa/ip\": \"./fa/ip.ts\",\n    \"./fa/ipv4\": \"./fa/ipv4.ts\",\n    \"./fa/ipv6\": \"./fa/ipv6.ts\",\n    \"./fa/isbn\": \"./fa/isbn.ts\",\n    \"./fa/isoDate\": \"./fa/isoDate.ts\",\n    \"./fa/isoDateTime\": \"./fa/isoDateTime.ts\",\n    \"./fa/isoTime\": \"./fa/isoTime.ts\",\n    \"./fa/isoTimeSecond\": \"./fa/isoTimeSecond.ts\",\n    \"./fa/isoTimestamp\": \"./fa/isoTimestamp.ts\",\n    \"./fa/isoWeek\": \"./fa/isoWeek.ts\",\n    \"./fa/isrc\": \"./fa/isrc.ts\",\n    \"./fa/jwsCompact\": \"./fa/jwsCompact.ts\",\n    \"./fa/length\": \"./fa/length.ts\",\n    \"./fa/ltValue\": \"./fa/ltValue.ts\",\n    \"./fa/mac\": \"./fa/mac.ts\",\n    \"./fa/mac48\": \"./fa/mac48.ts\",\n    \"./fa/mac64\": \"./fa/mac64.ts\",\n    \"./fa/maxBytes\": \"./fa/maxBytes.ts\",\n    \"./fa/maxEntries\": \"./fa/maxEntries.ts\",\n    \"./fa/maxGraphemes\": \"./fa/maxGraphemes.ts\",\n    \"./fa/maxLength\": \"./fa/maxLength.ts\",\n    \"./fa/maxSize\": \"./fa/maxSize.ts\",\n    \"./fa/maxValue\": \"./fa/maxValue.ts\",\n    \"./fa/maxWords\": \"./fa/maxWords.ts\",\n    \"./fa/mimeType\": \"./fa/mimeType.ts\",\n    \"./fa/minBytes\": \"./fa/minBytes.ts\",\n    \"./fa/minEntries\": \"./fa/minEntries.ts\",\n    \"./fa/minGraphemes\": \"./fa/minGraphemes.ts\",\n    \"./fa/minLength\": \"./fa/minLength.ts\",\n    \"./fa/minSize\": \"./fa/minSize.ts\",\n    \"./fa/minValue\": \"./fa/minValue.ts\",\n    \"./fa/minWords\": \"./fa/minWords.ts\",\n    \"./fa/multipleOf\": \"./fa/multipleOf.ts\",\n    \"./fa/nanoid\": \"./fa/nanoid.ts\",\n    \"./fa/nonEmpty\": \"./fa/nonEmpty.ts\",\n    \"./fa/notBytes\": \"./fa/notBytes.ts\",\n    \"./fa/notEntries\": \"./fa/notEntries.ts\",\n    \"./fa/notGraphemes\": \"./fa/notGraphemes.ts\",\n    \"./fa/notLength\": \"./fa/notLength.ts\",\n    \"./fa/notSize\": \"./fa/notSize.ts\",\n    \"./fa/notValue\": \"./fa/notValue.ts\",\n    \"./fa/notValues\": \"./fa/notValues.ts\",\n    \"./fa/notWords\": \"./fa/notWords.ts\",\n    \"./fa/octal\": \"./fa/octal.ts\",\n    \"./fa/parseBoolean\": \"./fa/parseBoolean.ts\",\n    \"./fa/parseJson\": \"./fa/parseJson.ts\",\n    \"./fa/partialCheck\": \"./fa/partialCheck.ts\",\n    \"./fa/rawCheck\": \"./fa/rawCheck.ts\",\n    \"./fa/rawTransform\": \"./fa/rawTransform.ts\",\n    \"./fa/regex\": \"./fa/regex.ts\",\n    \"./fa/rfcEmail\": \"./fa/rfcEmail.ts\",\n    \"./fa/safeInteger\": \"./fa/safeInteger.ts\",\n    \"./fa/size\": \"./fa/size.ts\",\n    \"./fa/slug\": \"./fa/slug.ts\",\n    \"./fa/someItem\": \"./fa/someItem.ts\",\n    \"./fa/startsWith\": \"./fa/startsWith.ts\",\n    \"./fa/stringifyJson\": \"./fa/stringifyJson.ts\",\n    \"./fa/toBigint\": \"./fa/toBigint.ts\",\n    \"./fa/toDate\": \"./fa/toDate.ts\",\n    \"./fa/toNumber\": \"./fa/toNumber.ts\",\n    \"./fa/toString\": \"./fa/toString.ts\",\n    \"./fa/ulid\": \"./fa/ulid.ts\",\n    \"./fa/url\": \"./fa/url.ts\",\n    \"./fa/uuid\": \"./fa/uuid.ts\",\n    \"./fa/value\": \"./fa/value.ts\",\n    \"./fa/values\": \"./fa/values.ts\",\n    \"./fa/words\": \"./fa/words.ts\",\n    \"./fi\": \"./fi/index.ts\",\n    \"./fi/schema\": \"./fi/schema.ts\",\n    \"./fi/base64\": \"./fi/base64.ts\",\n    \"./fi/bic\": \"./fi/bic.ts\",\n    \"./fi/bytes\": \"./fi/bytes.ts\",\n    \"./fi/check\": \"./fi/check.ts\",\n    \"./fi/checkAsync\": \"./fi/checkAsync.ts\",\n    \"./fi/checkItems\": \"./fi/checkItems.ts\",\n    \"./fi/checkItemsAsync\": \"./fi/checkItemsAsync.ts\",\n    \"./fi/creditCard\": \"./fi/creditCard.ts\",\n    \"./fi/cuid2\": \"./fi/cuid2.ts\",\n    \"./fi/decimal\": \"./fi/decimal.ts\",\n    \"./fi/digits\": \"./fi/digits.ts\",\n    \"./fi/domain\": \"./fi/domain.ts\",\n    \"./fi/email\": \"./fi/email.ts\",\n    \"./fi/emoji\": \"./fi/emoji.ts\",\n    \"./fi/empty\": \"./fi/empty.ts\",\n    \"./fi/endsWith\": \"./fi/endsWith.ts\",\n    \"./fi/entries\": \"./fi/entries.ts\",\n    \"./fi/everyItem\": \"./fi/everyItem.ts\",\n    \"./fi/excludes\": \"./fi/excludes.ts\",\n    \"./fi/finite\": \"./fi/finite.ts\",\n    \"./fi/graphemes\": \"./fi/graphemes.ts\",\n    \"./fi/gtValue\": \"./fi/gtValue.ts\",\n    \"./fi/guard\": \"./fi/guard.ts\",\n    \"./fi/hash\": \"./fi/hash.ts\",\n    \"./fi/hexColor\": \"./fi/hexColor.ts\",\n    \"./fi/hexadecimal\": \"./fi/hexadecimal.ts\",\n    \"./fi/imei\": \"./fi/imei.ts\",\n    \"./fi/includes\": \"./fi/includes.ts\",\n    \"./fi/integer\": \"./fi/integer.ts\",\n    \"./fi/ip\": \"./fi/ip.ts\",\n    \"./fi/ipv4\": \"./fi/ipv4.ts\",\n    \"./fi/ipv6\": \"./fi/ipv6.ts\",\n    \"./fi/isbn\": \"./fi/isbn.ts\",\n    \"./fi/isoDate\": \"./fi/isoDate.ts\",\n    \"./fi/isoDateTime\": \"./fi/isoDateTime.ts\",\n    \"./fi/isoTime\": \"./fi/isoTime.ts\",\n    \"./fi/isoTimeSecond\": \"./fi/isoTimeSecond.ts\",\n    \"./fi/isoTimestamp\": \"./fi/isoTimestamp.ts\",\n    \"./fi/isoWeek\": \"./fi/isoWeek.ts\",\n    \"./fi/isrc\": \"./fi/isrc.ts\",\n    \"./fi/jwsCompact\": \"./fi/jwsCompact.ts\",\n    \"./fi/length\": \"./fi/length.ts\",\n    \"./fi/ltValue\": \"./fi/ltValue.ts\",\n    \"./fi/mac\": \"./fi/mac.ts\",\n    \"./fi/mac48\": \"./fi/mac48.ts\",\n    \"./fi/mac64\": \"./fi/mac64.ts\",\n    \"./fi/maxBytes\": \"./fi/maxBytes.ts\",\n    \"./fi/maxEntries\": \"./fi/maxEntries.ts\",\n    \"./fi/maxGraphemes\": \"./fi/maxGraphemes.ts\",\n    \"./fi/maxLength\": \"./fi/maxLength.ts\",\n    \"./fi/maxSize\": \"./fi/maxSize.ts\",\n    \"./fi/maxValue\": \"./fi/maxValue.ts\",\n    \"./fi/maxWords\": \"./fi/maxWords.ts\",\n    \"./fi/mimeType\": \"./fi/mimeType.ts\",\n    \"./fi/minBytes\": \"./fi/minBytes.ts\",\n    \"./fi/minEntries\": \"./fi/minEntries.ts\",\n    \"./fi/minGraphemes\": \"./fi/minGraphemes.ts\",\n    \"./fi/minLength\": \"./fi/minLength.ts\",\n    \"./fi/minSize\": \"./fi/minSize.ts\",\n    \"./fi/minValue\": \"./fi/minValue.ts\",\n    \"./fi/minWords\": \"./fi/minWords.ts\",\n    \"./fi/multipleOf\": \"./fi/multipleOf.ts\",\n    \"./fi/nanoid\": \"./fi/nanoid.ts\",\n    \"./fi/nonEmpty\": \"./fi/nonEmpty.ts\",\n    \"./fi/notBytes\": \"./fi/notBytes.ts\",\n    \"./fi/notEntries\": \"./fi/notEntries.ts\",\n    \"./fi/notGraphemes\": \"./fi/notGraphemes.ts\",\n    \"./fi/notLength\": \"./fi/notLength.ts\",\n    \"./fi/notSize\": \"./fi/notSize.ts\",\n    \"./fi/notValue\": \"./fi/notValue.ts\",\n    \"./fi/notValues\": \"./fi/notValues.ts\",\n    \"./fi/notWords\": \"./fi/notWords.ts\",\n    \"./fi/octal\": \"./fi/octal.ts\",\n    \"./fi/parseBoolean\": \"./fi/parseBoolean.ts\",\n    \"./fi/parseJson\": \"./fi/parseJson.ts\",\n    \"./fi/partialCheck\": \"./fi/partialCheck.ts\",\n    \"./fi/rawCheck\": \"./fi/rawCheck.ts\",\n    \"./fi/rawTransform\": \"./fi/rawTransform.ts\",\n    \"./fi/regex\": \"./fi/regex.ts\",\n    \"./fi/rfcEmail\": \"./fi/rfcEmail.ts\",\n    \"./fi/safeInteger\": \"./fi/safeInteger.ts\",\n    \"./fi/size\": \"./fi/size.ts\",\n    \"./fi/slug\": \"./fi/slug.ts\",\n    \"./fi/someItem\": \"./fi/someItem.ts\",\n    \"./fi/startsWith\": \"./fi/startsWith.ts\",\n    \"./fi/stringifyJson\": \"./fi/stringifyJson.ts\",\n    \"./fi/toBigint\": \"./fi/toBigint.ts\",\n    \"./fi/toDate\": \"./fi/toDate.ts\",\n    \"./fi/toNumber\": \"./fi/toNumber.ts\",\n    \"./fi/toString\": \"./fi/toString.ts\",\n    \"./fi/ulid\": \"./fi/ulid.ts\",\n    \"./fi/url\": \"./fi/url.ts\",\n    \"./fi/uuid\": \"./fi/uuid.ts\",\n    \"./fi/value\": \"./fi/value.ts\",\n    \"./fi/values\": \"./fi/values.ts\",\n    \"./fi/words\": \"./fi/words.ts\",\n    \"./fr\": \"./fr/index.ts\",\n    \"./fr/schema\": \"./fr/schema.ts\",\n    \"./fr/base64\": \"./fr/base64.ts\",\n    \"./fr/bic\": \"./fr/bic.ts\",\n    \"./fr/bytes\": \"./fr/bytes.ts\",\n    \"./fr/check\": \"./fr/check.ts\",\n    \"./fr/checkAsync\": \"./fr/checkAsync.ts\",\n    \"./fr/checkItems\": \"./fr/checkItems.ts\",\n    \"./fr/checkItemsAsync\": \"./fr/checkItemsAsync.ts\",\n    \"./fr/creditCard\": \"./fr/creditCard.ts\",\n    \"./fr/cuid2\": \"./fr/cuid2.ts\",\n    \"./fr/decimal\": \"./fr/decimal.ts\",\n    \"./fr/digits\": \"./fr/digits.ts\",\n    \"./fr/domain\": \"./fr/domain.ts\",\n    \"./fr/email\": \"./fr/email.ts\",\n    \"./fr/emoji\": \"./fr/emoji.ts\",\n    \"./fr/empty\": \"./fr/empty.ts\",\n    \"./fr/endsWith\": \"./fr/endsWith.ts\",\n    \"./fr/entries\": \"./fr/entries.ts\",\n    \"./fr/everyItem\": \"./fr/everyItem.ts\",\n    \"./fr/excludes\": \"./fr/excludes.ts\",\n    \"./fr/finite\": \"./fr/finite.ts\",\n    \"./fr/graphemes\": \"./fr/graphemes.ts\",\n    \"./fr/gtValue\": \"./fr/gtValue.ts\",\n    \"./fr/guard\": \"./fr/guard.ts\",\n    \"./fr/hash\": \"./fr/hash.ts\",\n    \"./fr/hexadecimal\": \"./fr/hexadecimal.ts\",\n    \"./fr/hexColor\": \"./fr/hexColor.ts\",\n    \"./fr/imei\": \"./fr/imei.ts\",\n    \"./fr/includes\": \"./fr/includes.ts\",\n    \"./fr/integer\": \"./fr/integer.ts\",\n    \"./fr/ip\": \"./fr/ip.ts\",\n    \"./fr/ipv4\": \"./fr/ipv4.ts\",\n    \"./fr/ipv6\": \"./fr/ipv6.ts\",\n    \"./fr/isbn\": \"./fr/isbn.ts\",\n    \"./fr/isoDate\": \"./fr/isoDate.ts\",\n    \"./fr/isoDateTime\": \"./fr/isoDateTime.ts\",\n    \"./fr/isoTime\": \"./fr/isoTime.ts\",\n    \"./fr/isoTimeSecond\": \"./fr/isoTimeSecond.ts\",\n    \"./fr/isoTimestamp\": \"./fr/isoTimestamp.ts\",\n    \"./fr/isoWeek\": \"./fr/isoWeek.ts\",\n    \"./fr/isrc\": \"./fr/isrc.ts\",\n    \"./fr/jwsCompact\": \"./fr/jwsCompact.ts\",\n    \"./fr/length\": \"./fr/length.ts\",\n    \"./fr/ltValue\": \"./fr/ltValue.ts\",\n    \"./fr/mac\": \"./fr/mac.ts\",\n    \"./fr/mac48\": \"./fr/mac48.ts\",\n    \"./fr/mac64\": \"./fr/mac64.ts\",\n    \"./fr/maxBytes\": \"./fr/maxBytes.ts\",\n    \"./fr/maxEntries\": \"./fr/maxEntries.ts\",\n    \"./fr/maxGraphemes\": \"./fr/maxGraphemes.ts\",\n    \"./fr/maxLength\": \"./fr/maxLength.ts\",\n    \"./fr/maxSize\": \"./fr/maxSize.ts\",\n    \"./fr/maxValue\": \"./fr/maxValue.ts\",\n    \"./fr/maxWords\": \"./fr/maxWords.ts\",\n    \"./fr/mimeType\": \"./fr/mimeType.ts\",\n    \"./fr/minBytes\": \"./fr/minBytes.ts\",\n    \"./fr/minEntries\": \"./fr/minEntries.ts\",\n    \"./fr/minGraphemes\": \"./fr/minGraphemes.ts\",\n    \"./fr/minLength\": \"./fr/minLength.ts\",\n    \"./fr/minSize\": \"./fr/minSize.ts\",\n    \"./fr/minValue\": \"./fr/minValue.ts\",\n    \"./fr/minWords\": \"./fr/minWords.ts\",\n    \"./fr/multipleOf\": \"./fr/multipleOf.ts\",\n    \"./fr/nanoid\": \"./fr/nanoid.ts\",\n    \"./fr/nonEmpty\": \"./fr/nonEmpty.ts\",\n    \"./fr/notBytes\": \"./fr/notBytes.ts\",\n    \"./fr/notEntries\": \"./fr/notEntries.ts\",\n    \"./fr/notGraphemes\": \"./fr/notGraphemes.ts\",\n    \"./fr/notLength\": \"./fr/notLength.ts\",\n    \"./fr/notSize\": \"./fr/notSize.ts\",\n    \"./fr/notValue\": \"./fr/notValue.ts\",\n    \"./fr/notValues\": \"./fr/notValues.ts\",\n    \"./fr/notWords\": \"./fr/notWords.ts\",\n    \"./fr/octal\": \"./fr/octal.ts\",\n    \"./fr/parseBoolean\": \"./fr/parseBoolean.ts\",\n    \"./fr/parseJson\": \"./fr/parseJson.ts\",\n    \"./fr/partialCheck\": \"./fr/partialCheck.ts\",\n    \"./fr/rawCheck\": \"./fr/rawCheck.ts\",\n    \"./fr/rawTransform\": \"./fr/rawTransform.ts\",\n    \"./fr/regex\": \"./fr/regex.ts\",\n    \"./fr/rfcEmail\": \"./fr/rfcEmail.ts\",\n    \"./fr/safeInteger\": \"./fr/safeInteger.ts\",\n    \"./fr/size\": \"./fr/size.ts\",\n    \"./fr/slug\": \"./fr/slug.ts\",\n    \"./fr/someItem\": \"./fr/someItem.ts\",\n    \"./fr/startsWith\": \"./fr/startsWith.ts\",\n    \"./fr/stringifyJson\": \"./fr/stringifyJson.ts\",\n    \"./fr/toBigint\": \"./fr/toBigint.ts\",\n    \"./fr/toDate\": \"./fr/toDate.ts\",\n    \"./fr/toNumber\": \"./fr/toNumber.ts\",\n    \"./fr/toString\": \"./fr/toString.ts\",\n    \"./fr/ulid\": \"./fr/ulid.ts\",\n    \"./fr/url\": \"./fr/url.ts\",\n    \"./fr/uuid\": \"./fr/uuid.ts\",\n    \"./fr/value\": \"./fr/value.ts\",\n    \"./fr/values\": \"./fr/values.ts\",\n    \"./fr/words\": \"./fr/words.ts\",\n    \"./hu\": \"./hu/index.ts\",\n    \"./hu/schema\": \"./hu/schema.ts\",\n    \"./hu/base64\": \"./hu/base64.ts\",\n    \"./hu/bic\": \"./hu/bic.ts\",\n    \"./hu/bytes\": \"./hu/bytes.ts\",\n    \"./hu/check\": \"./hu/check.ts\",\n    \"./hu/checkAsync\": \"./hu/checkAsync.ts\",\n    \"./hu/checkItems\": \"./hu/checkItems.ts\",\n    \"./hu/checkItemsAsync\": \"./hu/checkItemsAsync.ts\",\n    \"./hu/creditCard\": \"./hu/creditCard.ts\",\n    \"./hu/cuid2\": \"./hu/cuid2.ts\",\n    \"./hu/decimal\": \"./hu/decimal.ts\",\n    \"./hu/digits\": \"./hu/digits.ts\",\n    \"./hu/domain\": \"./hu/domain.ts\",\n    \"./hu/email\": \"./hu/email.ts\",\n    \"./hu/emoji\": \"./hu/emoji.ts\",\n    \"./hu/empty\": \"./hu/empty.ts\",\n    \"./hu/endsWith\": \"./hu/endsWith.ts\",\n    \"./hu/entries\": \"./hu/entries.ts\",\n    \"./hu/everyItem\": \"./hu/everyItem.ts\",\n    \"./hu/excludes\": \"./hu/excludes.ts\",\n    \"./hu/finite\": \"./hu/finite.ts\",\n    \"./hu/graphemes\": \"./hu/graphemes.ts\",\n    \"./hu/gtValue\": \"./hu/gtValue.ts\",\n    \"./hu/guard\": \"./hu/guard.ts\",\n    \"./hu/hash\": \"./hu/hash.ts\",\n    \"./hu/hexadecimal\": \"./hu/hexadecimal.ts\",\n    \"./hu/hexColor\": \"./hu/hexColor.ts\",\n    \"./hu/imei\": \"./hu/imei.ts\",\n    \"./hu/includes\": \"./hu/includes.ts\",\n    \"./hu/integer\": \"./hu/integer.ts\",\n    \"./hu/ip\": \"./hu/ip.ts\",\n    \"./hu/ipv4\": \"./hu/ipv4.ts\",\n    \"./hu/ipv6\": \"./hu/ipv6.ts\",\n    \"./hu/isbn\": \"./hu/isbn.ts\",\n    \"./hu/isoDate\": \"./hu/isoDate.ts\",\n    \"./hu/isoDateTime\": \"./hu/isoDateTime.ts\",\n    \"./hu/isoTime\": \"./hu/isoTime.ts\",\n    \"./hu/isoTimeSecond\": \"./hu/isoTimeSecond.ts\",\n    \"./hu/isoTimestamp\": \"./hu/isoTimestamp.ts\",\n    \"./hu/isoWeek\": \"./hu/isoWeek.ts\",\n    \"./hu/isrc\": \"./hu/isrc.ts\",\n    \"./hu/jwsCompact\": \"./hu/jwsCompact.ts\",\n    \"./hu/length\": \"./hu/length.ts\",\n    \"./hu/ltValue\": \"./hu/ltValue.ts\",\n    \"./hu/mac\": \"./hu/mac.ts\",\n    \"./hu/mac48\": \"./hu/mac48.ts\",\n    \"./hu/mac64\": \"./hu/mac64.ts\",\n    \"./hu/maxBytes\": \"./hu/maxBytes.ts\",\n    \"./hu/maxEntries\": \"./hu/maxEntries.ts\",\n    \"./hu/maxGraphemes\": \"./hu/maxGraphemes.ts\",\n    \"./hu/maxLength\": \"./hu/maxLength.ts\",\n    \"./hu/maxSize\": \"./hu/maxSize.ts\",\n    \"./hu/maxValue\": \"./hu/maxValue.ts\",\n    \"./hu/maxWords\": \"./hu/maxWords.ts\",\n    \"./hu/mimeType\": \"./hu/mimeType.ts\",\n    \"./hu/minBytes\": \"./hu/minBytes.ts\",\n    \"./hu/minEntries\": \"./hu/minEntries.ts\",\n    \"./hu/minGraphemes\": \"./hu/minGraphemes.ts\",\n    \"./hu/minLength\": \"./hu/minLength.ts\",\n    \"./hu/minSize\": \"./hu/minSize.ts\",\n    \"./hu/minValue\": \"./hu/minValue.ts\",\n    \"./hu/minWords\": \"./hu/minWords.ts\",\n    \"./hu/multipleOf\": \"./hu/multipleOf.ts\",\n    \"./hu/nanoid\": \"./hu/nanoid.ts\",\n    \"./hu/nonEmpty\": \"./hu/nonEmpty.ts\",\n    \"./hu/notBytes\": \"./hu/notBytes.ts\",\n    \"./hu/notEntries\": \"./hu/notEntries.ts\",\n    \"./hu/notGraphemes\": \"./hu/notGraphemes.ts\",\n    \"./hu/notLength\": \"./hu/notLength.ts\",\n    \"./hu/notSize\": \"./hu/notSize.ts\",\n    \"./hu/notValue\": \"./hu/notValue.ts\",\n    \"./hu/notValues\": \"./hu/notValues.ts\",\n    \"./hu/notWords\": \"./hu/notWords.ts\",\n    \"./hu/octal\": \"./hu/octal.ts\",\n    \"./hu/parseBoolean\": \"./hu/parseBoolean.ts\",\n    \"./hu/parseJson\": \"./hu/parseJson.ts\",\n    \"./hu/partialCheck\": \"./hu/partialCheck.ts\",\n    \"./hu/rawCheck\": \"./hu/rawCheck.ts\",\n    \"./hu/rawTransform\": \"./hu/rawTransform.ts\",\n    \"./hu/regex\": \"./hu/regex.ts\",\n    \"./hu/rfcEmail\": \"./hu/rfcEmail.ts\",\n    \"./hu/safeInteger\": \"./hu/safeInteger.ts\",\n    \"./hu/size\": \"./hu/size.ts\",\n    \"./hu/slug\": \"./hu/slug.ts\",\n    \"./hu/someItem\": \"./hu/someItem.ts\",\n    \"./hu/startsWith\": \"./hu/startsWith.ts\",\n    \"./hu/stringifyJson\": \"./hu/stringifyJson.ts\",\n    \"./hu/toBigint\": \"./hu/toBigint.ts\",\n    \"./hu/toDate\": \"./hu/toDate.ts\",\n    \"./hu/toNumber\": \"./hu/toNumber.ts\",\n    \"./hu/toString\": \"./hu/toString.ts\",\n    \"./hu/ulid\": \"./hu/ulid.ts\",\n    \"./hu/url\": \"./hu/url.ts\",\n    \"./hu/uuid\": \"./hu/uuid.ts\",\n    \"./hu/value\": \"./hu/value.ts\",\n    \"./hu/values\": \"./hu/values.ts\",\n    \"./hu/words\": \"./hu/words.ts\",\n    \"./id\": \"./id/index.ts\",\n    \"./id/schema\": \"./id/schema.ts\",\n    \"./id/base64\": \"./id/base64.ts\",\n    \"./id/bic\": \"./id/bic.ts\",\n    \"./id/bytes\": \"./id/bytes.ts\",\n    \"./id/check\": \"./id/check.ts\",\n    \"./id/checkAsync\": \"./id/checkAsync.ts\",\n    \"./id/checkItems\": \"./id/checkItems.ts\",\n    \"./id/checkItemsAsync\": \"./id/checkItemsAsync.ts\",\n    \"./id/creditCard\": \"./id/creditCard.ts\",\n    \"./id/cuid2\": \"./id/cuid2.ts\",\n    \"./id/decimal\": \"./id/decimal.ts\",\n    \"./id/digits\": \"./id/digits.ts\",\n    \"./id/domain\": \"./id/domain.ts\",\n    \"./id/email\": \"./id/email.ts\",\n    \"./id/emoji\": \"./id/emoji.ts\",\n    \"./id/empty\": \"./id/empty.ts\",\n    \"./id/endsWith\": \"./id/endsWith.ts\",\n    \"./id/entries\": \"./id/entries.ts\",\n    \"./id/everyItem\": \"./id/everyItem.ts\",\n    \"./id/excludes\": \"./id/excludes.ts\",\n    \"./id/finite\": \"./id/finite.ts\",\n    \"./id/graphemes\": \"./id/graphemes.ts\",\n    \"./id/gtValue\": \"./id/gtValue.ts\",\n    \"./id/guard\": \"./id/guard.ts\",\n    \"./id/hash\": \"./id/hash.ts\",\n    \"./id/hexadecimal\": \"./id/hexadecimal.ts\",\n    \"./id/hexColor\": \"./id/hexColor.ts\",\n    \"./id/imei\": \"./id/imei.ts\",\n    \"./id/includes\": \"./id/includes.ts\",\n    \"./id/integer\": \"./id/integer.ts\",\n    \"./id/ip\": \"./id/ip.ts\",\n    \"./id/ipv4\": \"./id/ipv4.ts\",\n    \"./id/ipv6\": \"./id/ipv6.ts\",\n    \"./id/isbn\": \"./id/isbn.ts\",\n    \"./id/isoDate\": \"./id/isoDate.ts\",\n    \"./id/isoDateTime\": \"./id/isoDateTime.ts\",\n    \"./id/isoTime\": \"./id/isoTime.ts\",\n    \"./id/isoTimeSecond\": \"./id/isoTimeSecond.ts\",\n    \"./id/isoTimestamp\": \"./id/isoTimestamp.ts\",\n    \"./id/isoWeek\": \"./id/isoWeek.ts\",\n    \"./id/isrc\": \"./id/isrc.ts\",\n    \"./id/jwsCompact\": \"./id/jwsCompact.ts\",\n    \"./id/length\": \"./id/length.ts\",\n    \"./id/ltValue\": \"./id/ltValue.ts\",\n    \"./id/mac\": \"./id/mac.ts\",\n    \"./id/mac48\": \"./id/mac48.ts\",\n    \"./id/mac64\": \"./id/mac64.ts\",\n    \"./id/maxBytes\": \"./id/maxBytes.ts\",\n    \"./id/maxEntries\": \"./id/maxEntries.ts\",\n    \"./id/maxGraphemes\": \"./id/maxGraphemes.ts\",\n    \"./id/maxLength\": \"./id/maxLength.ts\",\n    \"./id/maxSize\": \"./id/maxSize.ts\",\n    \"./id/maxValue\": \"./id/maxValue.ts\",\n    \"./id/maxWords\": \"./id/maxWords.ts\",\n    \"./id/mimeType\": \"./id/mimeType.ts\",\n    \"./id/minBytes\": \"./id/minBytes.ts\",\n    \"./id/minEntries\": \"./id/minEntries.ts\",\n    \"./id/minGraphemes\": \"./id/minGraphemes.ts\",\n    \"./id/minLength\": \"./id/minLength.ts\",\n    \"./id/minSize\": \"./id/minSize.ts\",\n    \"./id/minValue\": \"./id/minValue.ts\",\n    \"./id/minWords\": \"./id/minWords.ts\",\n    \"./id/multipleOf\": \"./id/multipleOf.ts\",\n    \"./id/nanoid\": \"./id/nanoid.ts\",\n    \"./id/nonEmpty\": \"./id/nonEmpty.ts\",\n    \"./id/notBytes\": \"./id/notBytes.ts\",\n    \"./id/notEntries\": \"./id/notEntries.ts\",\n    \"./id/notGraphemes\": \"./id/notGraphemes.ts\",\n    \"./id/notLength\": \"./id/notLength.ts\",\n    \"./id/notSize\": \"./id/notSize.ts\",\n    \"./id/notValue\": \"./id/notValue.ts\",\n    \"./id/notValues\": \"./id/notValues.ts\",\n    \"./id/notWords\": \"./id/notWords.ts\",\n    \"./id/octal\": \"./id/octal.ts\",\n    \"./id/parseBoolean\": \"./id/parseBoolean.ts\",\n    \"./id/parseJson\": \"./id/parseJson.ts\",\n    \"./id/partialCheck\": \"./id/partialCheck.ts\",\n    \"./id/rawCheck\": \"./id/rawCheck.ts\",\n    \"./id/rawTransform\": \"./id/rawTransform.ts\",\n    \"./id/regex\": \"./id/regex.ts\",\n    \"./id/rfcEmail\": \"./id/rfcEmail.ts\",\n    \"./id/safeInteger\": \"./id/safeInteger.ts\",\n    \"./id/size\": \"./id/size.ts\",\n    \"./id/slug\": \"./id/slug.ts\",\n    \"./id/someItem\": \"./id/someItem.ts\",\n    \"./id/startsWith\": \"./id/startsWith.ts\",\n    \"./id/stringifyJson\": \"./id/stringifyJson.ts\",\n    \"./id/toBigint\": \"./id/toBigint.ts\",\n    \"./id/toDate\": \"./id/toDate.ts\",\n    \"./id/toNumber\": \"./id/toNumber.ts\",\n    \"./id/toString\": \"./id/toString.ts\",\n    \"./id/ulid\": \"./id/ulid.ts\",\n    \"./id/url\": \"./id/url.ts\",\n    \"./id/uuid\": \"./id/uuid.ts\",\n    \"./id/value\": \"./id/value.ts\",\n    \"./id/values\": \"./id/values.ts\",\n    \"./id/words\": \"./id/words.ts\",\n    \"./it\": \"./it/index.ts\",\n    \"./it/schema\": \"./it/schema.ts\",\n    \"./it/base64\": \"./it/base64.ts\",\n    \"./it/bic\": \"./it/bic.ts\",\n    \"./it/bytes\": \"./it/bytes.ts\",\n    \"./it/check\": \"./it/check.ts\",\n    \"./it/checkAsync\": \"./it/checkAsync.ts\",\n    \"./it/checkItems\": \"./it/checkItems.ts\",\n    \"./it/checkItemsAsync\": \"./it/checkItemsAsync.ts\",\n    \"./it/creditCard\": \"./it/creditCard.ts\",\n    \"./it/cuid2\": \"./it/cuid2.ts\",\n    \"./it/decimal\": \"./it/decimal.ts\",\n    \"./it/digits\": \"./it/digits.ts\",\n    \"./it/domain\": \"./it/domain.ts\",\n    \"./it/email\": \"./it/email.ts\",\n    \"./it/emoji\": \"./it/emoji.ts\",\n    \"./it/empty\": \"./it/empty.ts\",\n    \"./it/endsWith\": \"./it/endsWith.ts\",\n    \"./it/entries\": \"./it/entries.ts\",\n    \"./it/everyItem\": \"./it/everyItem.ts\",\n    \"./it/excludes\": \"./it/excludes.ts\",\n    \"./it/finite\": \"./it/finite.ts\",\n    \"./it/graphemes\": \"./it/graphemes.ts\",\n    \"./it/gtValue\": \"./it/gtValue.ts\",\n    \"./it/guard\": \"./it/guard.ts\",\n    \"./it/hash\": \"./it/hash.ts\",\n    \"./it/hexadecimal\": \"./it/hexadecimal.ts\",\n    \"./it/hexColor\": \"./it/hexColor.ts\",\n    \"./it/imei\": \"./it/imei.ts\",\n    \"./it/includes\": \"./it/includes.ts\",\n    \"./it/integer\": \"./it/integer.ts\",\n    \"./it/ip\": \"./it/ip.ts\",\n    \"./it/ipv4\": \"./it/ipv4.ts\",\n    \"./it/ipv6\": \"./it/ipv6.ts\",\n    \"./it/isbn\": \"./it/isbn.ts\",\n    \"./it/isoDate\": \"./it/isoDate.ts\",\n    \"./it/isoDateTime\": \"./it/isoDateTime.ts\",\n    \"./it/isoTime\": \"./it/isoTime.ts\",\n    \"./it/isoTimeSecond\": \"./it/isoTimeSecond.ts\",\n    \"./it/isoTimestamp\": \"./it/isoTimestamp.ts\",\n    \"./it/isoWeek\": \"./it/isoWeek.ts\",\n    \"./it/isrc\": \"./it/isrc.ts\",\n    \"./it/jwsCompact\": \"./it/jwsCompact.ts\",\n    \"./it/length\": \"./it/length.ts\",\n    \"./it/ltValue\": \"./it/ltValue.ts\",\n    \"./it/mac\": \"./it/mac.ts\",\n    \"./it/mac48\": \"./it/mac48.ts\",\n    \"./it/mac64\": \"./it/mac64.ts\",\n    \"./it/maxBytes\": \"./it/maxBytes.ts\",\n    \"./it/maxEntries\": \"./it/maxEntries.ts\",\n    \"./it/maxGraphemes\": \"./it/maxGraphemes.ts\",\n    \"./it/maxLength\": \"./it/maxLength.ts\",\n    \"./it/maxSize\": \"./it/maxSize.ts\",\n    \"./it/maxValue\": \"./it/maxValue.ts\",\n    \"./it/maxWords\": \"./it/maxWords.ts\",\n    \"./it/mimeType\": \"./it/mimeType.ts\",\n    \"./it/minBytes\": \"./it/minBytes.ts\",\n    \"./it/minEntries\": \"./it/minEntries.ts\",\n    \"./it/minGraphemes\": \"./it/minGraphemes.ts\",\n    \"./it/minLength\": \"./it/minLength.ts\",\n    \"./it/minSize\": \"./it/minSize.ts\",\n    \"./it/minValue\": \"./it/minValue.ts\",\n    \"./it/minWords\": \"./it/minWords.ts\",\n    \"./it/multipleOf\": \"./it/multipleOf.ts\",\n    \"./it/nanoid\": \"./it/nanoid.ts\",\n    \"./it/nonEmpty\": \"./it/nonEmpty.ts\",\n    \"./it/notBytes\": \"./it/notBytes.ts\",\n    \"./it/notEntries\": \"./it/notEntries.ts\",\n    \"./it/notGraphemes\": \"./it/notGraphemes.ts\",\n    \"./it/notLength\": \"./it/notLength.ts\",\n    \"./it/notSize\": \"./it/notSize.ts\",\n    \"./it/notValue\": \"./it/notValue.ts\",\n    \"./it/notValues\": \"./it/notValues.ts\",\n    \"./it/notWords\": \"./it/notWords.ts\",\n    \"./it/octal\": \"./it/octal.ts\",\n    \"./it/parseBoolean\": \"./it/parseBoolean.ts\",\n    \"./it/parseJson\": \"./it/parseJson.ts\",\n    \"./it/partialCheck\": \"./it/partialCheck.ts\",\n    \"./it/rawCheck\": \"./it/rawCheck.ts\",\n    \"./it/rawTransform\": \"./it/rawTransform.ts\",\n    \"./it/regex\": \"./it/regex.ts\",\n    \"./it/rfcEmail\": \"./it/rfcEmail.ts\",\n    \"./it/safeInteger\": \"./it/safeInteger.ts\",\n    \"./it/size\": \"./it/size.ts\",\n    \"./it/slug\": \"./it/slug.ts\",\n    \"./it/someItem\": \"./it/someItem.ts\",\n    \"./it/startsWith\": \"./it/startsWith.ts\",\n    \"./it/stringifyJson\": \"./it/stringifyJson.ts\",\n    \"./it/toBigint\": \"./it/toBigint.ts\",\n    \"./it/toDate\": \"./it/toDate.ts\",\n    \"./it/toNumber\": \"./it/toNumber.ts\",\n    \"./it/toString\": \"./it/toString.ts\",\n    \"./it/ulid\": \"./it/ulid.ts\",\n    \"./it/url\": \"./it/url.ts\",\n    \"./it/uuid\": \"./it/uuid.ts\",\n    \"./it/value\": \"./it/value.ts\",\n    \"./it/values\": \"./it/values.ts\",\n    \"./it/words\": \"./it/words.ts\",\n    \"./ja\": \"./ja/index.ts\",\n    \"./ja/schema\": \"./ja/schema.ts\",\n    \"./ja/base64\": \"./ja/base64.ts\",\n    \"./ja/bic\": \"./ja/bic.ts\",\n    \"./ja/bytes\": \"./ja/bytes.ts\",\n    \"./ja/check\": \"./ja/check.ts\",\n    \"./ja/checkAsync\": \"./ja/checkAsync.ts\",\n    \"./ja/checkItems\": \"./ja/checkItems.ts\",\n    \"./ja/checkItemsAsync\": \"./ja/checkItemsAsync.ts\",\n    \"./ja/creditCard\": \"./ja/creditCard.ts\",\n    \"./ja/cuid2\": \"./ja/cuid2.ts\",\n    \"./ja/decimal\": \"./ja/decimal.ts\",\n    \"./ja/digits\": \"./ja/digits.ts\",\n    \"./ja/domain\": \"./ja/domain.ts\",\n    \"./ja/email\": \"./ja/email.ts\",\n    \"./ja/emoji\": \"./ja/emoji.ts\",\n    \"./ja/empty\": \"./ja/empty.ts\",\n    \"./ja/endsWith\": \"./ja/endsWith.ts\",\n    \"./ja/entries\": \"./ja/entries.ts\",\n    \"./ja/everyItem\": \"./ja/everyItem.ts\",\n    \"./ja/excludes\": \"./ja/excludes.ts\",\n    \"./ja/finite\": \"./ja/finite.ts\",\n    \"./ja/graphemes\": \"./ja/graphemes.ts\",\n    \"./ja/gtValue\": \"./ja/gtValue.ts\",\n    \"./ja/guard\": \"./ja/guard.ts\",\n    \"./ja/hash\": \"./ja/hash.ts\",\n    \"./ja/hexadecimal\": \"./ja/hexadecimal.ts\",\n    \"./ja/hexColor\": \"./ja/hexColor.ts\",\n    \"./ja/imei\": \"./ja/imei.ts\",\n    \"./ja/includes\": \"./ja/includes.ts\",\n    \"./ja/integer\": \"./ja/integer.ts\",\n    \"./ja/ip\": \"./ja/ip.ts\",\n    \"./ja/ipv4\": \"./ja/ipv4.ts\",\n    \"./ja/ipv6\": \"./ja/ipv6.ts\",\n    \"./ja/isbn\": \"./ja/isbn.ts\",\n    \"./ja/isoDate\": \"./ja/isoDate.ts\",\n    \"./ja/isoDateTime\": \"./ja/isoDateTime.ts\",\n    \"./ja/isoTime\": \"./ja/isoTime.ts\",\n    \"./ja/isoTimeSecond\": \"./ja/isoTimeSecond.ts\",\n    \"./ja/isoTimestamp\": \"./ja/isoTimestamp.ts\",\n    \"./ja/isoWeek\": \"./ja/isoWeek.ts\",\n    \"./ja/isrc\": \"./ja/isrc.ts\",\n    \"./ja/jwsCompact\": \"./ja/jwsCompact.ts\",\n    \"./ja/length\": \"./ja/length.ts\",\n    \"./ja/ltValue\": \"./ja/ltValue.ts\",\n    \"./ja/mac\": \"./ja/mac.ts\",\n    \"./ja/mac48\": \"./ja/mac48.ts\",\n    \"./ja/mac64\": \"./ja/mac64.ts\",\n    \"./ja/maxBytes\": \"./ja/maxBytes.ts\",\n    \"./ja/maxEntries\": \"./ja/maxEntries.ts\",\n    \"./ja/maxGraphemes\": \"./ja/maxGraphemes.ts\",\n    \"./ja/maxLength\": \"./ja/maxLength.ts\",\n    \"./ja/maxSize\": \"./ja/maxSize.ts\",\n    \"./ja/maxValue\": \"./ja/maxValue.ts\",\n    \"./ja/maxWords\": \"./ja/maxWords.ts\",\n    \"./ja/mimeType\": \"./ja/mimeType.ts\",\n    \"./ja/minBytes\": \"./ja/minBytes.ts\",\n    \"./ja/minEntries\": \"./ja/minEntries.ts\",\n    \"./ja/minGraphemes\": \"./ja/minGraphemes.ts\",\n    \"./ja/minLength\": \"./ja/minLength.ts\",\n    \"./ja/minSize\": \"./ja/minSize.ts\",\n    \"./ja/minValue\": \"./ja/minValue.ts\",\n    \"./ja/minWords\": \"./ja/minWords.ts\",\n    \"./ja/multipleOf\": \"./ja/multipleOf.ts\",\n    \"./ja/nanoid\": \"./ja/nanoid.ts\",\n    \"./ja/nonEmpty\": \"./ja/nonEmpty.ts\",\n    \"./ja/notBytes\": \"./ja/notBytes.ts\",\n    \"./ja/notEntries\": \"./ja/notEntries.ts\",\n    \"./ja/notGraphemes\": \"./ja/notGraphemes.ts\",\n    \"./ja/notLength\": \"./ja/notLength.ts\",\n    \"./ja/notSize\": \"./ja/notSize.ts\",\n    \"./ja/notValue\": \"./ja/notValue.ts\",\n    \"./ja/notValues\": \"./ja/notValues.ts\",\n    \"./ja/notWords\": \"./ja/notWords.ts\",\n    \"./ja/octal\": \"./ja/octal.ts\",\n    \"./ja/parseBoolean\": \"./ja/parseBoolean.ts\",\n    \"./ja/parseJson\": \"./ja/parseJson.ts\",\n    \"./ja/partialCheck\": \"./ja/partialCheck.ts\",\n    \"./ja/rawCheck\": \"./ja/rawCheck.ts\",\n    \"./ja/rawTransform\": \"./ja/rawTransform.ts\",\n    \"./ja/regex\": \"./ja/regex.ts\",\n    \"./ja/rfcEmail\": \"./ja/rfcEmail.ts\",\n    \"./ja/safeInteger\": \"./ja/safeInteger.ts\",\n    \"./ja/size\": \"./ja/size.ts\",\n    \"./ja/slug\": \"./ja/slug.ts\",\n    \"./ja/someItem\": \"./ja/someItem.ts\",\n    \"./ja/startsWith\": \"./ja/startsWith.ts\",\n    \"./ja/stringifyJson\": \"./ja/stringifyJson.ts\",\n    \"./ja/toBigint\": \"./ja/toBigint.ts\",\n    \"./ja/toDate\": \"./ja/toDate.ts\",\n    \"./ja/toNumber\": \"./ja/toNumber.ts\",\n    \"./ja/toString\": \"./ja/toString.ts\",\n    \"./ja/ulid\": \"./ja/ulid.ts\",\n    \"./ja/url\": \"./ja/url.ts\",\n    \"./ja/uuid\": \"./ja/uuid.ts\",\n    \"./ja/value\": \"./ja/value.ts\",\n    \"./ja/values\": \"./ja/values.ts\",\n    \"./ja/words\": \"./ja/words.ts\",\n    \"./ko\": \"./ko/index.ts\",\n    \"./ko/schema\": \"./ko/schema.ts\",\n    \"./ko/base64\": \"./ko/base64.ts\",\n    \"./ko/bic\": \"./ko/bic.ts\",\n    \"./ko/bytes\": \"./ko/bytes.ts\",\n    \"./ko/check\": \"./ko/check.ts\",\n    \"./ko/checkAsync\": \"./ko/checkAsync.ts\",\n    \"./ko/checkItems\": \"./ko/checkItems.ts\",\n    \"./ko/checkItemsAsync\": \"./ko/checkItemsAsync.ts\",\n    \"./ko/creditCard\": \"./ko/creditCard.ts\",\n    \"./ko/cuid2\": \"./ko/cuid2.ts\",\n    \"./ko/decimal\": \"./ko/decimal.ts\",\n    \"./ko/digits\": \"./ko/digits.ts\",\n    \"./ko/domain\": \"./ko/domain.ts\",\n    \"./ko/email\": \"./ko/email.ts\",\n    \"./ko/emoji\": \"./ko/emoji.ts\",\n    \"./ko/empty\": \"./ko/empty.ts\",\n    \"./ko/endsWith\": \"./ko/endsWith.ts\",\n    \"./ko/entries\": \"./ko/entries.ts\",\n    \"./ko/everyItem\": \"./ko/everyItem.ts\",\n    \"./ko/excludes\": \"./ko/excludes.ts\",\n    \"./ko/finite\": \"./ko/finite.ts\",\n    \"./ko/graphemes\": \"./ko/graphemes.ts\",\n    \"./ko/gtValue\": \"./ko/gtValue.ts\",\n    \"./ko/guard\": \"./ko/guard.ts\",\n    \"./ko/hash\": \"./ko/hash.ts\",\n    \"./ko/hexadecimal\": \"./ko/hexadecimal.ts\",\n    \"./ko/hexColor\": \"./ko/hexColor.ts\",\n    \"./ko/imei\": \"./ko/imei.ts\",\n    \"./ko/includes\": \"./ko/includes.ts\",\n    \"./ko/integer\": \"./ko/integer.ts\",\n    \"./ko/ip\": \"./ko/ip.ts\",\n    \"./ko/ipv4\": \"./ko/ipv4.ts\",\n    \"./ko/ipv6\": \"./ko/ipv6.ts\",\n    \"./ko/isbn\": \"./ko/isbn.ts\",\n    \"./ko/isoDate\": \"./ko/isoDate.ts\",\n    \"./ko/isoDateTime\": \"./ko/isoDateTime.ts\",\n    \"./ko/isoTime\": \"./ko/isoTime.ts\",\n    \"./ko/isoTimeSecond\": \"./ko/isoTimeSecond.ts\",\n    \"./ko/isoTimestamp\": \"./ko/isoTimestamp.ts\",\n    \"./ko/isoWeek\": \"./ko/isoWeek.ts\",\n    \"./ko/isrc\": \"./ko/isrc.ts\",\n    \"./ko/jwsCompact\": \"./ko/jwsCompact.ts\",\n    \"./ko/length\": \"./ko/length.ts\",\n    \"./ko/ltValue\": \"./ko/ltValue.ts\",\n    \"./ko/mac\": \"./ko/mac.ts\",\n    \"./ko/mac48\": \"./ko/mac48.ts\",\n    \"./ko/mac64\": \"./ko/mac64.ts\",\n    \"./ko/maxBytes\": \"./ko/maxBytes.ts\",\n    \"./ko/maxEntries\": \"./ko/maxEntries.ts\",\n    \"./ko/maxGraphemes\": \"./ko/maxGraphemes.ts\",\n    \"./ko/maxLength\": \"./ko/maxLength.ts\",\n    \"./ko/maxSize\": \"./ko/maxSize.ts\",\n    \"./ko/maxValue\": \"./ko/maxValue.ts\",\n    \"./ko/maxWords\": \"./ko/maxWords.ts\",\n    \"./ko/mimeType\": \"./ko/mimeType.ts\",\n    \"./ko/minBytes\": \"./ko/minBytes.ts\",\n    \"./ko/minEntries\": \"./ko/minEntries.ts\",\n    \"./ko/minGraphemes\": \"./ko/minGraphemes.ts\",\n    \"./ko/minLength\": \"./ko/minLength.ts\",\n    \"./ko/minSize\": \"./ko/minSize.ts\",\n    \"./ko/minValue\": \"./ko/minValue.ts\",\n    \"./ko/minWords\": \"./ko/minWords.ts\",\n    \"./ko/multipleOf\": \"./ko/multipleOf.ts\",\n    \"./ko/nanoid\": \"./ko/nanoid.ts\",\n    \"./ko/nonEmpty\": \"./ko/nonEmpty.ts\",\n    \"./ko/notBytes\": \"./ko/notBytes.ts\",\n    \"./ko/notEntries\": \"./ko/notEntries.ts\",\n    \"./ko/notGraphemes\": \"./ko/notGraphemes.ts\",\n    \"./ko/notLength\": \"./ko/notLength.ts\",\n    \"./ko/notSize\": \"./ko/notSize.ts\",\n    \"./ko/notValue\": \"./ko/notValue.ts\",\n    \"./ko/notValues\": \"./ko/notValues.ts\",\n    \"./ko/notWords\": \"./ko/notWords.ts\",\n    \"./ko/octal\": \"./ko/octal.ts\",\n    \"./ko/parseBoolean\": \"./ko/parseBoolean.ts\",\n    \"./ko/parseJson\": \"./ko/parseJson.ts\",\n    \"./ko/partialCheck\": \"./ko/partialCheck.ts\",\n    \"./ko/rawCheck\": \"./ko/rawCheck.ts\",\n    \"./ko/rawTransform\": \"./ko/rawTransform.ts\",\n    \"./ko/regex\": \"./ko/regex.ts\",\n    \"./ko/rfcEmail\": \"./ko/rfcEmail.ts\",\n    \"./ko/safeInteger\": \"./ko/safeInteger.ts\",\n    \"./ko/size\": \"./ko/size.ts\",\n    \"./ko/slug\": \"./ko/slug.ts\",\n    \"./ko/someItem\": \"./ko/someItem.ts\",\n    \"./ko/startsWith\": \"./ko/startsWith.ts\",\n    \"./ko/stringifyJson\": \"./ko/stringifyJson.ts\",\n    \"./ko/toBigint\": \"./ko/toBigint.ts\",\n    \"./ko/toDate\": \"./ko/toDate.ts\",\n    \"./ko/toNumber\": \"./ko/toNumber.ts\",\n    \"./ko/toString\": \"./ko/toString.ts\",\n    \"./ko/ulid\": \"./ko/ulid.ts\",\n    \"./ko/url\": \"./ko/url.ts\",\n    \"./ko/uuid\": \"./ko/uuid.ts\",\n    \"./ko/value\": \"./ko/value.ts\",\n    \"./ko/values\": \"./ko/values.ts\",\n    \"./ko/words\": \"./ko/words.ts\",\n    \"./kr\": \"./kr/index.ts\",\n    \"./kr/schema\": \"./kr/schema.ts\",\n    \"./kr/base64\": \"./kr/base64.ts\",\n    \"./kr/bic\": \"./kr/bic.ts\",\n    \"./kr/bytes\": \"./kr/bytes.ts\",\n    \"./kr/check\": \"./kr/check.ts\",\n    \"./kr/checkAsync\": \"./kr/checkAsync.ts\",\n    \"./kr/checkItems\": \"./kr/checkItems.ts\",\n    \"./kr/checkItemsAsync\": \"./kr/checkItemsAsync.ts\",\n    \"./kr/creditCard\": \"./kr/creditCard.ts\",\n    \"./kr/cuid2\": \"./kr/cuid2.ts\",\n    \"./kr/decimal\": \"./kr/decimal.ts\",\n    \"./kr/digits\": \"./kr/digits.ts\",\n    \"./kr/domain\": \"./kr/domain.ts\",\n    \"./kr/email\": \"./kr/email.ts\",\n    \"./kr/emoji\": \"./kr/emoji.ts\",\n    \"./kr/empty\": \"./kr/empty.ts\",\n    \"./kr/endsWith\": \"./kr/endsWith.ts\",\n    \"./kr/entries\": \"./kr/entries.ts\",\n    \"./kr/everyItem\": \"./kr/everyItem.ts\",\n    \"./kr/excludes\": \"./kr/excludes.ts\",\n    \"./kr/finite\": \"./kr/finite.ts\",\n    \"./kr/graphemes\": \"./kr/graphemes.ts\",\n    \"./kr/gtValue\": \"./kr/gtValue.ts\",\n    \"./kr/guard\": \"./kr/guard.ts\",\n    \"./kr/hash\": \"./kr/hash.ts\",\n    \"./kr/hexadecimal\": \"./kr/hexadecimal.ts\",\n    \"./kr/hexColor\": \"./kr/hexColor.ts\",\n    \"./kr/imei\": \"./kr/imei.ts\",\n    \"./kr/includes\": \"./kr/includes.ts\",\n    \"./kr/integer\": \"./kr/integer.ts\",\n    \"./kr/ip\": \"./kr/ip.ts\",\n    \"./kr/ipv4\": \"./kr/ipv4.ts\",\n    \"./kr/ipv6\": \"./kr/ipv6.ts\",\n    \"./kr/isbn\": \"./kr/isbn.ts\",\n    \"./kr/isoDate\": \"./kr/isoDate.ts\",\n    \"./kr/isoDateTime\": \"./kr/isoDateTime.ts\",\n    \"./kr/isoTime\": \"./kr/isoTime.ts\",\n    \"./kr/isoTimeSecond\": \"./kr/isoTimeSecond.ts\",\n    \"./kr/isoTimestamp\": \"./kr/isoTimestamp.ts\",\n    \"./kr/isoWeek\": \"./kr/isoWeek.ts\",\n    \"./kr/isrc\": \"./kr/isrc.ts\",\n    \"./kr/jwsCompact\": \"./kr/jwsCompact.ts\",\n    \"./kr/length\": \"./kr/length.ts\",\n    \"./kr/ltValue\": \"./kr/ltValue.ts\",\n    \"./kr/mac\": \"./kr/mac.ts\",\n    \"./kr/mac48\": \"./kr/mac48.ts\",\n    \"./kr/mac64\": \"./kr/mac64.ts\",\n    \"./kr/maxBytes\": \"./kr/maxBytes.ts\",\n    \"./kr/maxEntries\": \"./kr/maxEntries.ts\",\n    \"./kr/maxGraphemes\": \"./kr/maxGraphemes.ts\",\n    \"./kr/maxLength\": \"./kr/maxLength.ts\",\n    \"./kr/maxSize\": \"./kr/maxSize.ts\",\n    \"./kr/maxValue\": \"./kr/maxValue.ts\",\n    \"./kr/maxWords\": \"./kr/maxWords.ts\",\n    \"./kr/mimeType\": \"./kr/mimeType.ts\",\n    \"./kr/minBytes\": \"./kr/minBytes.ts\",\n    \"./kr/minEntries\": \"./kr/minEntries.ts\",\n    \"./kr/minGraphemes\": \"./kr/minGraphemes.ts\",\n    \"./kr/minLength\": \"./kr/minLength.ts\",\n    \"./kr/minSize\": \"./kr/minSize.ts\",\n    \"./kr/minValue\": \"./kr/minValue.ts\",\n    \"./kr/minWords\": \"./kr/minWords.ts\",\n    \"./kr/multipleOf\": \"./kr/multipleOf.ts\",\n    \"./kr/nanoid\": \"./kr/nanoid.ts\",\n    \"./kr/nonEmpty\": \"./kr/nonEmpty.ts\",\n    \"./kr/notBytes\": \"./kr/notBytes.ts\",\n    \"./kr/notEntries\": \"./kr/notEntries.ts\",\n    \"./kr/notGraphemes\": \"./kr/notGraphemes.ts\",\n    \"./kr/notLength\": \"./kr/notLength.ts\",\n    \"./kr/notSize\": \"./kr/notSize.ts\",\n    \"./kr/notValue\": \"./kr/notValue.ts\",\n    \"./kr/notValues\": \"./kr/notValues.ts\",\n    \"./kr/notWords\": \"./kr/notWords.ts\",\n    \"./kr/octal\": \"./kr/octal.ts\",\n    \"./kr/parseBoolean\": \"./kr/parseBoolean.ts\",\n    \"./kr/parseJson\": \"./kr/parseJson.ts\",\n    \"./kr/partialCheck\": \"./kr/partialCheck.ts\",\n    \"./kr/rawCheck\": \"./kr/rawCheck.ts\",\n    \"./kr/rawTransform\": \"./kr/rawTransform.ts\",\n    \"./kr/regex\": \"./kr/regex.ts\",\n    \"./kr/rfcEmail\": \"./kr/rfcEmail.ts\",\n    \"./kr/safeInteger\": \"./kr/safeInteger.ts\",\n    \"./kr/size\": \"./kr/size.ts\",\n    \"./kr/slug\": \"./kr/slug.ts\",\n    \"./kr/someItem\": \"./kr/someItem.ts\",\n    \"./kr/startsWith\": \"./kr/startsWith.ts\",\n    \"./kr/stringifyJson\": \"./kr/stringifyJson.ts\",\n    \"./kr/toBigint\": \"./kr/toBigint.ts\",\n    \"./kr/toDate\": \"./kr/toDate.ts\",\n    \"./kr/toNumber\": \"./kr/toNumber.ts\",\n    \"./kr/toString\": \"./kr/toString.ts\",\n    \"./kr/ulid\": \"./kr/ulid.ts\",\n    \"./kr/url\": \"./kr/url.ts\",\n    \"./kr/uuid\": \"./kr/uuid.ts\",\n    \"./kr/value\": \"./kr/value.ts\",\n    \"./kr/values\": \"./kr/values.ts\",\n    \"./kr/words\": \"./kr/words.ts\",\n    \"./mn\": \"./mn/index.ts\",\n    \"./mn/schema\": \"./mn/schema.ts\",\n    \"./mn/base64\": \"./mn/base64.ts\",\n    \"./mn/bic\": \"./mn/bic.ts\",\n    \"./mn/bytes\": \"./mn/bytes.ts\",\n    \"./mn/check\": \"./mn/check.ts\",\n    \"./mn/checkAsync\": \"./mn/checkAsync.ts\",\n    \"./mn/checkItems\": \"./mn/checkItems.ts\",\n    \"./mn/checkItemsAsync\": \"./mn/checkItemsAsync.ts\",\n    \"./mn/creditCard\": \"./mn/creditCard.ts\",\n    \"./mn/cuid2\": \"./mn/cuid2.ts\",\n    \"./mn/decimal\": \"./mn/decimal.ts\",\n    \"./mn/digits\": \"./mn/digits.ts\",\n    \"./mn/domain\": \"./mn/domain.ts\",\n    \"./mn/email\": \"./mn/email.ts\",\n    \"./mn/emoji\": \"./mn/emoji.ts\",\n    \"./mn/empty\": \"./mn/empty.ts\",\n    \"./mn/endsWith\": \"./mn/endsWith.ts\",\n    \"./mn/entries\": \"./mn/entries.ts\",\n    \"./mn/everyItem\": \"./mn/everyItem.ts\",\n    \"./mn/excludes\": \"./mn/excludes.ts\",\n    \"./mn/finite\": \"./mn/finite.ts\",\n    \"./mn/graphemes\": \"./mn/graphemes.ts\",\n    \"./mn/gtValue\": \"./mn/gtValue.ts\",\n    \"./mn/guard\": \"./mn/guard.ts\",\n    \"./mn/hash\": \"./mn/hash.ts\",\n    \"./mn/hexColor\": \"./mn/hexColor.ts\",\n    \"./mn/hexadecimal\": \"./mn/hexadecimal.ts\",\n    \"./mn/imei\": \"./mn/imei.ts\",\n    \"./mn/includes\": \"./mn/includes.ts\",\n    \"./mn/integer\": \"./mn/integer.ts\",\n    \"./mn/ip\": \"./mn/ip.ts\",\n    \"./mn/ipv4\": \"./mn/ipv4.ts\",\n    \"./mn/ipv6\": \"./mn/ipv6.ts\",\n    \"./mn/isbn\": \"./mn/isbn.ts\",\n    \"./mn/isoDate\": \"./mn/isoDate.ts\",\n    \"./mn/isoDateTime\": \"./mn/isoDateTime.ts\",\n    \"./mn/isoTime\": \"./mn/isoTime.ts\",\n    \"./mn/isoTimeSecond\": \"./mn/isoTimeSecond.ts\",\n    \"./mn/isoTimestamp\": \"./mn/isoTimestamp.ts\",\n    \"./mn/isoWeek\": \"./mn/isoWeek.ts\",\n    \"./mn/isrc\": \"./mn/isrc.ts\",\n    \"./mn/jwsCompact\": \"./mn/jwsCompact.ts\",\n    \"./mn/length\": \"./mn/length.ts\",\n    \"./mn/ltValue\": \"./mn/ltValue.ts\",\n    \"./mn/mac\": \"./mn/mac.ts\",\n    \"./mn/mac48\": \"./mn/mac48.ts\",\n    \"./mn/mac64\": \"./mn/mac64.ts\",\n    \"./mn/maxBytes\": \"./mn/maxBytes.ts\",\n    \"./mn/maxEntries\": \"./mn/maxEntries.ts\",\n    \"./mn/maxGraphemes\": \"./mn/maxGraphemes.ts\",\n    \"./mn/maxLength\": \"./mn/maxLength.ts\",\n    \"./mn/maxSize\": \"./mn/maxSize.ts\",\n    \"./mn/maxValue\": \"./mn/maxValue.ts\",\n    \"./mn/maxWords\": \"./mn/maxWords.ts\",\n    \"./mn/mimeType\": \"./mn/mimeType.ts\",\n    \"./mn/minBytes\": \"./mn/minBytes.ts\",\n    \"./mn/minEntries\": \"./mn/minEntries.ts\",\n    \"./mn/minGraphemes\": \"./mn/minGraphemes.ts\",\n    \"./mn/minLength\": \"./mn/minLength.ts\",\n    \"./mn/minSize\": \"./mn/minSize.ts\",\n    \"./mn/minValue\": \"./mn/minValue.ts\",\n    \"./mn/minWords\": \"./mn/minWords.ts\",\n    \"./mn/multipleOf\": \"./mn/multipleOf.ts\",\n    \"./mn/nanoid\": \"./mn/nanoid.ts\",\n    \"./mn/nonEmpty\": \"./mn/nonEmpty.ts\",\n    \"./mn/notBytes\": \"./mn/notBytes.ts\",\n    \"./mn/notEntries\": \"./mn/notEntries.ts\",\n    \"./mn/notGraphemes\": \"./mn/notGraphemes.ts\",\n    \"./mn/notLength\": \"./mn/notLength.ts\",\n    \"./mn/notSize\": \"./mn/notSize.ts\",\n    \"./mn/notValue\": \"./mn/notValue.ts\",\n    \"./mn/notValues\": \"./mn/notValues.ts\",\n    \"./mn/notWords\": \"./mn/notWords.ts\",\n    \"./mn/octal\": \"./mn/octal.ts\",\n    \"./mn/parseBoolean\": \"./mn/parseBoolean.ts\",\n    \"./mn/parseJson\": \"./mn/parseJson.ts\",\n    \"./mn/partialCheck\": \"./mn/partialCheck.ts\",\n    \"./mn/rawCheck\": \"./mn/rawCheck.ts\",\n    \"./mn/rawTransform\": \"./mn/rawTransform.ts\",\n    \"./mn/regex\": \"./mn/regex.ts\",\n    \"./mn/rfcEmail\": \"./mn/rfcEmail.ts\",\n    \"./mn/safeInteger\": \"./mn/safeInteger.ts\",\n    \"./mn/size\": \"./mn/size.ts\",\n    \"./mn/slug\": \"./mn/slug.ts\",\n    \"./mn/someItem\": \"./mn/someItem.ts\",\n    \"./mn/startsWith\": \"./mn/startsWith.ts\",\n    \"./mn/stringifyJson\": \"./mn/stringifyJson.ts\",\n    \"./mn/toBigint\": \"./mn/toBigint.ts\",\n    \"./mn/toDate\": \"./mn/toDate.ts\",\n    \"./mn/toNumber\": \"./mn/toNumber.ts\",\n    \"./mn/toString\": \"./mn/toString.ts\",\n    \"./mn/ulid\": \"./mn/ulid.ts\",\n    \"./mn/url\": \"./mn/url.ts\",\n    \"./mn/uuid\": \"./mn/uuid.ts\",\n    \"./mn/value\": \"./mn/value.ts\",\n    \"./mn/values\": \"./mn/values.ts\",\n    \"./mn/words\": \"./mn/words.ts\",\n    \"./nb\": \"./nb/index.ts\",\n    \"./nb/schema\": \"./nb/schema.ts\",\n    \"./nb/base64\": \"./nb/base64.ts\",\n    \"./nb/bic\": \"./nb/bic.ts\",\n    \"./nb/bytes\": \"./nb/bytes.ts\",\n    \"./nb/check\": \"./nb/check.ts\",\n    \"./nb/checkAsync\": \"./nb/checkAsync.ts\",\n    \"./nb/checkItems\": \"./nb/checkItems.ts\",\n    \"./nb/checkItemsAsync\": \"./nb/checkItemsAsync.ts\",\n    \"./nb/creditCard\": \"./nb/creditCard.ts\",\n    \"./nb/cuid2\": \"./nb/cuid2.ts\",\n    \"./nb/decimal\": \"./nb/decimal.ts\",\n    \"./nb/digits\": \"./nb/digits.ts\",\n    \"./nb/domain\": \"./nb/domain.ts\",\n    \"./nb/email\": \"./nb/email.ts\",\n    \"./nb/emoji\": \"./nb/emoji.ts\",\n    \"./nb/empty\": \"./nb/empty.ts\",\n    \"./nb/endsWith\": \"./nb/endsWith.ts\",\n    \"./nb/entries\": \"./nb/entries.ts\",\n    \"./nb/everyItem\": \"./nb/everyItem.ts\",\n    \"./nb/excludes\": \"./nb/excludes.ts\",\n    \"./nb/finite\": \"./nb/finite.ts\",\n    \"./nb/graphemes\": \"./nb/graphemes.ts\",\n    \"./nb/gtValue\": \"./nb/gtValue.ts\",\n    \"./nb/guard\": \"./nb/guard.ts\",\n    \"./nb/hash\": \"./nb/hash.ts\",\n    \"./nb/hexadecimal\": \"./nb/hexadecimal.ts\",\n    \"./nb/hexColor\": \"./nb/hexColor.ts\",\n    \"./nb/imei\": \"./nb/imei.ts\",\n    \"./nb/includes\": \"./nb/includes.ts\",\n    \"./nb/integer\": \"./nb/integer.ts\",\n    \"./nb/ip\": \"./nb/ip.ts\",\n    \"./nb/ipv4\": \"./nb/ipv4.ts\",\n    \"./nb/ipv6\": \"./nb/ipv6.ts\",\n    \"./nb/isbn\": \"./nb/isbn.ts\",\n    \"./nb/isoDate\": \"./nb/isoDate.ts\",\n    \"./nb/isoDateTime\": \"./nb/isoDateTime.ts\",\n    \"./nb/isoTime\": \"./nb/isoTime.ts\",\n    \"./nb/isoTimeSecond\": \"./nb/isoTimeSecond.ts\",\n    \"./nb/isoTimestamp\": \"./nb/isoTimestamp.ts\",\n    \"./nb/isoWeek\": \"./nb/isoWeek.ts\",\n    \"./nb/isrc\": \"./nb/isrc.ts\",\n    \"./nb/jwsCompact\": \"./nb/jwsCompact.ts\",\n    \"./nb/length\": \"./nb/length.ts\",\n    \"./nb/ltValue\": \"./nb/ltValue.ts\",\n    \"./nb/mac\": \"./nb/mac.ts\",\n    \"./nb/mac48\": \"./nb/mac48.ts\",\n    \"./nb/mac64\": \"./nb/mac64.ts\",\n    \"./nb/maxBytes\": \"./nb/maxBytes.ts\",\n    \"./nb/maxEntries\": \"./nb/maxEntries.ts\",\n    \"./nb/maxGraphemes\": \"./nb/maxGraphemes.ts\",\n    \"./nb/maxLength\": \"./nb/maxLength.ts\",\n    \"./nb/maxSize\": \"./nb/maxSize.ts\",\n    \"./nb/maxValue\": \"./nb/maxValue.ts\",\n    \"./nb/maxWords\": \"./nb/maxWords.ts\",\n    \"./nb/mimeType\": \"./nb/mimeType.ts\",\n    \"./nb/minBytes\": \"./nb/minBytes.ts\",\n    \"./nb/minEntries\": \"./nb/minEntries.ts\",\n    \"./nb/minGraphemes\": \"./nb/minGraphemes.ts\",\n    \"./nb/minLength\": \"./nb/minLength.ts\",\n    \"./nb/minSize\": \"./nb/minSize.ts\",\n    \"./nb/minValue\": \"./nb/minValue.ts\",\n    \"./nb/minWords\": \"./nb/minWords.ts\",\n    \"./nb/multipleOf\": \"./nb/multipleOf.ts\",\n    \"./nb/nanoid\": \"./nb/nanoid.ts\",\n    \"./nb/nonEmpty\": \"./nb/nonEmpty.ts\",\n    \"./nb/notBytes\": \"./nb/notBytes.ts\",\n    \"./nb/notEntries\": \"./nb/notEntries.ts\",\n    \"./nb/notGraphemes\": \"./nb/notGraphemes.ts\",\n    \"./nb/notLength\": \"./nb/notLength.ts\",\n    \"./nb/notSize\": \"./nb/notSize.ts\",\n    \"./nb/notValue\": \"./nb/notValue.ts\",\n    \"./nb/notValues\": \"./nb/notValues.ts\",\n    \"./nb/notWords\": \"./nb/notWords.ts\",\n    \"./nb/octal\": \"./nb/octal.ts\",\n    \"./nb/parseBoolean\": \"./nb/parseBoolean.ts\",\n    \"./nb/parseJson\": \"./nb/parseJson.ts\",\n    \"./nb/partialCheck\": \"./nb/partialCheck.ts\",\n    \"./nb/rawCheck\": \"./nb/rawCheck.ts\",\n    \"./nb/rawTransform\": \"./nb/rawTransform.ts\",\n    \"./nb/regex\": \"./nb/regex.ts\",\n    \"./nb/rfcEmail\": \"./nb/rfcEmail.ts\",\n    \"./nb/safeInteger\": \"./nb/safeInteger.ts\",\n    \"./nb/size\": \"./nb/size.ts\",\n    \"./nb/slug\": \"./nb/slug.ts\",\n    \"./nb/someItem\": \"./nb/someItem.ts\",\n    \"./nb/startsWith\": \"./nb/startsWith.ts\",\n    \"./nb/stringifyJson\": \"./nb/stringifyJson.ts\",\n    \"./nb/toBigint\": \"./nb/toBigint.ts\",\n    \"./nb/toDate\": \"./nb/toDate.ts\",\n    \"./nb/toNumber\": \"./nb/toNumber.ts\",\n    \"./nb/toString\": \"./nb/toString.ts\",\n    \"./nb/ulid\": \"./nb/ulid.ts\",\n    \"./nb/url\": \"./nb/url.ts\",\n    \"./nb/uuid\": \"./nb/uuid.ts\",\n    \"./nb/value\": \"./nb/value.ts\",\n    \"./nb/values\": \"./nb/values.ts\",\n    \"./nb/words\": \"./nb/words.ts\",\n    \"./nl\": \"./nl/index.ts\",\n    \"./nl/schema\": \"./nl/schema.ts\",\n    \"./nl/base64\": \"./nl/base64.ts\",\n    \"./nl/bic\": \"./nl/bic.ts\",\n    \"./nl/bytes\": \"./nl/bytes.ts\",\n    \"./nl/check\": \"./nl/check.ts\",\n    \"./nl/checkAsync\": \"./nl/checkAsync.ts\",\n    \"./nl/checkItems\": \"./nl/checkItems.ts\",\n    \"./nl/checkItemsAsync\": \"./nl/checkItemsAsync.ts\",\n    \"./nl/creditCard\": \"./nl/creditCard.ts\",\n    \"./nl/cuid2\": \"./nl/cuid2.ts\",\n    \"./nl/decimal\": \"./nl/decimal.ts\",\n    \"./nl/digits\": \"./nl/digits.ts\",\n    \"./nl/domain\": \"./nl/domain.ts\",\n    \"./nl/email\": \"./nl/email.ts\",\n    \"./nl/emoji\": \"./nl/emoji.ts\",\n    \"./nl/empty\": \"./nl/empty.ts\",\n    \"./nl/endsWith\": \"./nl/endsWith.ts\",\n    \"./nl/entries\": \"./nl/entries.ts\",\n    \"./nl/everyItem\": \"./nl/everyItem.ts\",\n    \"./nl/excludes\": \"./nl/excludes.ts\",\n    \"./nl/finite\": \"./nl/finite.ts\",\n    \"./nl/graphemes\": \"./nl/graphemes.ts\",\n    \"./nl/gtValue\": \"./nl/gtValue.ts\",\n    \"./nl/guard\": \"./nl/guard.ts\",\n    \"./nl/hash\": \"./nl/hash.ts\",\n    \"./nl/hexadecimal\": \"./nl/hexadecimal.ts\",\n    \"./nl/hexColor\": \"./nl/hexColor.ts\",\n    \"./nl/imei\": \"./nl/imei.ts\",\n    \"./nl/includes\": \"./nl/includes.ts\",\n    \"./nl/integer\": \"./nl/integer.ts\",\n    \"./nl/ip\": \"./nl/ip.ts\",\n    \"./nl/ipv4\": \"./nl/ipv4.ts\",\n    \"./nl/ipv6\": \"./nl/ipv6.ts\",\n    \"./nl/isbn\": \"./nl/isbn.ts\",\n    \"./nl/isoDate\": \"./nl/isoDate.ts\",\n    \"./nl/isoDateTime\": \"./nl/isoDateTime.ts\",\n    \"./nl/isoTime\": \"./nl/isoTime.ts\",\n    \"./nl/isoTimeSecond\": \"./nl/isoTimeSecond.ts\",\n    \"./nl/isoTimestamp\": \"./nl/isoTimestamp.ts\",\n    \"./nl/isoWeek\": \"./nl/isoWeek.ts\",\n    \"./nl/isrc\": \"./nl/isrc.ts\",\n    \"./nl/jwsCompact\": \"./nl/jwsCompact.ts\",\n    \"./nl/length\": \"./nl/length.ts\",\n    \"./nl/ltValue\": \"./nl/ltValue.ts\",\n    \"./nl/mac\": \"./nl/mac.ts\",\n    \"./nl/mac48\": \"./nl/mac48.ts\",\n    \"./nl/mac64\": \"./nl/mac64.ts\",\n    \"./nl/maxBytes\": \"./nl/maxBytes.ts\",\n    \"./nl/maxEntries\": \"./nl/maxEntries.ts\",\n    \"./nl/maxGraphemes\": \"./nl/maxGraphemes.ts\",\n    \"./nl/maxLength\": \"./nl/maxLength.ts\",\n    \"./nl/maxSize\": \"./nl/maxSize.ts\",\n    \"./nl/maxValue\": \"./nl/maxValue.ts\",\n    \"./nl/maxWords\": \"./nl/maxWords.ts\",\n    \"./nl/mimeType\": \"./nl/mimeType.ts\",\n    \"./nl/minBytes\": \"./nl/minBytes.ts\",\n    \"./nl/minEntries\": \"./nl/minEntries.ts\",\n    \"./nl/minGraphemes\": \"./nl/minGraphemes.ts\",\n    \"./nl/minLength\": \"./nl/minLength.ts\",\n    \"./nl/minSize\": \"./nl/minSize.ts\",\n    \"./nl/minValue\": \"./nl/minValue.ts\",\n    \"./nl/minWords\": \"./nl/minWords.ts\",\n    \"./nl/multipleOf\": \"./nl/multipleOf.ts\",\n    \"./nl/nanoid\": \"./nl/nanoid.ts\",\n    \"./nl/nonEmpty\": \"./nl/nonEmpty.ts\",\n    \"./nl/notBytes\": \"./nl/notBytes.ts\",\n    \"./nl/notEntries\": \"./nl/notEntries.ts\",\n    \"./nl/notGraphemes\": \"./nl/notGraphemes.ts\",\n    \"./nl/notLength\": \"./nl/notLength.ts\",\n    \"./nl/notSize\": \"./nl/notSize.ts\",\n    \"./nl/notValue\": \"./nl/notValue.ts\",\n    \"./nl/notValues\": \"./nl/notValues.ts\",\n    \"./nl/notWords\": \"./nl/notWords.ts\",\n    \"./nl/octal\": \"./nl/octal.ts\",\n    \"./nl/parseBoolean\": \"./nl/parseBoolean.ts\",\n    \"./nl/parseJson\": \"./nl/parseJson.ts\",\n    \"./nl/partialCheck\": \"./nl/partialCheck.ts\",\n    \"./nl/rawCheck\": \"./nl/rawCheck.ts\",\n    \"./nl/rawTransform\": \"./nl/rawTransform.ts\",\n    \"./nl/regex\": \"./nl/regex.ts\",\n    \"./nl/rfcEmail\": \"./nl/rfcEmail.ts\",\n    \"./nl/safeInteger\": \"./nl/safeInteger.ts\",\n    \"./nl/size\": \"./nl/size.ts\",\n    \"./nl/slug\": \"./nl/slug.ts\",\n    \"./nl/someItem\": \"./nl/someItem.ts\",\n    \"./nl/startsWith\": \"./nl/startsWith.ts\",\n    \"./nl/stringifyJson\": \"./nl/stringifyJson.ts\",\n    \"./nl/toBigint\": \"./nl/toBigint.ts\",\n    \"./nl/toDate\": \"./nl/toDate.ts\",\n    \"./nl/toNumber\": \"./nl/toNumber.ts\",\n    \"./nl/toString\": \"./nl/toString.ts\",\n    \"./nl/ulid\": \"./nl/ulid.ts\",\n    \"./nl/url\": \"./nl/url.ts\",\n    \"./nl/uuid\": \"./nl/uuid.ts\",\n    \"./nl/value\": \"./nl/value.ts\",\n    \"./nl/values\": \"./nl/values.ts\",\n    \"./nl/words\": \"./nl/words.ts\",\n    \"./pl\": \"./pl/index.ts\",\n    \"./pl/schema\": \"./pl/schema.ts\",\n    \"./pl/base64\": \"./pl/base64.ts\",\n    \"./pl/bic\": \"./pl/bic.ts\",\n    \"./pl/bytes\": \"./pl/bytes.ts\",\n    \"./pl/check\": \"./pl/check.ts\",\n    \"./pl/checkAsync\": \"./pl/checkAsync.ts\",\n    \"./pl/checkItems\": \"./pl/checkItems.ts\",\n    \"./pl/checkItemsAsync\": \"./pl/checkItemsAsync.ts\",\n    \"./pl/creditCard\": \"./pl/creditCard.ts\",\n    \"./pl/cuid2\": \"./pl/cuid2.ts\",\n    \"./pl/decimal\": \"./pl/decimal.ts\",\n    \"./pl/digits\": \"./pl/digits.ts\",\n    \"./pl/domain\": \"./pl/domain.ts\",\n    \"./pl/email\": \"./pl/email.ts\",\n    \"./pl/emoji\": \"./pl/emoji.ts\",\n    \"./pl/empty\": \"./pl/empty.ts\",\n    \"./pl/endsWith\": \"./pl/endsWith.ts\",\n    \"./pl/entries\": \"./pl/entries.ts\",\n    \"./pl/everyItem\": \"./pl/everyItem.ts\",\n    \"./pl/excludes\": \"./pl/excludes.ts\",\n    \"./pl/finite\": \"./pl/finite.ts\",\n    \"./pl/graphemes\": \"./pl/graphemes.ts\",\n    \"./pl/gtValue\": \"./pl/gtValue.ts\",\n    \"./pl/guard\": \"./pl/guard.ts\",\n    \"./pl/hash\": \"./pl/hash.ts\",\n    \"./pl/hexadecimal\": \"./pl/hexadecimal.ts\",\n    \"./pl/hexColor\": \"./pl/hexColor.ts\",\n    \"./pl/imei\": \"./pl/imei.ts\",\n    \"./pl/includes\": \"./pl/includes.ts\",\n    \"./pl/integer\": \"./pl/integer.ts\",\n    \"./pl/ip\": \"./pl/ip.ts\",\n    \"./pl/ipv4\": \"./pl/ipv4.ts\",\n    \"./pl/ipv6\": \"./pl/ipv6.ts\",\n    \"./pl/isbn\": \"./pl/isbn.ts\",\n    \"./pl/isoDate\": \"./pl/isoDate.ts\",\n    \"./pl/isoDateTime\": \"./pl/isoDateTime.ts\",\n    \"./pl/isoTime\": \"./pl/isoTime.ts\",\n    \"./pl/isoTimeSecond\": \"./pl/isoTimeSecond.ts\",\n    \"./pl/isoTimestamp\": \"./pl/isoTimestamp.ts\",\n    \"./pl/isoWeek\": \"./pl/isoWeek.ts\",\n    \"./pl/isrc\": \"./pl/isrc.ts\",\n    \"./pl/jwsCompact\": \"./pl/jwsCompact.ts\",\n    \"./pl/length\": \"./pl/length.ts\",\n    \"./pl/ltValue\": \"./pl/ltValue.ts\",\n    \"./pl/mac\": \"./pl/mac.ts\",\n    \"./pl/mac48\": \"./pl/mac48.ts\",\n    \"./pl/mac64\": \"./pl/mac64.ts\",\n    \"./pl/maxBytes\": \"./pl/maxBytes.ts\",\n    \"./pl/maxEntries\": \"./pl/maxEntries.ts\",\n    \"./pl/maxGraphemes\": \"./pl/maxGraphemes.ts\",\n    \"./pl/maxLength\": \"./pl/maxLength.ts\",\n    \"./pl/maxSize\": \"./pl/maxSize.ts\",\n    \"./pl/maxValue\": \"./pl/maxValue.ts\",\n    \"./pl/maxWords\": \"./pl/maxWords.ts\",\n    \"./pl/mimeType\": \"./pl/mimeType.ts\",\n    \"./pl/minBytes\": \"./pl/minBytes.ts\",\n    \"./pl/minEntries\": \"./pl/minEntries.ts\",\n    \"./pl/minGraphemes\": \"./pl/minGraphemes.ts\",\n    \"./pl/minLength\": \"./pl/minLength.ts\",\n    \"./pl/minSize\": \"./pl/minSize.ts\",\n    \"./pl/minValue\": \"./pl/minValue.ts\",\n    \"./pl/minWords\": \"./pl/minWords.ts\",\n    \"./pl/multipleOf\": \"./pl/multipleOf.ts\",\n    \"./pl/nanoid\": \"./pl/nanoid.ts\",\n    \"./pl/nonEmpty\": \"./pl/nonEmpty.ts\",\n    \"./pl/notBytes\": \"./pl/notBytes.ts\",\n    \"./pl/notEntries\": \"./pl/notEntries.ts\",\n    \"./pl/notGraphemes\": \"./pl/notGraphemes.ts\",\n    \"./pl/notLength\": \"./pl/notLength.ts\",\n    \"./pl/notSize\": \"./pl/notSize.ts\",\n    \"./pl/notValue\": \"./pl/notValue.ts\",\n    \"./pl/notValues\": \"./pl/notValues.ts\",\n    \"./pl/notWords\": \"./pl/notWords.ts\",\n    \"./pl/octal\": \"./pl/octal.ts\",\n    \"./pl/parseBoolean\": \"./pl/parseBoolean.ts\",\n    \"./pl/parseJson\": \"./pl/parseJson.ts\",\n    \"./pl/partialCheck\": \"./pl/partialCheck.ts\",\n    \"./pl/rawCheck\": \"./pl/rawCheck.ts\",\n    \"./pl/rawTransform\": \"./pl/rawTransform.ts\",\n    \"./pl/regex\": \"./pl/regex.ts\",\n    \"./pl/rfcEmail\": \"./pl/rfcEmail.ts\",\n    \"./pl/safeInteger\": \"./pl/safeInteger.ts\",\n    \"./pl/size\": \"./pl/size.ts\",\n    \"./pl/slug\": \"./pl/slug.ts\",\n    \"./pl/someItem\": \"./pl/someItem.ts\",\n    \"./pl/startsWith\": \"./pl/startsWith.ts\",\n    \"./pl/stringifyJson\": \"./pl/stringifyJson.ts\",\n    \"./pl/toBigint\": \"./pl/toBigint.ts\",\n    \"./pl/toDate\": \"./pl/toDate.ts\",\n    \"./pl/toNumber\": \"./pl/toNumber.ts\",\n    \"./pl/toString\": \"./pl/toString.ts\",\n    \"./pl/ulid\": \"./pl/ulid.ts\",\n    \"./pl/url\": \"./pl/url.ts\",\n    \"./pl/uuid\": \"./pl/uuid.ts\",\n    \"./pl/value\": \"./pl/value.ts\",\n    \"./pl/values\": \"./pl/values.ts\",\n    \"./pl/words\": \"./pl/words.ts\",\n    \"./pt\": \"./pt/index.ts\",\n    \"./pt/schema\": \"./pt/schema.ts\",\n    \"./pt/base64\": \"./pt/base64.ts\",\n    \"./pt/bic\": \"./pt/bic.ts\",\n    \"./pt/bytes\": \"./pt/bytes.ts\",\n    \"./pt/check\": \"./pt/check.ts\",\n    \"./pt/checkAsync\": \"./pt/checkAsync.ts\",\n    \"./pt/checkItems\": \"./pt/checkItems.ts\",\n    \"./pt/checkItemsAsync\": \"./pt/checkItemsAsync.ts\",\n    \"./pt/creditCard\": \"./pt/creditCard.ts\",\n    \"./pt/cuid2\": \"./pt/cuid2.ts\",\n    \"./pt/decimal\": \"./pt/decimal.ts\",\n    \"./pt/digits\": \"./pt/digits.ts\",\n    \"./pt/domain\": \"./pt/domain.ts\",\n    \"./pt/email\": \"./pt/email.ts\",\n    \"./pt/emoji\": \"./pt/emoji.ts\",\n    \"./pt/empty\": \"./pt/empty.ts\",\n    \"./pt/endsWith\": \"./pt/endsWith.ts\",\n    \"./pt/entries\": \"./pt/entries.ts\",\n    \"./pt/everyItem\": \"./pt/everyItem.ts\",\n    \"./pt/excludes\": \"./pt/excludes.ts\",\n    \"./pt/finite\": \"./pt/finite.ts\",\n    \"./pt/graphemes\": \"./pt/graphemes.ts\",\n    \"./pt/gtValue\": \"./pt/gtValue.ts\",\n    \"./pt/guard\": \"./pt/guard.ts\",\n    \"./pt/hash\": \"./pt/hash.ts\",\n    \"./pt/hexadecimal\": \"./pt/hexadecimal.ts\",\n    \"./pt/hexColor\": \"./pt/hexColor.ts\",\n    \"./pt/imei\": \"./pt/imei.ts\",\n    \"./pt/includes\": \"./pt/includes.ts\",\n    \"./pt/integer\": \"./pt/integer.ts\",\n    \"./pt/ip\": \"./pt/ip.ts\",\n    \"./pt/ipv4\": \"./pt/ipv4.ts\",\n    \"./pt/ipv6\": \"./pt/ipv6.ts\",\n    \"./pt/isbn\": \"./pt/isbn.ts\",\n    \"./pt/isoDate\": \"./pt/isoDate.ts\",\n    \"./pt/isoDateTime\": \"./pt/isoDateTime.ts\",\n    \"./pt/isoTime\": \"./pt/isoTime.ts\",\n    \"./pt/isoTimeSecond\": \"./pt/isoTimeSecond.ts\",\n    \"./pt/isoTimestamp\": \"./pt/isoTimestamp.ts\",\n    \"./pt/isoWeek\": \"./pt/isoWeek.ts\",\n    \"./pt/isrc\": \"./pt/isrc.ts\",\n    \"./pt/jwsCompact\": \"./pt/jwsCompact.ts\",\n    \"./pt/length\": \"./pt/length.ts\",\n    \"./pt/ltValue\": \"./pt/ltValue.ts\",\n    \"./pt/mac\": \"./pt/mac.ts\",\n    \"./pt/mac48\": \"./pt/mac48.ts\",\n    \"./pt/mac64\": \"./pt/mac64.ts\",\n    \"./pt/maxBytes\": \"./pt/maxBytes.ts\",\n    \"./pt/maxEntries\": \"./pt/maxEntries.ts\",\n    \"./pt/maxGraphemes\": \"./pt/maxGraphemes.ts\",\n    \"./pt/maxLength\": \"./pt/maxLength.ts\",\n    \"./pt/maxSize\": \"./pt/maxSize.ts\",\n    \"./pt/maxValue\": \"./pt/maxValue.ts\",\n    \"./pt/maxWords\": \"./pt/maxWords.ts\",\n    \"./pt/mimeType\": \"./pt/mimeType.ts\",\n    \"./pt/minBytes\": \"./pt/minBytes.ts\",\n    \"./pt/minEntries\": \"./pt/minEntries.ts\",\n    \"./pt/minGraphemes\": \"./pt/minGraphemes.ts\",\n    \"./pt/minLength\": \"./pt/minLength.ts\",\n    \"./pt/minSize\": \"./pt/minSize.ts\",\n    \"./pt/minValue\": \"./pt/minValue.ts\",\n    \"./pt/minWords\": \"./pt/minWords.ts\",\n    \"./pt/multipleOf\": \"./pt/multipleOf.ts\",\n    \"./pt/nanoid\": \"./pt/nanoid.ts\",\n    \"./pt/nonEmpty\": \"./pt/nonEmpty.ts\",\n    \"./pt/notBytes\": \"./pt/notBytes.ts\",\n    \"./pt/notEntries\": \"./pt/notEntries.ts\",\n    \"./pt/notGraphemes\": \"./pt/notGraphemes.ts\",\n    \"./pt/notLength\": \"./pt/notLength.ts\",\n    \"./pt/notSize\": \"./pt/notSize.ts\",\n    \"./pt/notValue\": \"./pt/notValue.ts\",\n    \"./pt/notValues\": \"./pt/notValues.ts\",\n    \"./pt/notWords\": \"./pt/notWords.ts\",\n    \"./pt/octal\": \"./pt/octal.ts\",\n    \"./pt/parseBoolean\": \"./pt/parseBoolean.ts\",\n    \"./pt/parseJson\": \"./pt/parseJson.ts\",\n    \"./pt/partialCheck\": \"./pt/partialCheck.ts\",\n    \"./pt/rawCheck\": \"./pt/rawCheck.ts\",\n    \"./pt/rawTransform\": \"./pt/rawTransform.ts\",\n    \"./pt/regex\": \"./pt/regex.ts\",\n    \"./pt/rfcEmail\": \"./pt/rfcEmail.ts\",\n    \"./pt/safeInteger\": \"./pt/safeInteger.ts\",\n    \"./pt/size\": \"./pt/size.ts\",\n    \"./pt/slug\": \"./pt/slug.ts\",\n    \"./pt/someItem\": \"./pt/someItem.ts\",\n    \"./pt/startsWith\": \"./pt/startsWith.ts\",\n    \"./pt/stringifyJson\": \"./pt/stringifyJson.ts\",\n    \"./pt/toBigint\": \"./pt/toBigint.ts\",\n    \"./pt/toDate\": \"./pt/toDate.ts\",\n    \"./pt/toNumber\": \"./pt/toNumber.ts\",\n    \"./pt/toString\": \"./pt/toString.ts\",\n    \"./pt/ulid\": \"./pt/ulid.ts\",\n    \"./pt/url\": \"./pt/url.ts\",\n    \"./pt/uuid\": \"./pt/uuid.ts\",\n    \"./pt/value\": \"./pt/value.ts\",\n    \"./pt/values\": \"./pt/values.ts\",\n    \"./pt/words\": \"./pt/words.ts\",\n    \"./ro\": \"./ro/index.ts\",\n    \"./ro/schema\": \"./ro/schema.ts\",\n    \"./ro/base64\": \"./ro/base64.ts\",\n    \"./ro/bic\": \"./ro/bic.ts\",\n    \"./ro/bytes\": \"./ro/bytes.ts\",\n    \"./ro/check\": \"./ro/check.ts\",\n    \"./ro/checkAsync\": \"./ro/checkAsync.ts\",\n    \"./ro/checkItems\": \"./ro/checkItems.ts\",\n    \"./ro/checkItemsAsync\": \"./ro/checkItemsAsync.ts\",\n    \"./ro/creditCard\": \"./ro/creditCard.ts\",\n    \"./ro/cuid2\": \"./ro/cuid2.ts\",\n    \"./ro/decimal\": \"./ro/decimal.ts\",\n    \"./ro/digits\": \"./ro/digits.ts\",\n    \"./ro/domain\": \"./ro/domain.ts\",\n    \"./ro/email\": \"./ro/email.ts\",\n    \"./ro/emoji\": \"./ro/emoji.ts\",\n    \"./ro/empty\": \"./ro/empty.ts\",\n    \"./ro/endsWith\": \"./ro/endsWith.ts\",\n    \"./ro/entries\": \"./ro/entries.ts\",\n    \"./ro/everyItem\": \"./ro/everyItem.ts\",\n    \"./ro/excludes\": \"./ro/excludes.ts\",\n    \"./ro/finite\": \"./ro/finite.ts\",\n    \"./ro/graphemes\": \"./ro/graphemes.ts\",\n    \"./ro/gtValue\": \"./ro/gtValue.ts\",\n    \"./ro/guard\": \"./ro/guard.ts\",\n    \"./ro/hash\": \"./ro/hash.ts\",\n    \"./ro/hexadecimal\": \"./ro/hexadecimal.ts\",\n    \"./ro/hexColor\": \"./ro/hexColor.ts\",\n    \"./ro/imei\": \"./ro/imei.ts\",\n    \"./ro/includes\": \"./ro/includes.ts\",\n    \"./ro/integer\": \"./ro/integer.ts\",\n    \"./ro/ip\": \"./ro/ip.ts\",\n    \"./ro/ipv4\": \"./ro/ipv4.ts\",\n    \"./ro/ipv6\": \"./ro/ipv6.ts\",\n    \"./ro/isbn\": \"./ro/isbn.ts\",\n    \"./ro/isoDate\": \"./ro/isoDate.ts\",\n    \"./ro/isoDateTime\": \"./ro/isoDateTime.ts\",\n    \"./ro/isoTime\": \"./ro/isoTime.ts\",\n    \"./ro/isoTimeSecond\": \"./ro/isoTimeSecond.ts\",\n    \"./ro/isoTimestamp\": \"./ro/isoTimestamp.ts\",\n    \"./ro/isoWeek\": \"./ro/isoWeek.ts\",\n    \"./ro/isrc\": \"./ro/isrc.ts\",\n    \"./ro/jwsCompact\": \"./ro/jwsCompact.ts\",\n    \"./ro/length\": \"./ro/length.ts\",\n    \"./ro/ltValue\": \"./ro/ltValue.ts\",\n    \"./ro/mac\": \"./ro/mac.ts\",\n    \"./ro/mac48\": \"./ro/mac48.ts\",\n    \"./ro/mac64\": \"./ro/mac64.ts\",\n    \"./ro/maxBytes\": \"./ro/maxBytes.ts\",\n    \"./ro/maxEntries\": \"./ro/maxEntries.ts\",\n    \"./ro/maxGraphemes\": \"./ro/maxGraphemes.ts\",\n    \"./ro/maxLength\": \"./ro/maxLength.ts\",\n    \"./ro/maxSize\": \"./ro/maxSize.ts\",\n    \"./ro/maxValue\": \"./ro/maxValue.ts\",\n    \"./ro/maxWords\": \"./ro/maxWords.ts\",\n    \"./ro/mimeType\": \"./ro/mimeType.ts\",\n    \"./ro/minBytes\": \"./ro/minBytes.ts\",\n    \"./ro/minEntries\": \"./ro/minEntries.ts\",\n    \"./ro/minGraphemes\": \"./ro/minGraphemes.ts\",\n    \"./ro/minLength\": \"./ro/minLength.ts\",\n    \"./ro/minSize\": \"./ro/minSize.ts\",\n    \"./ro/minValue\": \"./ro/minValue.ts\",\n    \"./ro/minWords\": \"./ro/minWords.ts\",\n    \"./ro/multipleOf\": \"./ro/multipleOf.ts\",\n    \"./ro/nanoid\": \"./ro/nanoid.ts\",\n    \"./ro/nonEmpty\": \"./ro/nonEmpty.ts\",\n    \"./ro/notBytes\": \"./ro/notBytes.ts\",\n    \"./ro/notEntries\": \"./ro/notEntries.ts\",\n    \"./ro/notGraphemes\": \"./ro/notGraphemes.ts\",\n    \"./ro/notLength\": \"./ro/notLength.ts\",\n    \"./ro/notSize\": \"./ro/notSize.ts\",\n    \"./ro/notValue\": \"./ro/notValue.ts\",\n    \"./ro/notValues\": \"./ro/notValues.ts\",\n    \"./ro/notWords\": \"./ro/notWords.ts\",\n    \"./ro/octal\": \"./ro/octal.ts\",\n    \"./ro/parseBoolean\": \"./ro/parseBoolean.ts\",\n    \"./ro/parseJson\": \"./ro/parseJson.ts\",\n    \"./ro/partialCheck\": \"./ro/partialCheck.ts\",\n    \"./ro/rawCheck\": \"./ro/rawCheck.ts\",\n    \"./ro/rawTransform\": \"./ro/rawTransform.ts\",\n    \"./ro/regex\": \"./ro/regex.ts\",\n    \"./ro/rfcEmail\": \"./ro/rfcEmail.ts\",\n    \"./ro/safeInteger\": \"./ro/safeInteger.ts\",\n    \"./ro/size\": \"./ro/size.ts\",\n    \"./ro/slug\": \"./ro/slug.ts\",\n    \"./ro/someItem\": \"./ro/someItem.ts\",\n    \"./ro/startsWith\": \"./ro/startsWith.ts\",\n    \"./ro/stringifyJson\": \"./ro/stringifyJson.ts\",\n    \"./ro/toBigint\": \"./ro/toBigint.ts\",\n    \"./ro/toDate\": \"./ro/toDate.ts\",\n    \"./ro/toNumber\": \"./ro/toNumber.ts\",\n    \"./ro/toString\": \"./ro/toString.ts\",\n    \"./ro/ulid\": \"./ro/ulid.ts\",\n    \"./ro/url\": \"./ro/url.ts\",\n    \"./ro/uuid\": \"./ro/uuid.ts\",\n    \"./ro/value\": \"./ro/value.ts\",\n    \"./ro/values\": \"./ro/values.ts\",\n    \"./ro/words\": \"./ro/words.ts\",\n    \"./ru\": \"./ru/index.ts\",\n    \"./ru/schema\": \"./ru/schema.ts\",\n    \"./ru/base64\": \"./ru/base64.ts\",\n    \"./ru/bic\": \"./ru/bic.ts\",\n    \"./ru/bytes\": \"./ru/bytes.ts\",\n    \"./ru/check\": \"./ru/check.ts\",\n    \"./ru/checkAsync\": \"./ru/checkAsync.ts\",\n    \"./ru/checkItems\": \"./ru/checkItems.ts\",\n    \"./ru/checkItemsAsync\": \"./ru/checkItemsAsync.ts\",\n    \"./ru/creditCard\": \"./ru/creditCard.ts\",\n    \"./ru/cuid2\": \"./ru/cuid2.ts\",\n    \"./ru/decimal\": \"./ru/decimal.ts\",\n    \"./ru/digits\": \"./ru/digits.ts\",\n    \"./ru/domain\": \"./ru/domain.ts\",\n    \"./ru/email\": \"./ru/email.ts\",\n    \"./ru/emoji\": \"./ru/emoji.ts\",\n    \"./ru/empty\": \"./ru/empty.ts\",\n    \"./ru/endsWith\": \"./ru/endsWith.ts\",\n    \"./ru/entries\": \"./ru/entries.ts\",\n    \"./ru/everyItem\": \"./ru/everyItem.ts\",\n    \"./ru/excludes\": \"./ru/excludes.ts\",\n    \"./ru/finite\": \"./ru/finite.ts\",\n    \"./ru/graphemes\": \"./ru/graphemes.ts\",\n    \"./ru/gtValue\": \"./ru/gtValue.ts\",\n    \"./ru/guard\": \"./ru/guard.ts\",\n    \"./ru/hash\": \"./ru/hash.ts\",\n    \"./ru/hexadecimal\": \"./ru/hexadecimal.ts\",\n    \"./ru/hexColor\": \"./ru/hexColor.ts\",\n    \"./ru/imei\": \"./ru/imei.ts\",\n    \"./ru/includes\": \"./ru/includes.ts\",\n    \"./ru/integer\": \"./ru/integer.ts\",\n    \"./ru/ip\": \"./ru/ip.ts\",\n    \"./ru/ipv4\": \"./ru/ipv4.ts\",\n    \"./ru/ipv6\": \"./ru/ipv6.ts\",\n    \"./ru/isbn\": \"./ru/isbn.ts\",\n    \"./ru/isoDate\": \"./ru/isoDate.ts\",\n    \"./ru/isoDateTime\": \"./ru/isoDateTime.ts\",\n    \"./ru/isoTime\": \"./ru/isoTime.ts\",\n    \"./ru/isoTimeSecond\": \"./ru/isoTimeSecond.ts\",\n    \"./ru/isoTimestamp\": \"./ru/isoTimestamp.ts\",\n    \"./ru/isoWeek\": \"./ru/isoWeek.ts\",\n    \"./ru/isrc\": \"./ru/isrc.ts\",\n    \"./ru/jwsCompact\": \"./ru/jwsCompact.ts\",\n    \"./ru/length\": \"./ru/length.ts\",\n    \"./ru/ltValue\": \"./ru/ltValue.ts\",\n    \"./ru/mac\": \"./ru/mac.ts\",\n    \"./ru/mac48\": \"./ru/mac48.ts\",\n    \"./ru/mac64\": \"./ru/mac64.ts\",\n    \"./ru/maxBytes\": \"./ru/maxBytes.ts\",\n    \"./ru/maxEntries\": \"./ru/maxEntries.ts\",\n    \"./ru/maxGraphemes\": \"./ru/maxGraphemes.ts\",\n    \"./ru/maxLength\": \"./ru/maxLength.ts\",\n    \"./ru/maxSize\": \"./ru/maxSize.ts\",\n    \"./ru/maxValue\": \"./ru/maxValue.ts\",\n    \"./ru/maxWords\": \"./ru/maxWords.ts\",\n    \"./ru/mimeType\": \"./ru/mimeType.ts\",\n    \"./ru/minBytes\": \"./ru/minBytes.ts\",\n    \"./ru/minEntries\": \"./ru/minEntries.ts\",\n    \"./ru/minGraphemes\": \"./ru/minGraphemes.ts\",\n    \"./ru/minLength\": \"./ru/minLength.ts\",\n    \"./ru/minSize\": \"./ru/minSize.ts\",\n    \"./ru/minValue\": \"./ru/minValue.ts\",\n    \"./ru/minWords\": \"./ru/minWords.ts\",\n    \"./ru/multipleOf\": \"./ru/multipleOf.ts\",\n    \"./ru/nanoid\": \"./ru/nanoid.ts\",\n    \"./ru/nonEmpty\": \"./ru/nonEmpty.ts\",\n    \"./ru/notBytes\": \"./ru/notBytes.ts\",\n    \"./ru/notEntries\": \"./ru/notEntries.ts\",\n    \"./ru/notGraphemes\": \"./ru/notGraphemes.ts\",\n    \"./ru/notLength\": \"./ru/notLength.ts\",\n    \"./ru/notSize\": \"./ru/notSize.ts\",\n    \"./ru/notValue\": \"./ru/notValue.ts\",\n    \"./ru/notValues\": \"./ru/notValues.ts\",\n    \"./ru/notWords\": \"./ru/notWords.ts\",\n    \"./ru/octal\": \"./ru/octal.ts\",\n    \"./ru/parseBoolean\": \"./ru/parseBoolean.ts\",\n    \"./ru/parseJson\": \"./ru/parseJson.ts\",\n    \"./ru/partialCheck\": \"./ru/partialCheck.ts\",\n    \"./ru/rawCheck\": \"./ru/rawCheck.ts\",\n    \"./ru/rawTransform\": \"./ru/rawTransform.ts\",\n    \"./ru/regex\": \"./ru/regex.ts\",\n    \"./ru/rfcEmail\": \"./ru/rfcEmail.ts\",\n    \"./ru/safeInteger\": \"./ru/safeInteger.ts\",\n    \"./ru/size\": \"./ru/size.ts\",\n    \"./ru/slug\": \"./ru/slug.ts\",\n    \"./ru/someItem\": \"./ru/someItem.ts\",\n    \"./ru/startsWith\": \"./ru/startsWith.ts\",\n    \"./ru/stringifyJson\": \"./ru/stringifyJson.ts\",\n    \"./ru/toBigint\": \"./ru/toBigint.ts\",\n    \"./ru/toDate\": \"./ru/toDate.ts\",\n    \"./ru/toNumber\": \"./ru/toNumber.ts\",\n    \"./ru/toString\": \"./ru/toString.ts\",\n    \"./ru/ulid\": \"./ru/ulid.ts\",\n    \"./ru/url\": \"./ru/url.ts\",\n    \"./ru/uuid\": \"./ru/uuid.ts\",\n    \"./ru/value\": \"./ru/value.ts\",\n    \"./ru/values\": \"./ru/values.ts\",\n    \"./ru/words\": \"./ru/words.ts\",\n    \"./sk\": \"./sk/index.ts\",\n    \"./sk/schema\": \"./sk/schema.ts\",\n    \"./sk/base64\": \"./sk/base64.ts\",\n    \"./sk/bic\": \"./sk/bic.ts\",\n    \"./sk/bytes\": \"./sk/bytes.ts\",\n    \"./sk/check\": \"./sk/check.ts\",\n    \"./sk/checkAsync\": \"./sk/checkAsync.ts\",\n    \"./sk/checkItems\": \"./sk/checkItems.ts\",\n    \"./sk/checkItemsAsync\": \"./sk/checkItemsAsync.ts\",\n    \"./sk/creditCard\": \"./sk/creditCard.ts\",\n    \"./sk/cuid2\": \"./sk/cuid2.ts\",\n    \"./sk/decimal\": \"./sk/decimal.ts\",\n    \"./sk/digits\": \"./sk/digits.ts\",\n    \"./sk/domain\": \"./sk/domain.ts\",\n    \"./sk/email\": \"./sk/email.ts\",\n    \"./sk/emoji\": \"./sk/emoji.ts\",\n    \"./sk/empty\": \"./sk/empty.ts\",\n    \"./sk/endsWith\": \"./sk/endsWith.ts\",\n    \"./sk/entries\": \"./sk/entries.ts\",\n    \"./sk/everyItem\": \"./sk/everyItem.ts\",\n    \"./sk/excludes\": \"./sk/excludes.ts\",\n    \"./sk/finite\": \"./sk/finite.ts\",\n    \"./sk/graphemes\": \"./sk/graphemes.ts\",\n    \"./sk/gtValue\": \"./sk/gtValue.ts\",\n    \"./sk/guard\": \"./sk/guard.ts\",\n    \"./sk/hash\": \"./sk/hash.ts\",\n    \"./sk/hexColor\": \"./sk/hexColor.ts\",\n    \"./sk/hexadecimal\": \"./sk/hexadecimal.ts\",\n    \"./sk/imei\": \"./sk/imei.ts\",\n    \"./sk/includes\": \"./sk/includes.ts\",\n    \"./sk/integer\": \"./sk/integer.ts\",\n    \"./sk/ip\": \"./sk/ip.ts\",\n    \"./sk/ipv4\": \"./sk/ipv4.ts\",\n    \"./sk/ipv6\": \"./sk/ipv6.ts\",\n    \"./sk/isbn\": \"./sk/isbn.ts\",\n    \"./sk/isoDate\": \"./sk/isoDate.ts\",\n    \"./sk/isoDateTime\": \"./sk/isoDateTime.ts\",\n    \"./sk/isoTime\": \"./sk/isoTime.ts\",\n    \"./sk/isoTimeSecond\": \"./sk/isoTimeSecond.ts\",\n    \"./sk/isoTimestamp\": \"./sk/isoTimestamp.ts\",\n    \"./sk/isoWeek\": \"./sk/isoWeek.ts\",\n    \"./sk/isrc\": \"./sk/isrc.ts\",\n    \"./sk/jwsCompact\": \"./sk/jwsCompact.ts\",\n    \"./sk/length\": \"./sk/length.ts\",\n    \"./sk/ltValue\": \"./sk/ltValue.ts\",\n    \"./sk/mac\": \"./sk/mac.ts\",\n    \"./sk/mac48\": \"./sk/mac48.ts\",\n    \"./sk/mac64\": \"./sk/mac64.ts\",\n    \"./sk/maxBytes\": \"./sk/maxBytes.ts\",\n    \"./sk/maxEntries\": \"./sk/maxEntries.ts\",\n    \"./sk/maxGraphemes\": \"./sk/maxGraphemes.ts\",\n    \"./sk/maxLength\": \"./sk/maxLength.ts\",\n    \"./sk/maxSize\": \"./sk/maxSize.ts\",\n    \"./sk/maxValue\": \"./sk/maxValue.ts\",\n    \"./sk/maxWords\": \"./sk/maxWords.ts\",\n    \"./sk/mimeType\": \"./sk/mimeType.ts\",\n    \"./sk/minBytes\": \"./sk/minBytes.ts\",\n    \"./sk/minEntries\": \"./sk/minEntries.ts\",\n    \"./sk/minGraphemes\": \"./sk/minGraphemes.ts\",\n    \"./sk/minLength\": \"./sk/minLength.ts\",\n    \"./sk/minSize\": \"./sk/minSize.ts\",\n    \"./sk/minValue\": \"./sk/minValue.ts\",\n    \"./sk/minWords\": \"./sk/minWords.ts\",\n    \"./sk/multipleOf\": \"./sk/multipleOf.ts\",\n    \"./sk/nanoid\": \"./sk/nanoid.ts\",\n    \"./sk/nonEmpty\": \"./sk/nonEmpty.ts\",\n    \"./sk/notBytes\": \"./sk/notBytes.ts\",\n    \"./sk/notEntries\": \"./sk/notEntries.ts\",\n    \"./sk/notGraphemes\": \"./sk/notGraphemes.ts\",\n    \"./sk/notLength\": \"./sk/notLength.ts\",\n    \"./sk/notSize\": \"./sk/notSize.ts\",\n    \"./sk/notValue\": \"./sk/notValue.ts\",\n    \"./sk/notValues\": \"./sk/notValues.ts\",\n    \"./sk/notWords\": \"./sk/notWords.ts\",\n    \"./sk/octal\": \"./sk/octal.ts\",\n    \"./sk/parseBoolean\": \"./sk/parseBoolean.ts\",\n    \"./sk/parseJson\": \"./sk/parseJson.ts\",\n    \"./sk/partialCheck\": \"./sk/partialCheck.ts\",\n    \"./sk/rawCheck\": \"./sk/rawCheck.ts\",\n    \"./sk/rawTransform\": \"./sk/rawTransform.ts\",\n    \"./sk/regex\": \"./sk/regex.ts\",\n    \"./sk/rfcEmail\": \"./sk/rfcEmail.ts\",\n    \"./sk/safeInteger\": \"./sk/safeInteger.ts\",\n    \"./sk/size\": \"./sk/size.ts\",\n    \"./sk/slug\": \"./sk/slug.ts\",\n    \"./sk/someItem\": \"./sk/someItem.ts\",\n    \"./sk/startsWith\": \"./sk/startsWith.ts\",\n    \"./sk/stringifyJson\": \"./sk/stringifyJson.ts\",\n    \"./sk/toBigint\": \"./sk/toBigint.ts\",\n    \"./sk/toDate\": \"./sk/toDate.ts\",\n    \"./sk/toNumber\": \"./sk/toNumber.ts\",\n    \"./sk/toString\": \"./sk/toString.ts\",\n    \"./sk/ulid\": \"./sk/ulid.ts\",\n    \"./sk/url\": \"./sk/url.ts\",\n    \"./sk/uuid\": \"./sk/uuid.ts\",\n    \"./sk/value\": \"./sk/value.ts\",\n    \"./sk/values\": \"./sk/values.ts\",\n    \"./sk/words\": \"./sk/words.ts\",\n    \"./sl\": \"./sl/index.ts\",\n    \"./sl/schema\": \"./sl/schema.ts\",\n    \"./sl/base64\": \"./sl/base64.ts\",\n    \"./sl/bic\": \"./sl/bic.ts\",\n    \"./sl/bytes\": \"./sl/bytes.ts\",\n    \"./sl/check\": \"./sl/check.ts\",\n    \"./sl/checkAsync\": \"./sl/checkAsync.ts\",\n    \"./sl/checkItems\": \"./sl/checkItems.ts\",\n    \"./sl/checkItemsAsync\": \"./sl/checkItemsAsync.ts\",\n    \"./sl/creditCard\": \"./sl/creditCard.ts\",\n    \"./sl/cuid2\": \"./sl/cuid2.ts\",\n    \"./sl/decimal\": \"./sl/decimal.ts\",\n    \"./sl/digits\": \"./sl/digits.ts\",\n    \"./sl/domain\": \"./sl/domain.ts\",\n    \"./sl/email\": \"./sl/email.ts\",\n    \"./sl/emoji\": \"./sl/emoji.ts\",\n    \"./sl/empty\": \"./sl/empty.ts\",\n    \"./sl/endsWith\": \"./sl/endsWith.ts\",\n    \"./sl/entries\": \"./sl/entries.ts\",\n    \"./sl/everyItem\": \"./sl/everyItem.ts\",\n    \"./sl/excludes\": \"./sl/excludes.ts\",\n    \"./sl/finite\": \"./sl/finite.ts\",\n    \"./sl/graphemes\": \"./sl/graphemes.ts\",\n    \"./sl/gtValue\": \"./sl/gtValue.ts\",\n    \"./sl/guard\": \"./sl/guard.ts\",\n    \"./sl/hash\": \"./sl/hash.ts\",\n    \"./sl/hexadecimal\": \"./sl/hexadecimal.ts\",\n    \"./sl/hexColor\": \"./sl/hexColor.ts\",\n    \"./sl/imei\": \"./sl/imei.ts\",\n    \"./sl/includes\": \"./sl/includes.ts\",\n    \"./sl/integer\": \"./sl/integer.ts\",\n    \"./sl/ip\": \"./sl/ip.ts\",\n    \"./sl/ipv4\": \"./sl/ipv4.ts\",\n    \"./sl/ipv6\": \"./sl/ipv6.ts\",\n    \"./sl/isbn\": \"./sl/isbn.ts\",\n    \"./sl/isoDate\": \"./sl/isoDate.ts\",\n    \"./sl/isoDateTime\": \"./sl/isoDateTime.ts\",\n    \"./sl/isoTime\": \"./sl/isoTime.ts\",\n    \"./sl/isoTimeSecond\": \"./sl/isoTimeSecond.ts\",\n    \"./sl/isoTimestamp\": \"./sl/isoTimestamp.ts\",\n    \"./sl/isoWeek\": \"./sl/isoWeek.ts\",\n    \"./sl/isrc\": \"./sl/isrc.ts\",\n    \"./sl/jwsCompact\": \"./sl/jwsCompact.ts\",\n    \"./sl/length\": \"./sl/length.ts\",\n    \"./sl/ltValue\": \"./sl/ltValue.ts\",\n    \"./sl/mac\": \"./sl/mac.ts\",\n    \"./sl/mac48\": \"./sl/mac48.ts\",\n    \"./sl/mac64\": \"./sl/mac64.ts\",\n    \"./sl/maxBytes\": \"./sl/maxBytes.ts\",\n    \"./sl/maxEntries\": \"./sl/maxEntries.ts\",\n    \"./sl/maxGraphemes\": \"./sl/maxGraphemes.ts\",\n    \"./sl/maxLength\": \"./sl/maxLength.ts\",\n    \"./sl/maxSize\": \"./sl/maxSize.ts\",\n    \"./sl/maxValue\": \"./sl/maxValue.ts\",\n    \"./sl/maxWords\": \"./sl/maxWords.ts\",\n    \"./sl/mimeType\": \"./sl/mimeType.ts\",\n    \"./sl/minBytes\": \"./sl/minBytes.ts\",\n    \"./sl/minEntries\": \"./sl/minEntries.ts\",\n    \"./sl/minGraphemes\": \"./sl/minGraphemes.ts\",\n    \"./sl/minLength\": \"./sl/minLength.ts\",\n    \"./sl/minSize\": \"./sl/minSize.ts\",\n    \"./sl/minValue\": \"./sl/minValue.ts\",\n    \"./sl/minWords\": \"./sl/minWords.ts\",\n    \"./sl/multipleOf\": \"./sl/multipleOf.ts\",\n    \"./sl/nanoid\": \"./sl/nanoid.ts\",\n    \"./sl/nonEmpty\": \"./sl/nonEmpty.ts\",\n    \"./sl/notBytes\": \"./sl/notBytes.ts\",\n    \"./sl/notEntries\": \"./sl/notEntries.ts\",\n    \"./sl/notGraphemes\": \"./sl/notGraphemes.ts\",\n    \"./sl/notLength\": \"./sl/notLength.ts\",\n    \"./sl/notSize\": \"./sl/notSize.ts\",\n    \"./sl/notValue\": \"./sl/notValue.ts\",\n    \"./sl/notValues\": \"./sl/notValues.ts\",\n    \"./sl/notWords\": \"./sl/notWords.ts\",\n    \"./sl/octal\": \"./sl/octal.ts\",\n    \"./sl/parseBoolean\": \"./sl/parseBoolean.ts\",\n    \"./sl/parseJson\": \"./sl/parseJson.ts\",\n    \"./sl/partialCheck\": \"./sl/partialCheck.ts\",\n    \"./sl/rawCheck\": \"./sl/rawCheck.ts\",\n    \"./sl/rawTransform\": \"./sl/rawTransform.ts\",\n    \"./sl/regex\": \"./sl/regex.ts\",\n    \"./sl/rfcEmail\": \"./sl/rfcEmail.ts\",\n    \"./sl/safeInteger\": \"./sl/safeInteger.ts\",\n    \"./sl/size\": \"./sl/size.ts\",\n    \"./sl/slug\": \"./sl/slug.ts\",\n    \"./sl/someItem\": \"./sl/someItem.ts\",\n    \"./sl/startsWith\": \"./sl/startsWith.ts\",\n    \"./sl/stringifyJson\": \"./sl/stringifyJson.ts\",\n    \"./sl/toBigint\": \"./sl/toBigint.ts\",\n    \"./sl/toDate\": \"./sl/toDate.ts\",\n    \"./sl/toNumber\": \"./sl/toNumber.ts\",\n    \"./sl/toString\": \"./sl/toString.ts\",\n    \"./sl/ulid\": \"./sl/ulid.ts\",\n    \"./sl/url\": \"./sl/url.ts\",\n    \"./sl/uuid\": \"./sl/uuid.ts\",\n    \"./sl/value\": \"./sl/value.ts\",\n    \"./sl/values\": \"./sl/values.ts\",\n    \"./sl/words\": \"./sl/words.ts\",\n    \"./sv\": \"./sv/index.ts\",\n    \"./sv/schema\": \"./sv/schema.ts\",\n    \"./sv/base64\": \"./sv/base64.ts\",\n    \"./sv/bic\": \"./sv/bic.ts\",\n    \"./sv/bytes\": \"./sv/bytes.ts\",\n    \"./sv/check\": \"./sv/check.ts\",\n    \"./sv/checkAsync\": \"./sv/checkAsync.ts\",\n    \"./sv/checkItems\": \"./sv/checkItems.ts\",\n    \"./sv/checkItemsAsync\": \"./sv/checkItemsAsync.ts\",\n    \"./sv/creditCard\": \"./sv/creditCard.ts\",\n    \"./sv/cuid2\": \"./sv/cuid2.ts\",\n    \"./sv/decimal\": \"./sv/decimal.ts\",\n    \"./sv/digits\": \"./sv/digits.ts\",\n    \"./sv/domain\": \"./sv/domain.ts\",\n    \"./sv/email\": \"./sv/email.ts\",\n    \"./sv/emoji\": \"./sv/emoji.ts\",\n    \"./sv/empty\": \"./sv/empty.ts\",\n    \"./sv/endsWith\": \"./sv/endsWith.ts\",\n    \"./sv/entries\": \"./sv/entries.ts\",\n    \"./sv/everyItem\": \"./sv/everyItem.ts\",\n    \"./sv/excludes\": \"./sv/excludes.ts\",\n    \"./sv/finite\": \"./sv/finite.ts\",\n    \"./sv/graphemes\": \"./sv/graphemes.ts\",\n    \"./sv/gtValue\": \"./sv/gtValue.ts\",\n    \"./sv/guard\": \"./sv/guard.ts\",\n    \"./sv/hash\": \"./sv/hash.ts\",\n    \"./sv/hexadecimal\": \"./sv/hexadecimal.ts\",\n    \"./sv/hexColor\": \"./sv/hexColor.ts\",\n    \"./sv/imei\": \"./sv/imei.ts\",\n    \"./sv/includes\": \"./sv/includes.ts\",\n    \"./sv/integer\": \"./sv/integer.ts\",\n    \"./sv/ip\": \"./sv/ip.ts\",\n    \"./sv/ipv4\": \"./sv/ipv4.ts\",\n    \"./sv/ipv6\": \"./sv/ipv6.ts\",\n    \"./sv/isbn\": \"./sv/isbn.ts\",\n    \"./sv/isoDate\": \"./sv/isoDate.ts\",\n    \"./sv/isoDateTime\": \"./sv/isoDateTime.ts\",\n    \"./sv/isoTime\": \"./sv/isoTime.ts\",\n    \"./sv/isoTimeSecond\": \"./sv/isoTimeSecond.ts\",\n    \"./sv/isoTimestamp\": \"./sv/isoTimestamp.ts\",\n    \"./sv/isoWeek\": \"./sv/isoWeek.ts\",\n    \"./sv/isrc\": \"./sv/isrc.ts\",\n    \"./sv/jwsCompact\": \"./sv/jwsCompact.ts\",\n    \"./sv/length\": \"./sv/length.ts\",\n    \"./sv/ltValue\": \"./sv/ltValue.ts\",\n    \"./sv/mac\": \"./sv/mac.ts\",\n    \"./sv/mac48\": \"./sv/mac48.ts\",\n    \"./sv/mac64\": \"./sv/mac64.ts\",\n    \"./sv/maxBytes\": \"./sv/maxBytes.ts\",\n    \"./sv/maxEntries\": \"./sv/maxEntries.ts\",\n    \"./sv/maxGraphemes\": \"./sv/maxGraphemes.ts\",\n    \"./sv/maxLength\": \"./sv/maxLength.ts\",\n    \"./sv/maxSize\": \"./sv/maxSize.ts\",\n    \"./sv/maxValue\": \"./sv/maxValue.ts\",\n    \"./sv/maxWords\": \"./sv/maxWords.ts\",\n    \"./sv/mimeType\": \"./sv/mimeType.ts\",\n    \"./sv/minBytes\": \"./sv/minBytes.ts\",\n    \"./sv/minEntries\": \"./sv/minEntries.ts\",\n    \"./sv/minGraphemes\": \"./sv/minGraphemes.ts\",\n    \"./sv/minLength\": \"./sv/minLength.ts\",\n    \"./sv/minSize\": \"./sv/minSize.ts\",\n    \"./sv/minValue\": \"./sv/minValue.ts\",\n    \"./sv/minWords\": \"./sv/minWords.ts\",\n    \"./sv/multipleOf\": \"./sv/multipleOf.ts\",\n    \"./sv/nanoid\": \"./sv/nanoid.ts\",\n    \"./sv/nonEmpty\": \"./sv/nonEmpty.ts\",\n    \"./sv/notBytes\": \"./sv/notBytes.ts\",\n    \"./sv/notEntries\": \"./sv/notEntries.ts\",\n    \"./sv/notGraphemes\": \"./sv/notGraphemes.ts\",\n    \"./sv/notLength\": \"./sv/notLength.ts\",\n    \"./sv/notSize\": \"./sv/notSize.ts\",\n    \"./sv/notValue\": \"./sv/notValue.ts\",\n    \"./sv/notValues\": \"./sv/notValues.ts\",\n    \"./sv/notWords\": \"./sv/notWords.ts\",\n    \"./sv/octal\": \"./sv/octal.ts\",\n    \"./sv/parseBoolean\": \"./sv/parseBoolean.ts\",\n    \"./sv/parseJson\": \"./sv/parseJson.ts\",\n    \"./sv/partialCheck\": \"./sv/partialCheck.ts\",\n    \"./sv/rawCheck\": \"./sv/rawCheck.ts\",\n    \"./sv/rawTransform\": \"./sv/rawTransform.ts\",\n    \"./sv/regex\": \"./sv/regex.ts\",\n    \"./sv/rfcEmail\": \"./sv/rfcEmail.ts\",\n    \"./sv/safeInteger\": \"./sv/safeInteger.ts\",\n    \"./sv/size\": \"./sv/size.ts\",\n    \"./sv/slug\": \"./sv/slug.ts\",\n    \"./sv/someItem\": \"./sv/someItem.ts\",\n    \"./sv/startsWith\": \"./sv/startsWith.ts\",\n    \"./sv/stringifyJson\": \"./sv/stringifyJson.ts\",\n    \"./sv/toBigint\": \"./sv/toBigint.ts\",\n    \"./sv/toDate\": \"./sv/toDate.ts\",\n    \"./sv/toNumber\": \"./sv/toNumber.ts\",\n    \"./sv/toString\": \"./sv/toString.ts\",\n    \"./sv/ulid\": \"./sv/ulid.ts\",\n    \"./sv/url\": \"./sv/url.ts\",\n    \"./sv/uuid\": \"./sv/uuid.ts\",\n    \"./sv/value\": \"./sv/value.ts\",\n    \"./sv/values\": \"./sv/values.ts\",\n    \"./sv/words\": \"./sv/words.ts\",\n    \"./tr\": \"./tr/index.ts\",\n    \"./tr/schema\": \"./tr/schema.ts\",\n    \"./tr/base64\": \"./tr/base64.ts\",\n    \"./tr/bic\": \"./tr/bic.ts\",\n    \"./tr/bytes\": \"./tr/bytes.ts\",\n    \"./tr/check\": \"./tr/check.ts\",\n    \"./tr/checkAsync\": \"./tr/checkAsync.ts\",\n    \"./tr/checkItems\": \"./tr/checkItems.ts\",\n    \"./tr/checkItemsAsync\": \"./tr/checkItemsAsync.ts\",\n    \"./tr/creditCard\": \"./tr/creditCard.ts\",\n    \"./tr/cuid2\": \"./tr/cuid2.ts\",\n    \"./tr/decimal\": \"./tr/decimal.ts\",\n    \"./tr/digits\": \"./tr/digits.ts\",\n    \"./tr/domain\": \"./tr/domain.ts\",\n    \"./tr/email\": \"./tr/email.ts\",\n    \"./tr/emoji\": \"./tr/emoji.ts\",\n    \"./tr/empty\": \"./tr/empty.ts\",\n    \"./tr/endsWith\": \"./tr/endsWith.ts\",\n    \"./tr/entries\": \"./tr/entries.ts\",\n    \"./tr/everyItem\": \"./tr/everyItem.ts\",\n    \"./tr/excludes\": \"./tr/excludes.ts\",\n    \"./tr/finite\": \"./tr/finite.ts\",\n    \"./tr/graphemes\": \"./tr/graphemes.ts\",\n    \"./tr/gtValue\": \"./tr/gtValue.ts\",\n    \"./tr/guard\": \"./tr/guard.ts\",\n    \"./tr/hash\": \"./tr/hash.ts\",\n    \"./tr/hexadecimal\": \"./tr/hexadecimal.ts\",\n    \"./tr/hexColor\": \"./tr/hexColor.ts\",\n    \"./tr/imei\": \"./tr/imei.ts\",\n    \"./tr/includes\": \"./tr/includes.ts\",\n    \"./tr/integer\": \"./tr/integer.ts\",\n    \"./tr/ip\": \"./tr/ip.ts\",\n    \"./tr/ipv4\": \"./tr/ipv4.ts\",\n    \"./tr/ipv6\": \"./tr/ipv6.ts\",\n    \"./tr/isbn\": \"./tr/isbn.ts\",\n    \"./tr/isoDate\": \"./tr/isoDate.ts\",\n    \"./tr/isoDateTime\": \"./tr/isoDateTime.ts\",\n    \"./tr/isoTime\": \"./tr/isoTime.ts\",\n    \"./tr/isoTimeSecond\": \"./tr/isoTimeSecond.ts\",\n    \"./tr/isoTimestamp\": \"./tr/isoTimestamp.ts\",\n    \"./tr/isoWeek\": \"./tr/isoWeek.ts\",\n    \"./tr/isrc\": \"./tr/isrc.ts\",\n    \"./tr/jwsCompact\": \"./tr/jwsCompact.ts\",\n    \"./tr/length\": \"./tr/length.ts\",\n    \"./tr/ltValue\": \"./tr/ltValue.ts\",\n    \"./tr/mac\": \"./tr/mac.ts\",\n    \"./tr/mac48\": \"./tr/mac48.ts\",\n    \"./tr/mac64\": \"./tr/mac64.ts\",\n    \"./tr/maxBytes\": \"./tr/maxBytes.ts\",\n    \"./tr/maxEntries\": \"./tr/maxEntries.ts\",\n    \"./tr/maxGraphemes\": \"./tr/maxGraphemes.ts\",\n    \"./tr/maxLength\": \"./tr/maxLength.ts\",\n    \"./tr/maxSize\": \"./tr/maxSize.ts\",\n    \"./tr/maxValue\": \"./tr/maxValue.ts\",\n    \"./tr/maxWords\": \"./tr/maxWords.ts\",\n    \"./tr/mimeType\": \"./tr/mimeType.ts\",\n    \"./tr/minBytes\": \"./tr/minBytes.ts\",\n    \"./tr/minEntries\": \"./tr/minEntries.ts\",\n    \"./tr/minGraphemes\": \"./tr/minGraphemes.ts\",\n    \"./tr/minLength\": \"./tr/minLength.ts\",\n    \"./tr/minSize\": \"./tr/minSize.ts\",\n    \"./tr/minValue\": \"./tr/minValue.ts\",\n    \"./tr/minWords\": \"./tr/minWords.ts\",\n    \"./tr/multipleOf\": \"./tr/multipleOf.ts\",\n    \"./tr/nanoid\": \"./tr/nanoid.ts\",\n    \"./tr/nonEmpty\": \"./tr/nonEmpty.ts\",\n    \"./tr/notBytes\": \"./tr/notBytes.ts\",\n    \"./tr/notEntries\": \"./tr/notEntries.ts\",\n    \"./tr/notGraphemes\": \"./tr/notGraphemes.ts\",\n    \"./tr/notLength\": \"./tr/notLength.ts\",\n    \"./tr/notSize\": \"./tr/notSize.ts\",\n    \"./tr/notValue\": \"./tr/notValue.ts\",\n    \"./tr/notValues\": \"./tr/notValues.ts\",\n    \"./tr/notWords\": \"./tr/notWords.ts\",\n    \"./tr/octal\": \"./tr/octal.ts\",\n    \"./tr/parseBoolean\": \"./tr/parseBoolean.ts\",\n    \"./tr/parseJson\": \"./tr/parseJson.ts\",\n    \"./tr/partialCheck\": \"./tr/partialCheck.ts\",\n    \"./tr/rawCheck\": \"./tr/rawCheck.ts\",\n    \"./tr/rawTransform\": \"./tr/rawTransform.ts\",\n    \"./tr/regex\": \"./tr/regex.ts\",\n    \"./tr/rfcEmail\": \"./tr/rfcEmail.ts\",\n    \"./tr/safeInteger\": \"./tr/safeInteger.ts\",\n    \"./tr/size\": \"./tr/size.ts\",\n    \"./tr/slug\": \"./tr/slug.ts\",\n    \"./tr/someItem\": \"./tr/someItem.ts\",\n    \"./tr/startsWith\": \"./tr/startsWith.ts\",\n    \"./tr/stringifyJson\": \"./tr/stringifyJson.ts\",\n    \"./tr/toBigint\": \"./tr/toBigint.ts\",\n    \"./tr/toDate\": \"./tr/toDate.ts\",\n    \"./tr/toNumber\": \"./tr/toNumber.ts\",\n    \"./tr/toString\": \"./tr/toString.ts\",\n    \"./tr/ulid\": \"./tr/ulid.ts\",\n    \"./tr/url\": \"./tr/url.ts\",\n    \"./tr/uuid\": \"./tr/uuid.ts\",\n    \"./tr/value\": \"./tr/value.ts\",\n    \"./tr/values\": \"./tr/values.ts\",\n    \"./tr/words\": \"./tr/words.ts\",\n    \"./uk\": \"./uk/index.ts\",\n    \"./uk/schema\": \"./uk/schema.ts\",\n    \"./uk/base64\": \"./uk/base64.ts\",\n    \"./uk/bic\": \"./uk/bic.ts\",\n    \"./uk/bytes\": \"./uk/bytes.ts\",\n    \"./uk/check\": \"./uk/check.ts\",\n    \"./uk/checkAsync\": \"./uk/checkAsync.ts\",\n    \"./uk/checkItems\": \"./uk/checkItems.ts\",\n    \"./uk/checkItemsAsync\": \"./uk/checkItemsAsync.ts\",\n    \"./uk/creditCard\": \"./uk/creditCard.ts\",\n    \"./uk/cuid2\": \"./uk/cuid2.ts\",\n    \"./uk/decimal\": \"./uk/decimal.ts\",\n    \"./uk/digits\": \"./uk/digits.ts\",\n    \"./uk/domain\": \"./uk/domain.ts\",\n    \"./uk/email\": \"./uk/email.ts\",\n    \"./uk/emoji\": \"./uk/emoji.ts\",\n    \"./uk/empty\": \"./uk/empty.ts\",\n    \"./uk/endsWith\": \"./uk/endsWith.ts\",\n    \"./uk/entries\": \"./uk/entries.ts\",\n    \"./uk/everyItem\": \"./uk/everyItem.ts\",\n    \"./uk/excludes\": \"./uk/excludes.ts\",\n    \"./uk/finite\": \"./uk/finite.ts\",\n    \"./uk/graphemes\": \"./uk/graphemes.ts\",\n    \"./uk/gtValue\": \"./uk/gtValue.ts\",\n    \"./uk/guard\": \"./uk/guard.ts\",\n    \"./uk/hash\": \"./uk/hash.ts\",\n    \"./uk/hexadecimal\": \"./uk/hexadecimal.ts\",\n    \"./uk/hexColor\": \"./uk/hexColor.ts\",\n    \"./uk/imei\": \"./uk/imei.ts\",\n    \"./uk/includes\": \"./uk/includes.ts\",\n    \"./uk/integer\": \"./uk/integer.ts\",\n    \"./uk/ip\": \"./uk/ip.ts\",\n    \"./uk/ipv4\": \"./uk/ipv4.ts\",\n    \"./uk/ipv6\": \"./uk/ipv6.ts\",\n    \"./uk/isbn\": \"./uk/isbn.ts\",\n    \"./uk/isoDate\": \"./uk/isoDate.ts\",\n    \"./uk/isoDateTime\": \"./uk/isoDateTime.ts\",\n    \"./uk/isoTime\": \"./uk/isoTime.ts\",\n    \"./uk/isoTimeSecond\": \"./uk/isoTimeSecond.ts\",\n    \"./uk/isoTimestamp\": \"./uk/isoTimestamp.ts\",\n    \"./uk/isoWeek\": \"./uk/isoWeek.ts\",\n    \"./uk/isrc\": \"./uk/isrc.ts\",\n    \"./uk/jwsCompact\": \"./uk/jwsCompact.ts\",\n    \"./uk/length\": \"./uk/length.ts\",\n    \"./uk/ltValue\": \"./uk/ltValue.ts\",\n    \"./uk/mac\": \"./uk/mac.ts\",\n    \"./uk/mac48\": \"./uk/mac48.ts\",\n    \"./uk/mac64\": \"./uk/mac64.ts\",\n    \"./uk/maxBytes\": \"./uk/maxBytes.ts\",\n    \"./uk/maxEntries\": \"./uk/maxEntries.ts\",\n    \"./uk/maxGraphemes\": \"./uk/maxGraphemes.ts\",\n    \"./uk/maxLength\": \"./uk/maxLength.ts\",\n    \"./uk/maxSize\": \"./uk/maxSize.ts\",\n    \"./uk/maxValue\": \"./uk/maxValue.ts\",\n    \"./uk/maxWords\": \"./uk/maxWords.ts\",\n    \"./uk/mimeType\": \"./uk/mimeType.ts\",\n    \"./uk/minBytes\": \"./uk/minBytes.ts\",\n    \"./uk/minEntries\": \"./uk/minEntries.ts\",\n    \"./uk/minGraphemes\": \"./uk/minGraphemes.ts\",\n    \"./uk/minLength\": \"./uk/minLength.ts\",\n    \"./uk/minSize\": \"./uk/minSize.ts\",\n    \"./uk/minValue\": \"./uk/minValue.ts\",\n    \"./uk/minWords\": \"./uk/minWords.ts\",\n    \"./uk/multipleOf\": \"./uk/multipleOf.ts\",\n    \"./uk/nanoid\": \"./uk/nanoid.ts\",\n    \"./uk/nonEmpty\": \"./uk/nonEmpty.ts\",\n    \"./uk/notBytes\": \"./uk/notBytes.ts\",\n    \"./uk/notEntries\": \"./uk/notEntries.ts\",\n    \"./uk/notGraphemes\": \"./uk/notGraphemes.ts\",\n    \"./uk/notLength\": \"./uk/notLength.ts\",\n    \"./uk/notSize\": \"./uk/notSize.ts\",\n    \"./uk/notValue\": \"./uk/notValue.ts\",\n    \"./uk/notValues\": \"./uk/notValues.ts\",\n    \"./uk/notWords\": \"./uk/notWords.ts\",\n    \"./uk/octal\": \"./uk/octal.ts\",\n    \"./uk/parseBoolean\": \"./uk/parseBoolean.ts\",\n    \"./uk/parseJson\": \"./uk/parseJson.ts\",\n    \"./uk/partialCheck\": \"./uk/partialCheck.ts\",\n    \"./uk/rawCheck\": \"./uk/rawCheck.ts\",\n    \"./uk/rawTransform\": \"./uk/rawTransform.ts\",\n    \"./uk/regex\": \"./uk/regex.ts\",\n    \"./uk/rfcEmail\": \"./uk/rfcEmail.ts\",\n    \"./uk/safeInteger\": \"./uk/safeInteger.ts\",\n    \"./uk/size\": \"./uk/size.ts\",\n    \"./uk/slug\": \"./uk/slug.ts\",\n    \"./uk/someItem\": \"./uk/someItem.ts\",\n    \"./uk/startsWith\": \"./uk/startsWith.ts\",\n    \"./uk/stringifyJson\": \"./uk/stringifyJson.ts\",\n    \"./uk/toBigint\": \"./uk/toBigint.ts\",\n    \"./uk/toDate\": \"./uk/toDate.ts\",\n    \"./uk/toNumber\": \"./uk/toNumber.ts\",\n    \"./uk/toString\": \"./uk/toString.ts\",\n    \"./uk/ulid\": \"./uk/ulid.ts\",\n    \"./uk/url\": \"./uk/url.ts\",\n    \"./uk/uuid\": \"./uk/uuid.ts\",\n    \"./uk/value\": \"./uk/value.ts\",\n    \"./uk/values\": \"./uk/values.ts\",\n    \"./uk/words\": \"./uk/words.ts\",\n    \"./vi\": \"./vi/index.ts\",\n    \"./vi/schema\": \"./vi/schema.ts\",\n    \"./vi/base64\": \"./vi/base64.ts\",\n    \"./vi/bic\": \"./vi/bic.ts\",\n    \"./vi/bytes\": \"./vi/bytes.ts\",\n    \"./vi/check\": \"./vi/check.ts\",\n    \"./vi/checkAsync\": \"./vi/checkAsync.ts\",\n    \"./vi/checkItems\": \"./vi/checkItems.ts\",\n    \"./vi/checkItemsAsync\": \"./vi/checkItemsAsync.ts\",\n    \"./vi/creditCard\": \"./vi/creditCard.ts\",\n    \"./vi/cuid2\": \"./vi/cuid2.ts\",\n    \"./vi/decimal\": \"./vi/decimal.ts\",\n    \"./vi/digits\": \"./vi/digits.ts\",\n    \"./vi/domain\": \"./vi/domain.ts\",\n    \"./vi/email\": \"./vi/email.ts\",\n    \"./vi/emoji\": \"./vi/emoji.ts\",\n    \"./vi/empty\": \"./vi/empty.ts\",\n    \"./vi/endsWith\": \"./vi/endsWith.ts\",\n    \"./vi/entries\": \"./vi/entries.ts\",\n    \"./vi/everyItem\": \"./vi/everyItem.ts\",\n    \"./vi/excludes\": \"./vi/excludes.ts\",\n    \"./vi/finite\": \"./vi/finite.ts\",\n    \"./vi/graphemes\": \"./vi/graphemes.ts\",\n    \"./vi/gtValue\": \"./vi/gtValue.ts\",\n    \"./vi/guard\": \"./vi/guard.ts\",\n    \"./vi/hash\": \"./vi/hash.ts\",\n    \"./vi/hexadecimal\": \"./vi/hexadecimal.ts\",\n    \"./vi/hexColor\": \"./vi/hexColor.ts\",\n    \"./vi/imei\": \"./vi/imei.ts\",\n    \"./vi/includes\": \"./vi/includes.ts\",\n    \"./vi/integer\": \"./vi/integer.ts\",\n    \"./vi/ip\": \"./vi/ip.ts\",\n    \"./vi/ipv4\": \"./vi/ipv4.ts\",\n    \"./vi/ipv6\": \"./vi/ipv6.ts\",\n    \"./vi/isbn\": \"./vi/isbn.ts\",\n    \"./vi/isoDate\": \"./vi/isoDate.ts\",\n    \"./vi/isoDateTime\": \"./vi/isoDateTime.ts\",\n    \"./vi/isoTime\": \"./vi/isoTime.ts\",\n    \"./vi/isoTimeSecond\": \"./vi/isoTimeSecond.ts\",\n    \"./vi/isoTimestamp\": \"./vi/isoTimestamp.ts\",\n    \"./vi/isoWeek\": \"./vi/isoWeek.ts\",\n    \"./vi/isrc\": \"./vi/isrc.ts\",\n    \"./vi/jwsCompact\": \"./vi/jwsCompact.ts\",\n    \"./vi/length\": \"./vi/length.ts\",\n    \"./vi/ltValue\": \"./vi/ltValue.ts\",\n    \"./vi/mac\": \"./vi/mac.ts\",\n    \"./vi/mac48\": \"./vi/mac48.ts\",\n    \"./vi/mac64\": \"./vi/mac64.ts\",\n    \"./vi/maxBytes\": \"./vi/maxBytes.ts\",\n    \"./vi/maxEntries\": \"./vi/maxEntries.ts\",\n    \"./vi/maxGraphemes\": \"./vi/maxGraphemes.ts\",\n    \"./vi/maxLength\": \"./vi/maxLength.ts\",\n    \"./vi/maxSize\": \"./vi/maxSize.ts\",\n    \"./vi/maxValue\": \"./vi/maxValue.ts\",\n    \"./vi/maxWords\": \"./vi/maxWords.ts\",\n    \"./vi/mimeType\": \"./vi/mimeType.ts\",\n    \"./vi/minBytes\": \"./vi/minBytes.ts\",\n    \"./vi/minEntries\": \"./vi/minEntries.ts\",\n    \"./vi/minGraphemes\": \"./vi/minGraphemes.ts\",\n    \"./vi/minLength\": \"./vi/minLength.ts\",\n    \"./vi/minSize\": \"./vi/minSize.ts\",\n    \"./vi/minValue\": \"./vi/minValue.ts\",\n    \"./vi/minWords\": \"./vi/minWords.ts\",\n    \"./vi/multipleOf\": \"./vi/multipleOf.ts\",\n    \"./vi/nanoid\": \"./vi/nanoid.ts\",\n    \"./vi/nonEmpty\": \"./vi/nonEmpty.ts\",\n    \"./vi/notBytes\": \"./vi/notBytes.ts\",\n    \"./vi/notEntries\": \"./vi/notEntries.ts\",\n    \"./vi/notGraphemes\": \"./vi/notGraphemes.ts\",\n    \"./vi/notLength\": \"./vi/notLength.ts\",\n    \"./vi/notSize\": \"./vi/notSize.ts\",\n    \"./vi/notValue\": \"./vi/notValue.ts\",\n    \"./vi/notValues\": \"./vi/notValues.ts\",\n    \"./vi/notWords\": \"./vi/notWords.ts\",\n    \"./vi/octal\": \"./vi/octal.ts\",\n    \"./vi/parseBoolean\": \"./vi/parseBoolean.ts\",\n    \"./vi/parseJson\": \"./vi/parseJson.ts\",\n    \"./vi/partialCheck\": \"./vi/partialCheck.ts\",\n    \"./vi/rawCheck\": \"./vi/rawCheck.ts\",\n    \"./vi/rawTransform\": \"./vi/rawTransform.ts\",\n    \"./vi/regex\": \"./vi/regex.ts\",\n    \"./vi/rfcEmail\": \"./vi/rfcEmail.ts\",\n    \"./vi/safeInteger\": \"./vi/safeInteger.ts\",\n    \"./vi/size\": \"./vi/size.ts\",\n    \"./vi/slug\": \"./vi/slug.ts\",\n    \"./vi/someItem\": \"./vi/someItem.ts\",\n    \"./vi/startsWith\": \"./vi/startsWith.ts\",\n    \"./vi/stringifyJson\": \"./vi/stringifyJson.ts\",\n    \"./vi/toBigint\": \"./vi/toBigint.ts\",\n    \"./vi/toDate\": \"./vi/toDate.ts\",\n    \"./vi/toNumber\": \"./vi/toNumber.ts\",\n    \"./vi/toString\": \"./vi/toString.ts\",\n    \"./vi/ulid\": \"./vi/ulid.ts\",\n    \"./vi/url\": \"./vi/url.ts\",\n    \"./vi/uuid\": \"./vi/uuid.ts\",\n    \"./vi/value\": \"./vi/value.ts\",\n    \"./vi/values\": \"./vi/values.ts\",\n    \"./vi/words\": \"./vi/words.ts\",\n    \"./zh-CN\": \"./zh-CN/index.ts\",\n    \"./zh-CN/schema\": \"./zh-CN/schema.ts\",\n    \"./zh-CN/base64\": \"./zh-CN/base64.ts\",\n    \"./zh-CN/bic\": \"./zh-CN/bic.ts\",\n    \"./zh-CN/bytes\": \"./zh-CN/bytes.ts\",\n    \"./zh-CN/check\": \"./zh-CN/check.ts\",\n    \"./zh-CN/checkAsync\": \"./zh-CN/checkAsync.ts\",\n    \"./zh-CN/checkItems\": \"./zh-CN/checkItems.ts\",\n    \"./zh-CN/checkItemsAsync\": \"./zh-CN/checkItemsAsync.ts\",\n    \"./zh-CN/creditCard\": \"./zh-CN/creditCard.ts\",\n    \"./zh-CN/cuid2\": \"./zh-CN/cuid2.ts\",\n    \"./zh-CN/decimal\": \"./zh-CN/decimal.ts\",\n    \"./zh-CN/digits\": \"./zh-CN/digits.ts\",\n    \"./zh-CN/domain\": \"./zh-CN/domain.ts\",\n    \"./zh-CN/email\": \"./zh-CN/email.ts\",\n    \"./zh-CN/emoji\": \"./zh-CN/emoji.ts\",\n    \"./zh-CN/empty\": \"./zh-CN/empty.ts\",\n    \"./zh-CN/endsWith\": \"./zh-CN/endsWith.ts\",\n    \"./zh-CN/entries\": \"./zh-CN/entries.ts\",\n    \"./zh-CN/everyItem\": \"./zh-CN/everyItem.ts\",\n    \"./zh-CN/excludes\": \"./zh-CN/excludes.ts\",\n    \"./zh-CN/finite\": \"./zh-CN/finite.ts\",\n    \"./zh-CN/graphemes\": \"./zh-CN/graphemes.ts\",\n    \"./zh-CN/gtValue\": \"./zh-CN/gtValue.ts\",\n    \"./zh-CN/guard\": \"./zh-CN/guard.ts\",\n    \"./zh-CN/hash\": \"./zh-CN/hash.ts\",\n    \"./zh-CN/hexadecimal\": \"./zh-CN/hexadecimal.ts\",\n    \"./zh-CN/hexColor\": \"./zh-CN/hexColor.ts\",\n    \"./zh-CN/imei\": \"./zh-CN/imei.ts\",\n    \"./zh-CN/includes\": \"./zh-CN/includes.ts\",\n    \"./zh-CN/integer\": \"./zh-CN/integer.ts\",\n    \"./zh-CN/ip\": \"./zh-CN/ip.ts\",\n    \"./zh-CN/ipv4\": \"./zh-CN/ipv4.ts\",\n    \"./zh-CN/ipv6\": \"./zh-CN/ipv6.ts\",\n    \"./zh-CN/isbn\": \"./zh-CN/isbn.ts\",\n    \"./zh-CN/isoDate\": \"./zh-CN/isoDate.ts\",\n    \"./zh-CN/isoDateTime\": \"./zh-CN/isoDateTime.ts\",\n    \"./zh-CN/isoTime\": \"./zh-CN/isoTime.ts\",\n    \"./zh-CN/isoTimeSecond\": \"./zh-CN/isoTimeSecond.ts\",\n    \"./zh-CN/isoTimestamp\": \"./zh-CN/isoTimestamp.ts\",\n    \"./zh-CN/isoWeek\": \"./zh-CN/isoWeek.ts\",\n    \"./zh-CN/isrc\": \"./zh-CN/isrc.ts\",\n    \"./zh-CN/jwsCompact\": \"./zh-CN/jwsCompact.ts\",\n    \"./zh-CN/length\": \"./zh-CN/length.ts\",\n    \"./zh-CN/ltValue\": \"./zh-CN/ltValue.ts\",\n    \"./zh-CN/mac\": \"./zh-CN/mac.ts\",\n    \"./zh-CN/mac48\": \"./zh-CN/mac48.ts\",\n    \"./zh-CN/mac64\": \"./zh-CN/mac64.ts\",\n    \"./zh-CN/maxBytes\": \"./zh-CN/maxBytes.ts\",\n    \"./zh-CN/maxEntries\": \"./zh-CN/maxEntries.ts\",\n    \"./zh-CN/maxGraphemes\": \"./zh-CN/maxGraphemes.ts\",\n    \"./zh-CN/maxLength\": \"./zh-CN/maxLength.ts\",\n    \"./zh-CN/maxSize\": \"./zh-CN/maxSize.ts\",\n    \"./zh-CN/maxValue\": \"./zh-CN/maxValue.ts\",\n    \"./zh-CN/maxWords\": \"./zh-CN/maxWords.ts\",\n    \"./zh-CN/mimeType\": \"./zh-CN/mimeType.ts\",\n    \"./zh-CN/minBytes\": \"./zh-CN/minBytes.ts\",\n    \"./zh-CN/minEntries\": \"./zh-CN/minEntries.ts\",\n    \"./zh-CN/minGraphemes\": \"./zh-CN/minGraphemes.ts\",\n    \"./zh-CN/minLength\": \"./zh-CN/minLength.ts\",\n    \"./zh-CN/minSize\": \"./zh-CN/minSize.ts\",\n    \"./zh-CN/minValue\": \"./zh-CN/minValue.ts\",\n    \"./zh-CN/minWords\": \"./zh-CN/minWords.ts\",\n    \"./zh-CN/multipleOf\": \"./zh-CN/multipleOf.ts\",\n    \"./zh-CN/nanoid\": \"./zh-CN/nanoid.ts\",\n    \"./zh-CN/nonEmpty\": \"./zh-CN/nonEmpty.ts\",\n    \"./zh-CN/notBytes\": \"./zh-CN/notBytes.ts\",\n    \"./zh-CN/notEntries\": \"./zh-CN/notEntries.ts\",\n    \"./zh-CN/notGraphemes\": \"./zh-CN/notGraphemes.ts\",\n    \"./zh-CN/notLength\": \"./zh-CN/notLength.ts\",\n    \"./zh-CN/notSize\": \"./zh-CN/notSize.ts\",\n    \"./zh-CN/notValue\": \"./zh-CN/notValue.ts\",\n    \"./zh-CN/notValues\": \"./zh-CN/notValues.ts\",\n    \"./zh-CN/notWords\": \"./zh-CN/notWords.ts\",\n    \"./zh-CN/octal\": \"./zh-CN/octal.ts\",\n    \"./zh-CN/parseBoolean\": \"./zh-CN/parseBoolean.ts\",\n    \"./zh-CN/parseJson\": \"./zh-CN/parseJson.ts\",\n    \"./zh-CN/partialCheck\": \"./zh-CN/partialCheck.ts\",\n    \"./zh-CN/rawCheck\": \"./zh-CN/rawCheck.ts\",\n    \"./zh-CN/rawTransform\": \"./zh-CN/rawTransform.ts\",\n    \"./zh-CN/regex\": \"./zh-CN/regex.ts\",\n    \"./zh-CN/rfcEmail\": \"./zh-CN/rfcEmail.ts\",\n    \"./zh-CN/safeInteger\": \"./zh-CN/safeInteger.ts\",\n    \"./zh-CN/size\": \"./zh-CN/size.ts\",\n    \"./zh-CN/slug\": \"./zh-CN/slug.ts\",\n    \"./zh-CN/someItem\": \"./zh-CN/someItem.ts\",\n    \"./zh-CN/startsWith\": \"./zh-CN/startsWith.ts\",\n    \"./zh-CN/stringifyJson\": \"./zh-CN/stringifyJson.ts\",\n    \"./zh-CN/toBigint\": \"./zh-CN/toBigint.ts\",\n    \"./zh-CN/toDate\": \"./zh-CN/toDate.ts\",\n    \"./zh-CN/toNumber\": \"./zh-CN/toNumber.ts\",\n    \"./zh-CN/toString\": \"./zh-CN/toString.ts\",\n    \"./zh-CN/ulid\": \"./zh-CN/ulid.ts\",\n    \"./zh-CN/url\": \"./zh-CN/url.ts\",\n    \"./zh-CN/uuid\": \"./zh-CN/uuid.ts\",\n    \"./zh-CN/value\": \"./zh-CN/value.ts\",\n    \"./zh-CN/values\": \"./zh-CN/values.ts\",\n    \"./zh-CN/words\": \"./zh-CN/words.ts\",\n    \"./zh-TW\": \"./zh-TW/index.ts\",\n    \"./zh-TW/schema\": \"./zh-TW/schema.ts\",\n    \"./zh-TW/base64\": \"./zh-TW/base64.ts\",\n    \"./zh-TW/bic\": \"./zh-TW/bic.ts\",\n    \"./zh-TW/bytes\": \"./zh-TW/bytes.ts\",\n    \"./zh-TW/check\": \"./zh-TW/check.ts\",\n    \"./zh-TW/checkAsync\": \"./zh-TW/checkAsync.ts\",\n    \"./zh-TW/checkItems\": \"./zh-TW/checkItems.ts\",\n    \"./zh-TW/checkItemsAsync\": \"./zh-TW/checkItemsAsync.ts\",\n    \"./zh-TW/creditCard\": \"./zh-TW/creditCard.ts\",\n    \"./zh-TW/cuid2\": \"./zh-TW/cuid2.ts\",\n    \"./zh-TW/decimal\": \"./zh-TW/decimal.ts\",\n    \"./zh-TW/digits\": \"./zh-TW/digits.ts\",\n    \"./zh-TW/domain\": \"./zh-TW/domain.ts\",\n    \"./zh-TW/email\": \"./zh-TW/email.ts\",\n    \"./zh-TW/emoji\": \"./zh-TW/emoji.ts\",\n    \"./zh-TW/empty\": \"./zh-TW/empty.ts\",\n    \"./zh-TW/endsWith\": \"./zh-TW/endsWith.ts\",\n    \"./zh-TW/entries\": \"./zh-TW/entries.ts\",\n    \"./zh-TW/everyItem\": \"./zh-TW/everyItem.ts\",\n    \"./zh-TW/excludes\": \"./zh-TW/excludes.ts\",\n    \"./zh-TW/finite\": \"./zh-TW/finite.ts\",\n    \"./zh-TW/graphemes\": \"./zh-TW/graphemes.ts\",\n    \"./zh-TW/gtValue\": \"./zh-TW/gtValue.ts\",\n    \"./zh-TW/guard\": \"./zh-TW/guard.ts\",\n    \"./zh-TW/hash\": \"./zh-TW/hash.ts\",\n    \"./zh-TW/hexadecimal\": \"./zh-TW/hexadecimal.ts\",\n    \"./zh-TW/hexColor\": \"./zh-TW/hexColor.ts\",\n    \"./zh-TW/imei\": \"./zh-TW/imei.ts\",\n    \"./zh-TW/includes\": \"./zh-TW/includes.ts\",\n    \"./zh-TW/integer\": \"./zh-TW/integer.ts\",\n    \"./zh-TW/ip\": \"./zh-TW/ip.ts\",\n    \"./zh-TW/ipv4\": \"./zh-TW/ipv4.ts\",\n    \"./zh-TW/ipv6\": \"./zh-TW/ipv6.ts\",\n    \"./zh-TW/isbn\": \"./zh-TW/isbn.ts\",\n    \"./zh-TW/isoDate\": \"./zh-TW/isoDate.ts\",\n    \"./zh-TW/isoDateTime\": \"./zh-TW/isoDateTime.ts\",\n    \"./zh-TW/isoTime\": \"./zh-TW/isoTime.ts\",\n    \"./zh-TW/isoTimeSecond\": \"./zh-TW/isoTimeSecond.ts\",\n    \"./zh-TW/isoTimestamp\": \"./zh-TW/isoTimestamp.ts\",\n    \"./zh-TW/isoWeek\": \"./zh-TW/isoWeek.ts\",\n    \"./zh-TW/isrc\": \"./zh-TW/isrc.ts\",\n    \"./zh-TW/jwsCompact\": \"./zh-TW/jwsCompact.ts\",\n    \"./zh-TW/length\": \"./zh-TW/length.ts\",\n    \"./zh-TW/ltValue\": \"./zh-TW/ltValue.ts\",\n    \"./zh-TW/mac\": \"./zh-TW/mac.ts\",\n    \"./zh-TW/mac48\": \"./zh-TW/mac48.ts\",\n    \"./zh-TW/mac64\": \"./zh-TW/mac64.ts\",\n    \"./zh-TW/maxBytes\": \"./zh-TW/maxBytes.ts\",\n    \"./zh-TW/maxEntries\": \"./zh-TW/maxEntries.ts\",\n    \"./zh-TW/maxGraphemes\": \"./zh-TW/maxGraphemes.ts\",\n    \"./zh-TW/maxLength\": \"./zh-TW/maxLength.ts\",\n    \"./zh-TW/maxSize\": \"./zh-TW/maxSize.ts\",\n    \"./zh-TW/maxValue\": \"./zh-TW/maxValue.ts\",\n    \"./zh-TW/maxWords\": \"./zh-TW/maxWords.ts\",\n    \"./zh-TW/mimeType\": \"./zh-TW/mimeType.ts\",\n    \"./zh-TW/minBytes\": \"./zh-TW/minBytes.ts\",\n    \"./zh-TW/minEntries\": \"./zh-TW/minEntries.ts\",\n    \"./zh-TW/minGraphemes\": \"./zh-TW/minGraphemes.ts\",\n    \"./zh-TW/minLength\": \"./zh-TW/minLength.ts\",\n    \"./zh-TW/minSize\": \"./zh-TW/minSize.ts\",\n    \"./zh-TW/minValue\": \"./zh-TW/minValue.ts\",\n    \"./zh-TW/minWords\": \"./zh-TW/minWords.ts\",\n    \"./zh-TW/multipleOf\": \"./zh-TW/multipleOf.ts\",\n    \"./zh-TW/nanoid\": \"./zh-TW/nanoid.ts\",\n    \"./zh-TW/nonEmpty\": \"./zh-TW/nonEmpty.ts\",\n    \"./zh-TW/notBytes\": \"./zh-TW/notBytes.ts\",\n    \"./zh-TW/notEntries\": \"./zh-TW/notEntries.ts\",\n    \"./zh-TW/notGraphemes\": \"./zh-TW/notGraphemes.ts\",\n    \"./zh-TW/notLength\": \"./zh-TW/notLength.ts\",\n    \"./zh-TW/notSize\": \"./zh-TW/notSize.ts\",\n    \"./zh-TW/notValue\": \"./zh-TW/notValue.ts\",\n    \"./zh-TW/notValues\": \"./zh-TW/notValues.ts\",\n    \"./zh-TW/notWords\": \"./zh-TW/notWords.ts\",\n    \"./zh-TW/octal\": \"./zh-TW/octal.ts\",\n    \"./zh-TW/parseBoolean\": \"./zh-TW/parseBoolean.ts\",\n    \"./zh-TW/parseJson\": \"./zh-TW/parseJson.ts\",\n    \"./zh-TW/partialCheck\": \"./zh-TW/partialCheck.ts\",\n    \"./zh-TW/rawCheck\": \"./zh-TW/rawCheck.ts\",\n    \"./zh-TW/rawTransform\": \"./zh-TW/rawTransform.ts\",\n    \"./zh-TW/regex\": \"./zh-TW/regex.ts\",\n    \"./zh-TW/rfcEmail\": \"./zh-TW/rfcEmail.ts\",\n    \"./zh-TW/safeInteger\": \"./zh-TW/safeInteger.ts\",\n    \"./zh-TW/size\": \"./zh-TW/size.ts\",\n    \"./zh-TW/slug\": \"./zh-TW/slug.ts\",\n    \"./zh-TW/someItem\": \"./zh-TW/someItem.ts\",\n    \"./zh-TW/startsWith\": \"./zh-TW/startsWith.ts\",\n    \"./zh-TW/stringifyJson\": \"./zh-TW/stringifyJson.ts\",\n    \"./zh-TW/toBigint\": \"./zh-TW/toBigint.ts\",\n    \"./zh-TW/toDate\": \"./zh-TW/toDate.ts\",\n    \"./zh-TW/toNumber\": \"./zh-TW/toNumber.ts\",\n    \"./zh-TW/toString\": \"./zh-TW/toString.ts\",\n    \"./zh-TW/ulid\": \"./zh-TW/ulid.ts\",\n    \"./zh-TW/url\": \"./zh-TW/url.ts\",\n    \"./zh-TW/uuid\": \"./zh-TW/uuid.ts\",\n    \"./zh-TW/value\": \"./zh-TW/value.ts\",\n    \"./zh-TW/values\": \"./zh-TW/values.ts\",\n    \"./zh-TW/words\": \"./zh-TW/words.ts\"\n  }\n}\n"
  },
  {
    "path": "packages/i18n/package.json",
    "content": "{\n  \"name\": \"@valibot/i18n\",\n  \"description\": \"The official i18n translations for Valibot\",\n  \"version\": \"1.1.0\",\n  \"license\": \"MIT\",\n  \"author\": \"Fabian Hiller\",\n  \"homepage\": \"https://valibot.dev\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/open-circle/valibot\"\n  },\n  \"keywords\": [\n    \"valibot\",\n    \"i18n\",\n    \"translations\",\n    \"internationalization\"\n  ],\n  \"type\": \"module\",\n  \"main\": \"./index.mjs\",\n  \"types\": \"./index.d.mts\",\n  \"sideEffects\": true,\n  \"publishConfig\": {\n    \"access\": \"public\"\n  },\n  \"scripts\": {\n    \"lint\": \"tsc --noEmit\",\n    \"build.npm\": \"tsm ./scripts/build-npm.ts\",\n    \"build.jsr\": \"tsm ./scripts/build-jsr.ts\"\n  },\n  \"devDependencies\": {\n    \"@types/node\": \"^24.10.1\",\n    \"tsm\": \"^2.3.0\",\n    \"typescript\": \"^5.9.3\",\n    \"valibot\": \"^1.3.0\"\n  },\n  \"peerDependencies\": {\n    \"valibot\": \"^1.3.0\"\n  },\n  \"files\": [\n    \"index.ts\",\n    \"index.mjs\",\n    \"index.cjs\",\n    \"index.d.mts\",\n    \"index.d.cts\",\n    \"ar\",\n    \"az\",\n    \"ca\",\n    \"cs\",\n    \"de\",\n    \"el\",\n    \"es\",\n    \"fa\",\n    \"fi\",\n    \"fr\",\n    \"hu\",\n    \"id\",\n    \"it\",\n    \"ja\",\n    \"ko\",\n    \"kr\",\n    \"mn\",\n    \"nb\",\n    \"nl\",\n    \"pl\",\n    \"pt\",\n    \"ro\",\n    \"ru\",\n    \"sk\",\n    \"sl\",\n    \"sv\",\n    \"tr\",\n    \"uk\",\n    \"vi\",\n    \"zh-CN\",\n    \"zh-TW\"\n  ],\n  \"exports\": {\n    \".\": {\n      \"import\": {\n        \"types\": \"./index.d.mts\",\n        \"default\": \"./index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./index.d.cts\",\n        \"default\": \"./index.cjs\"\n      }\n    },\n    \"./ar\": {\n      \"import\": {\n        \"types\": \"./ar/index.d.mts\",\n        \"default\": \"./ar/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/index.d.cts\",\n        \"default\": \"./ar/index.cjs\"\n      }\n    },\n    \"./ar/schema\": {\n      \"import\": {\n        \"types\": \"./ar/schema.d.mts\",\n        \"default\": \"./ar/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/schema.d.cts\",\n        \"default\": \"./ar/schema.cjs\"\n      }\n    },\n    \"./ar/base64\": {\n      \"import\": {\n        \"types\": \"./ar/base64.d.mts\",\n        \"default\": \"./ar/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/base64.d.cts\",\n        \"default\": \"./ar/base64.cjs\"\n      }\n    },\n    \"./ar/bic\": {\n      \"import\": {\n        \"types\": \"./ar/bic.d.mts\",\n        \"default\": \"./ar/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/bic.d.cts\",\n        \"default\": \"./ar/bic.cjs\"\n      }\n    },\n    \"./ar/bytes\": {\n      \"import\": {\n        \"types\": \"./ar/bytes.d.mts\",\n        \"default\": \"./ar/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/bytes.d.cts\",\n        \"default\": \"./ar/bytes.cjs\"\n      }\n    },\n    \"./ar/check\": {\n      \"import\": {\n        \"types\": \"./ar/check.d.mts\",\n        \"default\": \"./ar/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/check.d.cts\",\n        \"default\": \"./ar/check.cjs\"\n      }\n    },\n    \"./ar/checkAsync\": {\n      \"import\": {\n        \"types\": \"./ar/checkAsync.d.mts\",\n        \"default\": \"./ar/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/checkAsync.d.cts\",\n        \"default\": \"./ar/checkAsync.cjs\"\n      }\n    },\n    \"./ar/checkItems\": {\n      \"import\": {\n        \"types\": \"./ar/checkItems.d.mts\",\n        \"default\": \"./ar/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/checkItems.d.cts\",\n        \"default\": \"./ar/checkItems.cjs\"\n      }\n    },\n    \"./ar/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./ar/checkItemsAsync.d.mts\",\n        \"default\": \"./ar/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/checkItemsAsync.d.cts\",\n        \"default\": \"./ar/checkItemsAsync.cjs\"\n      }\n    },\n    \"./ar/creditCard\": {\n      \"import\": {\n        \"types\": \"./ar/creditCard.d.mts\",\n        \"default\": \"./ar/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/creditCard.d.cts\",\n        \"default\": \"./ar/creditCard.cjs\"\n      }\n    },\n    \"./ar/cuid2\": {\n      \"import\": {\n        \"types\": \"./ar/cuid2.d.mts\",\n        \"default\": \"./ar/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/cuid2.d.cts\",\n        \"default\": \"./ar/cuid2.cjs\"\n      }\n    },\n    \"./ar/decimal\": {\n      \"import\": {\n        \"types\": \"./ar/decimal.d.mts\",\n        \"default\": \"./ar/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/decimal.d.cts\",\n        \"default\": \"./ar/decimal.cjs\"\n      }\n    },\n    \"./ar/digits\": {\n      \"import\": {\n        \"types\": \"./ar/digits.d.mts\",\n        \"default\": \"./ar/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/digits.d.cts\",\n        \"default\": \"./ar/digits.cjs\"\n      }\n    },\n    \"./ar/domain\": {\n      \"import\": {\n        \"types\": \"./ar/domain.d.mts\",\n        \"default\": \"./ar/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/domain.d.cts\",\n        \"default\": \"./ar/domain.cjs\"\n      }\n    },\n    \"./ar/email\": {\n      \"import\": {\n        \"types\": \"./ar/email.d.mts\",\n        \"default\": \"./ar/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/email.d.cts\",\n        \"default\": \"./ar/email.cjs\"\n      }\n    },\n    \"./ar/emoji\": {\n      \"import\": {\n        \"types\": \"./ar/emoji.d.mts\",\n        \"default\": \"./ar/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/emoji.d.cts\",\n        \"default\": \"./ar/emoji.cjs\"\n      }\n    },\n    \"./ar/empty\": {\n      \"import\": {\n        \"types\": \"./ar/empty.d.mts\",\n        \"default\": \"./ar/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/empty.d.cts\",\n        \"default\": \"./ar/empty.cjs\"\n      }\n    },\n    \"./ar/endsWith\": {\n      \"import\": {\n        \"types\": \"./ar/endsWith.d.mts\",\n        \"default\": \"./ar/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/endsWith.d.cts\",\n        \"default\": \"./ar/endsWith.cjs\"\n      }\n    },\n    \"./ar/entries\": {\n      \"import\": {\n        \"types\": \"./ar/entries.d.mts\",\n        \"default\": \"./ar/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/entries.d.cts\",\n        \"default\": \"./ar/entries.cjs\"\n      }\n    },\n    \"./ar/everyItem\": {\n      \"import\": {\n        \"types\": \"./ar/everyItem.d.mts\",\n        \"default\": \"./ar/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/everyItem.d.cts\",\n        \"default\": \"./ar/everyItem.cjs\"\n      }\n    },\n    \"./ar/excludes\": {\n      \"import\": {\n        \"types\": \"./ar/excludes.d.mts\",\n        \"default\": \"./ar/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/excludes.d.cts\",\n        \"default\": \"./ar/excludes.cjs\"\n      }\n    },\n    \"./ar/finite\": {\n      \"import\": {\n        \"types\": \"./ar/finite.d.mts\",\n        \"default\": \"./ar/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/finite.d.cts\",\n        \"default\": \"./ar/finite.cjs\"\n      }\n    },\n    \"./ar/graphemes\": {\n      \"import\": {\n        \"types\": \"./ar/graphemes.d.mts\",\n        \"default\": \"./ar/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/graphemes.d.cts\",\n        \"default\": \"./ar/graphemes.cjs\"\n      }\n    },\n    \"./ar/gtValue\": {\n      \"import\": {\n        \"types\": \"./ar/gtValue.d.mts\",\n        \"default\": \"./ar/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/gtValue.d.cts\",\n        \"default\": \"./ar/gtValue.cjs\"\n      }\n    },\n    \"./ar/guard\": {\n      \"import\": {\n        \"types\": \"./ar/guard.d.mts\",\n        \"default\": \"./ar/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/guard.d.cts\",\n        \"default\": \"./ar/guard.cjs\"\n      }\n    },\n    \"./ar/hash\": {\n      \"import\": {\n        \"types\": \"./ar/hash.d.mts\",\n        \"default\": \"./ar/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/hash.d.cts\",\n        \"default\": \"./ar/hash.cjs\"\n      }\n    },\n    \"./ar/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./ar/hexadecimal.d.mts\",\n        \"default\": \"./ar/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/hexadecimal.d.cts\",\n        \"default\": \"./ar/hexadecimal.cjs\"\n      }\n    },\n    \"./ar/hexColor\": {\n      \"import\": {\n        \"types\": \"./ar/hexColor.d.mts\",\n        \"default\": \"./ar/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/hexColor.d.cts\",\n        \"default\": \"./ar/hexColor.cjs\"\n      }\n    },\n    \"./ar/imei\": {\n      \"import\": {\n        \"types\": \"./ar/imei.d.mts\",\n        \"default\": \"./ar/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/imei.d.cts\",\n        \"default\": \"./ar/imei.cjs\"\n      }\n    },\n    \"./ar/includes\": {\n      \"import\": {\n        \"types\": \"./ar/includes.d.mts\",\n        \"default\": \"./ar/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/includes.d.cts\",\n        \"default\": \"./ar/includes.cjs\"\n      }\n    },\n    \"./ar/integer\": {\n      \"import\": {\n        \"types\": \"./ar/integer.d.mts\",\n        \"default\": \"./ar/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/integer.d.cts\",\n        \"default\": \"./ar/integer.cjs\"\n      }\n    },\n    \"./ar/ip\": {\n      \"import\": {\n        \"types\": \"./ar/ip.d.mts\",\n        \"default\": \"./ar/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/ip.d.cts\",\n        \"default\": \"./ar/ip.cjs\"\n      }\n    },\n    \"./ar/ipv4\": {\n      \"import\": {\n        \"types\": \"./ar/ipv4.d.mts\",\n        \"default\": \"./ar/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/ipv4.d.cts\",\n        \"default\": \"./ar/ipv4.cjs\"\n      }\n    },\n    \"./ar/ipv6\": {\n      \"import\": {\n        \"types\": \"./ar/ipv6.d.mts\",\n        \"default\": \"./ar/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/ipv6.d.cts\",\n        \"default\": \"./ar/ipv6.cjs\"\n      }\n    },\n    \"./ar/isbn\": {\n      \"import\": {\n        \"types\": \"./ar/isbn.d.mts\",\n        \"default\": \"./ar/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/isbn.d.cts\",\n        \"default\": \"./ar/isbn.cjs\"\n      }\n    },\n    \"./ar/isoDate\": {\n      \"import\": {\n        \"types\": \"./ar/isoDate.d.mts\",\n        \"default\": \"./ar/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/isoDate.d.cts\",\n        \"default\": \"./ar/isoDate.cjs\"\n      }\n    },\n    \"./ar/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./ar/isoDateTime.d.mts\",\n        \"default\": \"./ar/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/isoDateTime.d.cts\",\n        \"default\": \"./ar/isoDateTime.cjs\"\n      }\n    },\n    \"./ar/isoTime\": {\n      \"import\": {\n        \"types\": \"./ar/isoTime.d.mts\",\n        \"default\": \"./ar/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/isoTime.d.cts\",\n        \"default\": \"./ar/isoTime.cjs\"\n      }\n    },\n    \"./ar/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./ar/isoTimeSecond.d.mts\",\n        \"default\": \"./ar/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/isoTimeSecond.d.cts\",\n        \"default\": \"./ar/isoTimeSecond.cjs\"\n      }\n    },\n    \"./ar/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./ar/isoTimestamp.d.mts\",\n        \"default\": \"./ar/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/isoTimestamp.d.cts\",\n        \"default\": \"./ar/isoTimestamp.cjs\"\n      }\n    },\n    \"./ar/isoWeek\": {\n      \"import\": {\n        \"types\": \"./ar/isoWeek.d.mts\",\n        \"default\": \"./ar/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/isoWeek.d.cts\",\n        \"default\": \"./ar/isoWeek.cjs\"\n      }\n    },\n    \"./ar/isrc\": {\n      \"import\": {\n        \"types\": \"./ar/isrc.d.mts\",\n        \"default\": \"./ar/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/isrc.d.cts\",\n        \"default\": \"./ar/isrc.cjs\"\n      }\n    },\n    \"./ar/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./ar/jwsCompact.d.mts\",\n        \"default\": \"./ar/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/jwsCompact.d.cts\",\n        \"default\": \"./ar/jwsCompact.cjs\"\n      }\n    },\n    \"./ar/length\": {\n      \"import\": {\n        \"types\": \"./ar/length.d.mts\",\n        \"default\": \"./ar/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/length.d.cts\",\n        \"default\": \"./ar/length.cjs\"\n      }\n    },\n    \"./ar/ltValue\": {\n      \"import\": {\n        \"types\": \"./ar/ltValue.d.mts\",\n        \"default\": \"./ar/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/ltValue.d.cts\",\n        \"default\": \"./ar/ltValue.cjs\"\n      }\n    },\n    \"./ar/mac\": {\n      \"import\": {\n        \"types\": \"./ar/mac.d.mts\",\n        \"default\": \"./ar/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/mac.d.cts\",\n        \"default\": \"./ar/mac.cjs\"\n      }\n    },\n    \"./ar/mac48\": {\n      \"import\": {\n        \"types\": \"./ar/mac48.d.mts\",\n        \"default\": \"./ar/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/mac48.d.cts\",\n        \"default\": \"./ar/mac48.cjs\"\n      }\n    },\n    \"./ar/mac64\": {\n      \"import\": {\n        \"types\": \"./ar/mac64.d.mts\",\n        \"default\": \"./ar/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/mac64.d.cts\",\n        \"default\": \"./ar/mac64.cjs\"\n      }\n    },\n    \"./ar/maxBytes\": {\n      \"import\": {\n        \"types\": \"./ar/maxBytes.d.mts\",\n        \"default\": \"./ar/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/maxBytes.d.cts\",\n        \"default\": \"./ar/maxBytes.cjs\"\n      }\n    },\n    \"./ar/maxEntries\": {\n      \"import\": {\n        \"types\": \"./ar/maxEntries.d.mts\",\n        \"default\": \"./ar/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/maxEntries.d.cts\",\n        \"default\": \"./ar/maxEntries.cjs\"\n      }\n    },\n    \"./ar/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./ar/maxGraphemes.d.mts\",\n        \"default\": \"./ar/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/maxGraphemes.d.cts\",\n        \"default\": \"./ar/maxGraphemes.cjs\"\n      }\n    },\n    \"./ar/maxLength\": {\n      \"import\": {\n        \"types\": \"./ar/maxLength.d.mts\",\n        \"default\": \"./ar/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/maxLength.d.cts\",\n        \"default\": \"./ar/maxLength.cjs\"\n      }\n    },\n    \"./ar/maxSize\": {\n      \"import\": {\n        \"types\": \"./ar/maxSize.d.mts\",\n        \"default\": \"./ar/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/maxSize.d.cts\",\n        \"default\": \"./ar/maxSize.cjs\"\n      }\n    },\n    \"./ar/maxValue\": {\n      \"import\": {\n        \"types\": \"./ar/maxValue.d.mts\",\n        \"default\": \"./ar/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/maxValue.d.cts\",\n        \"default\": \"./ar/maxValue.cjs\"\n      }\n    },\n    \"./ar/maxWords\": {\n      \"import\": {\n        \"types\": \"./ar/maxWords.d.mts\",\n        \"default\": \"./ar/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/maxWords.d.cts\",\n        \"default\": \"./ar/maxWords.cjs\"\n      }\n    },\n    \"./ar/mimeType\": {\n      \"import\": {\n        \"types\": \"./ar/mimeType.d.mts\",\n        \"default\": \"./ar/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/mimeType.d.cts\",\n        \"default\": \"./ar/mimeType.cjs\"\n      }\n    },\n    \"./ar/minBytes\": {\n      \"import\": {\n        \"types\": \"./ar/minBytes.d.mts\",\n        \"default\": \"./ar/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/minBytes.d.cts\",\n        \"default\": \"./ar/minBytes.cjs\"\n      }\n    },\n    \"./ar/minEntries\": {\n      \"import\": {\n        \"types\": \"./ar/minEntries.d.mts\",\n        \"default\": \"./ar/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/minEntries.d.cts\",\n        \"default\": \"./ar/minEntries.cjs\"\n      }\n    },\n    \"./ar/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./ar/minGraphemes.d.mts\",\n        \"default\": \"./ar/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/minGraphemes.d.cts\",\n        \"default\": \"./ar/minGraphemes.cjs\"\n      }\n    },\n    \"./ar/minLength\": {\n      \"import\": {\n        \"types\": \"./ar/minLength.d.mts\",\n        \"default\": \"./ar/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/minLength.d.cts\",\n        \"default\": \"./ar/minLength.cjs\"\n      }\n    },\n    \"./ar/minSize\": {\n      \"import\": {\n        \"types\": \"./ar/minSize.d.mts\",\n        \"default\": \"./ar/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/minSize.d.cts\",\n        \"default\": \"./ar/minSize.cjs\"\n      }\n    },\n    \"./ar/minValue\": {\n      \"import\": {\n        \"types\": \"./ar/minValue.d.mts\",\n        \"default\": \"./ar/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/minValue.d.cts\",\n        \"default\": \"./ar/minValue.cjs\"\n      }\n    },\n    \"./ar/minWords\": {\n      \"import\": {\n        \"types\": \"./ar/minWords.d.mts\",\n        \"default\": \"./ar/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/minWords.d.cts\",\n        \"default\": \"./ar/minWords.cjs\"\n      }\n    },\n    \"./ar/multipleOf\": {\n      \"import\": {\n        \"types\": \"./ar/multipleOf.d.mts\",\n        \"default\": \"./ar/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/multipleOf.d.cts\",\n        \"default\": \"./ar/multipleOf.cjs\"\n      }\n    },\n    \"./ar/nanoid\": {\n      \"import\": {\n        \"types\": \"./ar/nanoid.d.mts\",\n        \"default\": \"./ar/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/nanoid.d.cts\",\n        \"default\": \"./ar/nanoid.cjs\"\n      }\n    },\n    \"./ar/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./ar/nonEmpty.d.mts\",\n        \"default\": \"./ar/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/nonEmpty.d.cts\",\n        \"default\": \"./ar/nonEmpty.cjs\"\n      }\n    },\n    \"./ar/notBytes\": {\n      \"import\": {\n        \"types\": \"./ar/notBytes.d.mts\",\n        \"default\": \"./ar/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/notBytes.d.cts\",\n        \"default\": \"./ar/notBytes.cjs\"\n      }\n    },\n    \"./ar/notEntries\": {\n      \"import\": {\n        \"types\": \"./ar/notEntries.d.mts\",\n        \"default\": \"./ar/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/notEntries.d.cts\",\n        \"default\": \"./ar/notEntries.cjs\"\n      }\n    },\n    \"./ar/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./ar/notGraphemes.d.mts\",\n        \"default\": \"./ar/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/notGraphemes.d.cts\",\n        \"default\": \"./ar/notGraphemes.cjs\"\n      }\n    },\n    \"./ar/notLength\": {\n      \"import\": {\n        \"types\": \"./ar/notLength.d.mts\",\n        \"default\": \"./ar/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/notLength.d.cts\",\n        \"default\": \"./ar/notLength.cjs\"\n      }\n    },\n    \"./ar/notSize\": {\n      \"import\": {\n        \"types\": \"./ar/notSize.d.mts\",\n        \"default\": \"./ar/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/notSize.d.cts\",\n        \"default\": \"./ar/notSize.cjs\"\n      }\n    },\n    \"./ar/notValue\": {\n      \"import\": {\n        \"types\": \"./ar/notValue.d.mts\",\n        \"default\": \"./ar/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/notValue.d.cts\",\n        \"default\": \"./ar/notValue.cjs\"\n      }\n    },\n    \"./ar/notValues\": {\n      \"import\": {\n        \"types\": \"./ar/notValues.d.mts\",\n        \"default\": \"./ar/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/notValues.d.cts\",\n        \"default\": \"./ar/notValues.cjs\"\n      }\n    },\n    \"./ar/notWords\": {\n      \"import\": {\n        \"types\": \"./ar/notWords.d.mts\",\n        \"default\": \"./ar/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/notWords.d.cts\",\n        \"default\": \"./ar/notWords.cjs\"\n      }\n    },\n    \"./ar/octal\": {\n      \"import\": {\n        \"types\": \"./ar/octal.d.mts\",\n        \"default\": \"./ar/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/octal.d.cts\",\n        \"default\": \"./ar/octal.cjs\"\n      }\n    },\n    \"./ar/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./ar/parseBoolean.d.mts\",\n        \"default\": \"./ar/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/parseBoolean.d.cts\",\n        \"default\": \"./ar/parseBoolean.cjs\"\n      }\n    },\n    \"./ar/parseJson\": {\n      \"import\": {\n        \"types\": \"./ar/parseJson.d.mts\",\n        \"default\": \"./ar/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/parseJson.d.cts\",\n        \"default\": \"./ar/parseJson.cjs\"\n      }\n    },\n    \"./ar/partialCheck\": {\n      \"import\": {\n        \"types\": \"./ar/partialCheck.d.mts\",\n        \"default\": \"./ar/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/partialCheck.d.cts\",\n        \"default\": \"./ar/partialCheck.cjs\"\n      }\n    },\n    \"./ar/rawCheck\": {\n      \"import\": {\n        \"types\": \"./ar/rawCheck.d.mts\",\n        \"default\": \"./ar/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/rawCheck.d.cts\",\n        \"default\": \"./ar/rawCheck.cjs\"\n      }\n    },\n    \"./ar/rawTransform\": {\n      \"import\": {\n        \"types\": \"./ar/rawTransform.d.mts\",\n        \"default\": \"./ar/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/rawTransform.d.cts\",\n        \"default\": \"./ar/rawTransform.cjs\"\n      }\n    },\n    \"./ar/regex\": {\n      \"import\": {\n        \"types\": \"./ar/regex.d.mts\",\n        \"default\": \"./ar/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/regex.d.cts\",\n        \"default\": \"./ar/regex.cjs\"\n      }\n    },\n    \"./ar/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./ar/rfcEmail.d.mts\",\n        \"default\": \"./ar/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/rfcEmail.d.cts\",\n        \"default\": \"./ar/rfcEmail.cjs\"\n      }\n    },\n    \"./ar/safeInteger\": {\n      \"import\": {\n        \"types\": \"./ar/safeInteger.d.mts\",\n        \"default\": \"./ar/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/safeInteger.d.cts\",\n        \"default\": \"./ar/safeInteger.cjs\"\n      }\n    },\n    \"./ar/size\": {\n      \"import\": {\n        \"types\": \"./ar/size.d.mts\",\n        \"default\": \"./ar/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/size.d.cts\",\n        \"default\": \"./ar/size.cjs\"\n      }\n    },\n    \"./ar/slug\": {\n      \"import\": {\n        \"types\": \"./ar/slug.d.mts\",\n        \"default\": \"./ar/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/slug.d.cts\",\n        \"default\": \"./ar/slug.cjs\"\n      }\n    },\n    \"./ar/someItem\": {\n      \"import\": {\n        \"types\": \"./ar/someItem.d.mts\",\n        \"default\": \"./ar/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/someItem.d.cts\",\n        \"default\": \"./ar/someItem.cjs\"\n      }\n    },\n    \"./ar/startsWith\": {\n      \"import\": {\n        \"types\": \"./ar/startsWith.d.mts\",\n        \"default\": \"./ar/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/startsWith.d.cts\",\n        \"default\": \"./ar/startsWith.cjs\"\n      }\n    },\n    \"./ar/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./ar/stringifyJson.d.mts\",\n        \"default\": \"./ar/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/stringifyJson.d.cts\",\n        \"default\": \"./ar/stringifyJson.cjs\"\n      }\n    },\n    \"./ar/toBigint\": {\n      \"import\": {\n        \"types\": \"./ar/toBigint.d.mts\",\n        \"default\": \"./ar/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/toBigint.d.cts\",\n        \"default\": \"./ar/toBigint.cjs\"\n      }\n    },\n    \"./ar/toDate\": {\n      \"import\": {\n        \"types\": \"./ar/toDate.d.mts\",\n        \"default\": \"./ar/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/toDate.d.cts\",\n        \"default\": \"./ar/toDate.cjs\"\n      }\n    },\n    \"./ar/toNumber\": {\n      \"import\": {\n        \"types\": \"./ar/toNumber.d.mts\",\n        \"default\": \"./ar/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/toNumber.d.cts\",\n        \"default\": \"./ar/toNumber.cjs\"\n      }\n    },\n    \"./ar/toString\": {\n      \"import\": {\n        \"types\": \"./ar/toString.d.mts\",\n        \"default\": \"./ar/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/toString.d.cts\",\n        \"default\": \"./ar/toString.cjs\"\n      }\n    },\n    \"./ar/ulid\": {\n      \"import\": {\n        \"types\": \"./ar/ulid.d.mts\",\n        \"default\": \"./ar/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/ulid.d.cts\",\n        \"default\": \"./ar/ulid.cjs\"\n      }\n    },\n    \"./ar/url\": {\n      \"import\": {\n        \"types\": \"./ar/url.d.mts\",\n        \"default\": \"./ar/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/url.d.cts\",\n        \"default\": \"./ar/url.cjs\"\n      }\n    },\n    \"./ar/uuid\": {\n      \"import\": {\n        \"types\": \"./ar/uuid.d.mts\",\n        \"default\": \"./ar/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/uuid.d.cts\",\n        \"default\": \"./ar/uuid.cjs\"\n      }\n    },\n    \"./ar/value\": {\n      \"import\": {\n        \"types\": \"./ar/value.d.mts\",\n        \"default\": \"./ar/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/value.d.cts\",\n        \"default\": \"./ar/value.cjs\"\n      }\n    },\n    \"./ar/values\": {\n      \"import\": {\n        \"types\": \"./ar/values.d.mts\",\n        \"default\": \"./ar/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/values.d.cts\",\n        \"default\": \"./ar/values.cjs\"\n      }\n    },\n    \"./ar/words\": {\n      \"import\": {\n        \"types\": \"./ar/words.d.mts\",\n        \"default\": \"./ar/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ar/words.d.cts\",\n        \"default\": \"./ar/words.cjs\"\n      }\n    },\n    \"./az\": {\n      \"import\": {\n        \"types\": \"./az/index.d.mts\",\n        \"default\": \"./az/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/index.d.cts\",\n        \"default\": \"./az/index.cjs\"\n      }\n    },\n    \"./az/schema\": {\n      \"import\": {\n        \"types\": \"./az/schema.d.mts\",\n        \"default\": \"./az/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/schema.d.cts\",\n        \"default\": \"./az/schema.cjs\"\n      }\n    },\n    \"./az/base64\": {\n      \"import\": {\n        \"types\": \"./az/base64.d.mts\",\n        \"default\": \"./az/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/base64.d.cts\",\n        \"default\": \"./az/base64.cjs\"\n      }\n    },\n    \"./az/bic\": {\n      \"import\": {\n        \"types\": \"./az/bic.d.mts\",\n        \"default\": \"./az/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/bic.d.cts\",\n        \"default\": \"./az/bic.cjs\"\n      }\n    },\n    \"./az/bytes\": {\n      \"import\": {\n        \"types\": \"./az/bytes.d.mts\",\n        \"default\": \"./az/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/bytes.d.cts\",\n        \"default\": \"./az/bytes.cjs\"\n      }\n    },\n    \"./az/check\": {\n      \"import\": {\n        \"types\": \"./az/check.d.mts\",\n        \"default\": \"./az/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/check.d.cts\",\n        \"default\": \"./az/check.cjs\"\n      }\n    },\n    \"./az/checkAsync\": {\n      \"import\": {\n        \"types\": \"./az/checkAsync.d.mts\",\n        \"default\": \"./az/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/checkAsync.d.cts\",\n        \"default\": \"./az/checkAsync.cjs\"\n      }\n    },\n    \"./az/checkItems\": {\n      \"import\": {\n        \"types\": \"./az/checkItems.d.mts\",\n        \"default\": \"./az/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/checkItems.d.cts\",\n        \"default\": \"./az/checkItems.cjs\"\n      }\n    },\n    \"./az/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./az/checkItemsAsync.d.mts\",\n        \"default\": \"./az/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/checkItemsAsync.d.cts\",\n        \"default\": \"./az/checkItemsAsync.cjs\"\n      }\n    },\n    \"./az/creditCard\": {\n      \"import\": {\n        \"types\": \"./az/creditCard.d.mts\",\n        \"default\": \"./az/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/creditCard.d.cts\",\n        \"default\": \"./az/creditCard.cjs\"\n      }\n    },\n    \"./az/cuid2\": {\n      \"import\": {\n        \"types\": \"./az/cuid2.d.mts\",\n        \"default\": \"./az/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/cuid2.d.cts\",\n        \"default\": \"./az/cuid2.cjs\"\n      }\n    },\n    \"./az/decimal\": {\n      \"import\": {\n        \"types\": \"./az/decimal.d.mts\",\n        \"default\": \"./az/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/decimal.d.cts\",\n        \"default\": \"./az/decimal.cjs\"\n      }\n    },\n    \"./az/digits\": {\n      \"import\": {\n        \"types\": \"./az/digits.d.mts\",\n        \"default\": \"./az/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/digits.d.cts\",\n        \"default\": \"./az/digits.cjs\"\n      }\n    },\n    \"./az/domain\": {\n      \"import\": {\n        \"types\": \"./az/domain.d.mts\",\n        \"default\": \"./az/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/domain.d.cts\",\n        \"default\": \"./az/domain.cjs\"\n      }\n    },\n    \"./az/email\": {\n      \"import\": {\n        \"types\": \"./az/email.d.mts\",\n        \"default\": \"./az/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/email.d.cts\",\n        \"default\": \"./az/email.cjs\"\n      }\n    },\n    \"./az/emoji\": {\n      \"import\": {\n        \"types\": \"./az/emoji.d.mts\",\n        \"default\": \"./az/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/emoji.d.cts\",\n        \"default\": \"./az/emoji.cjs\"\n      }\n    },\n    \"./az/empty\": {\n      \"import\": {\n        \"types\": \"./az/empty.d.mts\",\n        \"default\": \"./az/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/empty.d.cts\",\n        \"default\": \"./az/empty.cjs\"\n      }\n    },\n    \"./az/endsWith\": {\n      \"import\": {\n        \"types\": \"./az/endsWith.d.mts\",\n        \"default\": \"./az/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/endsWith.d.cts\",\n        \"default\": \"./az/endsWith.cjs\"\n      }\n    },\n    \"./az/entries\": {\n      \"import\": {\n        \"types\": \"./az/entries.d.mts\",\n        \"default\": \"./az/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/entries.d.cts\",\n        \"default\": \"./az/entries.cjs\"\n      }\n    },\n    \"./az/everyItem\": {\n      \"import\": {\n        \"types\": \"./az/everyItem.d.mts\",\n        \"default\": \"./az/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/everyItem.d.cts\",\n        \"default\": \"./az/everyItem.cjs\"\n      }\n    },\n    \"./az/excludes\": {\n      \"import\": {\n        \"types\": \"./az/excludes.d.mts\",\n        \"default\": \"./az/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/excludes.d.cts\",\n        \"default\": \"./az/excludes.cjs\"\n      }\n    },\n    \"./az/finite\": {\n      \"import\": {\n        \"types\": \"./az/finite.d.mts\",\n        \"default\": \"./az/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/finite.d.cts\",\n        \"default\": \"./az/finite.cjs\"\n      }\n    },\n    \"./az/graphemes\": {\n      \"import\": {\n        \"types\": \"./az/graphemes.d.mts\",\n        \"default\": \"./az/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/graphemes.d.cts\",\n        \"default\": \"./az/graphemes.cjs\"\n      }\n    },\n    \"./az/gtValue\": {\n      \"import\": {\n        \"types\": \"./az/gtValue.d.mts\",\n        \"default\": \"./az/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/gtValue.d.cts\",\n        \"default\": \"./az/gtValue.cjs\"\n      }\n    },\n    \"./az/guard\": {\n      \"import\": {\n        \"types\": \"./az/guard.d.mts\",\n        \"default\": \"./az/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/guard.d.cts\",\n        \"default\": \"./az/guard.cjs\"\n      }\n    },\n    \"./az/hash\": {\n      \"import\": {\n        \"types\": \"./az/hash.d.mts\",\n        \"default\": \"./az/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/hash.d.cts\",\n        \"default\": \"./az/hash.cjs\"\n      }\n    },\n    \"./az/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./az/hexadecimal.d.mts\",\n        \"default\": \"./az/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/hexadecimal.d.cts\",\n        \"default\": \"./az/hexadecimal.cjs\"\n      }\n    },\n    \"./az/hexColor\": {\n      \"import\": {\n        \"types\": \"./az/hexColor.d.mts\",\n        \"default\": \"./az/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/hexColor.d.cts\",\n        \"default\": \"./az/hexColor.cjs\"\n      }\n    },\n    \"./az/imei\": {\n      \"import\": {\n        \"types\": \"./az/imei.d.mts\",\n        \"default\": \"./az/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/imei.d.cts\",\n        \"default\": \"./az/imei.cjs\"\n      }\n    },\n    \"./az/includes\": {\n      \"import\": {\n        \"types\": \"./az/includes.d.mts\",\n        \"default\": \"./az/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/includes.d.cts\",\n        \"default\": \"./az/includes.cjs\"\n      }\n    },\n    \"./az/integer\": {\n      \"import\": {\n        \"types\": \"./az/integer.d.mts\",\n        \"default\": \"./az/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/integer.d.cts\",\n        \"default\": \"./az/integer.cjs\"\n      }\n    },\n    \"./az/ip\": {\n      \"import\": {\n        \"types\": \"./az/ip.d.mts\",\n        \"default\": \"./az/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/ip.d.cts\",\n        \"default\": \"./az/ip.cjs\"\n      }\n    },\n    \"./az/ipv4\": {\n      \"import\": {\n        \"types\": \"./az/ipv4.d.mts\",\n        \"default\": \"./az/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/ipv4.d.cts\",\n        \"default\": \"./az/ipv4.cjs\"\n      }\n    },\n    \"./az/ipv6\": {\n      \"import\": {\n        \"types\": \"./az/ipv6.d.mts\",\n        \"default\": \"./az/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/ipv6.d.cts\",\n        \"default\": \"./az/ipv6.cjs\"\n      }\n    },\n    \"./az/isbn\": {\n      \"import\": {\n        \"types\": \"./az/isbn.d.mts\",\n        \"default\": \"./az/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/isbn.d.cts\",\n        \"default\": \"./az/isbn.cjs\"\n      }\n    },\n    \"./az/isoDate\": {\n      \"import\": {\n        \"types\": \"./az/isoDate.d.mts\",\n        \"default\": \"./az/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/isoDate.d.cts\",\n        \"default\": \"./az/isoDate.cjs\"\n      }\n    },\n    \"./az/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./az/isoDateTime.d.mts\",\n        \"default\": \"./az/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/isoDateTime.d.cts\",\n        \"default\": \"./az/isoDateTime.cjs\"\n      }\n    },\n    \"./az/isoTime\": {\n      \"import\": {\n        \"types\": \"./az/isoTime.d.mts\",\n        \"default\": \"./az/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/isoTime.d.cts\",\n        \"default\": \"./az/isoTime.cjs\"\n      }\n    },\n    \"./az/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./az/isoTimeSecond.d.mts\",\n        \"default\": \"./az/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/isoTimeSecond.d.cts\",\n        \"default\": \"./az/isoTimeSecond.cjs\"\n      }\n    },\n    \"./az/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./az/isoTimestamp.d.mts\",\n        \"default\": \"./az/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/isoTimestamp.d.cts\",\n        \"default\": \"./az/isoTimestamp.cjs\"\n      }\n    },\n    \"./az/isoWeek\": {\n      \"import\": {\n        \"types\": \"./az/isoWeek.d.mts\",\n        \"default\": \"./az/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/isoWeek.d.cts\",\n        \"default\": \"./az/isoWeek.cjs\"\n      }\n    },\n    \"./az/isrc\": {\n      \"import\": {\n        \"types\": \"./az/isrc.d.mts\",\n        \"default\": \"./az/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/isrc.d.cts\",\n        \"default\": \"./az/isrc.cjs\"\n      }\n    },\n    \"./az/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./az/jwsCompact.d.mts\",\n        \"default\": \"./az/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/jwsCompact.d.cts\",\n        \"default\": \"./az/jwsCompact.cjs\"\n      }\n    },\n    \"./az/length\": {\n      \"import\": {\n        \"types\": \"./az/length.d.mts\",\n        \"default\": \"./az/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/length.d.cts\",\n        \"default\": \"./az/length.cjs\"\n      }\n    },\n    \"./az/ltValue\": {\n      \"import\": {\n        \"types\": \"./az/ltValue.d.mts\",\n        \"default\": \"./az/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/ltValue.d.cts\",\n        \"default\": \"./az/ltValue.cjs\"\n      }\n    },\n    \"./az/mac\": {\n      \"import\": {\n        \"types\": \"./az/mac.d.mts\",\n        \"default\": \"./az/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/mac.d.cts\",\n        \"default\": \"./az/mac.cjs\"\n      }\n    },\n    \"./az/mac48\": {\n      \"import\": {\n        \"types\": \"./az/mac48.d.mts\",\n        \"default\": \"./az/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/mac48.d.cts\",\n        \"default\": \"./az/mac48.cjs\"\n      }\n    },\n    \"./az/mac64\": {\n      \"import\": {\n        \"types\": \"./az/mac64.d.mts\",\n        \"default\": \"./az/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/mac64.d.cts\",\n        \"default\": \"./az/mac64.cjs\"\n      }\n    },\n    \"./az/maxBytes\": {\n      \"import\": {\n        \"types\": \"./az/maxBytes.d.mts\",\n        \"default\": \"./az/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/maxBytes.d.cts\",\n        \"default\": \"./az/maxBytes.cjs\"\n      }\n    },\n    \"./az/maxEntries\": {\n      \"import\": {\n        \"types\": \"./az/maxEntries.d.mts\",\n        \"default\": \"./az/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/maxEntries.d.cts\",\n        \"default\": \"./az/maxEntries.cjs\"\n      }\n    },\n    \"./az/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./az/maxGraphemes.d.mts\",\n        \"default\": \"./az/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/maxGraphemes.d.cts\",\n        \"default\": \"./az/maxGraphemes.cjs\"\n      }\n    },\n    \"./az/maxLength\": {\n      \"import\": {\n        \"types\": \"./az/maxLength.d.mts\",\n        \"default\": \"./az/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/maxLength.d.cts\",\n        \"default\": \"./az/maxLength.cjs\"\n      }\n    },\n    \"./az/maxSize\": {\n      \"import\": {\n        \"types\": \"./az/maxSize.d.mts\",\n        \"default\": \"./az/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/maxSize.d.cts\",\n        \"default\": \"./az/maxSize.cjs\"\n      }\n    },\n    \"./az/maxValue\": {\n      \"import\": {\n        \"types\": \"./az/maxValue.d.mts\",\n        \"default\": \"./az/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/maxValue.d.cts\",\n        \"default\": \"./az/maxValue.cjs\"\n      }\n    },\n    \"./az/maxWords\": {\n      \"import\": {\n        \"types\": \"./az/maxWords.d.mts\",\n        \"default\": \"./az/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/maxWords.d.cts\",\n        \"default\": \"./az/maxWords.cjs\"\n      }\n    },\n    \"./az/mimeType\": {\n      \"import\": {\n        \"types\": \"./az/mimeType.d.mts\",\n        \"default\": \"./az/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/mimeType.d.cts\",\n        \"default\": \"./az/mimeType.cjs\"\n      }\n    },\n    \"./az/minBytes\": {\n      \"import\": {\n        \"types\": \"./az/minBytes.d.mts\",\n        \"default\": \"./az/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/minBytes.d.cts\",\n        \"default\": \"./az/minBytes.cjs\"\n      }\n    },\n    \"./az/minEntries\": {\n      \"import\": {\n        \"types\": \"./az/minEntries.d.mts\",\n        \"default\": \"./az/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/minEntries.d.cts\",\n        \"default\": \"./az/minEntries.cjs\"\n      }\n    },\n    \"./az/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./az/minGraphemes.d.mts\",\n        \"default\": \"./az/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/minGraphemes.d.cts\",\n        \"default\": \"./az/minGraphemes.cjs\"\n      }\n    },\n    \"./az/minLength\": {\n      \"import\": {\n        \"types\": \"./az/minLength.d.mts\",\n        \"default\": \"./az/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/minLength.d.cts\",\n        \"default\": \"./az/minLength.cjs\"\n      }\n    },\n    \"./az/minSize\": {\n      \"import\": {\n        \"types\": \"./az/minSize.d.mts\",\n        \"default\": \"./az/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/minSize.d.cts\",\n        \"default\": \"./az/minSize.cjs\"\n      }\n    },\n    \"./az/minValue\": {\n      \"import\": {\n        \"types\": \"./az/minValue.d.mts\",\n        \"default\": \"./az/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/minValue.d.cts\",\n        \"default\": \"./az/minValue.cjs\"\n      }\n    },\n    \"./az/minWords\": {\n      \"import\": {\n        \"types\": \"./az/minWords.d.mts\",\n        \"default\": \"./az/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/minWords.d.cts\",\n        \"default\": \"./az/minWords.cjs\"\n      }\n    },\n    \"./az/multipleOf\": {\n      \"import\": {\n        \"types\": \"./az/multipleOf.d.mts\",\n        \"default\": \"./az/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/multipleOf.d.cts\",\n        \"default\": \"./az/multipleOf.cjs\"\n      }\n    },\n    \"./az/nanoid\": {\n      \"import\": {\n        \"types\": \"./az/nanoid.d.mts\",\n        \"default\": \"./az/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/nanoid.d.cts\",\n        \"default\": \"./az/nanoid.cjs\"\n      }\n    },\n    \"./az/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./az/nonEmpty.d.mts\",\n        \"default\": \"./az/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/nonEmpty.d.cts\",\n        \"default\": \"./az/nonEmpty.cjs\"\n      }\n    },\n    \"./az/notBytes\": {\n      \"import\": {\n        \"types\": \"./az/notBytes.d.mts\",\n        \"default\": \"./az/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/notBytes.d.cts\",\n        \"default\": \"./az/notBytes.cjs\"\n      }\n    },\n    \"./az/notEntries\": {\n      \"import\": {\n        \"types\": \"./az/notEntries.d.mts\",\n        \"default\": \"./az/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/notEntries.d.cts\",\n        \"default\": \"./az/notEntries.cjs\"\n      }\n    },\n    \"./az/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./az/notGraphemes.d.mts\",\n        \"default\": \"./az/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/notGraphemes.d.cts\",\n        \"default\": \"./az/notGraphemes.cjs\"\n      }\n    },\n    \"./az/notLength\": {\n      \"import\": {\n        \"types\": \"./az/notLength.d.mts\",\n        \"default\": \"./az/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/notLength.d.cts\",\n        \"default\": \"./az/notLength.cjs\"\n      }\n    },\n    \"./az/notSize\": {\n      \"import\": {\n        \"types\": \"./az/notSize.d.mts\",\n        \"default\": \"./az/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/notSize.d.cts\",\n        \"default\": \"./az/notSize.cjs\"\n      }\n    },\n    \"./az/notValue\": {\n      \"import\": {\n        \"types\": \"./az/notValue.d.mts\",\n        \"default\": \"./az/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/notValue.d.cts\",\n        \"default\": \"./az/notValue.cjs\"\n      }\n    },\n    \"./az/notValues\": {\n      \"import\": {\n        \"types\": \"./az/notValues.d.mts\",\n        \"default\": \"./az/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/notValues.d.cts\",\n        \"default\": \"./az/notValues.cjs\"\n      }\n    },\n    \"./az/notWords\": {\n      \"import\": {\n        \"types\": \"./az/notWords.d.mts\",\n        \"default\": \"./az/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/notWords.d.cts\",\n        \"default\": \"./az/notWords.cjs\"\n      }\n    },\n    \"./az/octal\": {\n      \"import\": {\n        \"types\": \"./az/octal.d.mts\",\n        \"default\": \"./az/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/octal.d.cts\",\n        \"default\": \"./az/octal.cjs\"\n      }\n    },\n    \"./az/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./az/parseBoolean.d.mts\",\n        \"default\": \"./az/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/parseBoolean.d.cts\",\n        \"default\": \"./az/parseBoolean.cjs\"\n      }\n    },\n    \"./az/parseJson\": {\n      \"import\": {\n        \"types\": \"./az/parseJson.d.mts\",\n        \"default\": \"./az/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/parseJson.d.cts\",\n        \"default\": \"./az/parseJson.cjs\"\n      }\n    },\n    \"./az/partialCheck\": {\n      \"import\": {\n        \"types\": \"./az/partialCheck.d.mts\",\n        \"default\": \"./az/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/partialCheck.d.cts\",\n        \"default\": \"./az/partialCheck.cjs\"\n      }\n    },\n    \"./az/rawCheck\": {\n      \"import\": {\n        \"types\": \"./az/rawCheck.d.mts\",\n        \"default\": \"./az/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/rawCheck.d.cts\",\n        \"default\": \"./az/rawCheck.cjs\"\n      }\n    },\n    \"./az/rawTransform\": {\n      \"import\": {\n        \"types\": \"./az/rawTransform.d.mts\",\n        \"default\": \"./az/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/rawTransform.d.cts\",\n        \"default\": \"./az/rawTransform.cjs\"\n      }\n    },\n    \"./az/regex\": {\n      \"import\": {\n        \"types\": \"./az/regex.d.mts\",\n        \"default\": \"./az/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/regex.d.cts\",\n        \"default\": \"./az/regex.cjs\"\n      }\n    },\n    \"./az/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./az/rfcEmail.d.mts\",\n        \"default\": \"./az/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/rfcEmail.d.cts\",\n        \"default\": \"./az/rfcEmail.cjs\"\n      }\n    },\n    \"./az/safeInteger\": {\n      \"import\": {\n        \"types\": \"./az/safeInteger.d.mts\",\n        \"default\": \"./az/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/safeInteger.d.cts\",\n        \"default\": \"./az/safeInteger.cjs\"\n      }\n    },\n    \"./az/size\": {\n      \"import\": {\n        \"types\": \"./az/size.d.mts\",\n        \"default\": \"./az/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/size.d.cts\",\n        \"default\": \"./az/size.cjs\"\n      }\n    },\n    \"./az/slug\": {\n      \"import\": {\n        \"types\": \"./az/slug.d.mts\",\n        \"default\": \"./az/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/slug.d.cts\",\n        \"default\": \"./az/slug.cjs\"\n      }\n    },\n    \"./az/someItem\": {\n      \"import\": {\n        \"types\": \"./az/someItem.d.mts\",\n        \"default\": \"./az/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/someItem.d.cts\",\n        \"default\": \"./az/someItem.cjs\"\n      }\n    },\n    \"./az/startsWith\": {\n      \"import\": {\n        \"types\": \"./az/startsWith.d.mts\",\n        \"default\": \"./az/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/startsWith.d.cts\",\n        \"default\": \"./az/startsWith.cjs\"\n      }\n    },\n    \"./az/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./az/stringifyJson.d.mts\",\n        \"default\": \"./az/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/stringifyJson.d.cts\",\n        \"default\": \"./az/stringifyJson.cjs\"\n      }\n    },\n    \"./az/toBigint\": {\n      \"import\": {\n        \"types\": \"./az/toBigint.d.mts\",\n        \"default\": \"./az/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/toBigint.d.cts\",\n        \"default\": \"./az/toBigint.cjs\"\n      }\n    },\n    \"./az/toDate\": {\n      \"import\": {\n        \"types\": \"./az/toDate.d.mts\",\n        \"default\": \"./az/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/toDate.d.cts\",\n        \"default\": \"./az/toDate.cjs\"\n      }\n    },\n    \"./az/toNumber\": {\n      \"import\": {\n        \"types\": \"./az/toNumber.d.mts\",\n        \"default\": \"./az/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/toNumber.d.cts\",\n        \"default\": \"./az/toNumber.cjs\"\n      }\n    },\n    \"./az/toString\": {\n      \"import\": {\n        \"types\": \"./az/toString.d.mts\",\n        \"default\": \"./az/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/toString.d.cts\",\n        \"default\": \"./az/toString.cjs\"\n      }\n    },\n    \"./az/ulid\": {\n      \"import\": {\n        \"types\": \"./az/ulid.d.mts\",\n        \"default\": \"./az/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/ulid.d.cts\",\n        \"default\": \"./az/ulid.cjs\"\n      }\n    },\n    \"./az/url\": {\n      \"import\": {\n        \"types\": \"./az/url.d.mts\",\n        \"default\": \"./az/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/url.d.cts\",\n        \"default\": \"./az/url.cjs\"\n      }\n    },\n    \"./az/uuid\": {\n      \"import\": {\n        \"types\": \"./az/uuid.d.mts\",\n        \"default\": \"./az/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/uuid.d.cts\",\n        \"default\": \"./az/uuid.cjs\"\n      }\n    },\n    \"./az/value\": {\n      \"import\": {\n        \"types\": \"./az/value.d.mts\",\n        \"default\": \"./az/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/value.d.cts\",\n        \"default\": \"./az/value.cjs\"\n      }\n    },\n    \"./az/values\": {\n      \"import\": {\n        \"types\": \"./az/values.d.mts\",\n        \"default\": \"./az/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/values.d.cts\",\n        \"default\": \"./az/values.cjs\"\n      }\n    },\n    \"./az/words\": {\n      \"import\": {\n        \"types\": \"./az/words.d.mts\",\n        \"default\": \"./az/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./az/words.d.cts\",\n        \"default\": \"./az/words.cjs\"\n      }\n    },\n    \"./ca\": {\n      \"import\": {\n        \"types\": \"./ca/index.d.mts\",\n        \"default\": \"./ca/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/index.d.cts\",\n        \"default\": \"./ca/index.cjs\"\n      }\n    },\n    \"./ca/schema\": {\n      \"import\": {\n        \"types\": \"./ca/schema.d.mts\",\n        \"default\": \"./ca/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/schema.d.cts\",\n        \"default\": \"./ca/schema.cjs\"\n      }\n    },\n    \"./ca/base64\": {\n      \"import\": {\n        \"types\": \"./ca/base64.d.mts\",\n        \"default\": \"./ca/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/base64.d.cts\",\n        \"default\": \"./ca/base64.cjs\"\n      }\n    },\n    \"./ca/bic\": {\n      \"import\": {\n        \"types\": \"./ca/bic.d.mts\",\n        \"default\": \"./ca/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/bic.d.cts\",\n        \"default\": \"./ca/bic.cjs\"\n      }\n    },\n    \"./ca/bytes\": {\n      \"import\": {\n        \"types\": \"./ca/bytes.d.mts\",\n        \"default\": \"./ca/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/bytes.d.cts\",\n        \"default\": \"./ca/bytes.cjs\"\n      }\n    },\n    \"./ca/check\": {\n      \"import\": {\n        \"types\": \"./ca/check.d.mts\",\n        \"default\": \"./ca/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/check.d.cts\",\n        \"default\": \"./ca/check.cjs\"\n      }\n    },\n    \"./ca/checkAsync\": {\n      \"import\": {\n        \"types\": \"./ca/checkAsync.d.mts\",\n        \"default\": \"./ca/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/checkAsync.d.cts\",\n        \"default\": \"./ca/checkAsync.cjs\"\n      }\n    },\n    \"./ca/checkItems\": {\n      \"import\": {\n        \"types\": \"./ca/checkItems.d.mts\",\n        \"default\": \"./ca/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/checkItems.d.cts\",\n        \"default\": \"./ca/checkItems.cjs\"\n      }\n    },\n    \"./ca/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./ca/checkItemsAsync.d.mts\",\n        \"default\": \"./ca/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/checkItemsAsync.d.cts\",\n        \"default\": \"./ca/checkItemsAsync.cjs\"\n      }\n    },\n    \"./ca/creditCard\": {\n      \"import\": {\n        \"types\": \"./ca/creditCard.d.mts\",\n        \"default\": \"./ca/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/creditCard.d.cts\",\n        \"default\": \"./ca/creditCard.cjs\"\n      }\n    },\n    \"./ca/cuid2\": {\n      \"import\": {\n        \"types\": \"./ca/cuid2.d.mts\",\n        \"default\": \"./ca/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/cuid2.d.cts\",\n        \"default\": \"./ca/cuid2.cjs\"\n      }\n    },\n    \"./ca/decimal\": {\n      \"import\": {\n        \"types\": \"./ca/decimal.d.mts\",\n        \"default\": \"./ca/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/decimal.d.cts\",\n        \"default\": \"./ca/decimal.cjs\"\n      }\n    },\n    \"./ca/digits\": {\n      \"import\": {\n        \"types\": \"./ca/digits.d.mts\",\n        \"default\": \"./ca/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/digits.d.cts\",\n        \"default\": \"./ca/digits.cjs\"\n      }\n    },\n    \"./ca/domain\": {\n      \"import\": {\n        \"types\": \"./ca/domain.d.mts\",\n        \"default\": \"./ca/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/domain.d.cts\",\n        \"default\": \"./ca/domain.cjs\"\n      }\n    },\n    \"./ca/email\": {\n      \"import\": {\n        \"types\": \"./ca/email.d.mts\",\n        \"default\": \"./ca/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/email.d.cts\",\n        \"default\": \"./ca/email.cjs\"\n      }\n    },\n    \"./ca/emoji\": {\n      \"import\": {\n        \"types\": \"./ca/emoji.d.mts\",\n        \"default\": \"./ca/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/emoji.d.cts\",\n        \"default\": \"./ca/emoji.cjs\"\n      }\n    },\n    \"./ca/empty\": {\n      \"import\": {\n        \"types\": \"./ca/empty.d.mts\",\n        \"default\": \"./ca/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/empty.d.cts\",\n        \"default\": \"./ca/empty.cjs\"\n      }\n    },\n    \"./ca/endsWith\": {\n      \"import\": {\n        \"types\": \"./ca/endsWith.d.mts\",\n        \"default\": \"./ca/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/endsWith.d.cts\",\n        \"default\": \"./ca/endsWith.cjs\"\n      }\n    },\n    \"./ca/entries\": {\n      \"import\": {\n        \"types\": \"./ca/entries.d.mts\",\n        \"default\": \"./ca/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/entries.d.cts\",\n        \"default\": \"./ca/entries.cjs\"\n      }\n    },\n    \"./ca/everyItem\": {\n      \"import\": {\n        \"types\": \"./ca/everyItem.d.mts\",\n        \"default\": \"./ca/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/everyItem.d.cts\",\n        \"default\": \"./ca/everyItem.cjs\"\n      }\n    },\n    \"./ca/excludes\": {\n      \"import\": {\n        \"types\": \"./ca/excludes.d.mts\",\n        \"default\": \"./ca/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/excludes.d.cts\",\n        \"default\": \"./ca/excludes.cjs\"\n      }\n    },\n    \"./ca/finite\": {\n      \"import\": {\n        \"types\": \"./ca/finite.d.mts\",\n        \"default\": \"./ca/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/finite.d.cts\",\n        \"default\": \"./ca/finite.cjs\"\n      }\n    },\n    \"./ca/graphemes\": {\n      \"import\": {\n        \"types\": \"./ca/graphemes.d.mts\",\n        \"default\": \"./ca/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/graphemes.d.cts\",\n        \"default\": \"./ca/graphemes.cjs\"\n      }\n    },\n    \"./ca/gtValue\": {\n      \"import\": {\n        \"types\": \"./ca/gtValue.d.mts\",\n        \"default\": \"./ca/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/gtValue.d.cts\",\n        \"default\": \"./ca/gtValue.cjs\"\n      }\n    },\n    \"./ca/guard\": {\n      \"import\": {\n        \"types\": \"./ca/guard.d.mts\",\n        \"default\": \"./ca/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/guard.d.cts\",\n        \"default\": \"./ca/guard.cjs\"\n      }\n    },\n    \"./ca/hash\": {\n      \"import\": {\n        \"types\": \"./ca/hash.d.mts\",\n        \"default\": \"./ca/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/hash.d.cts\",\n        \"default\": \"./ca/hash.cjs\"\n      }\n    },\n    \"./ca/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./ca/hexadecimal.d.mts\",\n        \"default\": \"./ca/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/hexadecimal.d.cts\",\n        \"default\": \"./ca/hexadecimal.cjs\"\n      }\n    },\n    \"./ca/hexColor\": {\n      \"import\": {\n        \"types\": \"./ca/hexColor.d.mts\",\n        \"default\": \"./ca/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/hexColor.d.cts\",\n        \"default\": \"./ca/hexColor.cjs\"\n      }\n    },\n    \"./ca/imei\": {\n      \"import\": {\n        \"types\": \"./ca/imei.d.mts\",\n        \"default\": \"./ca/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/imei.d.cts\",\n        \"default\": \"./ca/imei.cjs\"\n      }\n    },\n    \"./ca/includes\": {\n      \"import\": {\n        \"types\": \"./ca/includes.d.mts\",\n        \"default\": \"./ca/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/includes.d.cts\",\n        \"default\": \"./ca/includes.cjs\"\n      }\n    },\n    \"./ca/integer\": {\n      \"import\": {\n        \"types\": \"./ca/integer.d.mts\",\n        \"default\": \"./ca/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/integer.d.cts\",\n        \"default\": \"./ca/integer.cjs\"\n      }\n    },\n    \"./ca/ip\": {\n      \"import\": {\n        \"types\": \"./ca/ip.d.mts\",\n        \"default\": \"./ca/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/ip.d.cts\",\n        \"default\": \"./ca/ip.cjs\"\n      }\n    },\n    \"./ca/ipv4\": {\n      \"import\": {\n        \"types\": \"./ca/ipv4.d.mts\",\n        \"default\": \"./ca/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/ipv4.d.cts\",\n        \"default\": \"./ca/ipv4.cjs\"\n      }\n    },\n    \"./ca/ipv6\": {\n      \"import\": {\n        \"types\": \"./ca/ipv6.d.mts\",\n        \"default\": \"./ca/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/ipv6.d.cts\",\n        \"default\": \"./ca/ipv6.cjs\"\n      }\n    },\n    \"./ca/isbn\": {\n      \"import\": {\n        \"types\": \"./ca/isbn.d.mts\",\n        \"default\": \"./ca/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/isbn.d.cts\",\n        \"default\": \"./ca/isbn.cjs\"\n      }\n    },\n    \"./ca/isoDate\": {\n      \"import\": {\n        \"types\": \"./ca/isoDate.d.mts\",\n        \"default\": \"./ca/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/isoDate.d.cts\",\n        \"default\": \"./ca/isoDate.cjs\"\n      }\n    },\n    \"./ca/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./ca/isoDateTime.d.mts\",\n        \"default\": \"./ca/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/isoDateTime.d.cts\",\n        \"default\": \"./ca/isoDateTime.cjs\"\n      }\n    },\n    \"./ca/isoTime\": {\n      \"import\": {\n        \"types\": \"./ca/isoTime.d.mts\",\n        \"default\": \"./ca/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/isoTime.d.cts\",\n        \"default\": \"./ca/isoTime.cjs\"\n      }\n    },\n    \"./ca/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./ca/isoTimeSecond.d.mts\",\n        \"default\": \"./ca/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/isoTimeSecond.d.cts\",\n        \"default\": \"./ca/isoTimeSecond.cjs\"\n      }\n    },\n    \"./ca/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./ca/isoTimestamp.d.mts\",\n        \"default\": \"./ca/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/isoTimestamp.d.cts\",\n        \"default\": \"./ca/isoTimestamp.cjs\"\n      }\n    },\n    \"./ca/isoWeek\": {\n      \"import\": {\n        \"types\": \"./ca/isoWeek.d.mts\",\n        \"default\": \"./ca/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/isoWeek.d.cts\",\n        \"default\": \"./ca/isoWeek.cjs\"\n      }\n    },\n    \"./ca/isrc\": {\n      \"import\": {\n        \"types\": \"./ca/isrc.d.mts\",\n        \"default\": \"./ca/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/isrc.d.cts\",\n        \"default\": \"./ca/isrc.cjs\"\n      }\n    },\n    \"./ca/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./ca/jwsCompact.d.mts\",\n        \"default\": \"./ca/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/jwsCompact.d.cts\",\n        \"default\": \"./ca/jwsCompact.cjs\"\n      }\n    },\n    \"./ca/length\": {\n      \"import\": {\n        \"types\": \"./ca/length.d.mts\",\n        \"default\": \"./ca/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/length.d.cts\",\n        \"default\": \"./ca/length.cjs\"\n      }\n    },\n    \"./ca/ltValue\": {\n      \"import\": {\n        \"types\": \"./ca/ltValue.d.mts\",\n        \"default\": \"./ca/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/ltValue.d.cts\",\n        \"default\": \"./ca/ltValue.cjs\"\n      }\n    },\n    \"./ca/mac\": {\n      \"import\": {\n        \"types\": \"./ca/mac.d.mts\",\n        \"default\": \"./ca/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/mac.d.cts\",\n        \"default\": \"./ca/mac.cjs\"\n      }\n    },\n    \"./ca/mac48\": {\n      \"import\": {\n        \"types\": \"./ca/mac48.d.mts\",\n        \"default\": \"./ca/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/mac48.d.cts\",\n        \"default\": \"./ca/mac48.cjs\"\n      }\n    },\n    \"./ca/mac64\": {\n      \"import\": {\n        \"types\": \"./ca/mac64.d.mts\",\n        \"default\": \"./ca/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/mac64.d.cts\",\n        \"default\": \"./ca/mac64.cjs\"\n      }\n    },\n    \"./ca/maxBytes\": {\n      \"import\": {\n        \"types\": \"./ca/maxBytes.d.mts\",\n        \"default\": \"./ca/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/maxBytes.d.cts\",\n        \"default\": \"./ca/maxBytes.cjs\"\n      }\n    },\n    \"./ca/maxEntries\": {\n      \"import\": {\n        \"types\": \"./ca/maxEntries.d.mts\",\n        \"default\": \"./ca/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/maxEntries.d.cts\",\n        \"default\": \"./ca/maxEntries.cjs\"\n      }\n    },\n    \"./ca/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./ca/maxGraphemes.d.mts\",\n        \"default\": \"./ca/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/maxGraphemes.d.cts\",\n        \"default\": \"./ca/maxGraphemes.cjs\"\n      }\n    },\n    \"./ca/maxLength\": {\n      \"import\": {\n        \"types\": \"./ca/maxLength.d.mts\",\n        \"default\": \"./ca/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/maxLength.d.cts\",\n        \"default\": \"./ca/maxLength.cjs\"\n      }\n    },\n    \"./ca/maxSize\": {\n      \"import\": {\n        \"types\": \"./ca/maxSize.d.mts\",\n        \"default\": \"./ca/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/maxSize.d.cts\",\n        \"default\": \"./ca/maxSize.cjs\"\n      }\n    },\n    \"./ca/maxValue\": {\n      \"import\": {\n        \"types\": \"./ca/maxValue.d.mts\",\n        \"default\": \"./ca/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/maxValue.d.cts\",\n        \"default\": \"./ca/maxValue.cjs\"\n      }\n    },\n    \"./ca/maxWords\": {\n      \"import\": {\n        \"types\": \"./ca/maxWords.d.mts\",\n        \"default\": \"./ca/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/maxWords.d.cts\",\n        \"default\": \"./ca/maxWords.cjs\"\n      }\n    },\n    \"./ca/mimeType\": {\n      \"import\": {\n        \"types\": \"./ca/mimeType.d.mts\",\n        \"default\": \"./ca/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/mimeType.d.cts\",\n        \"default\": \"./ca/mimeType.cjs\"\n      }\n    },\n    \"./ca/minBytes\": {\n      \"import\": {\n        \"types\": \"./ca/minBytes.d.mts\",\n        \"default\": \"./ca/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/minBytes.d.cts\",\n        \"default\": \"./ca/minBytes.cjs\"\n      }\n    },\n    \"./ca/minEntries\": {\n      \"import\": {\n        \"types\": \"./ca/minEntries.d.mts\",\n        \"default\": \"./ca/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/minEntries.d.cts\",\n        \"default\": \"./ca/minEntries.cjs\"\n      }\n    },\n    \"./ca/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./ca/minGraphemes.d.mts\",\n        \"default\": \"./ca/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/minGraphemes.d.cts\",\n        \"default\": \"./ca/minGraphemes.cjs\"\n      }\n    },\n    \"./ca/minLength\": {\n      \"import\": {\n        \"types\": \"./ca/minLength.d.mts\",\n        \"default\": \"./ca/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/minLength.d.cts\",\n        \"default\": \"./ca/minLength.cjs\"\n      }\n    },\n    \"./ca/minSize\": {\n      \"import\": {\n        \"types\": \"./ca/minSize.d.mts\",\n        \"default\": \"./ca/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/minSize.d.cts\",\n        \"default\": \"./ca/minSize.cjs\"\n      }\n    },\n    \"./ca/minValue\": {\n      \"import\": {\n        \"types\": \"./ca/minValue.d.mts\",\n        \"default\": \"./ca/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/minValue.d.cts\",\n        \"default\": \"./ca/minValue.cjs\"\n      }\n    },\n    \"./ca/minWords\": {\n      \"import\": {\n        \"types\": \"./ca/minWords.d.mts\",\n        \"default\": \"./ca/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/minWords.d.cts\",\n        \"default\": \"./ca/minWords.cjs\"\n      }\n    },\n    \"./ca/multipleOf\": {\n      \"import\": {\n        \"types\": \"./ca/multipleOf.d.mts\",\n        \"default\": \"./ca/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/multipleOf.d.cts\",\n        \"default\": \"./ca/multipleOf.cjs\"\n      }\n    },\n    \"./ca/nanoid\": {\n      \"import\": {\n        \"types\": \"./ca/nanoid.d.mts\",\n        \"default\": \"./ca/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/nanoid.d.cts\",\n        \"default\": \"./ca/nanoid.cjs\"\n      }\n    },\n    \"./ca/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./ca/nonEmpty.d.mts\",\n        \"default\": \"./ca/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/nonEmpty.d.cts\",\n        \"default\": \"./ca/nonEmpty.cjs\"\n      }\n    },\n    \"./ca/notBytes\": {\n      \"import\": {\n        \"types\": \"./ca/notBytes.d.mts\",\n        \"default\": \"./ca/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/notBytes.d.cts\",\n        \"default\": \"./ca/notBytes.cjs\"\n      }\n    },\n    \"./ca/notEntries\": {\n      \"import\": {\n        \"types\": \"./ca/notEntries.d.mts\",\n        \"default\": \"./ca/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/notEntries.d.cts\",\n        \"default\": \"./ca/notEntries.cjs\"\n      }\n    },\n    \"./ca/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./ca/notGraphemes.d.mts\",\n        \"default\": \"./ca/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/notGraphemes.d.cts\",\n        \"default\": \"./ca/notGraphemes.cjs\"\n      }\n    },\n    \"./ca/notLength\": {\n      \"import\": {\n        \"types\": \"./ca/notLength.d.mts\",\n        \"default\": \"./ca/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/notLength.d.cts\",\n        \"default\": \"./ca/notLength.cjs\"\n      }\n    },\n    \"./ca/notSize\": {\n      \"import\": {\n        \"types\": \"./ca/notSize.d.mts\",\n        \"default\": \"./ca/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/notSize.d.cts\",\n        \"default\": \"./ca/notSize.cjs\"\n      }\n    },\n    \"./ca/notValue\": {\n      \"import\": {\n        \"types\": \"./ca/notValue.d.mts\",\n        \"default\": \"./ca/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/notValue.d.cts\",\n        \"default\": \"./ca/notValue.cjs\"\n      }\n    },\n    \"./ca/notValues\": {\n      \"import\": {\n        \"types\": \"./ca/notValues.d.mts\",\n        \"default\": \"./ca/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/notValues.d.cts\",\n        \"default\": \"./ca/notValues.cjs\"\n      }\n    },\n    \"./ca/notWords\": {\n      \"import\": {\n        \"types\": \"./ca/notWords.d.mts\",\n        \"default\": \"./ca/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/notWords.d.cts\",\n        \"default\": \"./ca/notWords.cjs\"\n      }\n    },\n    \"./ca/octal\": {\n      \"import\": {\n        \"types\": \"./ca/octal.d.mts\",\n        \"default\": \"./ca/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/octal.d.cts\",\n        \"default\": \"./ca/octal.cjs\"\n      }\n    },\n    \"./ca/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./ca/parseBoolean.d.mts\",\n        \"default\": \"./ca/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/parseBoolean.d.cts\",\n        \"default\": \"./ca/parseBoolean.cjs\"\n      }\n    },\n    \"./ca/parseJson\": {\n      \"import\": {\n        \"types\": \"./ca/parseJson.d.mts\",\n        \"default\": \"./ca/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/parseJson.d.cts\",\n        \"default\": \"./ca/parseJson.cjs\"\n      }\n    },\n    \"./ca/partialCheck\": {\n      \"import\": {\n        \"types\": \"./ca/partialCheck.d.mts\",\n        \"default\": \"./ca/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/partialCheck.d.cts\",\n        \"default\": \"./ca/partialCheck.cjs\"\n      }\n    },\n    \"./ca/rawCheck\": {\n      \"import\": {\n        \"types\": \"./ca/rawCheck.d.mts\",\n        \"default\": \"./ca/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/rawCheck.d.cts\",\n        \"default\": \"./ca/rawCheck.cjs\"\n      }\n    },\n    \"./ca/rawTransform\": {\n      \"import\": {\n        \"types\": \"./ca/rawTransform.d.mts\",\n        \"default\": \"./ca/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/rawTransform.d.cts\",\n        \"default\": \"./ca/rawTransform.cjs\"\n      }\n    },\n    \"./ca/regex\": {\n      \"import\": {\n        \"types\": \"./ca/regex.d.mts\",\n        \"default\": \"./ca/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/regex.d.cts\",\n        \"default\": \"./ca/regex.cjs\"\n      }\n    },\n    \"./ca/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./ca/rfcEmail.d.mts\",\n        \"default\": \"./ca/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/rfcEmail.d.cts\",\n        \"default\": \"./ca/rfcEmail.cjs\"\n      }\n    },\n    \"./ca/safeInteger\": {\n      \"import\": {\n        \"types\": \"./ca/safeInteger.d.mts\",\n        \"default\": \"./ca/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/safeInteger.d.cts\",\n        \"default\": \"./ca/safeInteger.cjs\"\n      }\n    },\n    \"./ca/size\": {\n      \"import\": {\n        \"types\": \"./ca/size.d.mts\",\n        \"default\": \"./ca/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/size.d.cts\",\n        \"default\": \"./ca/size.cjs\"\n      }\n    },\n    \"./ca/slug\": {\n      \"import\": {\n        \"types\": \"./ca/slug.d.mts\",\n        \"default\": \"./ca/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/slug.d.cts\",\n        \"default\": \"./ca/slug.cjs\"\n      }\n    },\n    \"./ca/someItem\": {\n      \"import\": {\n        \"types\": \"./ca/someItem.d.mts\",\n        \"default\": \"./ca/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/someItem.d.cts\",\n        \"default\": \"./ca/someItem.cjs\"\n      }\n    },\n    \"./ca/startsWith\": {\n      \"import\": {\n        \"types\": \"./ca/startsWith.d.mts\",\n        \"default\": \"./ca/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/startsWith.d.cts\",\n        \"default\": \"./ca/startsWith.cjs\"\n      }\n    },\n    \"./ca/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./ca/stringifyJson.d.mts\",\n        \"default\": \"./ca/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/stringifyJson.d.cts\",\n        \"default\": \"./ca/stringifyJson.cjs\"\n      }\n    },\n    \"./ca/toBigint\": {\n      \"import\": {\n        \"types\": \"./ca/toBigint.d.mts\",\n        \"default\": \"./ca/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/toBigint.d.cts\",\n        \"default\": \"./ca/toBigint.cjs\"\n      }\n    },\n    \"./ca/toDate\": {\n      \"import\": {\n        \"types\": \"./ca/toDate.d.mts\",\n        \"default\": \"./ca/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/toDate.d.cts\",\n        \"default\": \"./ca/toDate.cjs\"\n      }\n    },\n    \"./ca/toNumber\": {\n      \"import\": {\n        \"types\": \"./ca/toNumber.d.mts\",\n        \"default\": \"./ca/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/toNumber.d.cts\",\n        \"default\": \"./ca/toNumber.cjs\"\n      }\n    },\n    \"./ca/toString\": {\n      \"import\": {\n        \"types\": \"./ca/toString.d.mts\",\n        \"default\": \"./ca/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/toString.d.cts\",\n        \"default\": \"./ca/toString.cjs\"\n      }\n    },\n    \"./ca/ulid\": {\n      \"import\": {\n        \"types\": \"./ca/ulid.d.mts\",\n        \"default\": \"./ca/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/ulid.d.cts\",\n        \"default\": \"./ca/ulid.cjs\"\n      }\n    },\n    \"./ca/url\": {\n      \"import\": {\n        \"types\": \"./ca/url.d.mts\",\n        \"default\": \"./ca/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/url.d.cts\",\n        \"default\": \"./ca/url.cjs\"\n      }\n    },\n    \"./ca/uuid\": {\n      \"import\": {\n        \"types\": \"./ca/uuid.d.mts\",\n        \"default\": \"./ca/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/uuid.d.cts\",\n        \"default\": \"./ca/uuid.cjs\"\n      }\n    },\n    \"./ca/value\": {\n      \"import\": {\n        \"types\": \"./ca/value.d.mts\",\n        \"default\": \"./ca/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/value.d.cts\",\n        \"default\": \"./ca/value.cjs\"\n      }\n    },\n    \"./ca/values\": {\n      \"import\": {\n        \"types\": \"./ca/values.d.mts\",\n        \"default\": \"./ca/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/values.d.cts\",\n        \"default\": \"./ca/values.cjs\"\n      }\n    },\n    \"./ca/words\": {\n      \"import\": {\n        \"types\": \"./ca/words.d.mts\",\n        \"default\": \"./ca/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ca/words.d.cts\",\n        \"default\": \"./ca/words.cjs\"\n      }\n    },\n    \"./cs\": {\n      \"import\": {\n        \"types\": \"./cs/index.d.mts\",\n        \"default\": \"./cs/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/index.d.cts\",\n        \"default\": \"./cs/index.cjs\"\n      }\n    },\n    \"./cs/schema\": {\n      \"import\": {\n        \"types\": \"./cs/schema.d.mts\",\n        \"default\": \"./cs/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/schema.d.cts\",\n        \"default\": \"./cs/schema.cjs\"\n      }\n    },\n    \"./cs/base64\": {\n      \"import\": {\n        \"types\": \"./cs/base64.d.mts\",\n        \"default\": \"./cs/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/base64.d.cts\",\n        \"default\": \"./cs/base64.cjs\"\n      }\n    },\n    \"./cs/bic\": {\n      \"import\": {\n        \"types\": \"./cs/bic.d.mts\",\n        \"default\": \"./cs/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/bic.d.cts\",\n        \"default\": \"./cs/bic.cjs\"\n      }\n    },\n    \"./cs/bytes\": {\n      \"import\": {\n        \"types\": \"./cs/bytes.d.mts\",\n        \"default\": \"./cs/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/bytes.d.cts\",\n        \"default\": \"./cs/bytes.cjs\"\n      }\n    },\n    \"./cs/check\": {\n      \"import\": {\n        \"types\": \"./cs/check.d.mts\",\n        \"default\": \"./cs/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/check.d.cts\",\n        \"default\": \"./cs/check.cjs\"\n      }\n    },\n    \"./cs/checkAsync\": {\n      \"import\": {\n        \"types\": \"./cs/checkAsync.d.mts\",\n        \"default\": \"./cs/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/checkAsync.d.cts\",\n        \"default\": \"./cs/checkAsync.cjs\"\n      }\n    },\n    \"./cs/checkItems\": {\n      \"import\": {\n        \"types\": \"./cs/checkItems.d.mts\",\n        \"default\": \"./cs/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/checkItems.d.cts\",\n        \"default\": \"./cs/checkItems.cjs\"\n      }\n    },\n    \"./cs/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./cs/checkItemsAsync.d.mts\",\n        \"default\": \"./cs/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/checkItemsAsync.d.cts\",\n        \"default\": \"./cs/checkItemsAsync.cjs\"\n      }\n    },\n    \"./cs/creditCard\": {\n      \"import\": {\n        \"types\": \"./cs/creditCard.d.mts\",\n        \"default\": \"./cs/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/creditCard.d.cts\",\n        \"default\": \"./cs/creditCard.cjs\"\n      }\n    },\n    \"./cs/cuid2\": {\n      \"import\": {\n        \"types\": \"./cs/cuid2.d.mts\",\n        \"default\": \"./cs/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/cuid2.d.cts\",\n        \"default\": \"./cs/cuid2.cjs\"\n      }\n    },\n    \"./cs/decimal\": {\n      \"import\": {\n        \"types\": \"./cs/decimal.d.mts\",\n        \"default\": \"./cs/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/decimal.d.cts\",\n        \"default\": \"./cs/decimal.cjs\"\n      }\n    },\n    \"./cs/digits\": {\n      \"import\": {\n        \"types\": \"./cs/digits.d.mts\",\n        \"default\": \"./cs/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/digits.d.cts\",\n        \"default\": \"./cs/digits.cjs\"\n      }\n    },\n    \"./cs/domain\": {\n      \"import\": {\n        \"types\": \"./cs/domain.d.mts\",\n        \"default\": \"./cs/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/domain.d.cts\",\n        \"default\": \"./cs/domain.cjs\"\n      }\n    },\n    \"./cs/email\": {\n      \"import\": {\n        \"types\": \"./cs/email.d.mts\",\n        \"default\": \"./cs/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/email.d.cts\",\n        \"default\": \"./cs/email.cjs\"\n      }\n    },\n    \"./cs/emoji\": {\n      \"import\": {\n        \"types\": \"./cs/emoji.d.mts\",\n        \"default\": \"./cs/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/emoji.d.cts\",\n        \"default\": \"./cs/emoji.cjs\"\n      }\n    },\n    \"./cs/empty\": {\n      \"import\": {\n        \"types\": \"./cs/empty.d.mts\",\n        \"default\": \"./cs/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/empty.d.cts\",\n        \"default\": \"./cs/empty.cjs\"\n      }\n    },\n    \"./cs/endsWith\": {\n      \"import\": {\n        \"types\": \"./cs/endsWith.d.mts\",\n        \"default\": \"./cs/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/endsWith.d.cts\",\n        \"default\": \"./cs/endsWith.cjs\"\n      }\n    },\n    \"./cs/entries\": {\n      \"import\": {\n        \"types\": \"./cs/entries.d.mts\",\n        \"default\": \"./cs/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/entries.d.cts\",\n        \"default\": \"./cs/entries.cjs\"\n      }\n    },\n    \"./cs/everyItem\": {\n      \"import\": {\n        \"types\": \"./cs/everyItem.d.mts\",\n        \"default\": \"./cs/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/everyItem.d.cts\",\n        \"default\": \"./cs/everyItem.cjs\"\n      }\n    },\n    \"./cs/excludes\": {\n      \"import\": {\n        \"types\": \"./cs/excludes.d.mts\",\n        \"default\": \"./cs/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/excludes.d.cts\",\n        \"default\": \"./cs/excludes.cjs\"\n      }\n    },\n    \"./cs/finite\": {\n      \"import\": {\n        \"types\": \"./cs/finite.d.mts\",\n        \"default\": \"./cs/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/finite.d.cts\",\n        \"default\": \"./cs/finite.cjs\"\n      }\n    },\n    \"./cs/graphemes\": {\n      \"import\": {\n        \"types\": \"./cs/graphemes.d.mts\",\n        \"default\": \"./cs/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/graphemes.d.cts\",\n        \"default\": \"./cs/graphemes.cjs\"\n      }\n    },\n    \"./cs/gtValue\": {\n      \"import\": {\n        \"types\": \"./cs/gtValue.d.mts\",\n        \"default\": \"./cs/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/gtValue.d.cts\",\n        \"default\": \"./cs/gtValue.cjs\"\n      }\n    },\n    \"./cs/guard\": {\n      \"import\": {\n        \"types\": \"./cs/guard.d.mts\",\n        \"default\": \"./cs/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/guard.d.cts\",\n        \"default\": \"./cs/guard.cjs\"\n      }\n    },\n    \"./cs/hash\": {\n      \"import\": {\n        \"types\": \"./cs/hash.d.mts\",\n        \"default\": \"./cs/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/hash.d.cts\",\n        \"default\": \"./cs/hash.cjs\"\n      }\n    },\n    \"./cs/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./cs/hexadecimal.d.mts\",\n        \"default\": \"./cs/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/hexadecimal.d.cts\",\n        \"default\": \"./cs/hexadecimal.cjs\"\n      }\n    },\n    \"./cs/hexColor\": {\n      \"import\": {\n        \"types\": \"./cs/hexColor.d.mts\",\n        \"default\": \"./cs/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/hexColor.d.cts\",\n        \"default\": \"./cs/hexColor.cjs\"\n      }\n    },\n    \"./cs/imei\": {\n      \"import\": {\n        \"types\": \"./cs/imei.d.mts\",\n        \"default\": \"./cs/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/imei.d.cts\",\n        \"default\": \"./cs/imei.cjs\"\n      }\n    },\n    \"./cs/includes\": {\n      \"import\": {\n        \"types\": \"./cs/includes.d.mts\",\n        \"default\": \"./cs/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/includes.d.cts\",\n        \"default\": \"./cs/includes.cjs\"\n      }\n    },\n    \"./cs/integer\": {\n      \"import\": {\n        \"types\": \"./cs/integer.d.mts\",\n        \"default\": \"./cs/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/integer.d.cts\",\n        \"default\": \"./cs/integer.cjs\"\n      }\n    },\n    \"./cs/ip\": {\n      \"import\": {\n        \"types\": \"./cs/ip.d.mts\",\n        \"default\": \"./cs/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/ip.d.cts\",\n        \"default\": \"./cs/ip.cjs\"\n      }\n    },\n    \"./cs/ipv4\": {\n      \"import\": {\n        \"types\": \"./cs/ipv4.d.mts\",\n        \"default\": \"./cs/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/ipv4.d.cts\",\n        \"default\": \"./cs/ipv4.cjs\"\n      }\n    },\n    \"./cs/ipv6\": {\n      \"import\": {\n        \"types\": \"./cs/ipv6.d.mts\",\n        \"default\": \"./cs/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/ipv6.d.cts\",\n        \"default\": \"./cs/ipv6.cjs\"\n      }\n    },\n    \"./cs/isbn\": {\n      \"import\": {\n        \"types\": \"./cs/isbn.d.mts\",\n        \"default\": \"./cs/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/isbn.d.cts\",\n        \"default\": \"./cs/isbn.cjs\"\n      }\n    },\n    \"./cs/isoDate\": {\n      \"import\": {\n        \"types\": \"./cs/isoDate.d.mts\",\n        \"default\": \"./cs/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/isoDate.d.cts\",\n        \"default\": \"./cs/isoDate.cjs\"\n      }\n    },\n    \"./cs/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./cs/isoDateTime.d.mts\",\n        \"default\": \"./cs/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/isoDateTime.d.cts\",\n        \"default\": \"./cs/isoDateTime.cjs\"\n      }\n    },\n    \"./cs/isoTime\": {\n      \"import\": {\n        \"types\": \"./cs/isoTime.d.mts\",\n        \"default\": \"./cs/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/isoTime.d.cts\",\n        \"default\": \"./cs/isoTime.cjs\"\n      }\n    },\n    \"./cs/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./cs/isoTimeSecond.d.mts\",\n        \"default\": \"./cs/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/isoTimeSecond.d.cts\",\n        \"default\": \"./cs/isoTimeSecond.cjs\"\n      }\n    },\n    \"./cs/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./cs/isoTimestamp.d.mts\",\n        \"default\": \"./cs/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/isoTimestamp.d.cts\",\n        \"default\": \"./cs/isoTimestamp.cjs\"\n      }\n    },\n    \"./cs/isoWeek\": {\n      \"import\": {\n        \"types\": \"./cs/isoWeek.d.mts\",\n        \"default\": \"./cs/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/isoWeek.d.cts\",\n        \"default\": \"./cs/isoWeek.cjs\"\n      }\n    },\n    \"./cs/isrc\": {\n      \"import\": {\n        \"types\": \"./cs/isrc.d.mts\",\n        \"default\": \"./cs/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/isrc.d.cts\",\n        \"default\": \"./cs/isrc.cjs\"\n      }\n    },\n    \"./cs/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./cs/jwsCompact.d.mts\",\n        \"default\": \"./cs/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/jwsCompact.d.cts\",\n        \"default\": \"./cs/jwsCompact.cjs\"\n      }\n    },\n    \"./cs/length\": {\n      \"import\": {\n        \"types\": \"./cs/length.d.mts\",\n        \"default\": \"./cs/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/length.d.cts\",\n        \"default\": \"./cs/length.cjs\"\n      }\n    },\n    \"./cs/ltValue\": {\n      \"import\": {\n        \"types\": \"./cs/ltValue.d.mts\",\n        \"default\": \"./cs/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/ltValue.d.cts\",\n        \"default\": \"./cs/ltValue.cjs\"\n      }\n    },\n    \"./cs/mac\": {\n      \"import\": {\n        \"types\": \"./cs/mac.d.mts\",\n        \"default\": \"./cs/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/mac.d.cts\",\n        \"default\": \"./cs/mac.cjs\"\n      }\n    },\n    \"./cs/mac48\": {\n      \"import\": {\n        \"types\": \"./cs/mac48.d.mts\",\n        \"default\": \"./cs/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/mac48.d.cts\",\n        \"default\": \"./cs/mac48.cjs\"\n      }\n    },\n    \"./cs/mac64\": {\n      \"import\": {\n        \"types\": \"./cs/mac64.d.mts\",\n        \"default\": \"./cs/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/mac64.d.cts\",\n        \"default\": \"./cs/mac64.cjs\"\n      }\n    },\n    \"./cs/maxBytes\": {\n      \"import\": {\n        \"types\": \"./cs/maxBytes.d.mts\",\n        \"default\": \"./cs/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/maxBytes.d.cts\",\n        \"default\": \"./cs/maxBytes.cjs\"\n      }\n    },\n    \"./cs/maxEntries\": {\n      \"import\": {\n        \"types\": \"./cs/maxEntries.d.mts\",\n        \"default\": \"./cs/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/maxEntries.d.cts\",\n        \"default\": \"./cs/maxEntries.cjs\"\n      }\n    },\n    \"./cs/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./cs/maxGraphemes.d.mts\",\n        \"default\": \"./cs/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/maxGraphemes.d.cts\",\n        \"default\": \"./cs/maxGraphemes.cjs\"\n      }\n    },\n    \"./cs/maxLength\": {\n      \"import\": {\n        \"types\": \"./cs/maxLength.d.mts\",\n        \"default\": \"./cs/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/maxLength.d.cts\",\n        \"default\": \"./cs/maxLength.cjs\"\n      }\n    },\n    \"./cs/maxSize\": {\n      \"import\": {\n        \"types\": \"./cs/maxSize.d.mts\",\n        \"default\": \"./cs/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/maxSize.d.cts\",\n        \"default\": \"./cs/maxSize.cjs\"\n      }\n    },\n    \"./cs/maxValue\": {\n      \"import\": {\n        \"types\": \"./cs/maxValue.d.mts\",\n        \"default\": \"./cs/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/maxValue.d.cts\",\n        \"default\": \"./cs/maxValue.cjs\"\n      }\n    },\n    \"./cs/maxWords\": {\n      \"import\": {\n        \"types\": \"./cs/maxWords.d.mts\",\n        \"default\": \"./cs/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/maxWords.d.cts\",\n        \"default\": \"./cs/maxWords.cjs\"\n      }\n    },\n    \"./cs/mimeType\": {\n      \"import\": {\n        \"types\": \"./cs/mimeType.d.mts\",\n        \"default\": \"./cs/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/mimeType.d.cts\",\n        \"default\": \"./cs/mimeType.cjs\"\n      }\n    },\n    \"./cs/minBytes\": {\n      \"import\": {\n        \"types\": \"./cs/minBytes.d.mts\",\n        \"default\": \"./cs/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/minBytes.d.cts\",\n        \"default\": \"./cs/minBytes.cjs\"\n      }\n    },\n    \"./cs/minEntries\": {\n      \"import\": {\n        \"types\": \"./cs/minEntries.d.mts\",\n        \"default\": \"./cs/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/minEntries.d.cts\",\n        \"default\": \"./cs/minEntries.cjs\"\n      }\n    },\n    \"./cs/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./cs/minGraphemes.d.mts\",\n        \"default\": \"./cs/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/minGraphemes.d.cts\",\n        \"default\": \"./cs/minGraphemes.cjs\"\n      }\n    },\n    \"./cs/minLength\": {\n      \"import\": {\n        \"types\": \"./cs/minLength.d.mts\",\n        \"default\": \"./cs/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/minLength.d.cts\",\n        \"default\": \"./cs/minLength.cjs\"\n      }\n    },\n    \"./cs/minSize\": {\n      \"import\": {\n        \"types\": \"./cs/minSize.d.mts\",\n        \"default\": \"./cs/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/minSize.d.cts\",\n        \"default\": \"./cs/minSize.cjs\"\n      }\n    },\n    \"./cs/minValue\": {\n      \"import\": {\n        \"types\": \"./cs/minValue.d.mts\",\n        \"default\": \"./cs/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/minValue.d.cts\",\n        \"default\": \"./cs/minValue.cjs\"\n      }\n    },\n    \"./cs/minWords\": {\n      \"import\": {\n        \"types\": \"./cs/minWords.d.mts\",\n        \"default\": \"./cs/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/minWords.d.cts\",\n        \"default\": \"./cs/minWords.cjs\"\n      }\n    },\n    \"./cs/multipleOf\": {\n      \"import\": {\n        \"types\": \"./cs/multipleOf.d.mts\",\n        \"default\": \"./cs/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/multipleOf.d.cts\",\n        \"default\": \"./cs/multipleOf.cjs\"\n      }\n    },\n    \"./cs/nanoid\": {\n      \"import\": {\n        \"types\": \"./cs/nanoid.d.mts\",\n        \"default\": \"./cs/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/nanoid.d.cts\",\n        \"default\": \"./cs/nanoid.cjs\"\n      }\n    },\n    \"./cs/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./cs/nonEmpty.d.mts\",\n        \"default\": \"./cs/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/nonEmpty.d.cts\",\n        \"default\": \"./cs/nonEmpty.cjs\"\n      }\n    },\n    \"./cs/notBytes\": {\n      \"import\": {\n        \"types\": \"./cs/notBytes.d.mts\",\n        \"default\": \"./cs/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/notBytes.d.cts\",\n        \"default\": \"./cs/notBytes.cjs\"\n      }\n    },\n    \"./cs/notEntries\": {\n      \"import\": {\n        \"types\": \"./cs/notEntries.d.mts\",\n        \"default\": \"./cs/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/notEntries.d.cts\",\n        \"default\": \"./cs/notEntries.cjs\"\n      }\n    },\n    \"./cs/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./cs/notGraphemes.d.mts\",\n        \"default\": \"./cs/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/notGraphemes.d.cts\",\n        \"default\": \"./cs/notGraphemes.cjs\"\n      }\n    },\n    \"./cs/notLength\": {\n      \"import\": {\n        \"types\": \"./cs/notLength.d.mts\",\n        \"default\": \"./cs/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/notLength.d.cts\",\n        \"default\": \"./cs/notLength.cjs\"\n      }\n    },\n    \"./cs/notSize\": {\n      \"import\": {\n        \"types\": \"./cs/notSize.d.mts\",\n        \"default\": \"./cs/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/notSize.d.cts\",\n        \"default\": \"./cs/notSize.cjs\"\n      }\n    },\n    \"./cs/notValue\": {\n      \"import\": {\n        \"types\": \"./cs/notValue.d.mts\",\n        \"default\": \"./cs/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/notValue.d.cts\",\n        \"default\": \"./cs/notValue.cjs\"\n      }\n    },\n    \"./cs/notValues\": {\n      \"import\": {\n        \"types\": \"./cs/notValues.d.mts\",\n        \"default\": \"./cs/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/notValues.d.cts\",\n        \"default\": \"./cs/notValues.cjs\"\n      }\n    },\n    \"./cs/notWords\": {\n      \"import\": {\n        \"types\": \"./cs/notWords.d.mts\",\n        \"default\": \"./cs/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/notWords.d.cts\",\n        \"default\": \"./cs/notWords.cjs\"\n      }\n    },\n    \"./cs/octal\": {\n      \"import\": {\n        \"types\": \"./cs/octal.d.mts\",\n        \"default\": \"./cs/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/octal.d.cts\",\n        \"default\": \"./cs/octal.cjs\"\n      }\n    },\n    \"./cs/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./cs/parseBoolean.d.mts\",\n        \"default\": \"./cs/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/parseBoolean.d.cts\",\n        \"default\": \"./cs/parseBoolean.cjs\"\n      }\n    },\n    \"./cs/parseJson\": {\n      \"import\": {\n        \"types\": \"./cs/parseJson.d.mts\",\n        \"default\": \"./cs/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/parseJson.d.cts\",\n        \"default\": \"./cs/parseJson.cjs\"\n      }\n    },\n    \"./cs/partialCheck\": {\n      \"import\": {\n        \"types\": \"./cs/partialCheck.d.mts\",\n        \"default\": \"./cs/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/partialCheck.d.cts\",\n        \"default\": \"./cs/partialCheck.cjs\"\n      }\n    },\n    \"./cs/rawCheck\": {\n      \"import\": {\n        \"types\": \"./cs/rawCheck.d.mts\",\n        \"default\": \"./cs/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/rawCheck.d.cts\",\n        \"default\": \"./cs/rawCheck.cjs\"\n      }\n    },\n    \"./cs/rawTransform\": {\n      \"import\": {\n        \"types\": \"./cs/rawTransform.d.mts\",\n        \"default\": \"./cs/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/rawTransform.d.cts\",\n        \"default\": \"./cs/rawTransform.cjs\"\n      }\n    },\n    \"./cs/regex\": {\n      \"import\": {\n        \"types\": \"./cs/regex.d.mts\",\n        \"default\": \"./cs/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/regex.d.cts\",\n        \"default\": \"./cs/regex.cjs\"\n      }\n    },\n    \"./cs/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./cs/rfcEmail.d.mts\",\n        \"default\": \"./cs/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/rfcEmail.d.cts\",\n        \"default\": \"./cs/rfcEmail.cjs\"\n      }\n    },\n    \"./cs/safeInteger\": {\n      \"import\": {\n        \"types\": \"./cs/safeInteger.d.mts\",\n        \"default\": \"./cs/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/safeInteger.d.cts\",\n        \"default\": \"./cs/safeInteger.cjs\"\n      }\n    },\n    \"./cs/size\": {\n      \"import\": {\n        \"types\": \"./cs/size.d.mts\",\n        \"default\": \"./cs/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/size.d.cts\",\n        \"default\": \"./cs/size.cjs\"\n      }\n    },\n    \"./cs/slug\": {\n      \"import\": {\n        \"types\": \"./cs/slug.d.mts\",\n        \"default\": \"./cs/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/slug.d.cts\",\n        \"default\": \"./cs/slug.cjs\"\n      }\n    },\n    \"./cs/someItem\": {\n      \"import\": {\n        \"types\": \"./cs/someItem.d.mts\",\n        \"default\": \"./cs/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/someItem.d.cts\",\n        \"default\": \"./cs/someItem.cjs\"\n      }\n    },\n    \"./cs/startsWith\": {\n      \"import\": {\n        \"types\": \"./cs/startsWith.d.mts\",\n        \"default\": \"./cs/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/startsWith.d.cts\",\n        \"default\": \"./cs/startsWith.cjs\"\n      }\n    },\n    \"./cs/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./cs/stringifyJson.d.mts\",\n        \"default\": \"./cs/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/stringifyJson.d.cts\",\n        \"default\": \"./cs/stringifyJson.cjs\"\n      }\n    },\n    \"./cs/toBigint\": {\n      \"import\": {\n        \"types\": \"./cs/toBigint.d.mts\",\n        \"default\": \"./cs/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/toBigint.d.cts\",\n        \"default\": \"./cs/toBigint.cjs\"\n      }\n    },\n    \"./cs/toDate\": {\n      \"import\": {\n        \"types\": \"./cs/toDate.d.mts\",\n        \"default\": \"./cs/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/toDate.d.cts\",\n        \"default\": \"./cs/toDate.cjs\"\n      }\n    },\n    \"./cs/toNumber\": {\n      \"import\": {\n        \"types\": \"./cs/toNumber.d.mts\",\n        \"default\": \"./cs/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/toNumber.d.cts\",\n        \"default\": \"./cs/toNumber.cjs\"\n      }\n    },\n    \"./cs/toString\": {\n      \"import\": {\n        \"types\": \"./cs/toString.d.mts\",\n        \"default\": \"./cs/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/toString.d.cts\",\n        \"default\": \"./cs/toString.cjs\"\n      }\n    },\n    \"./cs/ulid\": {\n      \"import\": {\n        \"types\": \"./cs/ulid.d.mts\",\n        \"default\": \"./cs/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/ulid.d.cts\",\n        \"default\": \"./cs/ulid.cjs\"\n      }\n    },\n    \"./cs/url\": {\n      \"import\": {\n        \"types\": \"./cs/url.d.mts\",\n        \"default\": \"./cs/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/url.d.cts\",\n        \"default\": \"./cs/url.cjs\"\n      }\n    },\n    \"./cs/uuid\": {\n      \"import\": {\n        \"types\": \"./cs/uuid.d.mts\",\n        \"default\": \"./cs/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/uuid.d.cts\",\n        \"default\": \"./cs/uuid.cjs\"\n      }\n    },\n    \"./cs/value\": {\n      \"import\": {\n        \"types\": \"./cs/value.d.mts\",\n        \"default\": \"./cs/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/value.d.cts\",\n        \"default\": \"./cs/value.cjs\"\n      }\n    },\n    \"./cs/values\": {\n      \"import\": {\n        \"types\": \"./cs/values.d.mts\",\n        \"default\": \"./cs/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/values.d.cts\",\n        \"default\": \"./cs/values.cjs\"\n      }\n    },\n    \"./cs/words\": {\n      \"import\": {\n        \"types\": \"./cs/words.d.mts\",\n        \"default\": \"./cs/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./cs/words.d.cts\",\n        \"default\": \"./cs/words.cjs\"\n      }\n    },\n    \"./de\": {\n      \"import\": {\n        \"types\": \"./de/index.d.mts\",\n        \"default\": \"./de/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/index.d.cts\",\n        \"default\": \"./de/index.cjs\"\n      }\n    },\n    \"./de/schema\": {\n      \"import\": {\n        \"types\": \"./de/schema.d.mts\",\n        \"default\": \"./de/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/schema.d.cts\",\n        \"default\": \"./de/schema.cjs\"\n      }\n    },\n    \"./de/base64\": {\n      \"import\": {\n        \"types\": \"./de/base64.d.mts\",\n        \"default\": \"./de/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/base64.d.cts\",\n        \"default\": \"./de/base64.cjs\"\n      }\n    },\n    \"./de/bic\": {\n      \"import\": {\n        \"types\": \"./de/bic.d.mts\",\n        \"default\": \"./de/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/bic.d.cts\",\n        \"default\": \"./de/bic.cjs\"\n      }\n    },\n    \"./de/bytes\": {\n      \"import\": {\n        \"types\": \"./de/bytes.d.mts\",\n        \"default\": \"./de/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/bytes.d.cts\",\n        \"default\": \"./de/bytes.cjs\"\n      }\n    },\n    \"./de/check\": {\n      \"import\": {\n        \"types\": \"./de/check.d.mts\",\n        \"default\": \"./de/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/check.d.cts\",\n        \"default\": \"./de/check.cjs\"\n      }\n    },\n    \"./de/checkAsync\": {\n      \"import\": {\n        \"types\": \"./de/checkAsync.d.mts\",\n        \"default\": \"./de/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/checkAsync.d.cts\",\n        \"default\": \"./de/checkAsync.cjs\"\n      }\n    },\n    \"./de/checkItems\": {\n      \"import\": {\n        \"types\": \"./de/checkItems.d.mts\",\n        \"default\": \"./de/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/checkItems.d.cts\",\n        \"default\": \"./de/checkItems.cjs\"\n      }\n    },\n    \"./de/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./de/checkItemsAsync.d.mts\",\n        \"default\": \"./de/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/checkItemsAsync.d.cts\",\n        \"default\": \"./de/checkItemsAsync.cjs\"\n      }\n    },\n    \"./de/creditCard\": {\n      \"import\": {\n        \"types\": \"./de/creditCard.d.mts\",\n        \"default\": \"./de/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/creditCard.d.cts\",\n        \"default\": \"./de/creditCard.cjs\"\n      }\n    },\n    \"./de/cuid2\": {\n      \"import\": {\n        \"types\": \"./de/cuid2.d.mts\",\n        \"default\": \"./de/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/cuid2.d.cts\",\n        \"default\": \"./de/cuid2.cjs\"\n      }\n    },\n    \"./de/decimal\": {\n      \"import\": {\n        \"types\": \"./de/decimal.d.mts\",\n        \"default\": \"./de/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/decimal.d.cts\",\n        \"default\": \"./de/decimal.cjs\"\n      }\n    },\n    \"./de/digits\": {\n      \"import\": {\n        \"types\": \"./de/digits.d.mts\",\n        \"default\": \"./de/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/digits.d.cts\",\n        \"default\": \"./de/digits.cjs\"\n      }\n    },\n    \"./de/domain\": {\n      \"import\": {\n        \"types\": \"./de/domain.d.mts\",\n        \"default\": \"./de/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/domain.d.cts\",\n        \"default\": \"./de/domain.cjs\"\n      }\n    },\n    \"./de/email\": {\n      \"import\": {\n        \"types\": \"./de/email.d.mts\",\n        \"default\": \"./de/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/email.d.cts\",\n        \"default\": \"./de/email.cjs\"\n      }\n    },\n    \"./de/emoji\": {\n      \"import\": {\n        \"types\": \"./de/emoji.d.mts\",\n        \"default\": \"./de/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/emoji.d.cts\",\n        \"default\": \"./de/emoji.cjs\"\n      }\n    },\n    \"./de/empty\": {\n      \"import\": {\n        \"types\": \"./de/empty.d.mts\",\n        \"default\": \"./de/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/empty.d.cts\",\n        \"default\": \"./de/empty.cjs\"\n      }\n    },\n    \"./de/endsWith\": {\n      \"import\": {\n        \"types\": \"./de/endsWith.d.mts\",\n        \"default\": \"./de/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/endsWith.d.cts\",\n        \"default\": \"./de/endsWith.cjs\"\n      }\n    },\n    \"./de/entries\": {\n      \"import\": {\n        \"types\": \"./de/entries.d.mts\",\n        \"default\": \"./de/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/entries.d.cts\",\n        \"default\": \"./de/entries.cjs\"\n      }\n    },\n    \"./de/everyItem\": {\n      \"import\": {\n        \"types\": \"./de/everyItem.d.mts\",\n        \"default\": \"./de/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/everyItem.d.cts\",\n        \"default\": \"./de/everyItem.cjs\"\n      }\n    },\n    \"./de/excludes\": {\n      \"import\": {\n        \"types\": \"./de/excludes.d.mts\",\n        \"default\": \"./de/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/excludes.d.cts\",\n        \"default\": \"./de/excludes.cjs\"\n      }\n    },\n    \"./de/finite\": {\n      \"import\": {\n        \"types\": \"./de/finite.d.mts\",\n        \"default\": \"./de/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/finite.d.cts\",\n        \"default\": \"./de/finite.cjs\"\n      }\n    },\n    \"./de/graphemes\": {\n      \"import\": {\n        \"types\": \"./de/graphemes.d.mts\",\n        \"default\": \"./de/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/graphemes.d.cts\",\n        \"default\": \"./de/graphemes.cjs\"\n      }\n    },\n    \"./de/gtValue\": {\n      \"import\": {\n        \"types\": \"./de/gtValue.d.mts\",\n        \"default\": \"./de/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/gtValue.d.cts\",\n        \"default\": \"./de/gtValue.cjs\"\n      }\n    },\n    \"./de/guard\": {\n      \"import\": {\n        \"types\": \"./de/guard.d.mts\",\n        \"default\": \"./de/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/guard.d.cts\",\n        \"default\": \"./de/guard.cjs\"\n      }\n    },\n    \"./de/hash\": {\n      \"import\": {\n        \"types\": \"./de/hash.d.mts\",\n        \"default\": \"./de/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/hash.d.cts\",\n        \"default\": \"./de/hash.cjs\"\n      }\n    },\n    \"./de/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./de/hexadecimal.d.mts\",\n        \"default\": \"./de/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/hexadecimal.d.cts\",\n        \"default\": \"./de/hexadecimal.cjs\"\n      }\n    },\n    \"./de/hexColor\": {\n      \"import\": {\n        \"types\": \"./de/hexColor.d.mts\",\n        \"default\": \"./de/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/hexColor.d.cts\",\n        \"default\": \"./de/hexColor.cjs\"\n      }\n    },\n    \"./de/imei\": {\n      \"import\": {\n        \"types\": \"./de/imei.d.mts\",\n        \"default\": \"./de/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/imei.d.cts\",\n        \"default\": \"./de/imei.cjs\"\n      }\n    },\n    \"./de/includes\": {\n      \"import\": {\n        \"types\": \"./de/includes.d.mts\",\n        \"default\": \"./de/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/includes.d.cts\",\n        \"default\": \"./de/includes.cjs\"\n      }\n    },\n    \"./de/integer\": {\n      \"import\": {\n        \"types\": \"./de/integer.d.mts\",\n        \"default\": \"./de/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/integer.d.cts\",\n        \"default\": \"./de/integer.cjs\"\n      }\n    },\n    \"./de/ip\": {\n      \"import\": {\n        \"types\": \"./de/ip.d.mts\",\n        \"default\": \"./de/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/ip.d.cts\",\n        \"default\": \"./de/ip.cjs\"\n      }\n    },\n    \"./de/ipv4\": {\n      \"import\": {\n        \"types\": \"./de/ipv4.d.mts\",\n        \"default\": \"./de/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/ipv4.d.cts\",\n        \"default\": \"./de/ipv4.cjs\"\n      }\n    },\n    \"./de/ipv6\": {\n      \"import\": {\n        \"types\": \"./de/ipv6.d.mts\",\n        \"default\": \"./de/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/ipv6.d.cts\",\n        \"default\": \"./de/ipv6.cjs\"\n      }\n    },\n    \"./de/isbn\": {\n      \"import\": {\n        \"types\": \"./de/isbn.d.mts\",\n        \"default\": \"./de/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/isbn.d.cts\",\n        \"default\": \"./de/isbn.cjs\"\n      }\n    },\n    \"./de/isoDate\": {\n      \"import\": {\n        \"types\": \"./de/isoDate.d.mts\",\n        \"default\": \"./de/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/isoDate.d.cts\",\n        \"default\": \"./de/isoDate.cjs\"\n      }\n    },\n    \"./de/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./de/isoDateTime.d.mts\",\n        \"default\": \"./de/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/isoDateTime.d.cts\",\n        \"default\": \"./de/isoDateTime.cjs\"\n      }\n    },\n    \"./de/isoTime\": {\n      \"import\": {\n        \"types\": \"./de/isoTime.d.mts\",\n        \"default\": \"./de/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/isoTime.d.cts\",\n        \"default\": \"./de/isoTime.cjs\"\n      }\n    },\n    \"./de/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./de/isoTimeSecond.d.mts\",\n        \"default\": \"./de/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/isoTimeSecond.d.cts\",\n        \"default\": \"./de/isoTimeSecond.cjs\"\n      }\n    },\n    \"./de/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./de/isoTimestamp.d.mts\",\n        \"default\": \"./de/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/isoTimestamp.d.cts\",\n        \"default\": \"./de/isoTimestamp.cjs\"\n      }\n    },\n    \"./de/isoWeek\": {\n      \"import\": {\n        \"types\": \"./de/isoWeek.d.mts\",\n        \"default\": \"./de/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/isoWeek.d.cts\",\n        \"default\": \"./de/isoWeek.cjs\"\n      }\n    },\n    \"./de/isrc\": {\n      \"import\": {\n        \"types\": \"./de/isrc.d.mts\",\n        \"default\": \"./de/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/isrc.d.cts\",\n        \"default\": \"./de/isrc.cjs\"\n      }\n    },\n    \"./de/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./de/jwsCompact.d.mts\",\n        \"default\": \"./de/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/jwsCompact.d.cts\",\n        \"default\": \"./de/jwsCompact.cjs\"\n      }\n    },\n    \"./de/length\": {\n      \"import\": {\n        \"types\": \"./de/length.d.mts\",\n        \"default\": \"./de/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/length.d.cts\",\n        \"default\": \"./de/length.cjs\"\n      }\n    },\n    \"./de/ltValue\": {\n      \"import\": {\n        \"types\": \"./de/ltValue.d.mts\",\n        \"default\": \"./de/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/ltValue.d.cts\",\n        \"default\": \"./de/ltValue.cjs\"\n      }\n    },\n    \"./de/mac\": {\n      \"import\": {\n        \"types\": \"./de/mac.d.mts\",\n        \"default\": \"./de/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/mac.d.cts\",\n        \"default\": \"./de/mac.cjs\"\n      }\n    },\n    \"./de/mac48\": {\n      \"import\": {\n        \"types\": \"./de/mac48.d.mts\",\n        \"default\": \"./de/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/mac48.d.cts\",\n        \"default\": \"./de/mac48.cjs\"\n      }\n    },\n    \"./de/mac64\": {\n      \"import\": {\n        \"types\": \"./de/mac64.d.mts\",\n        \"default\": \"./de/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/mac64.d.cts\",\n        \"default\": \"./de/mac64.cjs\"\n      }\n    },\n    \"./de/maxBytes\": {\n      \"import\": {\n        \"types\": \"./de/maxBytes.d.mts\",\n        \"default\": \"./de/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/maxBytes.d.cts\",\n        \"default\": \"./de/maxBytes.cjs\"\n      }\n    },\n    \"./de/maxEntries\": {\n      \"import\": {\n        \"types\": \"./de/maxEntries.d.mts\",\n        \"default\": \"./de/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/maxEntries.d.cts\",\n        \"default\": \"./de/maxEntries.cjs\"\n      }\n    },\n    \"./de/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./de/maxGraphemes.d.mts\",\n        \"default\": \"./de/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/maxGraphemes.d.cts\",\n        \"default\": \"./de/maxGraphemes.cjs\"\n      }\n    },\n    \"./de/maxLength\": {\n      \"import\": {\n        \"types\": \"./de/maxLength.d.mts\",\n        \"default\": \"./de/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/maxLength.d.cts\",\n        \"default\": \"./de/maxLength.cjs\"\n      }\n    },\n    \"./de/maxSize\": {\n      \"import\": {\n        \"types\": \"./de/maxSize.d.mts\",\n        \"default\": \"./de/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/maxSize.d.cts\",\n        \"default\": \"./de/maxSize.cjs\"\n      }\n    },\n    \"./de/maxValue\": {\n      \"import\": {\n        \"types\": \"./de/maxValue.d.mts\",\n        \"default\": \"./de/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/maxValue.d.cts\",\n        \"default\": \"./de/maxValue.cjs\"\n      }\n    },\n    \"./de/maxWords\": {\n      \"import\": {\n        \"types\": \"./de/maxWords.d.mts\",\n        \"default\": \"./de/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/maxWords.d.cts\",\n        \"default\": \"./de/maxWords.cjs\"\n      }\n    },\n    \"./de/mimeType\": {\n      \"import\": {\n        \"types\": \"./de/mimeType.d.mts\",\n        \"default\": \"./de/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/mimeType.d.cts\",\n        \"default\": \"./de/mimeType.cjs\"\n      }\n    },\n    \"./de/minBytes\": {\n      \"import\": {\n        \"types\": \"./de/minBytes.d.mts\",\n        \"default\": \"./de/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/minBytes.d.cts\",\n        \"default\": \"./de/minBytes.cjs\"\n      }\n    },\n    \"./de/minEntries\": {\n      \"import\": {\n        \"types\": \"./de/minEntries.d.mts\",\n        \"default\": \"./de/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/minEntries.d.cts\",\n        \"default\": \"./de/minEntries.cjs\"\n      }\n    },\n    \"./de/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./de/minGraphemes.d.mts\",\n        \"default\": \"./de/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/minGraphemes.d.cts\",\n        \"default\": \"./de/minGraphemes.cjs\"\n      }\n    },\n    \"./de/minLength\": {\n      \"import\": {\n        \"types\": \"./de/minLength.d.mts\",\n        \"default\": \"./de/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/minLength.d.cts\",\n        \"default\": \"./de/minLength.cjs\"\n      }\n    },\n    \"./de/minSize\": {\n      \"import\": {\n        \"types\": \"./de/minSize.d.mts\",\n        \"default\": \"./de/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/minSize.d.cts\",\n        \"default\": \"./de/minSize.cjs\"\n      }\n    },\n    \"./de/minValue\": {\n      \"import\": {\n        \"types\": \"./de/minValue.d.mts\",\n        \"default\": \"./de/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/minValue.d.cts\",\n        \"default\": \"./de/minValue.cjs\"\n      }\n    },\n    \"./de/minWords\": {\n      \"import\": {\n        \"types\": \"./de/minWords.d.mts\",\n        \"default\": \"./de/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/minWords.d.cts\",\n        \"default\": \"./de/minWords.cjs\"\n      }\n    },\n    \"./de/multipleOf\": {\n      \"import\": {\n        \"types\": \"./de/multipleOf.d.mts\",\n        \"default\": \"./de/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/multipleOf.d.cts\",\n        \"default\": \"./de/multipleOf.cjs\"\n      }\n    },\n    \"./de/nanoid\": {\n      \"import\": {\n        \"types\": \"./de/nanoid.d.mts\",\n        \"default\": \"./de/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/nanoid.d.cts\",\n        \"default\": \"./de/nanoid.cjs\"\n      }\n    },\n    \"./de/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./de/nonEmpty.d.mts\",\n        \"default\": \"./de/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/nonEmpty.d.cts\",\n        \"default\": \"./de/nonEmpty.cjs\"\n      }\n    },\n    \"./de/notBytes\": {\n      \"import\": {\n        \"types\": \"./de/notBytes.d.mts\",\n        \"default\": \"./de/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/notBytes.d.cts\",\n        \"default\": \"./de/notBytes.cjs\"\n      }\n    },\n    \"./de/notEntries\": {\n      \"import\": {\n        \"types\": \"./de/notEntries.d.mts\",\n        \"default\": \"./de/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/notEntries.d.cts\",\n        \"default\": \"./de/notEntries.cjs\"\n      }\n    },\n    \"./de/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./de/notGraphemes.d.mts\",\n        \"default\": \"./de/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/notGraphemes.d.cts\",\n        \"default\": \"./de/notGraphemes.cjs\"\n      }\n    },\n    \"./de/notLength\": {\n      \"import\": {\n        \"types\": \"./de/notLength.d.mts\",\n        \"default\": \"./de/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/notLength.d.cts\",\n        \"default\": \"./de/notLength.cjs\"\n      }\n    },\n    \"./de/notSize\": {\n      \"import\": {\n        \"types\": \"./de/notSize.d.mts\",\n        \"default\": \"./de/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/notSize.d.cts\",\n        \"default\": \"./de/notSize.cjs\"\n      }\n    },\n    \"./de/notValue\": {\n      \"import\": {\n        \"types\": \"./de/notValue.d.mts\",\n        \"default\": \"./de/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/notValue.d.cts\",\n        \"default\": \"./de/notValue.cjs\"\n      }\n    },\n    \"./de/notValues\": {\n      \"import\": {\n        \"types\": \"./de/notValues.d.mts\",\n        \"default\": \"./de/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/notValues.d.cts\",\n        \"default\": \"./de/notValues.cjs\"\n      }\n    },\n    \"./de/notWords\": {\n      \"import\": {\n        \"types\": \"./de/notWords.d.mts\",\n        \"default\": \"./de/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/notWords.d.cts\",\n        \"default\": \"./de/notWords.cjs\"\n      }\n    },\n    \"./de/octal\": {\n      \"import\": {\n        \"types\": \"./de/octal.d.mts\",\n        \"default\": \"./de/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/octal.d.cts\",\n        \"default\": \"./de/octal.cjs\"\n      }\n    },\n    \"./de/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./de/parseBoolean.d.mts\",\n        \"default\": \"./de/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/parseBoolean.d.cts\",\n        \"default\": \"./de/parseBoolean.cjs\"\n      }\n    },\n    \"./de/parseJson\": {\n      \"import\": {\n        \"types\": \"./de/parseJson.d.mts\",\n        \"default\": \"./de/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/parseJson.d.cts\",\n        \"default\": \"./de/parseJson.cjs\"\n      }\n    },\n    \"./de/partialCheck\": {\n      \"import\": {\n        \"types\": \"./de/partialCheck.d.mts\",\n        \"default\": \"./de/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/partialCheck.d.cts\",\n        \"default\": \"./de/partialCheck.cjs\"\n      }\n    },\n    \"./de/rawCheck\": {\n      \"import\": {\n        \"types\": \"./de/rawCheck.d.mts\",\n        \"default\": \"./de/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/rawCheck.d.cts\",\n        \"default\": \"./de/rawCheck.cjs\"\n      }\n    },\n    \"./de/rawTransform\": {\n      \"import\": {\n        \"types\": \"./de/rawTransform.d.mts\",\n        \"default\": \"./de/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/rawTransform.d.cts\",\n        \"default\": \"./de/rawTransform.cjs\"\n      }\n    },\n    \"./de/regex\": {\n      \"import\": {\n        \"types\": \"./de/regex.d.mts\",\n        \"default\": \"./de/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/regex.d.cts\",\n        \"default\": \"./de/regex.cjs\"\n      }\n    },\n    \"./de/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./de/rfcEmail.d.mts\",\n        \"default\": \"./de/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/rfcEmail.d.cts\",\n        \"default\": \"./de/rfcEmail.cjs\"\n      }\n    },\n    \"./de/safeInteger\": {\n      \"import\": {\n        \"types\": \"./de/safeInteger.d.mts\",\n        \"default\": \"./de/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/safeInteger.d.cts\",\n        \"default\": \"./de/safeInteger.cjs\"\n      }\n    },\n    \"./de/size\": {\n      \"import\": {\n        \"types\": \"./de/size.d.mts\",\n        \"default\": \"./de/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/size.d.cts\",\n        \"default\": \"./de/size.cjs\"\n      }\n    },\n    \"./de/slug\": {\n      \"import\": {\n        \"types\": \"./de/slug.d.mts\",\n        \"default\": \"./de/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/slug.d.cts\",\n        \"default\": \"./de/slug.cjs\"\n      }\n    },\n    \"./de/someItem\": {\n      \"import\": {\n        \"types\": \"./de/someItem.d.mts\",\n        \"default\": \"./de/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/someItem.d.cts\",\n        \"default\": \"./de/someItem.cjs\"\n      }\n    },\n    \"./de/startsWith\": {\n      \"import\": {\n        \"types\": \"./de/startsWith.d.mts\",\n        \"default\": \"./de/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/startsWith.d.cts\",\n        \"default\": \"./de/startsWith.cjs\"\n      }\n    },\n    \"./de/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./de/stringifyJson.d.mts\",\n        \"default\": \"./de/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/stringifyJson.d.cts\",\n        \"default\": \"./de/stringifyJson.cjs\"\n      }\n    },\n    \"./de/toBigint\": {\n      \"import\": {\n        \"types\": \"./de/toBigint.d.mts\",\n        \"default\": \"./de/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/toBigint.d.cts\",\n        \"default\": \"./de/toBigint.cjs\"\n      }\n    },\n    \"./de/toDate\": {\n      \"import\": {\n        \"types\": \"./de/toDate.d.mts\",\n        \"default\": \"./de/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/toDate.d.cts\",\n        \"default\": \"./de/toDate.cjs\"\n      }\n    },\n    \"./de/toNumber\": {\n      \"import\": {\n        \"types\": \"./de/toNumber.d.mts\",\n        \"default\": \"./de/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/toNumber.d.cts\",\n        \"default\": \"./de/toNumber.cjs\"\n      }\n    },\n    \"./de/toString\": {\n      \"import\": {\n        \"types\": \"./de/toString.d.mts\",\n        \"default\": \"./de/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/toString.d.cts\",\n        \"default\": \"./de/toString.cjs\"\n      }\n    },\n    \"./de/ulid\": {\n      \"import\": {\n        \"types\": \"./de/ulid.d.mts\",\n        \"default\": \"./de/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/ulid.d.cts\",\n        \"default\": \"./de/ulid.cjs\"\n      }\n    },\n    \"./de/url\": {\n      \"import\": {\n        \"types\": \"./de/url.d.mts\",\n        \"default\": \"./de/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/url.d.cts\",\n        \"default\": \"./de/url.cjs\"\n      }\n    },\n    \"./de/uuid\": {\n      \"import\": {\n        \"types\": \"./de/uuid.d.mts\",\n        \"default\": \"./de/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/uuid.d.cts\",\n        \"default\": \"./de/uuid.cjs\"\n      }\n    },\n    \"./de/value\": {\n      \"import\": {\n        \"types\": \"./de/value.d.mts\",\n        \"default\": \"./de/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/value.d.cts\",\n        \"default\": \"./de/value.cjs\"\n      }\n    },\n    \"./de/values\": {\n      \"import\": {\n        \"types\": \"./de/values.d.mts\",\n        \"default\": \"./de/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/values.d.cts\",\n        \"default\": \"./de/values.cjs\"\n      }\n    },\n    \"./de/words\": {\n      \"import\": {\n        \"types\": \"./de/words.d.mts\",\n        \"default\": \"./de/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./de/words.d.cts\",\n        \"default\": \"./de/words.cjs\"\n      }\n    },\n    \"./el\": {\n      \"import\": {\n        \"types\": \"./el/index.d.mts\",\n        \"default\": \"./el/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/index.d.cts\",\n        \"default\": \"./el/index.cjs\"\n      }\n    },\n    \"./el/schema\": {\n      \"import\": {\n        \"types\": \"./el/schema.d.mts\",\n        \"default\": \"./el/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/schema.d.cts\",\n        \"default\": \"./el/schema.cjs\"\n      }\n    },\n    \"./el/base64\": {\n      \"import\": {\n        \"types\": \"./el/base64.d.mts\",\n        \"default\": \"./el/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/base64.d.cts\",\n        \"default\": \"./el/base64.cjs\"\n      }\n    },\n    \"./el/bic\": {\n      \"import\": {\n        \"types\": \"./el/bic.d.mts\",\n        \"default\": \"./el/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/bic.d.cts\",\n        \"default\": \"./el/bic.cjs\"\n      }\n    },\n    \"./el/bytes\": {\n      \"import\": {\n        \"types\": \"./el/bytes.d.mts\",\n        \"default\": \"./el/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/bytes.d.cts\",\n        \"default\": \"./el/bytes.cjs\"\n      }\n    },\n    \"./el/check\": {\n      \"import\": {\n        \"types\": \"./el/check.d.mts\",\n        \"default\": \"./el/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/check.d.cts\",\n        \"default\": \"./el/check.cjs\"\n      }\n    },\n    \"./el/checkAsync\": {\n      \"import\": {\n        \"types\": \"./el/checkAsync.d.mts\",\n        \"default\": \"./el/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/checkAsync.d.cts\",\n        \"default\": \"./el/checkAsync.cjs\"\n      }\n    },\n    \"./el/checkItems\": {\n      \"import\": {\n        \"types\": \"./el/checkItems.d.mts\",\n        \"default\": \"./el/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/checkItems.d.cts\",\n        \"default\": \"./el/checkItems.cjs\"\n      }\n    },\n    \"./el/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./el/checkItemsAsync.d.mts\",\n        \"default\": \"./el/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/checkItemsAsync.d.cts\",\n        \"default\": \"./el/checkItemsAsync.cjs\"\n      }\n    },\n    \"./el/creditCard\": {\n      \"import\": {\n        \"types\": \"./el/creditCard.d.mts\",\n        \"default\": \"./el/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/creditCard.d.cts\",\n        \"default\": \"./el/creditCard.cjs\"\n      }\n    },\n    \"./el/cuid2\": {\n      \"import\": {\n        \"types\": \"./el/cuid2.d.mts\",\n        \"default\": \"./el/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/cuid2.d.cts\",\n        \"default\": \"./el/cuid2.cjs\"\n      }\n    },\n    \"./el/decimal\": {\n      \"import\": {\n        \"types\": \"./el/decimal.d.mts\",\n        \"default\": \"./el/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/decimal.d.cts\",\n        \"default\": \"./el/decimal.cjs\"\n      }\n    },\n    \"./el/digits\": {\n      \"import\": {\n        \"types\": \"./el/digits.d.mts\",\n        \"default\": \"./el/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/digits.d.cts\",\n        \"default\": \"./el/digits.cjs\"\n      }\n    },\n    \"./el/domain\": {\n      \"import\": {\n        \"types\": \"./el/domain.d.mts\",\n        \"default\": \"./el/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/domain.d.cts\",\n        \"default\": \"./el/domain.cjs\"\n      }\n    },\n    \"./el/email\": {\n      \"import\": {\n        \"types\": \"./el/email.d.mts\",\n        \"default\": \"./el/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/email.d.cts\",\n        \"default\": \"./el/email.cjs\"\n      }\n    },\n    \"./el/emoji\": {\n      \"import\": {\n        \"types\": \"./el/emoji.d.mts\",\n        \"default\": \"./el/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/emoji.d.cts\",\n        \"default\": \"./el/emoji.cjs\"\n      }\n    },\n    \"./el/empty\": {\n      \"import\": {\n        \"types\": \"./el/empty.d.mts\",\n        \"default\": \"./el/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/empty.d.cts\",\n        \"default\": \"./el/empty.cjs\"\n      }\n    },\n    \"./el/endsWith\": {\n      \"import\": {\n        \"types\": \"./el/endsWith.d.mts\",\n        \"default\": \"./el/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/endsWith.d.cts\",\n        \"default\": \"./el/endsWith.cjs\"\n      }\n    },\n    \"./el/entries\": {\n      \"import\": {\n        \"types\": \"./el/entries.d.mts\",\n        \"default\": \"./el/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/entries.d.cts\",\n        \"default\": \"./el/entries.cjs\"\n      }\n    },\n    \"./el/everyItem\": {\n      \"import\": {\n        \"types\": \"./el/everyItem.d.mts\",\n        \"default\": \"./el/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/everyItem.d.cts\",\n        \"default\": \"./el/everyItem.cjs\"\n      }\n    },\n    \"./el/excludes\": {\n      \"import\": {\n        \"types\": \"./el/excludes.d.mts\",\n        \"default\": \"./el/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/excludes.d.cts\",\n        \"default\": \"./el/excludes.cjs\"\n      }\n    },\n    \"./el/finite\": {\n      \"import\": {\n        \"types\": \"./el/finite.d.mts\",\n        \"default\": \"./el/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/finite.d.cts\",\n        \"default\": \"./el/finite.cjs\"\n      }\n    },\n    \"./el/graphemes\": {\n      \"import\": {\n        \"types\": \"./el/graphemes.d.mts\",\n        \"default\": \"./el/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/graphemes.d.cts\",\n        \"default\": \"./el/graphemes.cjs\"\n      }\n    },\n    \"./el/gtValue\": {\n      \"import\": {\n        \"types\": \"./el/gtValue.d.mts\",\n        \"default\": \"./el/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/gtValue.d.cts\",\n        \"default\": \"./el/gtValue.cjs\"\n      }\n    },\n    \"./el/guard\": {\n      \"import\": {\n        \"types\": \"./el/guard.d.mts\",\n        \"default\": \"./el/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/guard.d.cts\",\n        \"default\": \"./el/guard.cjs\"\n      }\n    },\n    \"./el/hash\": {\n      \"import\": {\n        \"types\": \"./el/hash.d.mts\",\n        \"default\": \"./el/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/hash.d.cts\",\n        \"default\": \"./el/hash.cjs\"\n      }\n    },\n    \"./el/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./el/hexadecimal.d.mts\",\n        \"default\": \"./el/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/hexadecimal.d.cts\",\n        \"default\": \"./el/hexadecimal.cjs\"\n      }\n    },\n    \"./el/hexColor\": {\n      \"import\": {\n        \"types\": \"./el/hexColor.d.mts\",\n        \"default\": \"./el/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/hexColor.d.cts\",\n        \"default\": \"./el/hexColor.cjs\"\n      }\n    },\n    \"./el/imei\": {\n      \"import\": {\n        \"types\": \"./el/imei.d.mts\",\n        \"default\": \"./el/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/imei.d.cts\",\n        \"default\": \"./el/imei.cjs\"\n      }\n    },\n    \"./el/includes\": {\n      \"import\": {\n        \"types\": \"./el/includes.d.mts\",\n        \"default\": \"./el/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/includes.d.cts\",\n        \"default\": \"./el/includes.cjs\"\n      }\n    },\n    \"./el/integer\": {\n      \"import\": {\n        \"types\": \"./el/integer.d.mts\",\n        \"default\": \"./el/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/integer.d.cts\",\n        \"default\": \"./el/integer.cjs\"\n      }\n    },\n    \"./el/ip\": {\n      \"import\": {\n        \"types\": \"./el/ip.d.mts\",\n        \"default\": \"./el/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/ip.d.cts\",\n        \"default\": \"./el/ip.cjs\"\n      }\n    },\n    \"./el/ipv4\": {\n      \"import\": {\n        \"types\": \"./el/ipv4.d.mts\",\n        \"default\": \"./el/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/ipv4.d.cts\",\n        \"default\": \"./el/ipv4.cjs\"\n      }\n    },\n    \"./el/ipv6\": {\n      \"import\": {\n        \"types\": \"./el/ipv6.d.mts\",\n        \"default\": \"./el/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/ipv6.d.cts\",\n        \"default\": \"./el/ipv6.cjs\"\n      }\n    },\n    \"./el/isbn\": {\n      \"import\": {\n        \"types\": \"./el/isbn.d.mts\",\n        \"default\": \"./el/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/isbn.d.cts\",\n        \"default\": \"./el/isbn.cjs\"\n      }\n    },\n    \"./el/isoDate\": {\n      \"import\": {\n        \"types\": \"./el/isoDate.d.mts\",\n        \"default\": \"./el/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/isoDate.d.cts\",\n        \"default\": \"./el/isoDate.cjs\"\n      }\n    },\n    \"./el/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./el/isoDateTime.d.mts\",\n        \"default\": \"./el/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/isoDateTime.d.cts\",\n        \"default\": \"./el/isoDateTime.cjs\"\n      }\n    },\n    \"./el/isoTime\": {\n      \"import\": {\n        \"types\": \"./el/isoTime.d.mts\",\n        \"default\": \"./el/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/isoTime.d.cts\",\n        \"default\": \"./el/isoTime.cjs\"\n      }\n    },\n    \"./el/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./el/isoTimeSecond.d.mts\",\n        \"default\": \"./el/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/isoTimeSecond.d.cts\",\n        \"default\": \"./el/isoTimeSecond.cjs\"\n      }\n    },\n    \"./el/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./el/isoTimestamp.d.mts\",\n        \"default\": \"./el/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/isoTimestamp.d.cts\",\n        \"default\": \"./el/isoTimestamp.cjs\"\n      }\n    },\n    \"./el/isoWeek\": {\n      \"import\": {\n        \"types\": \"./el/isoWeek.d.mts\",\n        \"default\": \"./el/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/isoWeek.d.cts\",\n        \"default\": \"./el/isoWeek.cjs\"\n      }\n    },\n    \"./el/isrc\": {\n      \"import\": {\n        \"types\": \"./el/isrc.d.mts\",\n        \"default\": \"./el/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/isrc.d.cts\",\n        \"default\": \"./el/isrc.cjs\"\n      }\n    },\n    \"./el/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./el/jwsCompact.d.mts\",\n        \"default\": \"./el/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/jwsCompact.d.cts\",\n        \"default\": \"./el/jwsCompact.cjs\"\n      }\n    },\n    \"./el/length\": {\n      \"import\": {\n        \"types\": \"./el/length.d.mts\",\n        \"default\": \"./el/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/length.d.cts\",\n        \"default\": \"./el/length.cjs\"\n      }\n    },\n    \"./el/ltValue\": {\n      \"import\": {\n        \"types\": \"./el/ltValue.d.mts\",\n        \"default\": \"./el/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/ltValue.d.cts\",\n        \"default\": \"./el/ltValue.cjs\"\n      }\n    },\n    \"./el/mac\": {\n      \"import\": {\n        \"types\": \"./el/mac.d.mts\",\n        \"default\": \"./el/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/mac.d.cts\",\n        \"default\": \"./el/mac.cjs\"\n      }\n    },\n    \"./el/mac48\": {\n      \"import\": {\n        \"types\": \"./el/mac48.d.mts\",\n        \"default\": \"./el/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/mac48.d.cts\",\n        \"default\": \"./el/mac48.cjs\"\n      }\n    },\n    \"./el/mac64\": {\n      \"import\": {\n        \"types\": \"./el/mac64.d.mts\",\n        \"default\": \"./el/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/mac64.d.cts\",\n        \"default\": \"./el/mac64.cjs\"\n      }\n    },\n    \"./el/maxBytes\": {\n      \"import\": {\n        \"types\": \"./el/maxBytes.d.mts\",\n        \"default\": \"./el/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/maxBytes.d.cts\",\n        \"default\": \"./el/maxBytes.cjs\"\n      }\n    },\n    \"./el/maxEntries\": {\n      \"import\": {\n        \"types\": \"./el/maxEntries.d.mts\",\n        \"default\": \"./el/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/maxEntries.d.cts\",\n        \"default\": \"./el/maxEntries.cjs\"\n      }\n    },\n    \"./el/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./el/maxGraphemes.d.mts\",\n        \"default\": \"./el/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/maxGraphemes.d.cts\",\n        \"default\": \"./el/maxGraphemes.cjs\"\n      }\n    },\n    \"./el/maxLength\": {\n      \"import\": {\n        \"types\": \"./el/maxLength.d.mts\",\n        \"default\": \"./el/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/maxLength.d.cts\",\n        \"default\": \"./el/maxLength.cjs\"\n      }\n    },\n    \"./el/maxSize\": {\n      \"import\": {\n        \"types\": \"./el/maxSize.d.mts\",\n        \"default\": \"./el/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/maxSize.d.cts\",\n        \"default\": \"./el/maxSize.cjs\"\n      }\n    },\n    \"./el/maxValue\": {\n      \"import\": {\n        \"types\": \"./el/maxValue.d.mts\",\n        \"default\": \"./el/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/maxValue.d.cts\",\n        \"default\": \"./el/maxValue.cjs\"\n      }\n    },\n    \"./el/maxWords\": {\n      \"import\": {\n        \"types\": \"./el/maxWords.d.mts\",\n        \"default\": \"./el/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/maxWords.d.cts\",\n        \"default\": \"./el/maxWords.cjs\"\n      }\n    },\n    \"./el/mimeType\": {\n      \"import\": {\n        \"types\": \"./el/mimeType.d.mts\",\n        \"default\": \"./el/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/mimeType.d.cts\",\n        \"default\": \"./el/mimeType.cjs\"\n      }\n    },\n    \"./el/minBytes\": {\n      \"import\": {\n        \"types\": \"./el/minBytes.d.mts\",\n        \"default\": \"./el/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/minBytes.d.cts\",\n        \"default\": \"./el/minBytes.cjs\"\n      }\n    },\n    \"./el/minEntries\": {\n      \"import\": {\n        \"types\": \"./el/minEntries.d.mts\",\n        \"default\": \"./el/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/minEntries.d.cts\",\n        \"default\": \"./el/minEntries.cjs\"\n      }\n    },\n    \"./el/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./el/minGraphemes.d.mts\",\n        \"default\": \"./el/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/minGraphemes.d.cts\",\n        \"default\": \"./el/minGraphemes.cjs\"\n      }\n    },\n    \"./el/minLength\": {\n      \"import\": {\n        \"types\": \"./el/minLength.d.mts\",\n        \"default\": \"./el/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/minLength.d.cts\",\n        \"default\": \"./el/minLength.cjs\"\n      }\n    },\n    \"./el/minSize\": {\n      \"import\": {\n        \"types\": \"./el/minSize.d.mts\",\n        \"default\": \"./el/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/minSize.d.cts\",\n        \"default\": \"./el/minSize.cjs\"\n      }\n    },\n    \"./el/minValue\": {\n      \"import\": {\n        \"types\": \"./el/minValue.d.mts\",\n        \"default\": \"./el/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/minValue.d.cts\",\n        \"default\": \"./el/minValue.cjs\"\n      }\n    },\n    \"./el/minWords\": {\n      \"import\": {\n        \"types\": \"./el/minWords.d.mts\",\n        \"default\": \"./el/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/minWords.d.cts\",\n        \"default\": \"./el/minWords.cjs\"\n      }\n    },\n    \"./el/multipleOf\": {\n      \"import\": {\n        \"types\": \"./el/multipleOf.d.mts\",\n        \"default\": \"./el/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/multipleOf.d.cts\",\n        \"default\": \"./el/multipleOf.cjs\"\n      }\n    },\n    \"./el/nanoid\": {\n      \"import\": {\n        \"types\": \"./el/nanoid.d.mts\",\n        \"default\": \"./el/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/nanoid.d.cts\",\n        \"default\": \"./el/nanoid.cjs\"\n      }\n    },\n    \"./el/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./el/nonEmpty.d.mts\",\n        \"default\": \"./el/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/nonEmpty.d.cts\",\n        \"default\": \"./el/nonEmpty.cjs\"\n      }\n    },\n    \"./el/notBytes\": {\n      \"import\": {\n        \"types\": \"./el/notBytes.d.mts\",\n        \"default\": \"./el/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/notBytes.d.cts\",\n        \"default\": \"./el/notBytes.cjs\"\n      }\n    },\n    \"./el/notEntries\": {\n      \"import\": {\n        \"types\": \"./el/notEntries.d.mts\",\n        \"default\": \"./el/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/notEntries.d.cts\",\n        \"default\": \"./el/notEntries.cjs\"\n      }\n    },\n    \"./el/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./el/notGraphemes.d.mts\",\n        \"default\": \"./el/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/notGraphemes.d.cts\",\n        \"default\": \"./el/notGraphemes.cjs\"\n      }\n    },\n    \"./el/notLength\": {\n      \"import\": {\n        \"types\": \"./el/notLength.d.mts\",\n        \"default\": \"./el/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/notLength.d.cts\",\n        \"default\": \"./el/notLength.cjs\"\n      }\n    },\n    \"./el/notSize\": {\n      \"import\": {\n        \"types\": \"./el/notSize.d.mts\",\n        \"default\": \"./el/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/notSize.d.cts\",\n        \"default\": \"./el/notSize.cjs\"\n      }\n    },\n    \"./el/notValue\": {\n      \"import\": {\n        \"types\": \"./el/notValue.d.mts\",\n        \"default\": \"./el/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/notValue.d.cts\",\n        \"default\": \"./el/notValue.cjs\"\n      }\n    },\n    \"./el/notValues\": {\n      \"import\": {\n        \"types\": \"./el/notValues.d.mts\",\n        \"default\": \"./el/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/notValues.d.cts\",\n        \"default\": \"./el/notValues.cjs\"\n      }\n    },\n    \"./el/notWords\": {\n      \"import\": {\n        \"types\": \"./el/notWords.d.mts\",\n        \"default\": \"./el/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/notWords.d.cts\",\n        \"default\": \"./el/notWords.cjs\"\n      }\n    },\n    \"./el/octal\": {\n      \"import\": {\n        \"types\": \"./el/octal.d.mts\",\n        \"default\": \"./el/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/octal.d.cts\",\n        \"default\": \"./el/octal.cjs\"\n      }\n    },\n    \"./el/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./el/parseBoolean.d.mts\",\n        \"default\": \"./el/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/parseBoolean.d.cts\",\n        \"default\": \"./el/parseBoolean.cjs\"\n      }\n    },\n    \"./el/parseJson\": {\n      \"import\": {\n        \"types\": \"./el/parseJson.d.mts\",\n        \"default\": \"./el/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/parseJson.d.cts\",\n        \"default\": \"./el/parseJson.cjs\"\n      }\n    },\n    \"./el/partialCheck\": {\n      \"import\": {\n        \"types\": \"./el/partialCheck.d.mts\",\n        \"default\": \"./el/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/partialCheck.d.cts\",\n        \"default\": \"./el/partialCheck.cjs\"\n      }\n    },\n    \"./el/rawCheck\": {\n      \"import\": {\n        \"types\": \"./el/rawCheck.d.mts\",\n        \"default\": \"./el/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/rawCheck.d.cts\",\n        \"default\": \"./el/rawCheck.cjs\"\n      }\n    },\n    \"./el/rawTransform\": {\n      \"import\": {\n        \"types\": \"./el/rawTransform.d.mts\",\n        \"default\": \"./el/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/rawTransform.d.cts\",\n        \"default\": \"./el/rawTransform.cjs\"\n      }\n    },\n    \"./el/regex\": {\n      \"import\": {\n        \"types\": \"./el/regex.d.mts\",\n        \"default\": \"./el/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/regex.d.cts\",\n        \"default\": \"./el/regex.cjs\"\n      }\n    },\n    \"./el/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./el/rfcEmail.d.mts\",\n        \"default\": \"./el/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/rfcEmail.d.cts\",\n        \"default\": \"./el/rfcEmail.cjs\"\n      }\n    },\n    \"./el/safeInteger\": {\n      \"import\": {\n        \"types\": \"./el/safeInteger.d.mts\",\n        \"default\": \"./el/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/safeInteger.d.cts\",\n        \"default\": \"./el/safeInteger.cjs\"\n      }\n    },\n    \"./el/size\": {\n      \"import\": {\n        \"types\": \"./el/size.d.mts\",\n        \"default\": \"./el/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/size.d.cts\",\n        \"default\": \"./el/size.cjs\"\n      }\n    },\n    \"./el/slug\": {\n      \"import\": {\n        \"types\": \"./el/slug.d.mts\",\n        \"default\": \"./el/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/slug.d.cts\",\n        \"default\": \"./el/slug.cjs\"\n      }\n    },\n    \"./el/someItem\": {\n      \"import\": {\n        \"types\": \"./el/someItem.d.mts\",\n        \"default\": \"./el/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/someItem.d.cts\",\n        \"default\": \"./el/someItem.cjs\"\n      }\n    },\n    \"./el/startsWith\": {\n      \"import\": {\n        \"types\": \"./el/startsWith.d.mts\",\n        \"default\": \"./el/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/startsWith.d.cts\",\n        \"default\": \"./el/startsWith.cjs\"\n      }\n    },\n    \"./el/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./el/stringifyJson.d.mts\",\n        \"default\": \"./el/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/stringifyJson.d.cts\",\n        \"default\": \"./el/stringifyJson.cjs\"\n      }\n    },\n    \"./el/toBigint\": {\n      \"import\": {\n        \"types\": \"./el/toBigint.d.mts\",\n        \"default\": \"./el/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/toBigint.d.cts\",\n        \"default\": \"./el/toBigint.cjs\"\n      }\n    },\n    \"./el/toDate\": {\n      \"import\": {\n        \"types\": \"./el/toDate.d.mts\",\n        \"default\": \"./el/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/toDate.d.cts\",\n        \"default\": \"./el/toDate.cjs\"\n      }\n    },\n    \"./el/toNumber\": {\n      \"import\": {\n        \"types\": \"./el/toNumber.d.mts\",\n        \"default\": \"./el/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/toNumber.d.cts\",\n        \"default\": \"./el/toNumber.cjs\"\n      }\n    },\n    \"./el/toString\": {\n      \"import\": {\n        \"types\": \"./el/toString.d.mts\",\n        \"default\": \"./el/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/toString.d.cts\",\n        \"default\": \"./el/toString.cjs\"\n      }\n    },\n    \"./el/ulid\": {\n      \"import\": {\n        \"types\": \"./el/ulid.d.mts\",\n        \"default\": \"./el/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/ulid.d.cts\",\n        \"default\": \"./el/ulid.cjs\"\n      }\n    },\n    \"./el/url\": {\n      \"import\": {\n        \"types\": \"./el/url.d.mts\",\n        \"default\": \"./el/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/url.d.cts\",\n        \"default\": \"./el/url.cjs\"\n      }\n    },\n    \"./el/uuid\": {\n      \"import\": {\n        \"types\": \"./el/uuid.d.mts\",\n        \"default\": \"./el/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/uuid.d.cts\",\n        \"default\": \"./el/uuid.cjs\"\n      }\n    },\n    \"./el/value\": {\n      \"import\": {\n        \"types\": \"./el/value.d.mts\",\n        \"default\": \"./el/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/value.d.cts\",\n        \"default\": \"./el/value.cjs\"\n      }\n    },\n    \"./el/values\": {\n      \"import\": {\n        \"types\": \"./el/values.d.mts\",\n        \"default\": \"./el/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/values.d.cts\",\n        \"default\": \"./el/values.cjs\"\n      }\n    },\n    \"./el/words\": {\n      \"import\": {\n        \"types\": \"./el/words.d.mts\",\n        \"default\": \"./el/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./el/words.d.cts\",\n        \"default\": \"./el/words.cjs\"\n      }\n    },\n    \"./es\": {\n      \"import\": {\n        \"types\": \"./es/index.d.mts\",\n        \"default\": \"./es/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/index.d.cts\",\n        \"default\": \"./es/index.cjs\"\n      }\n    },\n    \"./es/schema\": {\n      \"import\": {\n        \"types\": \"./es/schema.d.mts\",\n        \"default\": \"./es/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/schema.d.cts\",\n        \"default\": \"./es/schema.cjs\"\n      }\n    },\n    \"./es/base64\": {\n      \"import\": {\n        \"types\": \"./es/base64.d.mts\",\n        \"default\": \"./es/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/base64.d.cts\",\n        \"default\": \"./es/base64.cjs\"\n      }\n    },\n    \"./es/bic\": {\n      \"import\": {\n        \"types\": \"./es/bic.d.mts\",\n        \"default\": \"./es/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/bic.d.cts\",\n        \"default\": \"./es/bic.cjs\"\n      }\n    },\n    \"./es/bytes\": {\n      \"import\": {\n        \"types\": \"./es/bytes.d.mts\",\n        \"default\": \"./es/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/bytes.d.cts\",\n        \"default\": \"./es/bytes.cjs\"\n      }\n    },\n    \"./es/check\": {\n      \"import\": {\n        \"types\": \"./es/check.d.mts\",\n        \"default\": \"./es/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/check.d.cts\",\n        \"default\": \"./es/check.cjs\"\n      }\n    },\n    \"./es/checkAsync\": {\n      \"import\": {\n        \"types\": \"./es/checkAsync.d.mts\",\n        \"default\": \"./es/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/checkAsync.d.cts\",\n        \"default\": \"./es/checkAsync.cjs\"\n      }\n    },\n    \"./es/checkItems\": {\n      \"import\": {\n        \"types\": \"./es/checkItems.d.mts\",\n        \"default\": \"./es/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/checkItems.d.cts\",\n        \"default\": \"./es/checkItems.cjs\"\n      }\n    },\n    \"./es/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./es/checkItemsAsync.d.mts\",\n        \"default\": \"./es/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/checkItemsAsync.d.cts\",\n        \"default\": \"./es/checkItemsAsync.cjs\"\n      }\n    },\n    \"./es/creditCard\": {\n      \"import\": {\n        \"types\": \"./es/creditCard.d.mts\",\n        \"default\": \"./es/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/creditCard.d.cts\",\n        \"default\": \"./es/creditCard.cjs\"\n      }\n    },\n    \"./es/cuid2\": {\n      \"import\": {\n        \"types\": \"./es/cuid2.d.mts\",\n        \"default\": \"./es/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/cuid2.d.cts\",\n        \"default\": \"./es/cuid2.cjs\"\n      }\n    },\n    \"./es/decimal\": {\n      \"import\": {\n        \"types\": \"./es/decimal.d.mts\",\n        \"default\": \"./es/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/decimal.d.cts\",\n        \"default\": \"./es/decimal.cjs\"\n      }\n    },\n    \"./es/digits\": {\n      \"import\": {\n        \"types\": \"./es/digits.d.mts\",\n        \"default\": \"./es/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/digits.d.cts\",\n        \"default\": \"./es/digits.cjs\"\n      }\n    },\n    \"./es/domain\": {\n      \"import\": {\n        \"types\": \"./es/domain.d.mts\",\n        \"default\": \"./es/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/domain.d.cts\",\n        \"default\": \"./es/domain.cjs\"\n      }\n    },\n    \"./es/email\": {\n      \"import\": {\n        \"types\": \"./es/email.d.mts\",\n        \"default\": \"./es/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/email.d.cts\",\n        \"default\": \"./es/email.cjs\"\n      }\n    },\n    \"./es/emoji\": {\n      \"import\": {\n        \"types\": \"./es/emoji.d.mts\",\n        \"default\": \"./es/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/emoji.d.cts\",\n        \"default\": \"./es/emoji.cjs\"\n      }\n    },\n    \"./es/empty\": {\n      \"import\": {\n        \"types\": \"./es/empty.d.mts\",\n        \"default\": \"./es/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/empty.d.cts\",\n        \"default\": \"./es/empty.cjs\"\n      }\n    },\n    \"./es/endsWith\": {\n      \"import\": {\n        \"types\": \"./es/endsWith.d.mts\",\n        \"default\": \"./es/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/endsWith.d.cts\",\n        \"default\": \"./es/endsWith.cjs\"\n      }\n    },\n    \"./es/entries\": {\n      \"import\": {\n        \"types\": \"./es/entries.d.mts\",\n        \"default\": \"./es/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/entries.d.cts\",\n        \"default\": \"./es/entries.cjs\"\n      }\n    },\n    \"./es/everyItem\": {\n      \"import\": {\n        \"types\": \"./es/everyItem.d.mts\",\n        \"default\": \"./es/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/everyItem.d.cts\",\n        \"default\": \"./es/everyItem.cjs\"\n      }\n    },\n    \"./es/excludes\": {\n      \"import\": {\n        \"types\": \"./es/excludes.d.mts\",\n        \"default\": \"./es/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/excludes.d.cts\",\n        \"default\": \"./es/excludes.cjs\"\n      }\n    },\n    \"./es/finite\": {\n      \"import\": {\n        \"types\": \"./es/finite.d.mts\",\n        \"default\": \"./es/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/finite.d.cts\",\n        \"default\": \"./es/finite.cjs\"\n      }\n    },\n    \"./es/graphemes\": {\n      \"import\": {\n        \"types\": \"./es/graphemes.d.mts\",\n        \"default\": \"./es/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/graphemes.d.cts\",\n        \"default\": \"./es/graphemes.cjs\"\n      }\n    },\n    \"./es/gtValue\": {\n      \"import\": {\n        \"types\": \"./es/gtValue.d.mts\",\n        \"default\": \"./es/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/gtValue.d.cts\",\n        \"default\": \"./es/gtValue.cjs\"\n      }\n    },\n    \"./es/guard\": {\n      \"import\": {\n        \"types\": \"./es/guard.d.mts\",\n        \"default\": \"./es/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/guard.d.cts\",\n        \"default\": \"./es/guard.cjs\"\n      }\n    },\n    \"./es/hash\": {\n      \"import\": {\n        \"types\": \"./es/hash.d.mts\",\n        \"default\": \"./es/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/hash.d.cts\",\n        \"default\": \"./es/hash.cjs\"\n      }\n    },\n    \"./es/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./es/hexadecimal.d.mts\",\n        \"default\": \"./es/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/hexadecimal.d.cts\",\n        \"default\": \"./es/hexadecimal.cjs\"\n      }\n    },\n    \"./es/hexColor\": {\n      \"import\": {\n        \"types\": \"./es/hexColor.d.mts\",\n        \"default\": \"./es/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/hexColor.d.cts\",\n        \"default\": \"./es/hexColor.cjs\"\n      }\n    },\n    \"./es/imei\": {\n      \"import\": {\n        \"types\": \"./es/imei.d.mts\",\n        \"default\": \"./es/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/imei.d.cts\",\n        \"default\": \"./es/imei.cjs\"\n      }\n    },\n    \"./es/includes\": {\n      \"import\": {\n        \"types\": \"./es/includes.d.mts\",\n        \"default\": \"./es/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/includes.d.cts\",\n        \"default\": \"./es/includes.cjs\"\n      }\n    },\n    \"./es/integer\": {\n      \"import\": {\n        \"types\": \"./es/integer.d.mts\",\n        \"default\": \"./es/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/integer.d.cts\",\n        \"default\": \"./es/integer.cjs\"\n      }\n    },\n    \"./es/ip\": {\n      \"import\": {\n        \"types\": \"./es/ip.d.mts\",\n        \"default\": \"./es/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/ip.d.cts\",\n        \"default\": \"./es/ip.cjs\"\n      }\n    },\n    \"./es/ipv4\": {\n      \"import\": {\n        \"types\": \"./es/ipv4.d.mts\",\n        \"default\": \"./es/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/ipv4.d.cts\",\n        \"default\": \"./es/ipv4.cjs\"\n      }\n    },\n    \"./es/ipv6\": {\n      \"import\": {\n        \"types\": \"./es/ipv6.d.mts\",\n        \"default\": \"./es/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/ipv6.d.cts\",\n        \"default\": \"./es/ipv6.cjs\"\n      }\n    },\n    \"./es/isbn\": {\n      \"import\": {\n        \"types\": \"./es/isbn.d.mts\",\n        \"default\": \"./es/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/isbn.d.cts\",\n        \"default\": \"./es/isbn.cjs\"\n      }\n    },\n    \"./es/isoDate\": {\n      \"import\": {\n        \"types\": \"./es/isoDate.d.mts\",\n        \"default\": \"./es/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/isoDate.d.cts\",\n        \"default\": \"./es/isoDate.cjs\"\n      }\n    },\n    \"./es/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./es/isoDateTime.d.mts\",\n        \"default\": \"./es/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/isoDateTime.d.cts\",\n        \"default\": \"./es/isoDateTime.cjs\"\n      }\n    },\n    \"./es/isoTime\": {\n      \"import\": {\n        \"types\": \"./es/isoTime.d.mts\",\n        \"default\": \"./es/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/isoTime.d.cts\",\n        \"default\": \"./es/isoTime.cjs\"\n      }\n    },\n    \"./es/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./es/isoTimeSecond.d.mts\",\n        \"default\": \"./es/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/isoTimeSecond.d.cts\",\n        \"default\": \"./es/isoTimeSecond.cjs\"\n      }\n    },\n    \"./es/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./es/isoTimestamp.d.mts\",\n        \"default\": \"./es/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/isoTimestamp.d.cts\",\n        \"default\": \"./es/isoTimestamp.cjs\"\n      }\n    },\n    \"./es/isoWeek\": {\n      \"import\": {\n        \"types\": \"./es/isoWeek.d.mts\",\n        \"default\": \"./es/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/isoWeek.d.cts\",\n        \"default\": \"./es/isoWeek.cjs\"\n      }\n    },\n    \"./es/isrc\": {\n      \"import\": {\n        \"types\": \"./es/isrc.d.mts\",\n        \"default\": \"./es/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/isrc.d.cts\",\n        \"default\": \"./es/isrc.cjs\"\n      }\n    },\n    \"./es/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./es/jwsCompact.d.mts\",\n        \"default\": \"./es/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/jwsCompact.d.cts\",\n        \"default\": \"./es/jwsCompact.cjs\"\n      }\n    },\n    \"./es/length\": {\n      \"import\": {\n        \"types\": \"./es/length.d.mts\",\n        \"default\": \"./es/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/length.d.cts\",\n        \"default\": \"./es/length.cjs\"\n      }\n    },\n    \"./es/ltValue\": {\n      \"import\": {\n        \"types\": \"./es/ltValue.d.mts\",\n        \"default\": \"./es/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/ltValue.d.cts\",\n        \"default\": \"./es/ltValue.cjs\"\n      }\n    },\n    \"./es/mac\": {\n      \"import\": {\n        \"types\": \"./es/mac.d.mts\",\n        \"default\": \"./es/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/mac.d.cts\",\n        \"default\": \"./es/mac.cjs\"\n      }\n    },\n    \"./es/mac48\": {\n      \"import\": {\n        \"types\": \"./es/mac48.d.mts\",\n        \"default\": \"./es/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/mac48.d.cts\",\n        \"default\": \"./es/mac48.cjs\"\n      }\n    },\n    \"./es/mac64\": {\n      \"import\": {\n        \"types\": \"./es/mac64.d.mts\",\n        \"default\": \"./es/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/mac64.d.cts\",\n        \"default\": \"./es/mac64.cjs\"\n      }\n    },\n    \"./es/maxBytes\": {\n      \"import\": {\n        \"types\": \"./es/maxBytes.d.mts\",\n        \"default\": \"./es/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/maxBytes.d.cts\",\n        \"default\": \"./es/maxBytes.cjs\"\n      }\n    },\n    \"./es/maxEntries\": {\n      \"import\": {\n        \"types\": \"./es/maxEntries.d.mts\",\n        \"default\": \"./es/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/maxEntries.d.cts\",\n        \"default\": \"./es/maxEntries.cjs\"\n      }\n    },\n    \"./es/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./es/maxGraphemes.d.mts\",\n        \"default\": \"./es/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/maxGraphemes.d.cts\",\n        \"default\": \"./es/maxGraphemes.cjs\"\n      }\n    },\n    \"./es/maxLength\": {\n      \"import\": {\n        \"types\": \"./es/maxLength.d.mts\",\n        \"default\": \"./es/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/maxLength.d.cts\",\n        \"default\": \"./es/maxLength.cjs\"\n      }\n    },\n    \"./es/maxSize\": {\n      \"import\": {\n        \"types\": \"./es/maxSize.d.mts\",\n        \"default\": \"./es/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/maxSize.d.cts\",\n        \"default\": \"./es/maxSize.cjs\"\n      }\n    },\n    \"./es/maxValue\": {\n      \"import\": {\n        \"types\": \"./es/maxValue.d.mts\",\n        \"default\": \"./es/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/maxValue.d.cts\",\n        \"default\": \"./es/maxValue.cjs\"\n      }\n    },\n    \"./es/maxWords\": {\n      \"import\": {\n        \"types\": \"./es/maxWords.d.mts\",\n        \"default\": \"./es/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/maxWords.d.cts\",\n        \"default\": \"./es/maxWords.cjs\"\n      }\n    },\n    \"./es/mimeType\": {\n      \"import\": {\n        \"types\": \"./es/mimeType.d.mts\",\n        \"default\": \"./es/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/mimeType.d.cts\",\n        \"default\": \"./es/mimeType.cjs\"\n      }\n    },\n    \"./es/minBytes\": {\n      \"import\": {\n        \"types\": \"./es/minBytes.d.mts\",\n        \"default\": \"./es/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/minBytes.d.cts\",\n        \"default\": \"./es/minBytes.cjs\"\n      }\n    },\n    \"./es/minEntries\": {\n      \"import\": {\n        \"types\": \"./es/minEntries.d.mts\",\n        \"default\": \"./es/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/minEntries.d.cts\",\n        \"default\": \"./es/minEntries.cjs\"\n      }\n    },\n    \"./es/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./es/minGraphemes.d.mts\",\n        \"default\": \"./es/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/minGraphemes.d.cts\",\n        \"default\": \"./es/minGraphemes.cjs\"\n      }\n    },\n    \"./es/minLength\": {\n      \"import\": {\n        \"types\": \"./es/minLength.d.mts\",\n        \"default\": \"./es/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/minLength.d.cts\",\n        \"default\": \"./es/minLength.cjs\"\n      }\n    },\n    \"./es/minSize\": {\n      \"import\": {\n        \"types\": \"./es/minSize.d.mts\",\n        \"default\": \"./es/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/minSize.d.cts\",\n        \"default\": \"./es/minSize.cjs\"\n      }\n    },\n    \"./es/minValue\": {\n      \"import\": {\n        \"types\": \"./es/minValue.d.mts\",\n        \"default\": \"./es/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/minValue.d.cts\",\n        \"default\": \"./es/minValue.cjs\"\n      }\n    },\n    \"./es/minWords\": {\n      \"import\": {\n        \"types\": \"./es/minWords.d.mts\",\n        \"default\": \"./es/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/minWords.d.cts\",\n        \"default\": \"./es/minWords.cjs\"\n      }\n    },\n    \"./es/multipleOf\": {\n      \"import\": {\n        \"types\": \"./es/multipleOf.d.mts\",\n        \"default\": \"./es/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/multipleOf.d.cts\",\n        \"default\": \"./es/multipleOf.cjs\"\n      }\n    },\n    \"./es/nanoid\": {\n      \"import\": {\n        \"types\": \"./es/nanoid.d.mts\",\n        \"default\": \"./es/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/nanoid.d.cts\",\n        \"default\": \"./es/nanoid.cjs\"\n      }\n    },\n    \"./es/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./es/nonEmpty.d.mts\",\n        \"default\": \"./es/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/nonEmpty.d.cts\",\n        \"default\": \"./es/nonEmpty.cjs\"\n      }\n    },\n    \"./es/notBytes\": {\n      \"import\": {\n        \"types\": \"./es/notBytes.d.mts\",\n        \"default\": \"./es/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/notBytes.d.cts\",\n        \"default\": \"./es/notBytes.cjs\"\n      }\n    },\n    \"./es/notEntries\": {\n      \"import\": {\n        \"types\": \"./es/notEntries.d.mts\",\n        \"default\": \"./es/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/notEntries.d.cts\",\n        \"default\": \"./es/notEntries.cjs\"\n      }\n    },\n    \"./es/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./es/notGraphemes.d.mts\",\n        \"default\": \"./es/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/notGraphemes.d.cts\",\n        \"default\": \"./es/notGraphemes.cjs\"\n      }\n    },\n    \"./es/notLength\": {\n      \"import\": {\n        \"types\": \"./es/notLength.d.mts\",\n        \"default\": \"./es/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/notLength.d.cts\",\n        \"default\": \"./es/notLength.cjs\"\n      }\n    },\n    \"./es/notSize\": {\n      \"import\": {\n        \"types\": \"./es/notSize.d.mts\",\n        \"default\": \"./es/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/notSize.d.cts\",\n        \"default\": \"./es/notSize.cjs\"\n      }\n    },\n    \"./es/notValue\": {\n      \"import\": {\n        \"types\": \"./es/notValue.d.mts\",\n        \"default\": \"./es/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/notValue.d.cts\",\n        \"default\": \"./es/notValue.cjs\"\n      }\n    },\n    \"./es/notValues\": {\n      \"import\": {\n        \"types\": \"./es/notValues.d.mts\",\n        \"default\": \"./es/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/notValues.d.cts\",\n        \"default\": \"./es/notValues.cjs\"\n      }\n    },\n    \"./es/notWords\": {\n      \"import\": {\n        \"types\": \"./es/notWords.d.mts\",\n        \"default\": \"./es/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/notWords.d.cts\",\n        \"default\": \"./es/notWords.cjs\"\n      }\n    },\n    \"./es/octal\": {\n      \"import\": {\n        \"types\": \"./es/octal.d.mts\",\n        \"default\": \"./es/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/octal.d.cts\",\n        \"default\": \"./es/octal.cjs\"\n      }\n    },\n    \"./es/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./es/parseBoolean.d.mts\",\n        \"default\": \"./es/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/parseBoolean.d.cts\",\n        \"default\": \"./es/parseBoolean.cjs\"\n      }\n    },\n    \"./es/parseJson\": {\n      \"import\": {\n        \"types\": \"./es/parseJson.d.mts\",\n        \"default\": \"./es/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/parseJson.d.cts\",\n        \"default\": \"./es/parseJson.cjs\"\n      }\n    },\n    \"./es/partialCheck\": {\n      \"import\": {\n        \"types\": \"./es/partialCheck.d.mts\",\n        \"default\": \"./es/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/partialCheck.d.cts\",\n        \"default\": \"./es/partialCheck.cjs\"\n      }\n    },\n    \"./es/rawCheck\": {\n      \"import\": {\n        \"types\": \"./es/rawCheck.d.mts\",\n        \"default\": \"./es/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/rawCheck.d.cts\",\n        \"default\": \"./es/rawCheck.cjs\"\n      }\n    },\n    \"./es/rawTransform\": {\n      \"import\": {\n        \"types\": \"./es/rawTransform.d.mts\",\n        \"default\": \"./es/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/rawTransform.d.cts\",\n        \"default\": \"./es/rawTransform.cjs\"\n      }\n    },\n    \"./es/regex\": {\n      \"import\": {\n        \"types\": \"./es/regex.d.mts\",\n        \"default\": \"./es/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/regex.d.cts\",\n        \"default\": \"./es/regex.cjs\"\n      }\n    },\n    \"./es/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./es/rfcEmail.d.mts\",\n        \"default\": \"./es/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/rfcEmail.d.cts\",\n        \"default\": \"./es/rfcEmail.cjs\"\n      }\n    },\n    \"./es/safeInteger\": {\n      \"import\": {\n        \"types\": \"./es/safeInteger.d.mts\",\n        \"default\": \"./es/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/safeInteger.d.cts\",\n        \"default\": \"./es/safeInteger.cjs\"\n      }\n    },\n    \"./es/size\": {\n      \"import\": {\n        \"types\": \"./es/size.d.mts\",\n        \"default\": \"./es/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/size.d.cts\",\n        \"default\": \"./es/size.cjs\"\n      }\n    },\n    \"./es/slug\": {\n      \"import\": {\n        \"types\": \"./es/slug.d.mts\",\n        \"default\": \"./es/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/slug.d.cts\",\n        \"default\": \"./es/slug.cjs\"\n      }\n    },\n    \"./es/someItem\": {\n      \"import\": {\n        \"types\": \"./es/someItem.d.mts\",\n        \"default\": \"./es/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/someItem.d.cts\",\n        \"default\": \"./es/someItem.cjs\"\n      }\n    },\n    \"./es/startsWith\": {\n      \"import\": {\n        \"types\": \"./es/startsWith.d.mts\",\n        \"default\": \"./es/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/startsWith.d.cts\",\n        \"default\": \"./es/startsWith.cjs\"\n      }\n    },\n    \"./es/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./es/stringifyJson.d.mts\",\n        \"default\": \"./es/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/stringifyJson.d.cts\",\n        \"default\": \"./es/stringifyJson.cjs\"\n      }\n    },\n    \"./es/toBigint\": {\n      \"import\": {\n        \"types\": \"./es/toBigint.d.mts\",\n        \"default\": \"./es/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/toBigint.d.cts\",\n        \"default\": \"./es/toBigint.cjs\"\n      }\n    },\n    \"./es/toDate\": {\n      \"import\": {\n        \"types\": \"./es/toDate.d.mts\",\n        \"default\": \"./es/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/toDate.d.cts\",\n        \"default\": \"./es/toDate.cjs\"\n      }\n    },\n    \"./es/toNumber\": {\n      \"import\": {\n        \"types\": \"./es/toNumber.d.mts\",\n        \"default\": \"./es/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/toNumber.d.cts\",\n        \"default\": \"./es/toNumber.cjs\"\n      }\n    },\n    \"./es/toString\": {\n      \"import\": {\n        \"types\": \"./es/toString.d.mts\",\n        \"default\": \"./es/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/toString.d.cts\",\n        \"default\": \"./es/toString.cjs\"\n      }\n    },\n    \"./es/ulid\": {\n      \"import\": {\n        \"types\": \"./es/ulid.d.mts\",\n        \"default\": \"./es/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/ulid.d.cts\",\n        \"default\": \"./es/ulid.cjs\"\n      }\n    },\n    \"./es/url\": {\n      \"import\": {\n        \"types\": \"./es/url.d.mts\",\n        \"default\": \"./es/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/url.d.cts\",\n        \"default\": \"./es/url.cjs\"\n      }\n    },\n    \"./es/uuid\": {\n      \"import\": {\n        \"types\": \"./es/uuid.d.mts\",\n        \"default\": \"./es/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/uuid.d.cts\",\n        \"default\": \"./es/uuid.cjs\"\n      }\n    },\n    \"./es/value\": {\n      \"import\": {\n        \"types\": \"./es/value.d.mts\",\n        \"default\": \"./es/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/value.d.cts\",\n        \"default\": \"./es/value.cjs\"\n      }\n    },\n    \"./es/values\": {\n      \"import\": {\n        \"types\": \"./es/values.d.mts\",\n        \"default\": \"./es/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/values.d.cts\",\n        \"default\": \"./es/values.cjs\"\n      }\n    },\n    \"./es/words\": {\n      \"import\": {\n        \"types\": \"./es/words.d.mts\",\n        \"default\": \"./es/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./es/words.d.cts\",\n        \"default\": \"./es/words.cjs\"\n      }\n    },\n    \"./fa\": {\n      \"import\": {\n        \"types\": \"./fa/index.d.mts\",\n        \"default\": \"./fa/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/index.d.cts\",\n        \"default\": \"./fa/index.cjs\"\n      }\n    },\n    \"./fa/schema\": {\n      \"import\": {\n        \"types\": \"./fa/schema.d.mts\",\n        \"default\": \"./fa/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/schema.d.cts\",\n        \"default\": \"./fa/schema.cjs\"\n      }\n    },\n    \"./fa/base64\": {\n      \"import\": {\n        \"types\": \"./fa/base64.d.mts\",\n        \"default\": \"./fa/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/base64.d.cts\",\n        \"default\": \"./fa/base64.cjs\"\n      }\n    },\n    \"./fa/bic\": {\n      \"import\": {\n        \"types\": \"./fa/bic.d.mts\",\n        \"default\": \"./fa/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/bic.d.cts\",\n        \"default\": \"./fa/bic.cjs\"\n      }\n    },\n    \"./fa/bytes\": {\n      \"import\": {\n        \"types\": \"./fa/bytes.d.mts\",\n        \"default\": \"./fa/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/bytes.d.cts\",\n        \"default\": \"./fa/bytes.cjs\"\n      }\n    },\n    \"./fa/check\": {\n      \"import\": {\n        \"types\": \"./fa/check.d.mts\",\n        \"default\": \"./fa/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/check.d.cts\",\n        \"default\": \"./fa/check.cjs\"\n      }\n    },\n    \"./fa/checkAsync\": {\n      \"import\": {\n        \"types\": \"./fa/checkAsync.d.mts\",\n        \"default\": \"./fa/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/checkAsync.d.cts\",\n        \"default\": \"./fa/checkAsync.cjs\"\n      }\n    },\n    \"./fa/checkItems\": {\n      \"import\": {\n        \"types\": \"./fa/checkItems.d.mts\",\n        \"default\": \"./fa/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/checkItems.d.cts\",\n        \"default\": \"./fa/checkItems.cjs\"\n      }\n    },\n    \"./fa/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./fa/checkItemsAsync.d.mts\",\n        \"default\": \"./fa/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/checkItemsAsync.d.cts\",\n        \"default\": \"./fa/checkItemsAsync.cjs\"\n      }\n    },\n    \"./fa/creditCard\": {\n      \"import\": {\n        \"types\": \"./fa/creditCard.d.mts\",\n        \"default\": \"./fa/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/creditCard.d.cts\",\n        \"default\": \"./fa/creditCard.cjs\"\n      }\n    },\n    \"./fa/cuid2\": {\n      \"import\": {\n        \"types\": \"./fa/cuid2.d.mts\",\n        \"default\": \"./fa/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/cuid2.d.cts\",\n        \"default\": \"./fa/cuid2.cjs\"\n      }\n    },\n    \"./fa/decimal\": {\n      \"import\": {\n        \"types\": \"./fa/decimal.d.mts\",\n        \"default\": \"./fa/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/decimal.d.cts\",\n        \"default\": \"./fa/decimal.cjs\"\n      }\n    },\n    \"./fa/digits\": {\n      \"import\": {\n        \"types\": \"./fa/digits.d.mts\",\n        \"default\": \"./fa/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/digits.d.cts\",\n        \"default\": \"./fa/digits.cjs\"\n      }\n    },\n    \"./fa/domain\": {\n      \"import\": {\n        \"types\": \"./fa/domain.d.mts\",\n        \"default\": \"./fa/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/domain.d.cts\",\n        \"default\": \"./fa/domain.cjs\"\n      }\n    },\n    \"./fa/email\": {\n      \"import\": {\n        \"types\": \"./fa/email.d.mts\",\n        \"default\": \"./fa/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/email.d.cts\",\n        \"default\": \"./fa/email.cjs\"\n      }\n    },\n    \"./fa/emoji\": {\n      \"import\": {\n        \"types\": \"./fa/emoji.d.mts\",\n        \"default\": \"./fa/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/emoji.d.cts\",\n        \"default\": \"./fa/emoji.cjs\"\n      }\n    },\n    \"./fa/empty\": {\n      \"import\": {\n        \"types\": \"./fa/empty.d.mts\",\n        \"default\": \"./fa/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/empty.d.cts\",\n        \"default\": \"./fa/empty.cjs\"\n      }\n    },\n    \"./fa/endsWith\": {\n      \"import\": {\n        \"types\": \"./fa/endsWith.d.mts\",\n        \"default\": \"./fa/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/endsWith.d.cts\",\n        \"default\": \"./fa/endsWith.cjs\"\n      }\n    },\n    \"./fa/entries\": {\n      \"import\": {\n        \"types\": \"./fa/entries.d.mts\",\n        \"default\": \"./fa/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/entries.d.cts\",\n        \"default\": \"./fa/entries.cjs\"\n      }\n    },\n    \"./fa/everyItem\": {\n      \"import\": {\n        \"types\": \"./fa/everyItem.d.mts\",\n        \"default\": \"./fa/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/everyItem.d.cts\",\n        \"default\": \"./fa/everyItem.cjs\"\n      }\n    },\n    \"./fa/excludes\": {\n      \"import\": {\n        \"types\": \"./fa/excludes.d.mts\",\n        \"default\": \"./fa/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/excludes.d.cts\",\n        \"default\": \"./fa/excludes.cjs\"\n      }\n    },\n    \"./fa/finite\": {\n      \"import\": {\n        \"types\": \"./fa/finite.d.mts\",\n        \"default\": \"./fa/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/finite.d.cts\",\n        \"default\": \"./fa/finite.cjs\"\n      }\n    },\n    \"./fa/graphemes\": {\n      \"import\": {\n        \"types\": \"./fa/graphemes.d.mts\",\n        \"default\": \"./fa/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/graphemes.d.cts\",\n        \"default\": \"./fa/graphemes.cjs\"\n      }\n    },\n    \"./fa/gtValue\": {\n      \"import\": {\n        \"types\": \"./fa/gtValue.d.mts\",\n        \"default\": \"./fa/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/gtValue.d.cts\",\n        \"default\": \"./fa/gtValue.cjs\"\n      }\n    },\n    \"./fa/guard\": {\n      \"import\": {\n        \"types\": \"./fa/guard.d.mts\",\n        \"default\": \"./fa/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/guard.d.cts\",\n        \"default\": \"./fa/guard.cjs\"\n      }\n    },\n    \"./fa/hash\": {\n      \"import\": {\n        \"types\": \"./fa/hash.d.mts\",\n        \"default\": \"./fa/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/hash.d.cts\",\n        \"default\": \"./fa/hash.cjs\"\n      }\n    },\n    \"./fa/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./fa/hexadecimal.d.mts\",\n        \"default\": \"./fa/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/hexadecimal.d.cts\",\n        \"default\": \"./fa/hexadecimal.cjs\"\n      }\n    },\n    \"./fa/hexColor\": {\n      \"import\": {\n        \"types\": \"./fa/hexColor.d.mts\",\n        \"default\": \"./fa/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/hexColor.d.cts\",\n        \"default\": \"./fa/hexColor.cjs\"\n      }\n    },\n    \"./fa/imei\": {\n      \"import\": {\n        \"types\": \"./fa/imei.d.mts\",\n        \"default\": \"./fa/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/imei.d.cts\",\n        \"default\": \"./fa/imei.cjs\"\n      }\n    },\n    \"./fa/includes\": {\n      \"import\": {\n        \"types\": \"./fa/includes.d.mts\",\n        \"default\": \"./fa/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/includes.d.cts\",\n        \"default\": \"./fa/includes.cjs\"\n      }\n    },\n    \"./fa/integer\": {\n      \"import\": {\n        \"types\": \"./fa/integer.d.mts\",\n        \"default\": \"./fa/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/integer.d.cts\",\n        \"default\": \"./fa/integer.cjs\"\n      }\n    },\n    \"./fa/ip\": {\n      \"import\": {\n        \"types\": \"./fa/ip.d.mts\",\n        \"default\": \"./fa/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/ip.d.cts\",\n        \"default\": \"./fa/ip.cjs\"\n      }\n    },\n    \"./fa/ipv4\": {\n      \"import\": {\n        \"types\": \"./fa/ipv4.d.mts\",\n        \"default\": \"./fa/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/ipv4.d.cts\",\n        \"default\": \"./fa/ipv4.cjs\"\n      }\n    },\n    \"./fa/ipv6\": {\n      \"import\": {\n        \"types\": \"./fa/ipv6.d.mts\",\n        \"default\": \"./fa/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/ipv6.d.cts\",\n        \"default\": \"./fa/ipv6.cjs\"\n      }\n    },\n    \"./fa/isbn\": {\n      \"import\": {\n        \"types\": \"./fa/isbn.d.mts\",\n        \"default\": \"./fa/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/isbn.d.cts\",\n        \"default\": \"./fa/isbn.cjs\"\n      }\n    },\n    \"./fa/isoDate\": {\n      \"import\": {\n        \"types\": \"./fa/isoDate.d.mts\",\n        \"default\": \"./fa/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/isoDate.d.cts\",\n        \"default\": \"./fa/isoDate.cjs\"\n      }\n    },\n    \"./fa/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./fa/isoDateTime.d.mts\",\n        \"default\": \"./fa/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/isoDateTime.d.cts\",\n        \"default\": \"./fa/isoDateTime.cjs\"\n      }\n    },\n    \"./fa/isoTime\": {\n      \"import\": {\n        \"types\": \"./fa/isoTime.d.mts\",\n        \"default\": \"./fa/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/isoTime.d.cts\",\n        \"default\": \"./fa/isoTime.cjs\"\n      }\n    },\n    \"./fa/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./fa/isoTimeSecond.d.mts\",\n        \"default\": \"./fa/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/isoTimeSecond.d.cts\",\n        \"default\": \"./fa/isoTimeSecond.cjs\"\n      }\n    },\n    \"./fa/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./fa/isoTimestamp.d.mts\",\n        \"default\": \"./fa/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/isoTimestamp.d.cts\",\n        \"default\": \"./fa/isoTimestamp.cjs\"\n      }\n    },\n    \"./fa/isoWeek\": {\n      \"import\": {\n        \"types\": \"./fa/isoWeek.d.mts\",\n        \"default\": \"./fa/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/isoWeek.d.cts\",\n        \"default\": \"./fa/isoWeek.cjs\"\n      }\n    },\n    \"./fa/isrc\": {\n      \"import\": {\n        \"types\": \"./fa/isrc.d.mts\",\n        \"default\": \"./fa/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/isrc.d.cts\",\n        \"default\": \"./fa/isrc.cjs\"\n      }\n    },\n    \"./fa/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./fa/jwsCompact.d.mts\",\n        \"default\": \"./fa/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/jwsCompact.d.cts\",\n        \"default\": \"./fa/jwsCompact.cjs\"\n      }\n    },\n    \"./fa/length\": {\n      \"import\": {\n        \"types\": \"./fa/length.d.mts\",\n        \"default\": \"./fa/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/length.d.cts\",\n        \"default\": \"./fa/length.cjs\"\n      }\n    },\n    \"./fa/ltValue\": {\n      \"import\": {\n        \"types\": \"./fa/ltValue.d.mts\",\n        \"default\": \"./fa/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/ltValue.d.cts\",\n        \"default\": \"./fa/ltValue.cjs\"\n      }\n    },\n    \"./fa/mac\": {\n      \"import\": {\n        \"types\": \"./fa/mac.d.mts\",\n        \"default\": \"./fa/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/mac.d.cts\",\n        \"default\": \"./fa/mac.cjs\"\n      }\n    },\n    \"./fa/mac48\": {\n      \"import\": {\n        \"types\": \"./fa/mac48.d.mts\",\n        \"default\": \"./fa/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/mac48.d.cts\",\n        \"default\": \"./fa/mac48.cjs\"\n      }\n    },\n    \"./fa/mac64\": {\n      \"import\": {\n        \"types\": \"./fa/mac64.d.mts\",\n        \"default\": \"./fa/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/mac64.d.cts\",\n        \"default\": \"./fa/mac64.cjs\"\n      }\n    },\n    \"./fa/maxBytes\": {\n      \"import\": {\n        \"types\": \"./fa/maxBytes.d.mts\",\n        \"default\": \"./fa/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/maxBytes.d.cts\",\n        \"default\": \"./fa/maxBytes.cjs\"\n      }\n    },\n    \"./fa/maxEntries\": {\n      \"import\": {\n        \"types\": \"./fa/maxEntries.d.mts\",\n        \"default\": \"./fa/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/maxEntries.d.cts\",\n        \"default\": \"./fa/maxEntries.cjs\"\n      }\n    },\n    \"./fa/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./fa/maxGraphemes.d.mts\",\n        \"default\": \"./fa/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/maxGraphemes.d.cts\",\n        \"default\": \"./fa/maxGraphemes.cjs\"\n      }\n    },\n    \"./fa/maxLength\": {\n      \"import\": {\n        \"types\": \"./fa/maxLength.d.mts\",\n        \"default\": \"./fa/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/maxLength.d.cts\",\n        \"default\": \"./fa/maxLength.cjs\"\n      }\n    },\n    \"./fa/maxSize\": {\n      \"import\": {\n        \"types\": \"./fa/maxSize.d.mts\",\n        \"default\": \"./fa/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/maxSize.d.cts\",\n        \"default\": \"./fa/maxSize.cjs\"\n      }\n    },\n    \"./fa/maxValue\": {\n      \"import\": {\n        \"types\": \"./fa/maxValue.d.mts\",\n        \"default\": \"./fa/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/maxValue.d.cts\",\n        \"default\": \"./fa/maxValue.cjs\"\n      }\n    },\n    \"./fa/maxWords\": {\n      \"import\": {\n        \"types\": \"./fa/maxWords.d.mts\",\n        \"default\": \"./fa/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/maxWords.d.cts\",\n        \"default\": \"./fa/maxWords.cjs\"\n      }\n    },\n    \"./fa/mimeType\": {\n      \"import\": {\n        \"types\": \"./fa/mimeType.d.mts\",\n        \"default\": \"./fa/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/mimeType.d.cts\",\n        \"default\": \"./fa/mimeType.cjs\"\n      }\n    },\n    \"./fa/minBytes\": {\n      \"import\": {\n        \"types\": \"./fa/minBytes.d.mts\",\n        \"default\": \"./fa/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/minBytes.d.cts\",\n        \"default\": \"./fa/minBytes.cjs\"\n      }\n    },\n    \"./fa/minEntries\": {\n      \"import\": {\n        \"types\": \"./fa/minEntries.d.mts\",\n        \"default\": \"./fa/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/minEntries.d.cts\",\n        \"default\": \"./fa/minEntries.cjs\"\n      }\n    },\n    \"./fa/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./fa/minGraphemes.d.mts\",\n        \"default\": \"./fa/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/minGraphemes.d.cts\",\n        \"default\": \"./fa/minGraphemes.cjs\"\n      }\n    },\n    \"./fa/minLength\": {\n      \"import\": {\n        \"types\": \"./fa/minLength.d.mts\",\n        \"default\": \"./fa/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/minLength.d.cts\",\n        \"default\": \"./fa/minLength.cjs\"\n      }\n    },\n    \"./fa/minSize\": {\n      \"import\": {\n        \"types\": \"./fa/minSize.d.mts\",\n        \"default\": \"./fa/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/minSize.d.cts\",\n        \"default\": \"./fa/minSize.cjs\"\n      }\n    },\n    \"./fa/minValue\": {\n      \"import\": {\n        \"types\": \"./fa/minValue.d.mts\",\n        \"default\": \"./fa/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/minValue.d.cts\",\n        \"default\": \"./fa/minValue.cjs\"\n      }\n    },\n    \"./fa/minWords\": {\n      \"import\": {\n        \"types\": \"./fa/minWords.d.mts\",\n        \"default\": \"./fa/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/minWords.d.cts\",\n        \"default\": \"./fa/minWords.cjs\"\n      }\n    },\n    \"./fa/multipleOf\": {\n      \"import\": {\n        \"types\": \"./fa/multipleOf.d.mts\",\n        \"default\": \"./fa/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/multipleOf.d.cts\",\n        \"default\": \"./fa/multipleOf.cjs\"\n      }\n    },\n    \"./fa/nanoid\": {\n      \"import\": {\n        \"types\": \"./fa/nanoid.d.mts\",\n        \"default\": \"./fa/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/nanoid.d.cts\",\n        \"default\": \"./fa/nanoid.cjs\"\n      }\n    },\n    \"./fa/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./fa/nonEmpty.d.mts\",\n        \"default\": \"./fa/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/nonEmpty.d.cts\",\n        \"default\": \"./fa/nonEmpty.cjs\"\n      }\n    },\n    \"./fa/notBytes\": {\n      \"import\": {\n        \"types\": \"./fa/notBytes.d.mts\",\n        \"default\": \"./fa/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/notBytes.d.cts\",\n        \"default\": \"./fa/notBytes.cjs\"\n      }\n    },\n    \"./fa/notEntries\": {\n      \"import\": {\n        \"types\": \"./fa/notEntries.d.mts\",\n        \"default\": \"./fa/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/notEntries.d.cts\",\n        \"default\": \"./fa/notEntries.cjs\"\n      }\n    },\n    \"./fa/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./fa/notGraphemes.d.mts\",\n        \"default\": \"./fa/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/notGraphemes.d.cts\",\n        \"default\": \"./fa/notGraphemes.cjs\"\n      }\n    },\n    \"./fa/notLength\": {\n      \"import\": {\n        \"types\": \"./fa/notLength.d.mts\",\n        \"default\": \"./fa/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/notLength.d.cts\",\n        \"default\": \"./fa/notLength.cjs\"\n      }\n    },\n    \"./fa/notSize\": {\n      \"import\": {\n        \"types\": \"./fa/notSize.d.mts\",\n        \"default\": \"./fa/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/notSize.d.cts\",\n        \"default\": \"./fa/notSize.cjs\"\n      }\n    },\n    \"./fa/notValue\": {\n      \"import\": {\n        \"types\": \"./fa/notValue.d.mts\",\n        \"default\": \"./fa/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/notValue.d.cts\",\n        \"default\": \"./fa/notValue.cjs\"\n      }\n    },\n    \"./fa/notValues\": {\n      \"import\": {\n        \"types\": \"./fa/notValues.d.mts\",\n        \"default\": \"./fa/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/notValues.d.cts\",\n        \"default\": \"./fa/notValues.cjs\"\n      }\n    },\n    \"./fa/notWords\": {\n      \"import\": {\n        \"types\": \"./fa/notWords.d.mts\",\n        \"default\": \"./fa/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/notWords.d.cts\",\n        \"default\": \"./fa/notWords.cjs\"\n      }\n    },\n    \"./fa/octal\": {\n      \"import\": {\n        \"types\": \"./fa/octal.d.mts\",\n        \"default\": \"./fa/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/octal.d.cts\",\n        \"default\": \"./fa/octal.cjs\"\n      }\n    },\n    \"./fa/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./fa/parseBoolean.d.mts\",\n        \"default\": \"./fa/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/parseBoolean.d.cts\",\n        \"default\": \"./fa/parseBoolean.cjs\"\n      }\n    },\n    \"./fa/parseJson\": {\n      \"import\": {\n        \"types\": \"./fa/parseJson.d.mts\",\n        \"default\": \"./fa/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/parseJson.d.cts\",\n        \"default\": \"./fa/parseJson.cjs\"\n      }\n    },\n    \"./fa/partialCheck\": {\n      \"import\": {\n        \"types\": \"./fa/partialCheck.d.mts\",\n        \"default\": \"./fa/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/partialCheck.d.cts\",\n        \"default\": \"./fa/partialCheck.cjs\"\n      }\n    },\n    \"./fa/rawCheck\": {\n      \"import\": {\n        \"types\": \"./fa/rawCheck.d.mts\",\n        \"default\": \"./fa/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/rawCheck.d.cts\",\n        \"default\": \"./fa/rawCheck.cjs\"\n      }\n    },\n    \"./fa/rawTransform\": {\n      \"import\": {\n        \"types\": \"./fa/rawTransform.d.mts\",\n        \"default\": \"./fa/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/rawTransform.d.cts\",\n        \"default\": \"./fa/rawTransform.cjs\"\n      }\n    },\n    \"./fa/regex\": {\n      \"import\": {\n        \"types\": \"./fa/regex.d.mts\",\n        \"default\": \"./fa/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/regex.d.cts\",\n        \"default\": \"./fa/regex.cjs\"\n      }\n    },\n    \"./fa/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./fa/rfcEmail.d.mts\",\n        \"default\": \"./fa/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/rfcEmail.d.cts\",\n        \"default\": \"./fa/rfcEmail.cjs\"\n      }\n    },\n    \"./fa/safeInteger\": {\n      \"import\": {\n        \"types\": \"./fa/safeInteger.d.mts\",\n        \"default\": \"./fa/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/safeInteger.d.cts\",\n        \"default\": \"./fa/safeInteger.cjs\"\n      }\n    },\n    \"./fa/size\": {\n      \"import\": {\n        \"types\": \"./fa/size.d.mts\",\n        \"default\": \"./fa/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/size.d.cts\",\n        \"default\": \"./fa/size.cjs\"\n      }\n    },\n    \"./fa/slug\": {\n      \"import\": {\n        \"types\": \"./fa/slug.d.mts\",\n        \"default\": \"./fa/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/slug.d.cts\",\n        \"default\": \"./fa/slug.cjs\"\n      }\n    },\n    \"./fa/someItem\": {\n      \"import\": {\n        \"types\": \"./fa/someItem.d.mts\",\n        \"default\": \"./fa/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/someItem.d.cts\",\n        \"default\": \"./fa/someItem.cjs\"\n      }\n    },\n    \"./fa/startsWith\": {\n      \"import\": {\n        \"types\": \"./fa/startsWith.d.mts\",\n        \"default\": \"./fa/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/startsWith.d.cts\",\n        \"default\": \"./fa/startsWith.cjs\"\n      }\n    },\n    \"./fa/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./fa/stringifyJson.d.mts\",\n        \"default\": \"./fa/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/stringifyJson.d.cts\",\n        \"default\": \"./fa/stringifyJson.cjs\"\n      }\n    },\n    \"./fa/toBigint\": {\n      \"import\": {\n        \"types\": \"./fa/toBigint.d.mts\",\n        \"default\": \"./fa/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/toBigint.d.cts\",\n        \"default\": \"./fa/toBigint.cjs\"\n      }\n    },\n    \"./fa/toDate\": {\n      \"import\": {\n        \"types\": \"./fa/toDate.d.mts\",\n        \"default\": \"./fa/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/toDate.d.cts\",\n        \"default\": \"./fa/toDate.cjs\"\n      }\n    },\n    \"./fa/toNumber\": {\n      \"import\": {\n        \"types\": \"./fa/toNumber.d.mts\",\n        \"default\": \"./fa/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/toNumber.d.cts\",\n        \"default\": \"./fa/toNumber.cjs\"\n      }\n    },\n    \"./fa/toString\": {\n      \"import\": {\n        \"types\": \"./fa/toString.d.mts\",\n        \"default\": \"./fa/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/toString.d.cts\",\n        \"default\": \"./fa/toString.cjs\"\n      }\n    },\n    \"./fa/ulid\": {\n      \"import\": {\n        \"types\": \"./fa/ulid.d.mts\",\n        \"default\": \"./fa/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/ulid.d.cts\",\n        \"default\": \"./fa/ulid.cjs\"\n      }\n    },\n    \"./fa/url\": {\n      \"import\": {\n        \"types\": \"./fa/url.d.mts\",\n        \"default\": \"./fa/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/url.d.cts\",\n        \"default\": \"./fa/url.cjs\"\n      }\n    },\n    \"./fa/uuid\": {\n      \"import\": {\n        \"types\": \"./fa/uuid.d.mts\",\n        \"default\": \"./fa/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/uuid.d.cts\",\n        \"default\": \"./fa/uuid.cjs\"\n      }\n    },\n    \"./fa/value\": {\n      \"import\": {\n        \"types\": \"./fa/value.d.mts\",\n        \"default\": \"./fa/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/value.d.cts\",\n        \"default\": \"./fa/value.cjs\"\n      }\n    },\n    \"./fa/values\": {\n      \"import\": {\n        \"types\": \"./fa/values.d.mts\",\n        \"default\": \"./fa/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/values.d.cts\",\n        \"default\": \"./fa/values.cjs\"\n      }\n    },\n    \"./fa/words\": {\n      \"import\": {\n        \"types\": \"./fa/words.d.mts\",\n        \"default\": \"./fa/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fa/words.d.cts\",\n        \"default\": \"./fa/words.cjs\"\n      }\n    },\n    \"./fi\": {\n      \"import\": {\n        \"types\": \"./fi/index.d.mts\",\n        \"default\": \"./fi/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/index.d.cts\",\n        \"default\": \"./fi/index.cjs\"\n      }\n    },\n    \"./fi/schema\": {\n      \"import\": {\n        \"types\": \"./fi/schema.d.mts\",\n        \"default\": \"./fi/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/schema.d.cts\",\n        \"default\": \"./fi/schema.cjs\"\n      }\n    },\n    \"./fi/base64\": {\n      \"import\": {\n        \"types\": \"./fi/base64.d.mts\",\n        \"default\": \"./fi/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/base64.d.cts\",\n        \"default\": \"./fi/base64.cjs\"\n      }\n    },\n    \"./fi/bic\": {\n      \"import\": {\n        \"types\": \"./fi/bic.d.mts\",\n        \"default\": \"./fi/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/bic.d.cts\",\n        \"default\": \"./fi/bic.cjs\"\n      }\n    },\n    \"./fi/bytes\": {\n      \"import\": {\n        \"types\": \"./fi/bytes.d.mts\",\n        \"default\": \"./fi/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/bytes.d.cts\",\n        \"default\": \"./fi/bytes.cjs\"\n      }\n    },\n    \"./fi/check\": {\n      \"import\": {\n        \"types\": \"./fi/check.d.mts\",\n        \"default\": \"./fi/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/check.d.cts\",\n        \"default\": \"./fi/check.cjs\"\n      }\n    },\n    \"./fi/checkAsync\": {\n      \"import\": {\n        \"types\": \"./fi/checkAsync.d.mts\",\n        \"default\": \"./fi/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/checkAsync.d.cts\",\n        \"default\": \"./fi/checkAsync.cjs\"\n      }\n    },\n    \"./fi/checkItems\": {\n      \"import\": {\n        \"types\": \"./fi/checkItems.d.mts\",\n        \"default\": \"./fi/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/checkItems.d.cts\",\n        \"default\": \"./fi/checkItems.cjs\"\n      }\n    },\n    \"./fi/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./fi/checkItemsAsync.d.mts\",\n        \"default\": \"./fi/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/checkItemsAsync.d.cts\",\n        \"default\": \"./fi/checkItemsAsync.cjs\"\n      }\n    },\n    \"./fi/creditCard\": {\n      \"import\": {\n        \"types\": \"./fi/creditCard.d.mts\",\n        \"default\": \"./fi/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/creditCard.d.cts\",\n        \"default\": \"./fi/creditCard.cjs\"\n      }\n    },\n    \"./fi/cuid2\": {\n      \"import\": {\n        \"types\": \"./fi/cuid2.d.mts\",\n        \"default\": \"./fi/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/cuid2.d.cts\",\n        \"default\": \"./fi/cuid2.cjs\"\n      }\n    },\n    \"./fi/decimal\": {\n      \"import\": {\n        \"types\": \"./fi/decimal.d.mts\",\n        \"default\": \"./fi/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/decimal.d.cts\",\n        \"default\": \"./fi/decimal.cjs\"\n      }\n    },\n    \"./fi/digits\": {\n      \"import\": {\n        \"types\": \"./fi/digits.d.mts\",\n        \"default\": \"./fi/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/digits.d.cts\",\n        \"default\": \"./fi/digits.cjs\"\n      }\n    },\n    \"./fi/domain\": {\n      \"import\": {\n        \"types\": \"./fi/domain.d.mts\",\n        \"default\": \"./fi/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/domain.d.cts\",\n        \"default\": \"./fi/domain.cjs\"\n      }\n    },\n    \"./fi/email\": {\n      \"import\": {\n        \"types\": \"./fi/email.d.mts\",\n        \"default\": \"./fi/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/email.d.cts\",\n        \"default\": \"./fi/email.cjs\"\n      }\n    },\n    \"./fi/emoji\": {\n      \"import\": {\n        \"types\": \"./fi/emoji.d.mts\",\n        \"default\": \"./fi/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/emoji.d.cts\",\n        \"default\": \"./fi/emoji.cjs\"\n      }\n    },\n    \"./fi/empty\": {\n      \"import\": {\n        \"types\": \"./fi/empty.d.mts\",\n        \"default\": \"./fi/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/empty.d.cts\",\n        \"default\": \"./fi/empty.cjs\"\n      }\n    },\n    \"./fi/endsWith\": {\n      \"import\": {\n        \"types\": \"./fi/endsWith.d.mts\",\n        \"default\": \"./fi/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/endsWith.d.cts\",\n        \"default\": \"./fi/endsWith.cjs\"\n      }\n    },\n    \"./fi/entries\": {\n      \"import\": {\n        \"types\": \"./fi/entries.d.mts\",\n        \"default\": \"./fi/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/entries.d.cts\",\n        \"default\": \"./fi/entries.cjs\"\n      }\n    },\n    \"./fi/everyItem\": {\n      \"import\": {\n        \"types\": \"./fi/everyItem.d.mts\",\n        \"default\": \"./fi/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/everyItem.d.cts\",\n        \"default\": \"./fi/everyItem.cjs\"\n      }\n    },\n    \"./fi/excludes\": {\n      \"import\": {\n        \"types\": \"./fi/excludes.d.mts\",\n        \"default\": \"./fi/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/excludes.d.cts\",\n        \"default\": \"./fi/excludes.cjs\"\n      }\n    },\n    \"./fi/finite\": {\n      \"import\": {\n        \"types\": \"./fi/finite.d.mts\",\n        \"default\": \"./fi/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/finite.d.cts\",\n        \"default\": \"./fi/finite.cjs\"\n      }\n    },\n    \"./fi/graphemes\": {\n      \"import\": {\n        \"types\": \"./fi/graphemes.d.mts\",\n        \"default\": \"./fi/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/graphemes.d.cts\",\n        \"default\": \"./fi/graphemes.cjs\"\n      }\n    },\n    \"./fi/gtValue\": {\n      \"import\": {\n        \"types\": \"./fi/gtValue.d.mts\",\n        \"default\": \"./fi/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/gtValue.d.cts\",\n        \"default\": \"./fi/gtValue.cjs\"\n      }\n    },\n    \"./fi/guard\": {\n      \"import\": {\n        \"types\": \"./fi/guard.d.mts\",\n        \"default\": \"./fi/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/guard.d.cts\",\n        \"default\": \"./fi/guard.cjs\"\n      }\n    },\n    \"./fi/hash\": {\n      \"import\": {\n        \"types\": \"./fi/hash.d.mts\",\n        \"default\": \"./fi/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/hash.d.cts\",\n        \"default\": \"./fi/hash.cjs\"\n      }\n    },\n    \"./fi/hexColor\": {\n      \"import\": {\n        \"types\": \"./fi/hexColor.d.mts\",\n        \"default\": \"./fi/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/hexColor.d.cts\",\n        \"default\": \"./fi/hexColor.cjs\"\n      }\n    },\n    \"./fi/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./fi/hexadecimal.d.mts\",\n        \"default\": \"./fi/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/hexadecimal.d.cts\",\n        \"default\": \"./fi/hexadecimal.cjs\"\n      }\n    },\n    \"./fi/imei\": {\n      \"import\": {\n        \"types\": \"./fi/imei.d.mts\",\n        \"default\": \"./fi/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/imei.d.cts\",\n        \"default\": \"./fi/imei.cjs\"\n      }\n    },\n    \"./fi/includes\": {\n      \"import\": {\n        \"types\": \"./fi/includes.d.mts\",\n        \"default\": \"./fi/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/includes.d.cts\",\n        \"default\": \"./fi/includes.cjs\"\n      }\n    },\n    \"./fi/integer\": {\n      \"import\": {\n        \"types\": \"./fi/integer.d.mts\",\n        \"default\": \"./fi/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/integer.d.cts\",\n        \"default\": \"./fi/integer.cjs\"\n      }\n    },\n    \"./fi/ip\": {\n      \"import\": {\n        \"types\": \"./fi/ip.d.mts\",\n        \"default\": \"./fi/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/ip.d.cts\",\n        \"default\": \"./fi/ip.cjs\"\n      }\n    },\n    \"./fi/ipv4\": {\n      \"import\": {\n        \"types\": \"./fi/ipv4.d.mts\",\n        \"default\": \"./fi/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/ipv4.d.cts\",\n        \"default\": \"./fi/ipv4.cjs\"\n      }\n    },\n    \"./fi/ipv6\": {\n      \"import\": {\n        \"types\": \"./fi/ipv6.d.mts\",\n        \"default\": \"./fi/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/ipv6.d.cts\",\n        \"default\": \"./fi/ipv6.cjs\"\n      }\n    },\n    \"./fi/isbn\": {\n      \"import\": {\n        \"types\": \"./fi/isbn.d.mts\",\n        \"default\": \"./fi/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/isbn.d.cts\",\n        \"default\": \"./fi/isbn.cjs\"\n      }\n    },\n    \"./fi/isoDate\": {\n      \"import\": {\n        \"types\": \"./fi/isoDate.d.mts\",\n        \"default\": \"./fi/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/isoDate.d.cts\",\n        \"default\": \"./fi/isoDate.cjs\"\n      }\n    },\n    \"./fi/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./fi/isoDateTime.d.mts\",\n        \"default\": \"./fi/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/isoDateTime.d.cts\",\n        \"default\": \"./fi/isoDateTime.cjs\"\n      }\n    },\n    \"./fi/isoTime\": {\n      \"import\": {\n        \"types\": \"./fi/isoTime.d.mts\",\n        \"default\": \"./fi/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/isoTime.d.cts\",\n        \"default\": \"./fi/isoTime.cjs\"\n      }\n    },\n    \"./fi/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./fi/isoTimeSecond.d.mts\",\n        \"default\": \"./fi/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/isoTimeSecond.d.cts\",\n        \"default\": \"./fi/isoTimeSecond.cjs\"\n      }\n    },\n    \"./fi/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./fi/isoTimestamp.d.mts\",\n        \"default\": \"./fi/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/isoTimestamp.d.cts\",\n        \"default\": \"./fi/isoTimestamp.cjs\"\n      }\n    },\n    \"./fi/isoWeek\": {\n      \"import\": {\n        \"types\": \"./fi/isoWeek.d.mts\",\n        \"default\": \"./fi/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/isoWeek.d.cts\",\n        \"default\": \"./fi/isoWeek.cjs\"\n      }\n    },\n    \"./fi/isrc\": {\n      \"import\": {\n        \"types\": \"./fi/isrc.d.mts\",\n        \"default\": \"./fi/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/isrc.d.cts\",\n        \"default\": \"./fi/isrc.cjs\"\n      }\n    },\n    \"./fi/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./fi/jwsCompact.d.mts\",\n        \"default\": \"./fi/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/jwsCompact.d.cts\",\n        \"default\": \"./fi/jwsCompact.cjs\"\n      }\n    },\n    \"./fi/length\": {\n      \"import\": {\n        \"types\": \"./fi/length.d.mts\",\n        \"default\": \"./fi/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/length.d.cts\",\n        \"default\": \"./fi/length.cjs\"\n      }\n    },\n    \"./fi/ltValue\": {\n      \"import\": {\n        \"types\": \"./fi/ltValue.d.mts\",\n        \"default\": \"./fi/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/ltValue.d.cts\",\n        \"default\": \"./fi/ltValue.cjs\"\n      }\n    },\n    \"./fi/mac\": {\n      \"import\": {\n        \"types\": \"./fi/mac.d.mts\",\n        \"default\": \"./fi/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/mac.d.cts\",\n        \"default\": \"./fi/mac.cjs\"\n      }\n    },\n    \"./fi/mac48\": {\n      \"import\": {\n        \"types\": \"./fi/mac48.d.mts\",\n        \"default\": \"./fi/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/mac48.d.cts\",\n        \"default\": \"./fi/mac48.cjs\"\n      }\n    },\n    \"./fi/mac64\": {\n      \"import\": {\n        \"types\": \"./fi/mac64.d.mts\",\n        \"default\": \"./fi/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/mac64.d.cts\",\n        \"default\": \"./fi/mac64.cjs\"\n      }\n    },\n    \"./fi/maxBytes\": {\n      \"import\": {\n        \"types\": \"./fi/maxBytes.d.mts\",\n        \"default\": \"./fi/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/maxBytes.d.cts\",\n        \"default\": \"./fi/maxBytes.cjs\"\n      }\n    },\n    \"./fi/maxEntries\": {\n      \"import\": {\n        \"types\": \"./fi/maxEntries.d.mts\",\n        \"default\": \"./fi/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/maxEntries.d.cts\",\n        \"default\": \"./fi/maxEntries.cjs\"\n      }\n    },\n    \"./fi/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./fi/maxGraphemes.d.mts\",\n        \"default\": \"./fi/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/maxGraphemes.d.cts\",\n        \"default\": \"./fi/maxGraphemes.cjs\"\n      }\n    },\n    \"./fi/maxLength\": {\n      \"import\": {\n        \"types\": \"./fi/maxLength.d.mts\",\n        \"default\": \"./fi/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/maxLength.d.cts\",\n        \"default\": \"./fi/maxLength.cjs\"\n      }\n    },\n    \"./fi/maxSize\": {\n      \"import\": {\n        \"types\": \"./fi/maxSize.d.mts\",\n        \"default\": \"./fi/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/maxSize.d.cts\",\n        \"default\": \"./fi/maxSize.cjs\"\n      }\n    },\n    \"./fi/maxValue\": {\n      \"import\": {\n        \"types\": \"./fi/maxValue.d.mts\",\n        \"default\": \"./fi/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/maxValue.d.cts\",\n        \"default\": \"./fi/maxValue.cjs\"\n      }\n    },\n    \"./fi/maxWords\": {\n      \"import\": {\n        \"types\": \"./fi/maxWords.d.mts\",\n        \"default\": \"./fi/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/maxWords.d.cts\",\n        \"default\": \"./fi/maxWords.cjs\"\n      }\n    },\n    \"./fi/mimeType\": {\n      \"import\": {\n        \"types\": \"./fi/mimeType.d.mts\",\n        \"default\": \"./fi/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/mimeType.d.cts\",\n        \"default\": \"./fi/mimeType.cjs\"\n      }\n    },\n    \"./fi/minBytes\": {\n      \"import\": {\n        \"types\": \"./fi/minBytes.d.mts\",\n        \"default\": \"./fi/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/minBytes.d.cts\",\n        \"default\": \"./fi/minBytes.cjs\"\n      }\n    },\n    \"./fi/minEntries\": {\n      \"import\": {\n        \"types\": \"./fi/minEntries.d.mts\",\n        \"default\": \"./fi/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/minEntries.d.cts\",\n        \"default\": \"./fi/minEntries.cjs\"\n      }\n    },\n    \"./fi/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./fi/minGraphemes.d.mts\",\n        \"default\": \"./fi/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/minGraphemes.d.cts\",\n        \"default\": \"./fi/minGraphemes.cjs\"\n      }\n    },\n    \"./fi/minLength\": {\n      \"import\": {\n        \"types\": \"./fi/minLength.d.mts\",\n        \"default\": \"./fi/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/minLength.d.cts\",\n        \"default\": \"./fi/minLength.cjs\"\n      }\n    },\n    \"./fi/minSize\": {\n      \"import\": {\n        \"types\": \"./fi/minSize.d.mts\",\n        \"default\": \"./fi/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/minSize.d.cts\",\n        \"default\": \"./fi/minSize.cjs\"\n      }\n    },\n    \"./fi/minValue\": {\n      \"import\": {\n        \"types\": \"./fi/minValue.d.mts\",\n        \"default\": \"./fi/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/minValue.d.cts\",\n        \"default\": \"./fi/minValue.cjs\"\n      }\n    },\n    \"./fi/minWords\": {\n      \"import\": {\n        \"types\": \"./fi/minWords.d.mts\",\n        \"default\": \"./fi/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/minWords.d.cts\",\n        \"default\": \"./fi/minWords.cjs\"\n      }\n    },\n    \"./fi/multipleOf\": {\n      \"import\": {\n        \"types\": \"./fi/multipleOf.d.mts\",\n        \"default\": \"./fi/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/multipleOf.d.cts\",\n        \"default\": \"./fi/multipleOf.cjs\"\n      }\n    },\n    \"./fi/nanoid\": {\n      \"import\": {\n        \"types\": \"./fi/nanoid.d.mts\",\n        \"default\": \"./fi/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/nanoid.d.cts\",\n        \"default\": \"./fi/nanoid.cjs\"\n      }\n    },\n    \"./fi/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./fi/nonEmpty.d.mts\",\n        \"default\": \"./fi/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/nonEmpty.d.cts\",\n        \"default\": \"./fi/nonEmpty.cjs\"\n      }\n    },\n    \"./fi/notBytes\": {\n      \"import\": {\n        \"types\": \"./fi/notBytes.d.mts\",\n        \"default\": \"./fi/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/notBytes.d.cts\",\n        \"default\": \"./fi/notBytes.cjs\"\n      }\n    },\n    \"./fi/notEntries\": {\n      \"import\": {\n        \"types\": \"./fi/notEntries.d.mts\",\n        \"default\": \"./fi/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/notEntries.d.cts\",\n        \"default\": \"./fi/notEntries.cjs\"\n      }\n    },\n    \"./fi/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./fi/notGraphemes.d.mts\",\n        \"default\": \"./fi/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/notGraphemes.d.cts\",\n        \"default\": \"./fi/notGraphemes.cjs\"\n      }\n    },\n    \"./fi/notLength\": {\n      \"import\": {\n        \"types\": \"./fi/notLength.d.mts\",\n        \"default\": \"./fi/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/notLength.d.cts\",\n        \"default\": \"./fi/notLength.cjs\"\n      }\n    },\n    \"./fi/notSize\": {\n      \"import\": {\n        \"types\": \"./fi/notSize.d.mts\",\n        \"default\": \"./fi/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/notSize.d.cts\",\n        \"default\": \"./fi/notSize.cjs\"\n      }\n    },\n    \"./fi/notValue\": {\n      \"import\": {\n        \"types\": \"./fi/notValue.d.mts\",\n        \"default\": \"./fi/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/notValue.d.cts\",\n        \"default\": \"./fi/notValue.cjs\"\n      }\n    },\n    \"./fi/notValues\": {\n      \"import\": {\n        \"types\": \"./fi/notValues.d.mts\",\n        \"default\": \"./fi/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/notValues.d.cts\",\n        \"default\": \"./fi/notValues.cjs\"\n      }\n    },\n    \"./fi/notWords\": {\n      \"import\": {\n        \"types\": \"./fi/notWords.d.mts\",\n        \"default\": \"./fi/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/notWords.d.cts\",\n        \"default\": \"./fi/notWords.cjs\"\n      }\n    },\n    \"./fi/octal\": {\n      \"import\": {\n        \"types\": \"./fi/octal.d.mts\",\n        \"default\": \"./fi/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/octal.d.cts\",\n        \"default\": \"./fi/octal.cjs\"\n      }\n    },\n    \"./fi/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./fi/parseBoolean.d.mts\",\n        \"default\": \"./fi/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/parseBoolean.d.cts\",\n        \"default\": \"./fi/parseBoolean.cjs\"\n      }\n    },\n    \"./fi/parseJson\": {\n      \"import\": {\n        \"types\": \"./fi/parseJson.d.mts\",\n        \"default\": \"./fi/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/parseJson.d.cts\",\n        \"default\": \"./fi/parseJson.cjs\"\n      }\n    },\n    \"./fi/partialCheck\": {\n      \"import\": {\n        \"types\": \"./fi/partialCheck.d.mts\",\n        \"default\": \"./fi/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/partialCheck.d.cts\",\n        \"default\": \"./fi/partialCheck.cjs\"\n      }\n    },\n    \"./fi/rawCheck\": {\n      \"import\": {\n        \"types\": \"./fi/rawCheck.d.mts\",\n        \"default\": \"./fi/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/rawCheck.d.cts\",\n        \"default\": \"./fi/rawCheck.cjs\"\n      }\n    },\n    \"./fi/rawTransform\": {\n      \"import\": {\n        \"types\": \"./fi/rawTransform.d.mts\",\n        \"default\": \"./fi/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/rawTransform.d.cts\",\n        \"default\": \"./fi/rawTransform.cjs\"\n      }\n    },\n    \"./fi/regex\": {\n      \"import\": {\n        \"types\": \"./fi/regex.d.mts\",\n        \"default\": \"./fi/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/regex.d.cts\",\n        \"default\": \"./fi/regex.cjs\"\n      }\n    },\n    \"./fi/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./fi/rfcEmail.d.mts\",\n        \"default\": \"./fi/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/rfcEmail.d.cts\",\n        \"default\": \"./fi/rfcEmail.cjs\"\n      }\n    },\n    \"./fi/safeInteger\": {\n      \"import\": {\n        \"types\": \"./fi/safeInteger.d.mts\",\n        \"default\": \"./fi/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/safeInteger.d.cts\",\n        \"default\": \"./fi/safeInteger.cjs\"\n      }\n    },\n    \"./fi/size\": {\n      \"import\": {\n        \"types\": \"./fi/size.d.mts\",\n        \"default\": \"./fi/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/size.d.cts\",\n        \"default\": \"./fi/size.cjs\"\n      }\n    },\n    \"./fi/slug\": {\n      \"import\": {\n        \"types\": \"./fi/slug.d.mts\",\n        \"default\": \"./fi/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/slug.d.cts\",\n        \"default\": \"./fi/slug.cjs\"\n      }\n    },\n    \"./fi/someItem\": {\n      \"import\": {\n        \"types\": \"./fi/someItem.d.mts\",\n        \"default\": \"./fi/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/someItem.d.cts\",\n        \"default\": \"./fi/someItem.cjs\"\n      }\n    },\n    \"./fi/startsWith\": {\n      \"import\": {\n        \"types\": \"./fi/startsWith.d.mts\",\n        \"default\": \"./fi/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/startsWith.d.cts\",\n        \"default\": \"./fi/startsWith.cjs\"\n      }\n    },\n    \"./fi/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./fi/stringifyJson.d.mts\",\n        \"default\": \"./fi/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/stringifyJson.d.cts\",\n        \"default\": \"./fi/stringifyJson.cjs\"\n      }\n    },\n    \"./fi/toBigint\": {\n      \"import\": {\n        \"types\": \"./fi/toBigint.d.mts\",\n        \"default\": \"./fi/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/toBigint.d.cts\",\n        \"default\": \"./fi/toBigint.cjs\"\n      }\n    },\n    \"./fi/toDate\": {\n      \"import\": {\n        \"types\": \"./fi/toDate.d.mts\",\n        \"default\": \"./fi/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/toDate.d.cts\",\n        \"default\": \"./fi/toDate.cjs\"\n      }\n    },\n    \"./fi/toNumber\": {\n      \"import\": {\n        \"types\": \"./fi/toNumber.d.mts\",\n        \"default\": \"./fi/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/toNumber.d.cts\",\n        \"default\": \"./fi/toNumber.cjs\"\n      }\n    },\n    \"./fi/toString\": {\n      \"import\": {\n        \"types\": \"./fi/toString.d.mts\",\n        \"default\": \"./fi/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/toString.d.cts\",\n        \"default\": \"./fi/toString.cjs\"\n      }\n    },\n    \"./fi/ulid\": {\n      \"import\": {\n        \"types\": \"./fi/ulid.d.mts\",\n        \"default\": \"./fi/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/ulid.d.cts\",\n        \"default\": \"./fi/ulid.cjs\"\n      }\n    },\n    \"./fi/url\": {\n      \"import\": {\n        \"types\": \"./fi/url.d.mts\",\n        \"default\": \"./fi/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/url.d.cts\",\n        \"default\": \"./fi/url.cjs\"\n      }\n    },\n    \"./fi/uuid\": {\n      \"import\": {\n        \"types\": \"./fi/uuid.d.mts\",\n        \"default\": \"./fi/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/uuid.d.cts\",\n        \"default\": \"./fi/uuid.cjs\"\n      }\n    },\n    \"./fi/value\": {\n      \"import\": {\n        \"types\": \"./fi/value.d.mts\",\n        \"default\": \"./fi/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/value.d.cts\",\n        \"default\": \"./fi/value.cjs\"\n      }\n    },\n    \"./fi/values\": {\n      \"import\": {\n        \"types\": \"./fi/values.d.mts\",\n        \"default\": \"./fi/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/values.d.cts\",\n        \"default\": \"./fi/values.cjs\"\n      }\n    },\n    \"./fi/words\": {\n      \"import\": {\n        \"types\": \"./fi/words.d.mts\",\n        \"default\": \"./fi/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fi/words.d.cts\",\n        \"default\": \"./fi/words.cjs\"\n      }\n    },\n    \"./fr\": {\n      \"import\": {\n        \"types\": \"./fr/index.d.mts\",\n        \"default\": \"./fr/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/index.d.cts\",\n        \"default\": \"./fr/index.cjs\"\n      }\n    },\n    \"./fr/schema\": {\n      \"import\": {\n        \"types\": \"./fr/schema.d.mts\",\n        \"default\": \"./fr/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/schema.d.cts\",\n        \"default\": \"./fr/schema.cjs\"\n      }\n    },\n    \"./fr/base64\": {\n      \"import\": {\n        \"types\": \"./fr/base64.d.mts\",\n        \"default\": \"./fr/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/base64.d.cts\",\n        \"default\": \"./fr/base64.cjs\"\n      }\n    },\n    \"./fr/bic\": {\n      \"import\": {\n        \"types\": \"./fr/bic.d.mts\",\n        \"default\": \"./fr/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/bic.d.cts\",\n        \"default\": \"./fr/bic.cjs\"\n      }\n    },\n    \"./fr/bytes\": {\n      \"import\": {\n        \"types\": \"./fr/bytes.d.mts\",\n        \"default\": \"./fr/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/bytes.d.cts\",\n        \"default\": \"./fr/bytes.cjs\"\n      }\n    },\n    \"./fr/check\": {\n      \"import\": {\n        \"types\": \"./fr/check.d.mts\",\n        \"default\": \"./fr/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/check.d.cts\",\n        \"default\": \"./fr/check.cjs\"\n      }\n    },\n    \"./fr/checkAsync\": {\n      \"import\": {\n        \"types\": \"./fr/checkAsync.d.mts\",\n        \"default\": \"./fr/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/checkAsync.d.cts\",\n        \"default\": \"./fr/checkAsync.cjs\"\n      }\n    },\n    \"./fr/checkItems\": {\n      \"import\": {\n        \"types\": \"./fr/checkItems.d.mts\",\n        \"default\": \"./fr/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/checkItems.d.cts\",\n        \"default\": \"./fr/checkItems.cjs\"\n      }\n    },\n    \"./fr/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./fr/checkItemsAsync.d.mts\",\n        \"default\": \"./fr/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/checkItemsAsync.d.cts\",\n        \"default\": \"./fr/checkItemsAsync.cjs\"\n      }\n    },\n    \"./fr/creditCard\": {\n      \"import\": {\n        \"types\": \"./fr/creditCard.d.mts\",\n        \"default\": \"./fr/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/creditCard.d.cts\",\n        \"default\": \"./fr/creditCard.cjs\"\n      }\n    },\n    \"./fr/cuid2\": {\n      \"import\": {\n        \"types\": \"./fr/cuid2.d.mts\",\n        \"default\": \"./fr/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/cuid2.d.cts\",\n        \"default\": \"./fr/cuid2.cjs\"\n      }\n    },\n    \"./fr/decimal\": {\n      \"import\": {\n        \"types\": \"./fr/decimal.d.mts\",\n        \"default\": \"./fr/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/decimal.d.cts\",\n        \"default\": \"./fr/decimal.cjs\"\n      }\n    },\n    \"./fr/digits\": {\n      \"import\": {\n        \"types\": \"./fr/digits.d.mts\",\n        \"default\": \"./fr/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/digits.d.cts\",\n        \"default\": \"./fr/digits.cjs\"\n      }\n    },\n    \"./fr/domain\": {\n      \"import\": {\n        \"types\": \"./fr/domain.d.mts\",\n        \"default\": \"./fr/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/domain.d.cts\",\n        \"default\": \"./fr/domain.cjs\"\n      }\n    },\n    \"./fr/email\": {\n      \"import\": {\n        \"types\": \"./fr/email.d.mts\",\n        \"default\": \"./fr/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/email.d.cts\",\n        \"default\": \"./fr/email.cjs\"\n      }\n    },\n    \"./fr/emoji\": {\n      \"import\": {\n        \"types\": \"./fr/emoji.d.mts\",\n        \"default\": \"./fr/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/emoji.d.cts\",\n        \"default\": \"./fr/emoji.cjs\"\n      }\n    },\n    \"./fr/empty\": {\n      \"import\": {\n        \"types\": \"./fr/empty.d.mts\",\n        \"default\": \"./fr/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/empty.d.cts\",\n        \"default\": \"./fr/empty.cjs\"\n      }\n    },\n    \"./fr/endsWith\": {\n      \"import\": {\n        \"types\": \"./fr/endsWith.d.mts\",\n        \"default\": \"./fr/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/endsWith.d.cts\",\n        \"default\": \"./fr/endsWith.cjs\"\n      }\n    },\n    \"./fr/entries\": {\n      \"import\": {\n        \"types\": \"./fr/entries.d.mts\",\n        \"default\": \"./fr/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/entries.d.cts\",\n        \"default\": \"./fr/entries.cjs\"\n      }\n    },\n    \"./fr/everyItem\": {\n      \"import\": {\n        \"types\": \"./fr/everyItem.d.mts\",\n        \"default\": \"./fr/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/everyItem.d.cts\",\n        \"default\": \"./fr/everyItem.cjs\"\n      }\n    },\n    \"./fr/excludes\": {\n      \"import\": {\n        \"types\": \"./fr/excludes.d.mts\",\n        \"default\": \"./fr/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/excludes.d.cts\",\n        \"default\": \"./fr/excludes.cjs\"\n      }\n    },\n    \"./fr/finite\": {\n      \"import\": {\n        \"types\": \"./fr/finite.d.mts\",\n        \"default\": \"./fr/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/finite.d.cts\",\n        \"default\": \"./fr/finite.cjs\"\n      }\n    },\n    \"./fr/graphemes\": {\n      \"import\": {\n        \"types\": \"./fr/graphemes.d.mts\",\n        \"default\": \"./fr/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/graphemes.d.cts\",\n        \"default\": \"./fr/graphemes.cjs\"\n      }\n    },\n    \"./fr/gtValue\": {\n      \"import\": {\n        \"types\": \"./fr/gtValue.d.mts\",\n        \"default\": \"./fr/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/gtValue.d.cts\",\n        \"default\": \"./fr/gtValue.cjs\"\n      }\n    },\n    \"./fr/guard\": {\n      \"import\": {\n        \"types\": \"./fr/guard.d.mts\",\n        \"default\": \"./fr/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/guard.d.cts\",\n        \"default\": \"./fr/guard.cjs\"\n      }\n    },\n    \"./fr/hash\": {\n      \"import\": {\n        \"types\": \"./fr/hash.d.mts\",\n        \"default\": \"./fr/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/hash.d.cts\",\n        \"default\": \"./fr/hash.cjs\"\n      }\n    },\n    \"./fr/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./fr/hexadecimal.d.mts\",\n        \"default\": \"./fr/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/hexadecimal.d.cts\",\n        \"default\": \"./fr/hexadecimal.cjs\"\n      }\n    },\n    \"./fr/hexColor\": {\n      \"import\": {\n        \"types\": \"./fr/hexColor.d.mts\",\n        \"default\": \"./fr/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/hexColor.d.cts\",\n        \"default\": \"./fr/hexColor.cjs\"\n      }\n    },\n    \"./fr/imei\": {\n      \"import\": {\n        \"types\": \"./fr/imei.d.mts\",\n        \"default\": \"./fr/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/imei.d.cts\",\n        \"default\": \"./fr/imei.cjs\"\n      }\n    },\n    \"./fr/includes\": {\n      \"import\": {\n        \"types\": \"./fr/includes.d.mts\",\n        \"default\": \"./fr/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/includes.d.cts\",\n        \"default\": \"./fr/includes.cjs\"\n      }\n    },\n    \"./fr/integer\": {\n      \"import\": {\n        \"types\": \"./fr/integer.d.mts\",\n        \"default\": \"./fr/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/integer.d.cts\",\n        \"default\": \"./fr/integer.cjs\"\n      }\n    },\n    \"./fr/ip\": {\n      \"import\": {\n        \"types\": \"./fr/ip.d.mts\",\n        \"default\": \"./fr/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/ip.d.cts\",\n        \"default\": \"./fr/ip.cjs\"\n      }\n    },\n    \"./fr/ipv4\": {\n      \"import\": {\n        \"types\": \"./fr/ipv4.d.mts\",\n        \"default\": \"./fr/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/ipv4.d.cts\",\n        \"default\": \"./fr/ipv4.cjs\"\n      }\n    },\n    \"./fr/ipv6\": {\n      \"import\": {\n        \"types\": \"./fr/ipv6.d.mts\",\n        \"default\": \"./fr/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/ipv6.d.cts\",\n        \"default\": \"./fr/ipv6.cjs\"\n      }\n    },\n    \"./fr/isbn\": {\n      \"import\": {\n        \"types\": \"./fr/isbn.d.mts\",\n        \"default\": \"./fr/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/isbn.d.cts\",\n        \"default\": \"./fr/isbn.cjs\"\n      }\n    },\n    \"./fr/isoDate\": {\n      \"import\": {\n        \"types\": \"./fr/isoDate.d.mts\",\n        \"default\": \"./fr/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/isoDate.d.cts\",\n        \"default\": \"./fr/isoDate.cjs\"\n      }\n    },\n    \"./fr/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./fr/isoDateTime.d.mts\",\n        \"default\": \"./fr/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/isoDateTime.d.cts\",\n        \"default\": \"./fr/isoDateTime.cjs\"\n      }\n    },\n    \"./fr/isoTime\": {\n      \"import\": {\n        \"types\": \"./fr/isoTime.d.mts\",\n        \"default\": \"./fr/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/isoTime.d.cts\",\n        \"default\": \"./fr/isoTime.cjs\"\n      }\n    },\n    \"./fr/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./fr/isoTimeSecond.d.mts\",\n        \"default\": \"./fr/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/isoTimeSecond.d.cts\",\n        \"default\": \"./fr/isoTimeSecond.cjs\"\n      }\n    },\n    \"./fr/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./fr/isoTimestamp.d.mts\",\n        \"default\": \"./fr/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/isoTimestamp.d.cts\",\n        \"default\": \"./fr/isoTimestamp.cjs\"\n      }\n    },\n    \"./fr/isoWeek\": {\n      \"import\": {\n        \"types\": \"./fr/isoWeek.d.mts\",\n        \"default\": \"./fr/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/isoWeek.d.cts\",\n        \"default\": \"./fr/isoWeek.cjs\"\n      }\n    },\n    \"./fr/isrc\": {\n      \"import\": {\n        \"types\": \"./fr/isrc.d.mts\",\n        \"default\": \"./fr/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/isrc.d.cts\",\n        \"default\": \"./fr/isrc.cjs\"\n      }\n    },\n    \"./fr/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./fr/jwsCompact.d.mts\",\n        \"default\": \"./fr/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/jwsCompact.d.cts\",\n        \"default\": \"./fr/jwsCompact.cjs\"\n      }\n    },\n    \"./fr/length\": {\n      \"import\": {\n        \"types\": \"./fr/length.d.mts\",\n        \"default\": \"./fr/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/length.d.cts\",\n        \"default\": \"./fr/length.cjs\"\n      }\n    },\n    \"./fr/ltValue\": {\n      \"import\": {\n        \"types\": \"./fr/ltValue.d.mts\",\n        \"default\": \"./fr/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/ltValue.d.cts\",\n        \"default\": \"./fr/ltValue.cjs\"\n      }\n    },\n    \"./fr/mac\": {\n      \"import\": {\n        \"types\": \"./fr/mac.d.mts\",\n        \"default\": \"./fr/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/mac.d.cts\",\n        \"default\": \"./fr/mac.cjs\"\n      }\n    },\n    \"./fr/mac48\": {\n      \"import\": {\n        \"types\": \"./fr/mac48.d.mts\",\n        \"default\": \"./fr/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/mac48.d.cts\",\n        \"default\": \"./fr/mac48.cjs\"\n      }\n    },\n    \"./fr/mac64\": {\n      \"import\": {\n        \"types\": \"./fr/mac64.d.mts\",\n        \"default\": \"./fr/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/mac64.d.cts\",\n        \"default\": \"./fr/mac64.cjs\"\n      }\n    },\n    \"./fr/maxBytes\": {\n      \"import\": {\n        \"types\": \"./fr/maxBytes.d.mts\",\n        \"default\": \"./fr/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/maxBytes.d.cts\",\n        \"default\": \"./fr/maxBytes.cjs\"\n      }\n    },\n    \"./fr/maxEntries\": {\n      \"import\": {\n        \"types\": \"./fr/maxEntries.d.mts\",\n        \"default\": \"./fr/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/maxEntries.d.cts\",\n        \"default\": \"./fr/maxEntries.cjs\"\n      }\n    },\n    \"./fr/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./fr/maxGraphemes.d.mts\",\n        \"default\": \"./fr/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/maxGraphemes.d.cts\",\n        \"default\": \"./fr/maxGraphemes.cjs\"\n      }\n    },\n    \"./fr/maxLength\": {\n      \"import\": {\n        \"types\": \"./fr/maxLength.d.mts\",\n        \"default\": \"./fr/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/maxLength.d.cts\",\n        \"default\": \"./fr/maxLength.cjs\"\n      }\n    },\n    \"./fr/maxSize\": {\n      \"import\": {\n        \"types\": \"./fr/maxSize.d.mts\",\n        \"default\": \"./fr/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/maxSize.d.cts\",\n        \"default\": \"./fr/maxSize.cjs\"\n      }\n    },\n    \"./fr/maxValue\": {\n      \"import\": {\n        \"types\": \"./fr/maxValue.d.mts\",\n        \"default\": \"./fr/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/maxValue.d.cts\",\n        \"default\": \"./fr/maxValue.cjs\"\n      }\n    },\n    \"./fr/maxWords\": {\n      \"import\": {\n        \"types\": \"./fr/maxWords.d.mts\",\n        \"default\": \"./fr/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/maxWords.d.cts\",\n        \"default\": \"./fr/maxWords.cjs\"\n      }\n    },\n    \"./fr/mimeType\": {\n      \"import\": {\n        \"types\": \"./fr/mimeType.d.mts\",\n        \"default\": \"./fr/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/mimeType.d.cts\",\n        \"default\": \"./fr/mimeType.cjs\"\n      }\n    },\n    \"./fr/minBytes\": {\n      \"import\": {\n        \"types\": \"./fr/minBytes.d.mts\",\n        \"default\": \"./fr/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/minBytes.d.cts\",\n        \"default\": \"./fr/minBytes.cjs\"\n      }\n    },\n    \"./fr/minEntries\": {\n      \"import\": {\n        \"types\": \"./fr/minEntries.d.mts\",\n        \"default\": \"./fr/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/minEntries.d.cts\",\n        \"default\": \"./fr/minEntries.cjs\"\n      }\n    },\n    \"./fr/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./fr/minGraphemes.d.mts\",\n        \"default\": \"./fr/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/minGraphemes.d.cts\",\n        \"default\": \"./fr/minGraphemes.cjs\"\n      }\n    },\n    \"./fr/minLength\": {\n      \"import\": {\n        \"types\": \"./fr/minLength.d.mts\",\n        \"default\": \"./fr/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/minLength.d.cts\",\n        \"default\": \"./fr/minLength.cjs\"\n      }\n    },\n    \"./fr/minSize\": {\n      \"import\": {\n        \"types\": \"./fr/minSize.d.mts\",\n        \"default\": \"./fr/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/minSize.d.cts\",\n        \"default\": \"./fr/minSize.cjs\"\n      }\n    },\n    \"./fr/minValue\": {\n      \"import\": {\n        \"types\": \"./fr/minValue.d.mts\",\n        \"default\": \"./fr/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/minValue.d.cts\",\n        \"default\": \"./fr/minValue.cjs\"\n      }\n    },\n    \"./fr/minWords\": {\n      \"import\": {\n        \"types\": \"./fr/minWords.d.mts\",\n        \"default\": \"./fr/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/minWords.d.cts\",\n        \"default\": \"./fr/minWords.cjs\"\n      }\n    },\n    \"./fr/multipleOf\": {\n      \"import\": {\n        \"types\": \"./fr/multipleOf.d.mts\",\n        \"default\": \"./fr/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/multipleOf.d.cts\",\n        \"default\": \"./fr/multipleOf.cjs\"\n      }\n    },\n    \"./fr/nanoid\": {\n      \"import\": {\n        \"types\": \"./fr/nanoid.d.mts\",\n        \"default\": \"./fr/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/nanoid.d.cts\",\n        \"default\": \"./fr/nanoid.cjs\"\n      }\n    },\n    \"./fr/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./fr/nonEmpty.d.mts\",\n        \"default\": \"./fr/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/nonEmpty.d.cts\",\n        \"default\": \"./fr/nonEmpty.cjs\"\n      }\n    },\n    \"./fr/notBytes\": {\n      \"import\": {\n        \"types\": \"./fr/notBytes.d.mts\",\n        \"default\": \"./fr/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/notBytes.d.cts\",\n        \"default\": \"./fr/notBytes.cjs\"\n      }\n    },\n    \"./fr/notEntries\": {\n      \"import\": {\n        \"types\": \"./fr/notEntries.d.mts\",\n        \"default\": \"./fr/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/notEntries.d.cts\",\n        \"default\": \"./fr/notEntries.cjs\"\n      }\n    },\n    \"./fr/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./fr/notGraphemes.d.mts\",\n        \"default\": \"./fr/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/notGraphemes.d.cts\",\n        \"default\": \"./fr/notGraphemes.cjs\"\n      }\n    },\n    \"./fr/notLength\": {\n      \"import\": {\n        \"types\": \"./fr/notLength.d.mts\",\n        \"default\": \"./fr/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/notLength.d.cts\",\n        \"default\": \"./fr/notLength.cjs\"\n      }\n    },\n    \"./fr/notSize\": {\n      \"import\": {\n        \"types\": \"./fr/notSize.d.mts\",\n        \"default\": \"./fr/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/notSize.d.cts\",\n        \"default\": \"./fr/notSize.cjs\"\n      }\n    },\n    \"./fr/notValue\": {\n      \"import\": {\n        \"types\": \"./fr/notValue.d.mts\",\n        \"default\": \"./fr/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/notValue.d.cts\",\n        \"default\": \"./fr/notValue.cjs\"\n      }\n    },\n    \"./fr/notValues\": {\n      \"import\": {\n        \"types\": \"./fr/notValues.d.mts\",\n        \"default\": \"./fr/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/notValues.d.cts\",\n        \"default\": \"./fr/notValues.cjs\"\n      }\n    },\n    \"./fr/notWords\": {\n      \"import\": {\n        \"types\": \"./fr/notWords.d.mts\",\n        \"default\": \"./fr/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/notWords.d.cts\",\n        \"default\": \"./fr/notWords.cjs\"\n      }\n    },\n    \"./fr/octal\": {\n      \"import\": {\n        \"types\": \"./fr/octal.d.mts\",\n        \"default\": \"./fr/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/octal.d.cts\",\n        \"default\": \"./fr/octal.cjs\"\n      }\n    },\n    \"./fr/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./fr/parseBoolean.d.mts\",\n        \"default\": \"./fr/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/parseBoolean.d.cts\",\n        \"default\": \"./fr/parseBoolean.cjs\"\n      }\n    },\n    \"./fr/parseJson\": {\n      \"import\": {\n        \"types\": \"./fr/parseJson.d.mts\",\n        \"default\": \"./fr/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/parseJson.d.cts\",\n        \"default\": \"./fr/parseJson.cjs\"\n      }\n    },\n    \"./fr/partialCheck\": {\n      \"import\": {\n        \"types\": \"./fr/partialCheck.d.mts\",\n        \"default\": \"./fr/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/partialCheck.d.cts\",\n        \"default\": \"./fr/partialCheck.cjs\"\n      }\n    },\n    \"./fr/rawCheck\": {\n      \"import\": {\n        \"types\": \"./fr/rawCheck.d.mts\",\n        \"default\": \"./fr/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/rawCheck.d.cts\",\n        \"default\": \"./fr/rawCheck.cjs\"\n      }\n    },\n    \"./fr/rawTransform\": {\n      \"import\": {\n        \"types\": \"./fr/rawTransform.d.mts\",\n        \"default\": \"./fr/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/rawTransform.d.cts\",\n        \"default\": \"./fr/rawTransform.cjs\"\n      }\n    },\n    \"./fr/regex\": {\n      \"import\": {\n        \"types\": \"./fr/regex.d.mts\",\n        \"default\": \"./fr/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/regex.d.cts\",\n        \"default\": \"./fr/regex.cjs\"\n      }\n    },\n    \"./fr/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./fr/rfcEmail.d.mts\",\n        \"default\": \"./fr/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/rfcEmail.d.cts\",\n        \"default\": \"./fr/rfcEmail.cjs\"\n      }\n    },\n    \"./fr/safeInteger\": {\n      \"import\": {\n        \"types\": \"./fr/safeInteger.d.mts\",\n        \"default\": \"./fr/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/safeInteger.d.cts\",\n        \"default\": \"./fr/safeInteger.cjs\"\n      }\n    },\n    \"./fr/size\": {\n      \"import\": {\n        \"types\": \"./fr/size.d.mts\",\n        \"default\": \"./fr/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/size.d.cts\",\n        \"default\": \"./fr/size.cjs\"\n      }\n    },\n    \"./fr/slug\": {\n      \"import\": {\n        \"types\": \"./fr/slug.d.mts\",\n        \"default\": \"./fr/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/slug.d.cts\",\n        \"default\": \"./fr/slug.cjs\"\n      }\n    },\n    \"./fr/someItem\": {\n      \"import\": {\n        \"types\": \"./fr/someItem.d.mts\",\n        \"default\": \"./fr/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/someItem.d.cts\",\n        \"default\": \"./fr/someItem.cjs\"\n      }\n    },\n    \"./fr/startsWith\": {\n      \"import\": {\n        \"types\": \"./fr/startsWith.d.mts\",\n        \"default\": \"./fr/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/startsWith.d.cts\",\n        \"default\": \"./fr/startsWith.cjs\"\n      }\n    },\n    \"./fr/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./fr/stringifyJson.d.mts\",\n        \"default\": \"./fr/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/stringifyJson.d.cts\",\n        \"default\": \"./fr/stringifyJson.cjs\"\n      }\n    },\n    \"./fr/toBigint\": {\n      \"import\": {\n        \"types\": \"./fr/toBigint.d.mts\",\n        \"default\": \"./fr/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/toBigint.d.cts\",\n        \"default\": \"./fr/toBigint.cjs\"\n      }\n    },\n    \"./fr/toDate\": {\n      \"import\": {\n        \"types\": \"./fr/toDate.d.mts\",\n        \"default\": \"./fr/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/toDate.d.cts\",\n        \"default\": \"./fr/toDate.cjs\"\n      }\n    },\n    \"./fr/toNumber\": {\n      \"import\": {\n        \"types\": \"./fr/toNumber.d.mts\",\n        \"default\": \"./fr/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/toNumber.d.cts\",\n        \"default\": \"./fr/toNumber.cjs\"\n      }\n    },\n    \"./fr/toString\": {\n      \"import\": {\n        \"types\": \"./fr/toString.d.mts\",\n        \"default\": \"./fr/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/toString.d.cts\",\n        \"default\": \"./fr/toString.cjs\"\n      }\n    },\n    \"./fr/ulid\": {\n      \"import\": {\n        \"types\": \"./fr/ulid.d.mts\",\n        \"default\": \"./fr/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/ulid.d.cts\",\n        \"default\": \"./fr/ulid.cjs\"\n      }\n    },\n    \"./fr/url\": {\n      \"import\": {\n        \"types\": \"./fr/url.d.mts\",\n        \"default\": \"./fr/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/url.d.cts\",\n        \"default\": \"./fr/url.cjs\"\n      }\n    },\n    \"./fr/uuid\": {\n      \"import\": {\n        \"types\": \"./fr/uuid.d.mts\",\n        \"default\": \"./fr/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/uuid.d.cts\",\n        \"default\": \"./fr/uuid.cjs\"\n      }\n    },\n    \"./fr/value\": {\n      \"import\": {\n        \"types\": \"./fr/value.d.mts\",\n        \"default\": \"./fr/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/value.d.cts\",\n        \"default\": \"./fr/value.cjs\"\n      }\n    },\n    \"./fr/values\": {\n      \"import\": {\n        \"types\": \"./fr/values.d.mts\",\n        \"default\": \"./fr/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/values.d.cts\",\n        \"default\": \"./fr/values.cjs\"\n      }\n    },\n    \"./fr/words\": {\n      \"import\": {\n        \"types\": \"./fr/words.d.mts\",\n        \"default\": \"./fr/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./fr/words.d.cts\",\n        \"default\": \"./fr/words.cjs\"\n      }\n    },\n    \"./hu\": {\n      \"import\": {\n        \"types\": \"./hu/index.d.mts\",\n        \"default\": \"./hu/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/index.d.cts\",\n        \"default\": \"./hu/index.cjs\"\n      }\n    },\n    \"./hu/schema\": {\n      \"import\": {\n        \"types\": \"./hu/schema.d.mts\",\n        \"default\": \"./hu/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/schema.d.cts\",\n        \"default\": \"./hu/schema.cjs\"\n      }\n    },\n    \"./hu/base64\": {\n      \"import\": {\n        \"types\": \"./hu/base64.d.mts\",\n        \"default\": \"./hu/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/base64.d.cts\",\n        \"default\": \"./hu/base64.cjs\"\n      }\n    },\n    \"./hu/bic\": {\n      \"import\": {\n        \"types\": \"./hu/bic.d.mts\",\n        \"default\": \"./hu/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/bic.d.cts\",\n        \"default\": \"./hu/bic.cjs\"\n      }\n    },\n    \"./hu/bytes\": {\n      \"import\": {\n        \"types\": \"./hu/bytes.d.mts\",\n        \"default\": \"./hu/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/bytes.d.cts\",\n        \"default\": \"./hu/bytes.cjs\"\n      }\n    },\n    \"./hu/check\": {\n      \"import\": {\n        \"types\": \"./hu/check.d.mts\",\n        \"default\": \"./hu/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/check.d.cts\",\n        \"default\": \"./hu/check.cjs\"\n      }\n    },\n    \"./hu/checkAsync\": {\n      \"import\": {\n        \"types\": \"./hu/checkAsync.d.mts\",\n        \"default\": \"./hu/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/checkAsync.d.cts\",\n        \"default\": \"./hu/checkAsync.cjs\"\n      }\n    },\n    \"./hu/checkItems\": {\n      \"import\": {\n        \"types\": \"./hu/checkItems.d.mts\",\n        \"default\": \"./hu/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/checkItems.d.cts\",\n        \"default\": \"./hu/checkItems.cjs\"\n      }\n    },\n    \"./hu/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./hu/checkItemsAsync.d.mts\",\n        \"default\": \"./hu/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/checkItemsAsync.d.cts\",\n        \"default\": \"./hu/checkItemsAsync.cjs\"\n      }\n    },\n    \"./hu/creditCard\": {\n      \"import\": {\n        \"types\": \"./hu/creditCard.d.mts\",\n        \"default\": \"./hu/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/creditCard.d.cts\",\n        \"default\": \"./hu/creditCard.cjs\"\n      }\n    },\n    \"./hu/cuid2\": {\n      \"import\": {\n        \"types\": \"./hu/cuid2.d.mts\",\n        \"default\": \"./hu/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/cuid2.d.cts\",\n        \"default\": \"./hu/cuid2.cjs\"\n      }\n    },\n    \"./hu/decimal\": {\n      \"import\": {\n        \"types\": \"./hu/decimal.d.mts\",\n        \"default\": \"./hu/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/decimal.d.cts\",\n        \"default\": \"./hu/decimal.cjs\"\n      }\n    },\n    \"./hu/digits\": {\n      \"import\": {\n        \"types\": \"./hu/digits.d.mts\",\n        \"default\": \"./hu/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/digits.d.cts\",\n        \"default\": \"./hu/digits.cjs\"\n      }\n    },\n    \"./hu/domain\": {\n      \"import\": {\n        \"types\": \"./hu/domain.d.mts\",\n        \"default\": \"./hu/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/domain.d.cts\",\n        \"default\": \"./hu/domain.cjs\"\n      }\n    },\n    \"./hu/email\": {\n      \"import\": {\n        \"types\": \"./hu/email.d.mts\",\n        \"default\": \"./hu/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/email.d.cts\",\n        \"default\": \"./hu/email.cjs\"\n      }\n    },\n    \"./hu/emoji\": {\n      \"import\": {\n        \"types\": \"./hu/emoji.d.mts\",\n        \"default\": \"./hu/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/emoji.d.cts\",\n        \"default\": \"./hu/emoji.cjs\"\n      }\n    },\n    \"./hu/empty\": {\n      \"import\": {\n        \"types\": \"./hu/empty.d.mts\",\n        \"default\": \"./hu/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/empty.d.cts\",\n        \"default\": \"./hu/empty.cjs\"\n      }\n    },\n    \"./hu/endsWith\": {\n      \"import\": {\n        \"types\": \"./hu/endsWith.d.mts\",\n        \"default\": \"./hu/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/endsWith.d.cts\",\n        \"default\": \"./hu/endsWith.cjs\"\n      }\n    },\n    \"./hu/entries\": {\n      \"import\": {\n        \"types\": \"./hu/entries.d.mts\",\n        \"default\": \"./hu/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/entries.d.cts\",\n        \"default\": \"./hu/entries.cjs\"\n      }\n    },\n    \"./hu/everyItem\": {\n      \"import\": {\n        \"types\": \"./hu/everyItem.d.mts\",\n        \"default\": \"./hu/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/everyItem.d.cts\",\n        \"default\": \"./hu/everyItem.cjs\"\n      }\n    },\n    \"./hu/excludes\": {\n      \"import\": {\n        \"types\": \"./hu/excludes.d.mts\",\n        \"default\": \"./hu/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/excludes.d.cts\",\n        \"default\": \"./hu/excludes.cjs\"\n      }\n    },\n    \"./hu/finite\": {\n      \"import\": {\n        \"types\": \"./hu/finite.d.mts\",\n        \"default\": \"./hu/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/finite.d.cts\",\n        \"default\": \"./hu/finite.cjs\"\n      }\n    },\n    \"./hu/graphemes\": {\n      \"import\": {\n        \"types\": \"./hu/graphemes.d.mts\",\n        \"default\": \"./hu/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/graphemes.d.cts\",\n        \"default\": \"./hu/graphemes.cjs\"\n      }\n    },\n    \"./hu/gtValue\": {\n      \"import\": {\n        \"types\": \"./hu/gtValue.d.mts\",\n        \"default\": \"./hu/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/gtValue.d.cts\",\n        \"default\": \"./hu/gtValue.cjs\"\n      }\n    },\n    \"./hu/guard\": {\n      \"import\": {\n        \"types\": \"./hu/guard.d.mts\",\n        \"default\": \"./hu/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/guard.d.cts\",\n        \"default\": \"./hu/guard.cjs\"\n      }\n    },\n    \"./hu/hash\": {\n      \"import\": {\n        \"types\": \"./hu/hash.d.mts\",\n        \"default\": \"./hu/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/hash.d.cts\",\n        \"default\": \"./hu/hash.cjs\"\n      }\n    },\n    \"./hu/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./hu/hexadecimal.d.mts\",\n        \"default\": \"./hu/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/hexadecimal.d.cts\",\n        \"default\": \"./hu/hexadecimal.cjs\"\n      }\n    },\n    \"./hu/hexColor\": {\n      \"import\": {\n        \"types\": \"./hu/hexColor.d.mts\",\n        \"default\": \"./hu/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/hexColor.d.cts\",\n        \"default\": \"./hu/hexColor.cjs\"\n      }\n    },\n    \"./hu/imei\": {\n      \"import\": {\n        \"types\": \"./hu/imei.d.mts\",\n        \"default\": \"./hu/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/imei.d.cts\",\n        \"default\": \"./hu/imei.cjs\"\n      }\n    },\n    \"./hu/includes\": {\n      \"import\": {\n        \"types\": \"./hu/includes.d.mts\",\n        \"default\": \"./hu/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/includes.d.cts\",\n        \"default\": \"./hu/includes.cjs\"\n      }\n    },\n    \"./hu/integer\": {\n      \"import\": {\n        \"types\": \"./hu/integer.d.mts\",\n        \"default\": \"./hu/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/integer.d.cts\",\n        \"default\": \"./hu/integer.cjs\"\n      }\n    },\n    \"./hu/ip\": {\n      \"import\": {\n        \"types\": \"./hu/ip.d.mts\",\n        \"default\": \"./hu/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/ip.d.cts\",\n        \"default\": \"./hu/ip.cjs\"\n      }\n    },\n    \"./hu/ipv4\": {\n      \"import\": {\n        \"types\": \"./hu/ipv4.d.mts\",\n        \"default\": \"./hu/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/ipv4.d.cts\",\n        \"default\": \"./hu/ipv4.cjs\"\n      }\n    },\n    \"./hu/ipv6\": {\n      \"import\": {\n        \"types\": \"./hu/ipv6.d.mts\",\n        \"default\": \"./hu/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/ipv6.d.cts\",\n        \"default\": \"./hu/ipv6.cjs\"\n      }\n    },\n    \"./hu/isbn\": {\n      \"import\": {\n        \"types\": \"./hu/isbn.d.mts\",\n        \"default\": \"./hu/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/isbn.d.cts\",\n        \"default\": \"./hu/isbn.cjs\"\n      }\n    },\n    \"./hu/isoDate\": {\n      \"import\": {\n        \"types\": \"./hu/isoDate.d.mts\",\n        \"default\": \"./hu/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/isoDate.d.cts\",\n        \"default\": \"./hu/isoDate.cjs\"\n      }\n    },\n    \"./hu/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./hu/isoDateTime.d.mts\",\n        \"default\": \"./hu/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/isoDateTime.d.cts\",\n        \"default\": \"./hu/isoDateTime.cjs\"\n      }\n    },\n    \"./hu/isoTime\": {\n      \"import\": {\n        \"types\": \"./hu/isoTime.d.mts\",\n        \"default\": \"./hu/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/isoTime.d.cts\",\n        \"default\": \"./hu/isoTime.cjs\"\n      }\n    },\n    \"./hu/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./hu/isoTimeSecond.d.mts\",\n        \"default\": \"./hu/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/isoTimeSecond.d.cts\",\n        \"default\": \"./hu/isoTimeSecond.cjs\"\n      }\n    },\n    \"./hu/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./hu/isoTimestamp.d.mts\",\n        \"default\": \"./hu/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/isoTimestamp.d.cts\",\n        \"default\": \"./hu/isoTimestamp.cjs\"\n      }\n    },\n    \"./hu/isoWeek\": {\n      \"import\": {\n        \"types\": \"./hu/isoWeek.d.mts\",\n        \"default\": \"./hu/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/isoWeek.d.cts\",\n        \"default\": \"./hu/isoWeek.cjs\"\n      }\n    },\n    \"./hu/isrc\": {\n      \"import\": {\n        \"types\": \"./hu/isrc.d.mts\",\n        \"default\": \"./hu/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/isrc.d.cts\",\n        \"default\": \"./hu/isrc.cjs\"\n      }\n    },\n    \"./hu/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./hu/jwsCompact.d.mts\",\n        \"default\": \"./hu/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/jwsCompact.d.cts\",\n        \"default\": \"./hu/jwsCompact.cjs\"\n      }\n    },\n    \"./hu/length\": {\n      \"import\": {\n        \"types\": \"./hu/length.d.mts\",\n        \"default\": \"./hu/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/length.d.cts\",\n        \"default\": \"./hu/length.cjs\"\n      }\n    },\n    \"./hu/ltValue\": {\n      \"import\": {\n        \"types\": \"./hu/ltValue.d.mts\",\n        \"default\": \"./hu/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/ltValue.d.cts\",\n        \"default\": \"./hu/ltValue.cjs\"\n      }\n    },\n    \"./hu/mac\": {\n      \"import\": {\n        \"types\": \"./hu/mac.d.mts\",\n        \"default\": \"./hu/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/mac.d.cts\",\n        \"default\": \"./hu/mac.cjs\"\n      }\n    },\n    \"./hu/mac48\": {\n      \"import\": {\n        \"types\": \"./hu/mac48.d.mts\",\n        \"default\": \"./hu/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/mac48.d.cts\",\n        \"default\": \"./hu/mac48.cjs\"\n      }\n    },\n    \"./hu/mac64\": {\n      \"import\": {\n        \"types\": \"./hu/mac64.d.mts\",\n        \"default\": \"./hu/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/mac64.d.cts\",\n        \"default\": \"./hu/mac64.cjs\"\n      }\n    },\n    \"./hu/maxBytes\": {\n      \"import\": {\n        \"types\": \"./hu/maxBytes.d.mts\",\n        \"default\": \"./hu/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/maxBytes.d.cts\",\n        \"default\": \"./hu/maxBytes.cjs\"\n      }\n    },\n    \"./hu/maxEntries\": {\n      \"import\": {\n        \"types\": \"./hu/maxEntries.d.mts\",\n        \"default\": \"./hu/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/maxEntries.d.cts\",\n        \"default\": \"./hu/maxEntries.cjs\"\n      }\n    },\n    \"./hu/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./hu/maxGraphemes.d.mts\",\n        \"default\": \"./hu/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/maxGraphemes.d.cts\",\n        \"default\": \"./hu/maxGraphemes.cjs\"\n      }\n    },\n    \"./hu/maxLength\": {\n      \"import\": {\n        \"types\": \"./hu/maxLength.d.mts\",\n        \"default\": \"./hu/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/maxLength.d.cts\",\n        \"default\": \"./hu/maxLength.cjs\"\n      }\n    },\n    \"./hu/maxSize\": {\n      \"import\": {\n        \"types\": \"./hu/maxSize.d.mts\",\n        \"default\": \"./hu/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/maxSize.d.cts\",\n        \"default\": \"./hu/maxSize.cjs\"\n      }\n    },\n    \"./hu/maxValue\": {\n      \"import\": {\n        \"types\": \"./hu/maxValue.d.mts\",\n        \"default\": \"./hu/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/maxValue.d.cts\",\n        \"default\": \"./hu/maxValue.cjs\"\n      }\n    },\n    \"./hu/maxWords\": {\n      \"import\": {\n        \"types\": \"./hu/maxWords.d.mts\",\n        \"default\": \"./hu/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/maxWords.d.cts\",\n        \"default\": \"./hu/maxWords.cjs\"\n      }\n    },\n    \"./hu/mimeType\": {\n      \"import\": {\n        \"types\": \"./hu/mimeType.d.mts\",\n        \"default\": \"./hu/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/mimeType.d.cts\",\n        \"default\": \"./hu/mimeType.cjs\"\n      }\n    },\n    \"./hu/minBytes\": {\n      \"import\": {\n        \"types\": \"./hu/minBytes.d.mts\",\n        \"default\": \"./hu/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/minBytes.d.cts\",\n        \"default\": \"./hu/minBytes.cjs\"\n      }\n    },\n    \"./hu/minEntries\": {\n      \"import\": {\n        \"types\": \"./hu/minEntries.d.mts\",\n        \"default\": \"./hu/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/minEntries.d.cts\",\n        \"default\": \"./hu/minEntries.cjs\"\n      }\n    },\n    \"./hu/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./hu/minGraphemes.d.mts\",\n        \"default\": \"./hu/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/minGraphemes.d.cts\",\n        \"default\": \"./hu/minGraphemes.cjs\"\n      }\n    },\n    \"./hu/minLength\": {\n      \"import\": {\n        \"types\": \"./hu/minLength.d.mts\",\n        \"default\": \"./hu/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/minLength.d.cts\",\n        \"default\": \"./hu/minLength.cjs\"\n      }\n    },\n    \"./hu/minSize\": {\n      \"import\": {\n        \"types\": \"./hu/minSize.d.mts\",\n        \"default\": \"./hu/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/minSize.d.cts\",\n        \"default\": \"./hu/minSize.cjs\"\n      }\n    },\n    \"./hu/minValue\": {\n      \"import\": {\n        \"types\": \"./hu/minValue.d.mts\",\n        \"default\": \"./hu/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/minValue.d.cts\",\n        \"default\": \"./hu/minValue.cjs\"\n      }\n    },\n    \"./hu/minWords\": {\n      \"import\": {\n        \"types\": \"./hu/minWords.d.mts\",\n        \"default\": \"./hu/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/minWords.d.cts\",\n        \"default\": \"./hu/minWords.cjs\"\n      }\n    },\n    \"./hu/multipleOf\": {\n      \"import\": {\n        \"types\": \"./hu/multipleOf.d.mts\",\n        \"default\": \"./hu/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/multipleOf.d.cts\",\n        \"default\": \"./hu/multipleOf.cjs\"\n      }\n    },\n    \"./hu/nanoid\": {\n      \"import\": {\n        \"types\": \"./hu/nanoid.d.mts\",\n        \"default\": \"./hu/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/nanoid.d.cts\",\n        \"default\": \"./hu/nanoid.cjs\"\n      }\n    },\n    \"./hu/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./hu/nonEmpty.d.mts\",\n        \"default\": \"./hu/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/nonEmpty.d.cts\",\n        \"default\": \"./hu/nonEmpty.cjs\"\n      }\n    },\n    \"./hu/notBytes\": {\n      \"import\": {\n        \"types\": \"./hu/notBytes.d.mts\",\n        \"default\": \"./hu/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/notBytes.d.cts\",\n        \"default\": \"./hu/notBytes.cjs\"\n      }\n    },\n    \"./hu/notEntries\": {\n      \"import\": {\n        \"types\": \"./hu/notEntries.d.mts\",\n        \"default\": \"./hu/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/notEntries.d.cts\",\n        \"default\": \"./hu/notEntries.cjs\"\n      }\n    },\n    \"./hu/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./hu/notGraphemes.d.mts\",\n        \"default\": \"./hu/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/notGraphemes.d.cts\",\n        \"default\": \"./hu/notGraphemes.cjs\"\n      }\n    },\n    \"./hu/notLength\": {\n      \"import\": {\n        \"types\": \"./hu/notLength.d.mts\",\n        \"default\": \"./hu/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/notLength.d.cts\",\n        \"default\": \"./hu/notLength.cjs\"\n      }\n    },\n    \"./hu/notSize\": {\n      \"import\": {\n        \"types\": \"./hu/notSize.d.mts\",\n        \"default\": \"./hu/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/notSize.d.cts\",\n        \"default\": \"./hu/notSize.cjs\"\n      }\n    },\n    \"./hu/notValue\": {\n      \"import\": {\n        \"types\": \"./hu/notValue.d.mts\",\n        \"default\": \"./hu/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/notValue.d.cts\",\n        \"default\": \"./hu/notValue.cjs\"\n      }\n    },\n    \"./hu/notValues\": {\n      \"import\": {\n        \"types\": \"./hu/notValues.d.mts\",\n        \"default\": \"./hu/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/notValues.d.cts\",\n        \"default\": \"./hu/notValues.cjs\"\n      }\n    },\n    \"./hu/notWords\": {\n      \"import\": {\n        \"types\": \"./hu/notWords.d.mts\",\n        \"default\": \"./hu/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/notWords.d.cts\",\n        \"default\": \"./hu/notWords.cjs\"\n      }\n    },\n    \"./hu/octal\": {\n      \"import\": {\n        \"types\": \"./hu/octal.d.mts\",\n        \"default\": \"./hu/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/octal.d.cts\",\n        \"default\": \"./hu/octal.cjs\"\n      }\n    },\n    \"./hu/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./hu/parseBoolean.d.mts\",\n        \"default\": \"./hu/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/parseBoolean.d.cts\",\n        \"default\": \"./hu/parseBoolean.cjs\"\n      }\n    },\n    \"./hu/parseJson\": {\n      \"import\": {\n        \"types\": \"./hu/parseJson.d.mts\",\n        \"default\": \"./hu/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/parseJson.d.cts\",\n        \"default\": \"./hu/parseJson.cjs\"\n      }\n    },\n    \"./hu/partialCheck\": {\n      \"import\": {\n        \"types\": \"./hu/partialCheck.d.mts\",\n        \"default\": \"./hu/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/partialCheck.d.cts\",\n        \"default\": \"./hu/partialCheck.cjs\"\n      }\n    },\n    \"./hu/rawCheck\": {\n      \"import\": {\n        \"types\": \"./hu/rawCheck.d.mts\",\n        \"default\": \"./hu/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/rawCheck.d.cts\",\n        \"default\": \"./hu/rawCheck.cjs\"\n      }\n    },\n    \"./hu/rawTransform\": {\n      \"import\": {\n        \"types\": \"./hu/rawTransform.d.mts\",\n        \"default\": \"./hu/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/rawTransform.d.cts\",\n        \"default\": \"./hu/rawTransform.cjs\"\n      }\n    },\n    \"./hu/regex\": {\n      \"import\": {\n        \"types\": \"./hu/regex.d.mts\",\n        \"default\": \"./hu/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/regex.d.cts\",\n        \"default\": \"./hu/regex.cjs\"\n      }\n    },\n    \"./hu/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./hu/rfcEmail.d.mts\",\n        \"default\": \"./hu/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/rfcEmail.d.cts\",\n        \"default\": \"./hu/rfcEmail.cjs\"\n      }\n    },\n    \"./hu/safeInteger\": {\n      \"import\": {\n        \"types\": \"./hu/safeInteger.d.mts\",\n        \"default\": \"./hu/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/safeInteger.d.cts\",\n        \"default\": \"./hu/safeInteger.cjs\"\n      }\n    },\n    \"./hu/size\": {\n      \"import\": {\n        \"types\": \"./hu/size.d.mts\",\n        \"default\": \"./hu/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/size.d.cts\",\n        \"default\": \"./hu/size.cjs\"\n      }\n    },\n    \"./hu/slug\": {\n      \"import\": {\n        \"types\": \"./hu/slug.d.mts\",\n        \"default\": \"./hu/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/slug.d.cts\",\n        \"default\": \"./hu/slug.cjs\"\n      }\n    },\n    \"./hu/someItem\": {\n      \"import\": {\n        \"types\": \"./hu/someItem.d.mts\",\n        \"default\": \"./hu/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/someItem.d.cts\",\n        \"default\": \"./hu/someItem.cjs\"\n      }\n    },\n    \"./hu/startsWith\": {\n      \"import\": {\n        \"types\": \"./hu/startsWith.d.mts\",\n        \"default\": \"./hu/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/startsWith.d.cts\",\n        \"default\": \"./hu/startsWith.cjs\"\n      }\n    },\n    \"./hu/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./hu/stringifyJson.d.mts\",\n        \"default\": \"./hu/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/stringifyJson.d.cts\",\n        \"default\": \"./hu/stringifyJson.cjs\"\n      }\n    },\n    \"./hu/toBigint\": {\n      \"import\": {\n        \"types\": \"./hu/toBigint.d.mts\",\n        \"default\": \"./hu/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/toBigint.d.cts\",\n        \"default\": \"./hu/toBigint.cjs\"\n      }\n    },\n    \"./hu/toDate\": {\n      \"import\": {\n        \"types\": \"./hu/toDate.d.mts\",\n        \"default\": \"./hu/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/toDate.d.cts\",\n        \"default\": \"./hu/toDate.cjs\"\n      }\n    },\n    \"./hu/toNumber\": {\n      \"import\": {\n        \"types\": \"./hu/toNumber.d.mts\",\n        \"default\": \"./hu/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/toNumber.d.cts\",\n        \"default\": \"./hu/toNumber.cjs\"\n      }\n    },\n    \"./hu/toString\": {\n      \"import\": {\n        \"types\": \"./hu/toString.d.mts\",\n        \"default\": \"./hu/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/toString.d.cts\",\n        \"default\": \"./hu/toString.cjs\"\n      }\n    },\n    \"./hu/ulid\": {\n      \"import\": {\n        \"types\": \"./hu/ulid.d.mts\",\n        \"default\": \"./hu/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/ulid.d.cts\",\n        \"default\": \"./hu/ulid.cjs\"\n      }\n    },\n    \"./hu/url\": {\n      \"import\": {\n        \"types\": \"./hu/url.d.mts\",\n        \"default\": \"./hu/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/url.d.cts\",\n        \"default\": \"./hu/url.cjs\"\n      }\n    },\n    \"./hu/uuid\": {\n      \"import\": {\n        \"types\": \"./hu/uuid.d.mts\",\n        \"default\": \"./hu/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/uuid.d.cts\",\n        \"default\": \"./hu/uuid.cjs\"\n      }\n    },\n    \"./hu/value\": {\n      \"import\": {\n        \"types\": \"./hu/value.d.mts\",\n        \"default\": \"./hu/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/value.d.cts\",\n        \"default\": \"./hu/value.cjs\"\n      }\n    },\n    \"./hu/values\": {\n      \"import\": {\n        \"types\": \"./hu/values.d.mts\",\n        \"default\": \"./hu/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/values.d.cts\",\n        \"default\": \"./hu/values.cjs\"\n      }\n    },\n    \"./hu/words\": {\n      \"import\": {\n        \"types\": \"./hu/words.d.mts\",\n        \"default\": \"./hu/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./hu/words.d.cts\",\n        \"default\": \"./hu/words.cjs\"\n      }\n    },\n    \"./id\": {\n      \"import\": {\n        \"types\": \"./id/index.d.mts\",\n        \"default\": \"./id/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/index.d.cts\",\n        \"default\": \"./id/index.cjs\"\n      }\n    },\n    \"./id/schema\": {\n      \"import\": {\n        \"types\": \"./id/schema.d.mts\",\n        \"default\": \"./id/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/schema.d.cts\",\n        \"default\": \"./id/schema.cjs\"\n      }\n    },\n    \"./id/base64\": {\n      \"import\": {\n        \"types\": \"./id/base64.d.mts\",\n        \"default\": \"./id/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/base64.d.cts\",\n        \"default\": \"./id/base64.cjs\"\n      }\n    },\n    \"./id/bic\": {\n      \"import\": {\n        \"types\": \"./id/bic.d.mts\",\n        \"default\": \"./id/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/bic.d.cts\",\n        \"default\": \"./id/bic.cjs\"\n      }\n    },\n    \"./id/bytes\": {\n      \"import\": {\n        \"types\": \"./id/bytes.d.mts\",\n        \"default\": \"./id/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/bytes.d.cts\",\n        \"default\": \"./id/bytes.cjs\"\n      }\n    },\n    \"./id/check\": {\n      \"import\": {\n        \"types\": \"./id/check.d.mts\",\n        \"default\": \"./id/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/check.d.cts\",\n        \"default\": \"./id/check.cjs\"\n      }\n    },\n    \"./id/checkAsync\": {\n      \"import\": {\n        \"types\": \"./id/checkAsync.d.mts\",\n        \"default\": \"./id/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/checkAsync.d.cts\",\n        \"default\": \"./id/checkAsync.cjs\"\n      }\n    },\n    \"./id/checkItems\": {\n      \"import\": {\n        \"types\": \"./id/checkItems.d.mts\",\n        \"default\": \"./id/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/checkItems.d.cts\",\n        \"default\": \"./id/checkItems.cjs\"\n      }\n    },\n    \"./id/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./id/checkItemsAsync.d.mts\",\n        \"default\": \"./id/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/checkItemsAsync.d.cts\",\n        \"default\": \"./id/checkItemsAsync.cjs\"\n      }\n    },\n    \"./id/creditCard\": {\n      \"import\": {\n        \"types\": \"./id/creditCard.d.mts\",\n        \"default\": \"./id/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/creditCard.d.cts\",\n        \"default\": \"./id/creditCard.cjs\"\n      }\n    },\n    \"./id/cuid2\": {\n      \"import\": {\n        \"types\": \"./id/cuid2.d.mts\",\n        \"default\": \"./id/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/cuid2.d.cts\",\n        \"default\": \"./id/cuid2.cjs\"\n      }\n    },\n    \"./id/decimal\": {\n      \"import\": {\n        \"types\": \"./id/decimal.d.mts\",\n        \"default\": \"./id/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/decimal.d.cts\",\n        \"default\": \"./id/decimal.cjs\"\n      }\n    },\n    \"./id/digits\": {\n      \"import\": {\n        \"types\": \"./id/digits.d.mts\",\n        \"default\": \"./id/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/digits.d.cts\",\n        \"default\": \"./id/digits.cjs\"\n      }\n    },\n    \"./id/domain\": {\n      \"import\": {\n        \"types\": \"./id/domain.d.mts\",\n        \"default\": \"./id/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/domain.d.cts\",\n        \"default\": \"./id/domain.cjs\"\n      }\n    },\n    \"./id/email\": {\n      \"import\": {\n        \"types\": \"./id/email.d.mts\",\n        \"default\": \"./id/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/email.d.cts\",\n        \"default\": \"./id/email.cjs\"\n      }\n    },\n    \"./id/emoji\": {\n      \"import\": {\n        \"types\": \"./id/emoji.d.mts\",\n        \"default\": \"./id/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/emoji.d.cts\",\n        \"default\": \"./id/emoji.cjs\"\n      }\n    },\n    \"./id/empty\": {\n      \"import\": {\n        \"types\": \"./id/empty.d.mts\",\n        \"default\": \"./id/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/empty.d.cts\",\n        \"default\": \"./id/empty.cjs\"\n      }\n    },\n    \"./id/endsWith\": {\n      \"import\": {\n        \"types\": \"./id/endsWith.d.mts\",\n        \"default\": \"./id/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/endsWith.d.cts\",\n        \"default\": \"./id/endsWith.cjs\"\n      }\n    },\n    \"./id/entries\": {\n      \"import\": {\n        \"types\": \"./id/entries.d.mts\",\n        \"default\": \"./id/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/entries.d.cts\",\n        \"default\": \"./id/entries.cjs\"\n      }\n    },\n    \"./id/everyItem\": {\n      \"import\": {\n        \"types\": \"./id/everyItem.d.mts\",\n        \"default\": \"./id/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/everyItem.d.cts\",\n        \"default\": \"./id/everyItem.cjs\"\n      }\n    },\n    \"./id/excludes\": {\n      \"import\": {\n        \"types\": \"./id/excludes.d.mts\",\n        \"default\": \"./id/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/excludes.d.cts\",\n        \"default\": \"./id/excludes.cjs\"\n      }\n    },\n    \"./id/finite\": {\n      \"import\": {\n        \"types\": \"./id/finite.d.mts\",\n        \"default\": \"./id/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/finite.d.cts\",\n        \"default\": \"./id/finite.cjs\"\n      }\n    },\n    \"./id/graphemes\": {\n      \"import\": {\n        \"types\": \"./id/graphemes.d.mts\",\n        \"default\": \"./id/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/graphemes.d.cts\",\n        \"default\": \"./id/graphemes.cjs\"\n      }\n    },\n    \"./id/gtValue\": {\n      \"import\": {\n        \"types\": \"./id/gtValue.d.mts\",\n        \"default\": \"./id/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/gtValue.d.cts\",\n        \"default\": \"./id/gtValue.cjs\"\n      }\n    },\n    \"./id/guard\": {\n      \"import\": {\n        \"types\": \"./id/guard.d.mts\",\n        \"default\": \"./id/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/guard.d.cts\",\n        \"default\": \"./id/guard.cjs\"\n      }\n    },\n    \"./id/hash\": {\n      \"import\": {\n        \"types\": \"./id/hash.d.mts\",\n        \"default\": \"./id/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/hash.d.cts\",\n        \"default\": \"./id/hash.cjs\"\n      }\n    },\n    \"./id/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./id/hexadecimal.d.mts\",\n        \"default\": \"./id/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/hexadecimal.d.cts\",\n        \"default\": \"./id/hexadecimal.cjs\"\n      }\n    },\n    \"./id/hexColor\": {\n      \"import\": {\n        \"types\": \"./id/hexColor.d.mts\",\n        \"default\": \"./id/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/hexColor.d.cts\",\n        \"default\": \"./id/hexColor.cjs\"\n      }\n    },\n    \"./id/imei\": {\n      \"import\": {\n        \"types\": \"./id/imei.d.mts\",\n        \"default\": \"./id/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/imei.d.cts\",\n        \"default\": \"./id/imei.cjs\"\n      }\n    },\n    \"./id/includes\": {\n      \"import\": {\n        \"types\": \"./id/includes.d.mts\",\n        \"default\": \"./id/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/includes.d.cts\",\n        \"default\": \"./id/includes.cjs\"\n      }\n    },\n    \"./id/integer\": {\n      \"import\": {\n        \"types\": \"./id/integer.d.mts\",\n        \"default\": \"./id/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/integer.d.cts\",\n        \"default\": \"./id/integer.cjs\"\n      }\n    },\n    \"./id/ip\": {\n      \"import\": {\n        \"types\": \"./id/ip.d.mts\",\n        \"default\": \"./id/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/ip.d.cts\",\n        \"default\": \"./id/ip.cjs\"\n      }\n    },\n    \"./id/ipv4\": {\n      \"import\": {\n        \"types\": \"./id/ipv4.d.mts\",\n        \"default\": \"./id/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/ipv4.d.cts\",\n        \"default\": \"./id/ipv4.cjs\"\n      }\n    },\n    \"./id/ipv6\": {\n      \"import\": {\n        \"types\": \"./id/ipv6.d.mts\",\n        \"default\": \"./id/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/ipv6.d.cts\",\n        \"default\": \"./id/ipv6.cjs\"\n      }\n    },\n    \"./id/isbn\": {\n      \"import\": {\n        \"types\": \"./id/isbn.d.mts\",\n        \"default\": \"./id/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/isbn.d.cts\",\n        \"default\": \"./id/isbn.cjs\"\n      }\n    },\n    \"./id/isoDate\": {\n      \"import\": {\n        \"types\": \"./id/isoDate.d.mts\",\n        \"default\": \"./id/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/isoDate.d.cts\",\n        \"default\": \"./id/isoDate.cjs\"\n      }\n    },\n    \"./id/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./id/isoDateTime.d.mts\",\n        \"default\": \"./id/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/isoDateTime.d.cts\",\n        \"default\": \"./id/isoDateTime.cjs\"\n      }\n    },\n    \"./id/isoTime\": {\n      \"import\": {\n        \"types\": \"./id/isoTime.d.mts\",\n        \"default\": \"./id/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/isoTime.d.cts\",\n        \"default\": \"./id/isoTime.cjs\"\n      }\n    },\n    \"./id/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./id/isoTimeSecond.d.mts\",\n        \"default\": \"./id/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/isoTimeSecond.d.cts\",\n        \"default\": \"./id/isoTimeSecond.cjs\"\n      }\n    },\n    \"./id/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./id/isoTimestamp.d.mts\",\n        \"default\": \"./id/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/isoTimestamp.d.cts\",\n        \"default\": \"./id/isoTimestamp.cjs\"\n      }\n    },\n    \"./id/isoWeek\": {\n      \"import\": {\n        \"types\": \"./id/isoWeek.d.mts\",\n        \"default\": \"./id/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/isoWeek.d.cts\",\n        \"default\": \"./id/isoWeek.cjs\"\n      }\n    },\n    \"./id/isrc\": {\n      \"import\": {\n        \"types\": \"./id/isrc.d.mts\",\n        \"default\": \"./id/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/isrc.d.cts\",\n        \"default\": \"./id/isrc.cjs\"\n      }\n    },\n    \"./id/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./id/jwsCompact.d.mts\",\n        \"default\": \"./id/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/jwsCompact.d.cts\",\n        \"default\": \"./id/jwsCompact.cjs\"\n      }\n    },\n    \"./id/length\": {\n      \"import\": {\n        \"types\": \"./id/length.d.mts\",\n        \"default\": \"./id/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/length.d.cts\",\n        \"default\": \"./id/length.cjs\"\n      }\n    },\n    \"./id/ltValue\": {\n      \"import\": {\n        \"types\": \"./id/ltValue.d.mts\",\n        \"default\": \"./id/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/ltValue.d.cts\",\n        \"default\": \"./id/ltValue.cjs\"\n      }\n    },\n    \"./id/mac\": {\n      \"import\": {\n        \"types\": \"./id/mac.d.mts\",\n        \"default\": \"./id/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/mac.d.cts\",\n        \"default\": \"./id/mac.cjs\"\n      }\n    },\n    \"./id/mac48\": {\n      \"import\": {\n        \"types\": \"./id/mac48.d.mts\",\n        \"default\": \"./id/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/mac48.d.cts\",\n        \"default\": \"./id/mac48.cjs\"\n      }\n    },\n    \"./id/mac64\": {\n      \"import\": {\n        \"types\": \"./id/mac64.d.mts\",\n        \"default\": \"./id/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/mac64.d.cts\",\n        \"default\": \"./id/mac64.cjs\"\n      }\n    },\n    \"./id/maxBytes\": {\n      \"import\": {\n        \"types\": \"./id/maxBytes.d.mts\",\n        \"default\": \"./id/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/maxBytes.d.cts\",\n        \"default\": \"./id/maxBytes.cjs\"\n      }\n    },\n    \"./id/maxEntries\": {\n      \"import\": {\n        \"types\": \"./id/maxEntries.d.mts\",\n        \"default\": \"./id/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/maxEntries.d.cts\",\n        \"default\": \"./id/maxEntries.cjs\"\n      }\n    },\n    \"./id/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./id/maxGraphemes.d.mts\",\n        \"default\": \"./id/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/maxGraphemes.d.cts\",\n        \"default\": \"./id/maxGraphemes.cjs\"\n      }\n    },\n    \"./id/maxLength\": {\n      \"import\": {\n        \"types\": \"./id/maxLength.d.mts\",\n        \"default\": \"./id/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/maxLength.d.cts\",\n        \"default\": \"./id/maxLength.cjs\"\n      }\n    },\n    \"./id/maxSize\": {\n      \"import\": {\n        \"types\": \"./id/maxSize.d.mts\",\n        \"default\": \"./id/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/maxSize.d.cts\",\n        \"default\": \"./id/maxSize.cjs\"\n      }\n    },\n    \"./id/maxValue\": {\n      \"import\": {\n        \"types\": \"./id/maxValue.d.mts\",\n        \"default\": \"./id/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/maxValue.d.cts\",\n        \"default\": \"./id/maxValue.cjs\"\n      }\n    },\n    \"./id/maxWords\": {\n      \"import\": {\n        \"types\": \"./id/maxWords.d.mts\",\n        \"default\": \"./id/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/maxWords.d.cts\",\n        \"default\": \"./id/maxWords.cjs\"\n      }\n    },\n    \"./id/mimeType\": {\n      \"import\": {\n        \"types\": \"./id/mimeType.d.mts\",\n        \"default\": \"./id/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/mimeType.d.cts\",\n        \"default\": \"./id/mimeType.cjs\"\n      }\n    },\n    \"./id/minBytes\": {\n      \"import\": {\n        \"types\": \"./id/minBytes.d.mts\",\n        \"default\": \"./id/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/minBytes.d.cts\",\n        \"default\": \"./id/minBytes.cjs\"\n      }\n    },\n    \"./id/minEntries\": {\n      \"import\": {\n        \"types\": \"./id/minEntries.d.mts\",\n        \"default\": \"./id/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/minEntries.d.cts\",\n        \"default\": \"./id/minEntries.cjs\"\n      }\n    },\n    \"./id/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./id/minGraphemes.d.mts\",\n        \"default\": \"./id/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/minGraphemes.d.cts\",\n        \"default\": \"./id/minGraphemes.cjs\"\n      }\n    },\n    \"./id/minLength\": {\n      \"import\": {\n        \"types\": \"./id/minLength.d.mts\",\n        \"default\": \"./id/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/minLength.d.cts\",\n        \"default\": \"./id/minLength.cjs\"\n      }\n    },\n    \"./id/minSize\": {\n      \"import\": {\n        \"types\": \"./id/minSize.d.mts\",\n        \"default\": \"./id/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/minSize.d.cts\",\n        \"default\": \"./id/minSize.cjs\"\n      }\n    },\n    \"./id/minValue\": {\n      \"import\": {\n        \"types\": \"./id/minValue.d.mts\",\n        \"default\": \"./id/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/minValue.d.cts\",\n        \"default\": \"./id/minValue.cjs\"\n      }\n    },\n    \"./id/minWords\": {\n      \"import\": {\n        \"types\": \"./id/minWords.d.mts\",\n        \"default\": \"./id/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/minWords.d.cts\",\n        \"default\": \"./id/minWords.cjs\"\n      }\n    },\n    \"./id/multipleOf\": {\n      \"import\": {\n        \"types\": \"./id/multipleOf.d.mts\",\n        \"default\": \"./id/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/multipleOf.d.cts\",\n        \"default\": \"./id/multipleOf.cjs\"\n      }\n    },\n    \"./id/nanoid\": {\n      \"import\": {\n        \"types\": \"./id/nanoid.d.mts\",\n        \"default\": \"./id/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/nanoid.d.cts\",\n        \"default\": \"./id/nanoid.cjs\"\n      }\n    },\n    \"./id/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./id/nonEmpty.d.mts\",\n        \"default\": \"./id/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/nonEmpty.d.cts\",\n        \"default\": \"./id/nonEmpty.cjs\"\n      }\n    },\n    \"./id/notBytes\": {\n      \"import\": {\n        \"types\": \"./id/notBytes.d.mts\",\n        \"default\": \"./id/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/notBytes.d.cts\",\n        \"default\": \"./id/notBytes.cjs\"\n      }\n    },\n    \"./id/notEntries\": {\n      \"import\": {\n        \"types\": \"./id/notEntries.d.mts\",\n        \"default\": \"./id/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/notEntries.d.cts\",\n        \"default\": \"./id/notEntries.cjs\"\n      }\n    },\n    \"./id/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./id/notGraphemes.d.mts\",\n        \"default\": \"./id/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/notGraphemes.d.cts\",\n        \"default\": \"./id/notGraphemes.cjs\"\n      }\n    },\n    \"./id/notLength\": {\n      \"import\": {\n        \"types\": \"./id/notLength.d.mts\",\n        \"default\": \"./id/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/notLength.d.cts\",\n        \"default\": \"./id/notLength.cjs\"\n      }\n    },\n    \"./id/notSize\": {\n      \"import\": {\n        \"types\": \"./id/notSize.d.mts\",\n        \"default\": \"./id/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/notSize.d.cts\",\n        \"default\": \"./id/notSize.cjs\"\n      }\n    },\n    \"./id/notValue\": {\n      \"import\": {\n        \"types\": \"./id/notValue.d.mts\",\n        \"default\": \"./id/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/notValue.d.cts\",\n        \"default\": \"./id/notValue.cjs\"\n      }\n    },\n    \"./id/notValues\": {\n      \"import\": {\n        \"types\": \"./id/notValues.d.mts\",\n        \"default\": \"./id/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/notValues.d.cts\",\n        \"default\": \"./id/notValues.cjs\"\n      }\n    },\n    \"./id/notWords\": {\n      \"import\": {\n        \"types\": \"./id/notWords.d.mts\",\n        \"default\": \"./id/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/notWords.d.cts\",\n        \"default\": \"./id/notWords.cjs\"\n      }\n    },\n    \"./id/octal\": {\n      \"import\": {\n        \"types\": \"./id/octal.d.mts\",\n        \"default\": \"./id/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/octal.d.cts\",\n        \"default\": \"./id/octal.cjs\"\n      }\n    },\n    \"./id/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./id/parseBoolean.d.mts\",\n        \"default\": \"./id/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/parseBoolean.d.cts\",\n        \"default\": \"./id/parseBoolean.cjs\"\n      }\n    },\n    \"./id/parseJson\": {\n      \"import\": {\n        \"types\": \"./id/parseJson.d.mts\",\n        \"default\": \"./id/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/parseJson.d.cts\",\n        \"default\": \"./id/parseJson.cjs\"\n      }\n    },\n    \"./id/partialCheck\": {\n      \"import\": {\n        \"types\": \"./id/partialCheck.d.mts\",\n        \"default\": \"./id/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/partialCheck.d.cts\",\n        \"default\": \"./id/partialCheck.cjs\"\n      }\n    },\n    \"./id/rawCheck\": {\n      \"import\": {\n        \"types\": \"./id/rawCheck.d.mts\",\n        \"default\": \"./id/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/rawCheck.d.cts\",\n        \"default\": \"./id/rawCheck.cjs\"\n      }\n    },\n    \"./id/rawTransform\": {\n      \"import\": {\n        \"types\": \"./id/rawTransform.d.mts\",\n        \"default\": \"./id/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/rawTransform.d.cts\",\n        \"default\": \"./id/rawTransform.cjs\"\n      }\n    },\n    \"./id/regex\": {\n      \"import\": {\n        \"types\": \"./id/regex.d.mts\",\n        \"default\": \"./id/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/regex.d.cts\",\n        \"default\": \"./id/regex.cjs\"\n      }\n    },\n    \"./id/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./id/rfcEmail.d.mts\",\n        \"default\": \"./id/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/rfcEmail.d.cts\",\n        \"default\": \"./id/rfcEmail.cjs\"\n      }\n    },\n    \"./id/safeInteger\": {\n      \"import\": {\n        \"types\": \"./id/safeInteger.d.mts\",\n        \"default\": \"./id/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/safeInteger.d.cts\",\n        \"default\": \"./id/safeInteger.cjs\"\n      }\n    },\n    \"./id/size\": {\n      \"import\": {\n        \"types\": \"./id/size.d.mts\",\n        \"default\": \"./id/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/size.d.cts\",\n        \"default\": \"./id/size.cjs\"\n      }\n    },\n    \"./id/slug\": {\n      \"import\": {\n        \"types\": \"./id/slug.d.mts\",\n        \"default\": \"./id/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/slug.d.cts\",\n        \"default\": \"./id/slug.cjs\"\n      }\n    },\n    \"./id/someItem\": {\n      \"import\": {\n        \"types\": \"./id/someItem.d.mts\",\n        \"default\": \"./id/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/someItem.d.cts\",\n        \"default\": \"./id/someItem.cjs\"\n      }\n    },\n    \"./id/startsWith\": {\n      \"import\": {\n        \"types\": \"./id/startsWith.d.mts\",\n        \"default\": \"./id/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/startsWith.d.cts\",\n        \"default\": \"./id/startsWith.cjs\"\n      }\n    },\n    \"./id/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./id/stringifyJson.d.mts\",\n        \"default\": \"./id/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/stringifyJson.d.cts\",\n        \"default\": \"./id/stringifyJson.cjs\"\n      }\n    },\n    \"./id/toBigint\": {\n      \"import\": {\n        \"types\": \"./id/toBigint.d.mts\",\n        \"default\": \"./id/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/toBigint.d.cts\",\n        \"default\": \"./id/toBigint.cjs\"\n      }\n    },\n    \"./id/toDate\": {\n      \"import\": {\n        \"types\": \"./id/toDate.d.mts\",\n        \"default\": \"./id/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/toDate.d.cts\",\n        \"default\": \"./id/toDate.cjs\"\n      }\n    },\n    \"./id/toNumber\": {\n      \"import\": {\n        \"types\": \"./id/toNumber.d.mts\",\n        \"default\": \"./id/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/toNumber.d.cts\",\n        \"default\": \"./id/toNumber.cjs\"\n      }\n    },\n    \"./id/toString\": {\n      \"import\": {\n        \"types\": \"./id/toString.d.mts\",\n        \"default\": \"./id/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/toString.d.cts\",\n        \"default\": \"./id/toString.cjs\"\n      }\n    },\n    \"./id/ulid\": {\n      \"import\": {\n        \"types\": \"./id/ulid.d.mts\",\n        \"default\": \"./id/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/ulid.d.cts\",\n        \"default\": \"./id/ulid.cjs\"\n      }\n    },\n    \"./id/url\": {\n      \"import\": {\n        \"types\": \"./id/url.d.mts\",\n        \"default\": \"./id/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/url.d.cts\",\n        \"default\": \"./id/url.cjs\"\n      }\n    },\n    \"./id/uuid\": {\n      \"import\": {\n        \"types\": \"./id/uuid.d.mts\",\n        \"default\": \"./id/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/uuid.d.cts\",\n        \"default\": \"./id/uuid.cjs\"\n      }\n    },\n    \"./id/value\": {\n      \"import\": {\n        \"types\": \"./id/value.d.mts\",\n        \"default\": \"./id/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/value.d.cts\",\n        \"default\": \"./id/value.cjs\"\n      }\n    },\n    \"./id/values\": {\n      \"import\": {\n        \"types\": \"./id/values.d.mts\",\n        \"default\": \"./id/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/values.d.cts\",\n        \"default\": \"./id/values.cjs\"\n      }\n    },\n    \"./id/words\": {\n      \"import\": {\n        \"types\": \"./id/words.d.mts\",\n        \"default\": \"./id/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./id/words.d.cts\",\n        \"default\": \"./id/words.cjs\"\n      }\n    },\n    \"./it\": {\n      \"import\": {\n        \"types\": \"./it/index.d.mts\",\n        \"default\": \"./it/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/index.d.cts\",\n        \"default\": \"./it/index.cjs\"\n      }\n    },\n    \"./it/schema\": {\n      \"import\": {\n        \"types\": \"./it/schema.d.mts\",\n        \"default\": \"./it/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/schema.d.cts\",\n        \"default\": \"./it/schema.cjs\"\n      }\n    },\n    \"./it/base64\": {\n      \"import\": {\n        \"types\": \"./it/base64.d.mts\",\n        \"default\": \"./it/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/base64.d.cts\",\n        \"default\": \"./it/base64.cjs\"\n      }\n    },\n    \"./it/bic\": {\n      \"import\": {\n        \"types\": \"./it/bic.d.mts\",\n        \"default\": \"./it/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/bic.d.cts\",\n        \"default\": \"./it/bic.cjs\"\n      }\n    },\n    \"./it/bytes\": {\n      \"import\": {\n        \"types\": \"./it/bytes.d.mts\",\n        \"default\": \"./it/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/bytes.d.cts\",\n        \"default\": \"./it/bytes.cjs\"\n      }\n    },\n    \"./it/check\": {\n      \"import\": {\n        \"types\": \"./it/check.d.mts\",\n        \"default\": \"./it/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/check.d.cts\",\n        \"default\": \"./it/check.cjs\"\n      }\n    },\n    \"./it/checkAsync\": {\n      \"import\": {\n        \"types\": \"./it/checkAsync.d.mts\",\n        \"default\": \"./it/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/checkAsync.d.cts\",\n        \"default\": \"./it/checkAsync.cjs\"\n      }\n    },\n    \"./it/checkItems\": {\n      \"import\": {\n        \"types\": \"./it/checkItems.d.mts\",\n        \"default\": \"./it/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/checkItems.d.cts\",\n        \"default\": \"./it/checkItems.cjs\"\n      }\n    },\n    \"./it/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./it/checkItemsAsync.d.mts\",\n        \"default\": \"./it/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/checkItemsAsync.d.cts\",\n        \"default\": \"./it/checkItemsAsync.cjs\"\n      }\n    },\n    \"./it/creditCard\": {\n      \"import\": {\n        \"types\": \"./it/creditCard.d.mts\",\n        \"default\": \"./it/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/creditCard.d.cts\",\n        \"default\": \"./it/creditCard.cjs\"\n      }\n    },\n    \"./it/cuid2\": {\n      \"import\": {\n        \"types\": \"./it/cuid2.d.mts\",\n        \"default\": \"./it/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/cuid2.d.cts\",\n        \"default\": \"./it/cuid2.cjs\"\n      }\n    },\n    \"./it/decimal\": {\n      \"import\": {\n        \"types\": \"./it/decimal.d.mts\",\n        \"default\": \"./it/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/decimal.d.cts\",\n        \"default\": \"./it/decimal.cjs\"\n      }\n    },\n    \"./it/digits\": {\n      \"import\": {\n        \"types\": \"./it/digits.d.mts\",\n        \"default\": \"./it/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/digits.d.cts\",\n        \"default\": \"./it/digits.cjs\"\n      }\n    },\n    \"./it/domain\": {\n      \"import\": {\n        \"types\": \"./it/domain.d.mts\",\n        \"default\": \"./it/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/domain.d.cts\",\n        \"default\": \"./it/domain.cjs\"\n      }\n    },\n    \"./it/email\": {\n      \"import\": {\n        \"types\": \"./it/email.d.mts\",\n        \"default\": \"./it/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/email.d.cts\",\n        \"default\": \"./it/email.cjs\"\n      }\n    },\n    \"./it/emoji\": {\n      \"import\": {\n        \"types\": \"./it/emoji.d.mts\",\n        \"default\": \"./it/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/emoji.d.cts\",\n        \"default\": \"./it/emoji.cjs\"\n      }\n    },\n    \"./it/empty\": {\n      \"import\": {\n        \"types\": \"./it/empty.d.mts\",\n        \"default\": \"./it/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/empty.d.cts\",\n        \"default\": \"./it/empty.cjs\"\n      }\n    },\n    \"./it/endsWith\": {\n      \"import\": {\n        \"types\": \"./it/endsWith.d.mts\",\n        \"default\": \"./it/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/endsWith.d.cts\",\n        \"default\": \"./it/endsWith.cjs\"\n      }\n    },\n    \"./it/entries\": {\n      \"import\": {\n        \"types\": \"./it/entries.d.mts\",\n        \"default\": \"./it/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/entries.d.cts\",\n        \"default\": \"./it/entries.cjs\"\n      }\n    },\n    \"./it/everyItem\": {\n      \"import\": {\n        \"types\": \"./it/everyItem.d.mts\",\n        \"default\": \"./it/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/everyItem.d.cts\",\n        \"default\": \"./it/everyItem.cjs\"\n      }\n    },\n    \"./it/excludes\": {\n      \"import\": {\n        \"types\": \"./it/excludes.d.mts\",\n        \"default\": \"./it/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/excludes.d.cts\",\n        \"default\": \"./it/excludes.cjs\"\n      }\n    },\n    \"./it/finite\": {\n      \"import\": {\n        \"types\": \"./it/finite.d.mts\",\n        \"default\": \"./it/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/finite.d.cts\",\n        \"default\": \"./it/finite.cjs\"\n      }\n    },\n    \"./it/graphemes\": {\n      \"import\": {\n        \"types\": \"./it/graphemes.d.mts\",\n        \"default\": \"./it/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/graphemes.d.cts\",\n        \"default\": \"./it/graphemes.cjs\"\n      }\n    },\n    \"./it/gtValue\": {\n      \"import\": {\n        \"types\": \"./it/gtValue.d.mts\",\n        \"default\": \"./it/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/gtValue.d.cts\",\n        \"default\": \"./it/gtValue.cjs\"\n      }\n    },\n    \"./it/guard\": {\n      \"import\": {\n        \"types\": \"./it/guard.d.mts\",\n        \"default\": \"./it/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/guard.d.cts\",\n        \"default\": \"./it/guard.cjs\"\n      }\n    },\n    \"./it/hash\": {\n      \"import\": {\n        \"types\": \"./it/hash.d.mts\",\n        \"default\": \"./it/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/hash.d.cts\",\n        \"default\": \"./it/hash.cjs\"\n      }\n    },\n    \"./it/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./it/hexadecimal.d.mts\",\n        \"default\": \"./it/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/hexadecimal.d.cts\",\n        \"default\": \"./it/hexadecimal.cjs\"\n      }\n    },\n    \"./it/hexColor\": {\n      \"import\": {\n        \"types\": \"./it/hexColor.d.mts\",\n        \"default\": \"./it/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/hexColor.d.cts\",\n        \"default\": \"./it/hexColor.cjs\"\n      }\n    },\n    \"./it/imei\": {\n      \"import\": {\n        \"types\": \"./it/imei.d.mts\",\n        \"default\": \"./it/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/imei.d.cts\",\n        \"default\": \"./it/imei.cjs\"\n      }\n    },\n    \"./it/includes\": {\n      \"import\": {\n        \"types\": \"./it/includes.d.mts\",\n        \"default\": \"./it/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/includes.d.cts\",\n        \"default\": \"./it/includes.cjs\"\n      }\n    },\n    \"./it/integer\": {\n      \"import\": {\n        \"types\": \"./it/integer.d.mts\",\n        \"default\": \"./it/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/integer.d.cts\",\n        \"default\": \"./it/integer.cjs\"\n      }\n    },\n    \"./it/ip\": {\n      \"import\": {\n        \"types\": \"./it/ip.d.mts\",\n        \"default\": \"./it/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/ip.d.cts\",\n        \"default\": \"./it/ip.cjs\"\n      }\n    },\n    \"./it/ipv4\": {\n      \"import\": {\n        \"types\": \"./it/ipv4.d.mts\",\n        \"default\": \"./it/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/ipv4.d.cts\",\n        \"default\": \"./it/ipv4.cjs\"\n      }\n    },\n    \"./it/ipv6\": {\n      \"import\": {\n        \"types\": \"./it/ipv6.d.mts\",\n        \"default\": \"./it/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/ipv6.d.cts\",\n        \"default\": \"./it/ipv6.cjs\"\n      }\n    },\n    \"./it/isbn\": {\n      \"import\": {\n        \"types\": \"./it/isbn.d.mts\",\n        \"default\": \"./it/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/isbn.d.cts\",\n        \"default\": \"./it/isbn.cjs\"\n      }\n    },\n    \"./it/isoDate\": {\n      \"import\": {\n        \"types\": \"./it/isoDate.d.mts\",\n        \"default\": \"./it/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/isoDate.d.cts\",\n        \"default\": \"./it/isoDate.cjs\"\n      }\n    },\n    \"./it/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./it/isoDateTime.d.mts\",\n        \"default\": \"./it/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/isoDateTime.d.cts\",\n        \"default\": \"./it/isoDateTime.cjs\"\n      }\n    },\n    \"./it/isoTime\": {\n      \"import\": {\n        \"types\": \"./it/isoTime.d.mts\",\n        \"default\": \"./it/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/isoTime.d.cts\",\n        \"default\": \"./it/isoTime.cjs\"\n      }\n    },\n    \"./it/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./it/isoTimeSecond.d.mts\",\n        \"default\": \"./it/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/isoTimeSecond.d.cts\",\n        \"default\": \"./it/isoTimeSecond.cjs\"\n      }\n    },\n    \"./it/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./it/isoTimestamp.d.mts\",\n        \"default\": \"./it/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/isoTimestamp.d.cts\",\n        \"default\": \"./it/isoTimestamp.cjs\"\n      }\n    },\n    \"./it/isoWeek\": {\n      \"import\": {\n        \"types\": \"./it/isoWeek.d.mts\",\n        \"default\": \"./it/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/isoWeek.d.cts\",\n        \"default\": \"./it/isoWeek.cjs\"\n      }\n    },\n    \"./it/isrc\": {\n      \"import\": {\n        \"types\": \"./it/isrc.d.mts\",\n        \"default\": \"./it/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/isrc.d.cts\",\n        \"default\": \"./it/isrc.cjs\"\n      }\n    },\n    \"./it/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./it/jwsCompact.d.mts\",\n        \"default\": \"./it/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/jwsCompact.d.cts\",\n        \"default\": \"./it/jwsCompact.cjs\"\n      }\n    },\n    \"./it/length\": {\n      \"import\": {\n        \"types\": \"./it/length.d.mts\",\n        \"default\": \"./it/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/length.d.cts\",\n        \"default\": \"./it/length.cjs\"\n      }\n    },\n    \"./it/ltValue\": {\n      \"import\": {\n        \"types\": \"./it/ltValue.d.mts\",\n        \"default\": \"./it/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/ltValue.d.cts\",\n        \"default\": \"./it/ltValue.cjs\"\n      }\n    },\n    \"./it/mac\": {\n      \"import\": {\n        \"types\": \"./it/mac.d.mts\",\n        \"default\": \"./it/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/mac.d.cts\",\n        \"default\": \"./it/mac.cjs\"\n      }\n    },\n    \"./it/mac48\": {\n      \"import\": {\n        \"types\": \"./it/mac48.d.mts\",\n        \"default\": \"./it/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/mac48.d.cts\",\n        \"default\": \"./it/mac48.cjs\"\n      }\n    },\n    \"./it/mac64\": {\n      \"import\": {\n        \"types\": \"./it/mac64.d.mts\",\n        \"default\": \"./it/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/mac64.d.cts\",\n        \"default\": \"./it/mac64.cjs\"\n      }\n    },\n    \"./it/maxBytes\": {\n      \"import\": {\n        \"types\": \"./it/maxBytes.d.mts\",\n        \"default\": \"./it/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/maxBytes.d.cts\",\n        \"default\": \"./it/maxBytes.cjs\"\n      }\n    },\n    \"./it/maxEntries\": {\n      \"import\": {\n        \"types\": \"./it/maxEntries.d.mts\",\n        \"default\": \"./it/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/maxEntries.d.cts\",\n        \"default\": \"./it/maxEntries.cjs\"\n      }\n    },\n    \"./it/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./it/maxGraphemes.d.mts\",\n        \"default\": \"./it/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/maxGraphemes.d.cts\",\n        \"default\": \"./it/maxGraphemes.cjs\"\n      }\n    },\n    \"./it/maxLength\": {\n      \"import\": {\n        \"types\": \"./it/maxLength.d.mts\",\n        \"default\": \"./it/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/maxLength.d.cts\",\n        \"default\": \"./it/maxLength.cjs\"\n      }\n    },\n    \"./it/maxSize\": {\n      \"import\": {\n        \"types\": \"./it/maxSize.d.mts\",\n        \"default\": \"./it/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/maxSize.d.cts\",\n        \"default\": \"./it/maxSize.cjs\"\n      }\n    },\n    \"./it/maxValue\": {\n      \"import\": {\n        \"types\": \"./it/maxValue.d.mts\",\n        \"default\": \"./it/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/maxValue.d.cts\",\n        \"default\": \"./it/maxValue.cjs\"\n      }\n    },\n    \"./it/maxWords\": {\n      \"import\": {\n        \"types\": \"./it/maxWords.d.mts\",\n        \"default\": \"./it/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/maxWords.d.cts\",\n        \"default\": \"./it/maxWords.cjs\"\n      }\n    },\n    \"./it/mimeType\": {\n      \"import\": {\n        \"types\": \"./it/mimeType.d.mts\",\n        \"default\": \"./it/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/mimeType.d.cts\",\n        \"default\": \"./it/mimeType.cjs\"\n      }\n    },\n    \"./it/minBytes\": {\n      \"import\": {\n        \"types\": \"./it/minBytes.d.mts\",\n        \"default\": \"./it/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/minBytes.d.cts\",\n        \"default\": \"./it/minBytes.cjs\"\n      }\n    },\n    \"./it/minEntries\": {\n      \"import\": {\n        \"types\": \"./it/minEntries.d.mts\",\n        \"default\": \"./it/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/minEntries.d.cts\",\n        \"default\": \"./it/minEntries.cjs\"\n      }\n    },\n    \"./it/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./it/minGraphemes.d.mts\",\n        \"default\": \"./it/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/minGraphemes.d.cts\",\n        \"default\": \"./it/minGraphemes.cjs\"\n      }\n    },\n    \"./it/minLength\": {\n      \"import\": {\n        \"types\": \"./it/minLength.d.mts\",\n        \"default\": \"./it/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/minLength.d.cts\",\n        \"default\": \"./it/minLength.cjs\"\n      }\n    },\n    \"./it/minSize\": {\n      \"import\": {\n        \"types\": \"./it/minSize.d.mts\",\n        \"default\": \"./it/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/minSize.d.cts\",\n        \"default\": \"./it/minSize.cjs\"\n      }\n    },\n    \"./it/minValue\": {\n      \"import\": {\n        \"types\": \"./it/minValue.d.mts\",\n        \"default\": \"./it/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/minValue.d.cts\",\n        \"default\": \"./it/minValue.cjs\"\n      }\n    },\n    \"./it/minWords\": {\n      \"import\": {\n        \"types\": \"./it/minWords.d.mts\",\n        \"default\": \"./it/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/minWords.d.cts\",\n        \"default\": \"./it/minWords.cjs\"\n      }\n    },\n    \"./it/multipleOf\": {\n      \"import\": {\n        \"types\": \"./it/multipleOf.d.mts\",\n        \"default\": \"./it/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/multipleOf.d.cts\",\n        \"default\": \"./it/multipleOf.cjs\"\n      }\n    },\n    \"./it/nanoid\": {\n      \"import\": {\n        \"types\": \"./it/nanoid.d.mts\",\n        \"default\": \"./it/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/nanoid.d.cts\",\n        \"default\": \"./it/nanoid.cjs\"\n      }\n    },\n    \"./it/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./it/nonEmpty.d.mts\",\n        \"default\": \"./it/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/nonEmpty.d.cts\",\n        \"default\": \"./it/nonEmpty.cjs\"\n      }\n    },\n    \"./it/notBytes\": {\n      \"import\": {\n        \"types\": \"./it/notBytes.d.mts\",\n        \"default\": \"./it/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/notBytes.d.cts\",\n        \"default\": \"./it/notBytes.cjs\"\n      }\n    },\n    \"./it/notEntries\": {\n      \"import\": {\n        \"types\": \"./it/notEntries.d.mts\",\n        \"default\": \"./it/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/notEntries.d.cts\",\n        \"default\": \"./it/notEntries.cjs\"\n      }\n    },\n    \"./it/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./it/notGraphemes.d.mts\",\n        \"default\": \"./it/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/notGraphemes.d.cts\",\n        \"default\": \"./it/notGraphemes.cjs\"\n      }\n    },\n    \"./it/notLength\": {\n      \"import\": {\n        \"types\": \"./it/notLength.d.mts\",\n        \"default\": \"./it/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/notLength.d.cts\",\n        \"default\": \"./it/notLength.cjs\"\n      }\n    },\n    \"./it/notSize\": {\n      \"import\": {\n        \"types\": \"./it/notSize.d.mts\",\n        \"default\": \"./it/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/notSize.d.cts\",\n        \"default\": \"./it/notSize.cjs\"\n      }\n    },\n    \"./it/notValue\": {\n      \"import\": {\n        \"types\": \"./it/notValue.d.mts\",\n        \"default\": \"./it/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/notValue.d.cts\",\n        \"default\": \"./it/notValue.cjs\"\n      }\n    },\n    \"./it/notValues\": {\n      \"import\": {\n        \"types\": \"./it/notValues.d.mts\",\n        \"default\": \"./it/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/notValues.d.cts\",\n        \"default\": \"./it/notValues.cjs\"\n      }\n    },\n    \"./it/notWords\": {\n      \"import\": {\n        \"types\": \"./it/notWords.d.mts\",\n        \"default\": \"./it/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/notWords.d.cts\",\n        \"default\": \"./it/notWords.cjs\"\n      }\n    },\n    \"./it/octal\": {\n      \"import\": {\n        \"types\": \"./it/octal.d.mts\",\n        \"default\": \"./it/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/octal.d.cts\",\n        \"default\": \"./it/octal.cjs\"\n      }\n    },\n    \"./it/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./it/parseBoolean.d.mts\",\n        \"default\": \"./it/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/parseBoolean.d.cts\",\n        \"default\": \"./it/parseBoolean.cjs\"\n      }\n    },\n    \"./it/parseJson\": {\n      \"import\": {\n        \"types\": \"./it/parseJson.d.mts\",\n        \"default\": \"./it/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/parseJson.d.cts\",\n        \"default\": \"./it/parseJson.cjs\"\n      }\n    },\n    \"./it/partialCheck\": {\n      \"import\": {\n        \"types\": \"./it/partialCheck.d.mts\",\n        \"default\": \"./it/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/partialCheck.d.cts\",\n        \"default\": \"./it/partialCheck.cjs\"\n      }\n    },\n    \"./it/rawCheck\": {\n      \"import\": {\n        \"types\": \"./it/rawCheck.d.mts\",\n        \"default\": \"./it/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/rawCheck.d.cts\",\n        \"default\": \"./it/rawCheck.cjs\"\n      }\n    },\n    \"./it/rawTransform\": {\n      \"import\": {\n        \"types\": \"./it/rawTransform.d.mts\",\n        \"default\": \"./it/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/rawTransform.d.cts\",\n        \"default\": \"./it/rawTransform.cjs\"\n      }\n    },\n    \"./it/regex\": {\n      \"import\": {\n        \"types\": \"./it/regex.d.mts\",\n        \"default\": \"./it/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/regex.d.cts\",\n        \"default\": \"./it/regex.cjs\"\n      }\n    },\n    \"./it/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./it/rfcEmail.d.mts\",\n        \"default\": \"./it/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/rfcEmail.d.cts\",\n        \"default\": \"./it/rfcEmail.cjs\"\n      }\n    },\n    \"./it/safeInteger\": {\n      \"import\": {\n        \"types\": \"./it/safeInteger.d.mts\",\n        \"default\": \"./it/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/safeInteger.d.cts\",\n        \"default\": \"./it/safeInteger.cjs\"\n      }\n    },\n    \"./it/size\": {\n      \"import\": {\n        \"types\": \"./it/size.d.mts\",\n        \"default\": \"./it/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/size.d.cts\",\n        \"default\": \"./it/size.cjs\"\n      }\n    },\n    \"./it/slug\": {\n      \"import\": {\n        \"types\": \"./it/slug.d.mts\",\n        \"default\": \"./it/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/slug.d.cts\",\n        \"default\": \"./it/slug.cjs\"\n      }\n    },\n    \"./it/someItem\": {\n      \"import\": {\n        \"types\": \"./it/someItem.d.mts\",\n        \"default\": \"./it/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/someItem.d.cts\",\n        \"default\": \"./it/someItem.cjs\"\n      }\n    },\n    \"./it/startsWith\": {\n      \"import\": {\n        \"types\": \"./it/startsWith.d.mts\",\n        \"default\": \"./it/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/startsWith.d.cts\",\n        \"default\": \"./it/startsWith.cjs\"\n      }\n    },\n    \"./it/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./it/stringifyJson.d.mts\",\n        \"default\": \"./it/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/stringifyJson.d.cts\",\n        \"default\": \"./it/stringifyJson.cjs\"\n      }\n    },\n    \"./it/toBigint\": {\n      \"import\": {\n        \"types\": \"./it/toBigint.d.mts\",\n        \"default\": \"./it/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/toBigint.d.cts\",\n        \"default\": \"./it/toBigint.cjs\"\n      }\n    },\n    \"./it/toDate\": {\n      \"import\": {\n        \"types\": \"./it/toDate.d.mts\",\n        \"default\": \"./it/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/toDate.d.cts\",\n        \"default\": \"./it/toDate.cjs\"\n      }\n    },\n    \"./it/toNumber\": {\n      \"import\": {\n        \"types\": \"./it/toNumber.d.mts\",\n        \"default\": \"./it/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/toNumber.d.cts\",\n        \"default\": \"./it/toNumber.cjs\"\n      }\n    },\n    \"./it/toString\": {\n      \"import\": {\n        \"types\": \"./it/toString.d.mts\",\n        \"default\": \"./it/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/toString.d.cts\",\n        \"default\": \"./it/toString.cjs\"\n      }\n    },\n    \"./it/ulid\": {\n      \"import\": {\n        \"types\": \"./it/ulid.d.mts\",\n        \"default\": \"./it/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/ulid.d.cts\",\n        \"default\": \"./it/ulid.cjs\"\n      }\n    },\n    \"./it/url\": {\n      \"import\": {\n        \"types\": \"./it/url.d.mts\",\n        \"default\": \"./it/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/url.d.cts\",\n        \"default\": \"./it/url.cjs\"\n      }\n    },\n    \"./it/uuid\": {\n      \"import\": {\n        \"types\": \"./it/uuid.d.mts\",\n        \"default\": \"./it/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/uuid.d.cts\",\n        \"default\": \"./it/uuid.cjs\"\n      }\n    },\n    \"./it/value\": {\n      \"import\": {\n        \"types\": \"./it/value.d.mts\",\n        \"default\": \"./it/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/value.d.cts\",\n        \"default\": \"./it/value.cjs\"\n      }\n    },\n    \"./it/values\": {\n      \"import\": {\n        \"types\": \"./it/values.d.mts\",\n        \"default\": \"./it/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/values.d.cts\",\n        \"default\": \"./it/values.cjs\"\n      }\n    },\n    \"./it/words\": {\n      \"import\": {\n        \"types\": \"./it/words.d.mts\",\n        \"default\": \"./it/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./it/words.d.cts\",\n        \"default\": \"./it/words.cjs\"\n      }\n    },\n    \"./ja\": {\n      \"import\": {\n        \"types\": \"./ja/index.d.mts\",\n        \"default\": \"./ja/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/index.d.cts\",\n        \"default\": \"./ja/index.cjs\"\n      }\n    },\n    \"./ja/schema\": {\n      \"import\": {\n        \"types\": \"./ja/schema.d.mts\",\n        \"default\": \"./ja/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/schema.d.cts\",\n        \"default\": \"./ja/schema.cjs\"\n      }\n    },\n    \"./ja/base64\": {\n      \"import\": {\n        \"types\": \"./ja/base64.d.mts\",\n        \"default\": \"./ja/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/base64.d.cts\",\n        \"default\": \"./ja/base64.cjs\"\n      }\n    },\n    \"./ja/bic\": {\n      \"import\": {\n        \"types\": \"./ja/bic.d.mts\",\n        \"default\": \"./ja/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/bic.d.cts\",\n        \"default\": \"./ja/bic.cjs\"\n      }\n    },\n    \"./ja/bytes\": {\n      \"import\": {\n        \"types\": \"./ja/bytes.d.mts\",\n        \"default\": \"./ja/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/bytes.d.cts\",\n        \"default\": \"./ja/bytes.cjs\"\n      }\n    },\n    \"./ja/check\": {\n      \"import\": {\n        \"types\": \"./ja/check.d.mts\",\n        \"default\": \"./ja/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/check.d.cts\",\n        \"default\": \"./ja/check.cjs\"\n      }\n    },\n    \"./ja/checkAsync\": {\n      \"import\": {\n        \"types\": \"./ja/checkAsync.d.mts\",\n        \"default\": \"./ja/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/checkAsync.d.cts\",\n        \"default\": \"./ja/checkAsync.cjs\"\n      }\n    },\n    \"./ja/checkItems\": {\n      \"import\": {\n        \"types\": \"./ja/checkItems.d.mts\",\n        \"default\": \"./ja/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/checkItems.d.cts\",\n        \"default\": \"./ja/checkItems.cjs\"\n      }\n    },\n    \"./ja/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./ja/checkItemsAsync.d.mts\",\n        \"default\": \"./ja/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/checkItemsAsync.d.cts\",\n        \"default\": \"./ja/checkItemsAsync.cjs\"\n      }\n    },\n    \"./ja/creditCard\": {\n      \"import\": {\n        \"types\": \"./ja/creditCard.d.mts\",\n        \"default\": \"./ja/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/creditCard.d.cts\",\n        \"default\": \"./ja/creditCard.cjs\"\n      }\n    },\n    \"./ja/cuid2\": {\n      \"import\": {\n        \"types\": \"./ja/cuid2.d.mts\",\n        \"default\": \"./ja/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/cuid2.d.cts\",\n        \"default\": \"./ja/cuid2.cjs\"\n      }\n    },\n    \"./ja/decimal\": {\n      \"import\": {\n        \"types\": \"./ja/decimal.d.mts\",\n        \"default\": \"./ja/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/decimal.d.cts\",\n        \"default\": \"./ja/decimal.cjs\"\n      }\n    },\n    \"./ja/digits\": {\n      \"import\": {\n        \"types\": \"./ja/digits.d.mts\",\n        \"default\": \"./ja/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/digits.d.cts\",\n        \"default\": \"./ja/digits.cjs\"\n      }\n    },\n    \"./ja/domain\": {\n      \"import\": {\n        \"types\": \"./ja/domain.d.mts\",\n        \"default\": \"./ja/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/domain.d.cts\",\n        \"default\": \"./ja/domain.cjs\"\n      }\n    },\n    \"./ja/email\": {\n      \"import\": {\n        \"types\": \"./ja/email.d.mts\",\n        \"default\": \"./ja/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/email.d.cts\",\n        \"default\": \"./ja/email.cjs\"\n      }\n    },\n    \"./ja/emoji\": {\n      \"import\": {\n        \"types\": \"./ja/emoji.d.mts\",\n        \"default\": \"./ja/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/emoji.d.cts\",\n        \"default\": \"./ja/emoji.cjs\"\n      }\n    },\n    \"./ja/empty\": {\n      \"import\": {\n        \"types\": \"./ja/empty.d.mts\",\n        \"default\": \"./ja/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/empty.d.cts\",\n        \"default\": \"./ja/empty.cjs\"\n      }\n    },\n    \"./ja/endsWith\": {\n      \"import\": {\n        \"types\": \"./ja/endsWith.d.mts\",\n        \"default\": \"./ja/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/endsWith.d.cts\",\n        \"default\": \"./ja/endsWith.cjs\"\n      }\n    },\n    \"./ja/entries\": {\n      \"import\": {\n        \"types\": \"./ja/entries.d.mts\",\n        \"default\": \"./ja/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/entries.d.cts\",\n        \"default\": \"./ja/entries.cjs\"\n      }\n    },\n    \"./ja/everyItem\": {\n      \"import\": {\n        \"types\": \"./ja/everyItem.d.mts\",\n        \"default\": \"./ja/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/everyItem.d.cts\",\n        \"default\": \"./ja/everyItem.cjs\"\n      }\n    },\n    \"./ja/excludes\": {\n      \"import\": {\n        \"types\": \"./ja/excludes.d.mts\",\n        \"default\": \"./ja/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/excludes.d.cts\",\n        \"default\": \"./ja/excludes.cjs\"\n      }\n    },\n    \"./ja/finite\": {\n      \"import\": {\n        \"types\": \"./ja/finite.d.mts\",\n        \"default\": \"./ja/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/finite.d.cts\",\n        \"default\": \"./ja/finite.cjs\"\n      }\n    },\n    \"./ja/graphemes\": {\n      \"import\": {\n        \"types\": \"./ja/graphemes.d.mts\",\n        \"default\": \"./ja/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/graphemes.d.cts\",\n        \"default\": \"./ja/graphemes.cjs\"\n      }\n    },\n    \"./ja/gtValue\": {\n      \"import\": {\n        \"types\": \"./ja/gtValue.d.mts\",\n        \"default\": \"./ja/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/gtValue.d.cts\",\n        \"default\": \"./ja/gtValue.cjs\"\n      }\n    },\n    \"./ja/guard\": {\n      \"import\": {\n        \"types\": \"./ja/guard.d.mts\",\n        \"default\": \"./ja/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/guard.d.cts\",\n        \"default\": \"./ja/guard.cjs\"\n      }\n    },\n    \"./ja/hash\": {\n      \"import\": {\n        \"types\": \"./ja/hash.d.mts\",\n        \"default\": \"./ja/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/hash.d.cts\",\n        \"default\": \"./ja/hash.cjs\"\n      }\n    },\n    \"./ja/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./ja/hexadecimal.d.mts\",\n        \"default\": \"./ja/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/hexadecimal.d.cts\",\n        \"default\": \"./ja/hexadecimal.cjs\"\n      }\n    },\n    \"./ja/hexColor\": {\n      \"import\": {\n        \"types\": \"./ja/hexColor.d.mts\",\n        \"default\": \"./ja/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/hexColor.d.cts\",\n        \"default\": \"./ja/hexColor.cjs\"\n      }\n    },\n    \"./ja/imei\": {\n      \"import\": {\n        \"types\": \"./ja/imei.d.mts\",\n        \"default\": \"./ja/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/imei.d.cts\",\n        \"default\": \"./ja/imei.cjs\"\n      }\n    },\n    \"./ja/includes\": {\n      \"import\": {\n        \"types\": \"./ja/includes.d.mts\",\n        \"default\": \"./ja/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/includes.d.cts\",\n        \"default\": \"./ja/includes.cjs\"\n      }\n    },\n    \"./ja/integer\": {\n      \"import\": {\n        \"types\": \"./ja/integer.d.mts\",\n        \"default\": \"./ja/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/integer.d.cts\",\n        \"default\": \"./ja/integer.cjs\"\n      }\n    },\n    \"./ja/ip\": {\n      \"import\": {\n        \"types\": \"./ja/ip.d.mts\",\n        \"default\": \"./ja/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/ip.d.cts\",\n        \"default\": \"./ja/ip.cjs\"\n      }\n    },\n    \"./ja/ipv4\": {\n      \"import\": {\n        \"types\": \"./ja/ipv4.d.mts\",\n        \"default\": \"./ja/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/ipv4.d.cts\",\n        \"default\": \"./ja/ipv4.cjs\"\n      }\n    },\n    \"./ja/ipv6\": {\n      \"import\": {\n        \"types\": \"./ja/ipv6.d.mts\",\n        \"default\": \"./ja/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/ipv6.d.cts\",\n        \"default\": \"./ja/ipv6.cjs\"\n      }\n    },\n    \"./ja/isbn\": {\n      \"import\": {\n        \"types\": \"./ja/isbn.d.mts\",\n        \"default\": \"./ja/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/isbn.d.cts\",\n        \"default\": \"./ja/isbn.cjs\"\n      }\n    },\n    \"./ja/isoDate\": {\n      \"import\": {\n        \"types\": \"./ja/isoDate.d.mts\",\n        \"default\": \"./ja/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/isoDate.d.cts\",\n        \"default\": \"./ja/isoDate.cjs\"\n      }\n    },\n    \"./ja/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./ja/isoDateTime.d.mts\",\n        \"default\": \"./ja/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/isoDateTime.d.cts\",\n        \"default\": \"./ja/isoDateTime.cjs\"\n      }\n    },\n    \"./ja/isoTime\": {\n      \"import\": {\n        \"types\": \"./ja/isoTime.d.mts\",\n        \"default\": \"./ja/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/isoTime.d.cts\",\n        \"default\": \"./ja/isoTime.cjs\"\n      }\n    },\n    \"./ja/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./ja/isoTimeSecond.d.mts\",\n        \"default\": \"./ja/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/isoTimeSecond.d.cts\",\n        \"default\": \"./ja/isoTimeSecond.cjs\"\n      }\n    },\n    \"./ja/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./ja/isoTimestamp.d.mts\",\n        \"default\": \"./ja/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/isoTimestamp.d.cts\",\n        \"default\": \"./ja/isoTimestamp.cjs\"\n      }\n    },\n    \"./ja/isoWeek\": {\n      \"import\": {\n        \"types\": \"./ja/isoWeek.d.mts\",\n        \"default\": \"./ja/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/isoWeek.d.cts\",\n        \"default\": \"./ja/isoWeek.cjs\"\n      }\n    },\n    \"./ja/isrc\": {\n      \"import\": {\n        \"types\": \"./ja/isrc.d.mts\",\n        \"default\": \"./ja/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/isrc.d.cts\",\n        \"default\": \"./ja/isrc.cjs\"\n      }\n    },\n    \"./ja/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./ja/jwsCompact.d.mts\",\n        \"default\": \"./ja/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/jwsCompact.d.cts\",\n        \"default\": \"./ja/jwsCompact.cjs\"\n      }\n    },\n    \"./ja/length\": {\n      \"import\": {\n        \"types\": \"./ja/length.d.mts\",\n        \"default\": \"./ja/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/length.d.cts\",\n        \"default\": \"./ja/length.cjs\"\n      }\n    },\n    \"./ja/ltValue\": {\n      \"import\": {\n        \"types\": \"./ja/ltValue.d.mts\",\n        \"default\": \"./ja/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/ltValue.d.cts\",\n        \"default\": \"./ja/ltValue.cjs\"\n      }\n    },\n    \"./ja/mac\": {\n      \"import\": {\n        \"types\": \"./ja/mac.d.mts\",\n        \"default\": \"./ja/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/mac.d.cts\",\n        \"default\": \"./ja/mac.cjs\"\n      }\n    },\n    \"./ja/mac48\": {\n      \"import\": {\n        \"types\": \"./ja/mac48.d.mts\",\n        \"default\": \"./ja/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/mac48.d.cts\",\n        \"default\": \"./ja/mac48.cjs\"\n      }\n    },\n    \"./ja/mac64\": {\n      \"import\": {\n        \"types\": \"./ja/mac64.d.mts\",\n        \"default\": \"./ja/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/mac64.d.cts\",\n        \"default\": \"./ja/mac64.cjs\"\n      }\n    },\n    \"./ja/maxBytes\": {\n      \"import\": {\n        \"types\": \"./ja/maxBytes.d.mts\",\n        \"default\": \"./ja/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/maxBytes.d.cts\",\n        \"default\": \"./ja/maxBytes.cjs\"\n      }\n    },\n    \"./ja/maxEntries\": {\n      \"import\": {\n        \"types\": \"./ja/maxEntries.d.mts\",\n        \"default\": \"./ja/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/maxEntries.d.cts\",\n        \"default\": \"./ja/maxEntries.cjs\"\n      }\n    },\n    \"./ja/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./ja/maxGraphemes.d.mts\",\n        \"default\": \"./ja/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/maxGraphemes.d.cts\",\n        \"default\": \"./ja/maxGraphemes.cjs\"\n      }\n    },\n    \"./ja/maxLength\": {\n      \"import\": {\n        \"types\": \"./ja/maxLength.d.mts\",\n        \"default\": \"./ja/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/maxLength.d.cts\",\n        \"default\": \"./ja/maxLength.cjs\"\n      }\n    },\n    \"./ja/maxSize\": {\n      \"import\": {\n        \"types\": \"./ja/maxSize.d.mts\",\n        \"default\": \"./ja/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/maxSize.d.cts\",\n        \"default\": \"./ja/maxSize.cjs\"\n      }\n    },\n    \"./ja/maxValue\": {\n      \"import\": {\n        \"types\": \"./ja/maxValue.d.mts\",\n        \"default\": \"./ja/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/maxValue.d.cts\",\n        \"default\": \"./ja/maxValue.cjs\"\n      }\n    },\n    \"./ja/maxWords\": {\n      \"import\": {\n        \"types\": \"./ja/maxWords.d.mts\",\n        \"default\": \"./ja/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/maxWords.d.cts\",\n        \"default\": \"./ja/maxWords.cjs\"\n      }\n    },\n    \"./ja/mimeType\": {\n      \"import\": {\n        \"types\": \"./ja/mimeType.d.mts\",\n        \"default\": \"./ja/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/mimeType.d.cts\",\n        \"default\": \"./ja/mimeType.cjs\"\n      }\n    },\n    \"./ja/minBytes\": {\n      \"import\": {\n        \"types\": \"./ja/minBytes.d.mts\",\n        \"default\": \"./ja/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/minBytes.d.cts\",\n        \"default\": \"./ja/minBytes.cjs\"\n      }\n    },\n    \"./ja/minEntries\": {\n      \"import\": {\n        \"types\": \"./ja/minEntries.d.mts\",\n        \"default\": \"./ja/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/minEntries.d.cts\",\n        \"default\": \"./ja/minEntries.cjs\"\n      }\n    },\n    \"./ja/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./ja/minGraphemes.d.mts\",\n        \"default\": \"./ja/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/minGraphemes.d.cts\",\n        \"default\": \"./ja/minGraphemes.cjs\"\n      }\n    },\n    \"./ja/minLength\": {\n      \"import\": {\n        \"types\": \"./ja/minLength.d.mts\",\n        \"default\": \"./ja/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/minLength.d.cts\",\n        \"default\": \"./ja/minLength.cjs\"\n      }\n    },\n    \"./ja/minSize\": {\n      \"import\": {\n        \"types\": \"./ja/minSize.d.mts\",\n        \"default\": \"./ja/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/minSize.d.cts\",\n        \"default\": \"./ja/minSize.cjs\"\n      }\n    },\n    \"./ja/minValue\": {\n      \"import\": {\n        \"types\": \"./ja/minValue.d.mts\",\n        \"default\": \"./ja/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/minValue.d.cts\",\n        \"default\": \"./ja/minValue.cjs\"\n      }\n    },\n    \"./ja/minWords\": {\n      \"import\": {\n        \"types\": \"./ja/minWords.d.mts\",\n        \"default\": \"./ja/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/minWords.d.cts\",\n        \"default\": \"./ja/minWords.cjs\"\n      }\n    },\n    \"./ja/multipleOf\": {\n      \"import\": {\n        \"types\": \"./ja/multipleOf.d.mts\",\n        \"default\": \"./ja/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/multipleOf.d.cts\",\n        \"default\": \"./ja/multipleOf.cjs\"\n      }\n    },\n    \"./ja/nanoid\": {\n      \"import\": {\n        \"types\": \"./ja/nanoid.d.mts\",\n        \"default\": \"./ja/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/nanoid.d.cts\",\n        \"default\": \"./ja/nanoid.cjs\"\n      }\n    },\n    \"./ja/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./ja/nonEmpty.d.mts\",\n        \"default\": \"./ja/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/nonEmpty.d.cts\",\n        \"default\": \"./ja/nonEmpty.cjs\"\n      }\n    },\n    \"./ja/notBytes\": {\n      \"import\": {\n        \"types\": \"./ja/notBytes.d.mts\",\n        \"default\": \"./ja/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/notBytes.d.cts\",\n        \"default\": \"./ja/notBytes.cjs\"\n      }\n    },\n    \"./ja/notEntries\": {\n      \"import\": {\n        \"types\": \"./ja/notEntries.d.mts\",\n        \"default\": \"./ja/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/notEntries.d.cts\",\n        \"default\": \"./ja/notEntries.cjs\"\n      }\n    },\n    \"./ja/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./ja/notGraphemes.d.mts\",\n        \"default\": \"./ja/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/notGraphemes.d.cts\",\n        \"default\": \"./ja/notGraphemes.cjs\"\n      }\n    },\n    \"./ja/notLength\": {\n      \"import\": {\n        \"types\": \"./ja/notLength.d.mts\",\n        \"default\": \"./ja/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/notLength.d.cts\",\n        \"default\": \"./ja/notLength.cjs\"\n      }\n    },\n    \"./ja/notSize\": {\n      \"import\": {\n        \"types\": \"./ja/notSize.d.mts\",\n        \"default\": \"./ja/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/notSize.d.cts\",\n        \"default\": \"./ja/notSize.cjs\"\n      }\n    },\n    \"./ja/notValue\": {\n      \"import\": {\n        \"types\": \"./ja/notValue.d.mts\",\n        \"default\": \"./ja/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/notValue.d.cts\",\n        \"default\": \"./ja/notValue.cjs\"\n      }\n    },\n    \"./ja/notValues\": {\n      \"import\": {\n        \"types\": \"./ja/notValues.d.mts\",\n        \"default\": \"./ja/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/notValues.d.cts\",\n        \"default\": \"./ja/notValues.cjs\"\n      }\n    },\n    \"./ja/notWords\": {\n      \"import\": {\n        \"types\": \"./ja/notWords.d.mts\",\n        \"default\": \"./ja/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/notWords.d.cts\",\n        \"default\": \"./ja/notWords.cjs\"\n      }\n    },\n    \"./ja/octal\": {\n      \"import\": {\n        \"types\": \"./ja/octal.d.mts\",\n        \"default\": \"./ja/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/octal.d.cts\",\n        \"default\": \"./ja/octal.cjs\"\n      }\n    },\n    \"./ja/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./ja/parseBoolean.d.mts\",\n        \"default\": \"./ja/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/parseBoolean.d.cts\",\n        \"default\": \"./ja/parseBoolean.cjs\"\n      }\n    },\n    \"./ja/parseJson\": {\n      \"import\": {\n        \"types\": \"./ja/parseJson.d.mts\",\n        \"default\": \"./ja/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/parseJson.d.cts\",\n        \"default\": \"./ja/parseJson.cjs\"\n      }\n    },\n    \"./ja/partialCheck\": {\n      \"import\": {\n        \"types\": \"./ja/partialCheck.d.mts\",\n        \"default\": \"./ja/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/partialCheck.d.cts\",\n        \"default\": \"./ja/partialCheck.cjs\"\n      }\n    },\n    \"./ja/rawCheck\": {\n      \"import\": {\n        \"types\": \"./ja/rawCheck.d.mts\",\n        \"default\": \"./ja/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/rawCheck.d.cts\",\n        \"default\": \"./ja/rawCheck.cjs\"\n      }\n    },\n    \"./ja/rawTransform\": {\n      \"import\": {\n        \"types\": \"./ja/rawTransform.d.mts\",\n        \"default\": \"./ja/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/rawTransform.d.cts\",\n        \"default\": \"./ja/rawTransform.cjs\"\n      }\n    },\n    \"./ja/regex\": {\n      \"import\": {\n        \"types\": \"./ja/regex.d.mts\",\n        \"default\": \"./ja/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/regex.d.cts\",\n        \"default\": \"./ja/regex.cjs\"\n      }\n    },\n    \"./ja/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./ja/rfcEmail.d.mts\",\n        \"default\": \"./ja/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/rfcEmail.d.cts\",\n        \"default\": \"./ja/rfcEmail.cjs\"\n      }\n    },\n    \"./ja/safeInteger\": {\n      \"import\": {\n        \"types\": \"./ja/safeInteger.d.mts\",\n        \"default\": \"./ja/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/safeInteger.d.cts\",\n        \"default\": \"./ja/safeInteger.cjs\"\n      }\n    },\n    \"./ja/size\": {\n      \"import\": {\n        \"types\": \"./ja/size.d.mts\",\n        \"default\": \"./ja/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/size.d.cts\",\n        \"default\": \"./ja/size.cjs\"\n      }\n    },\n    \"./ja/slug\": {\n      \"import\": {\n        \"types\": \"./ja/slug.d.mts\",\n        \"default\": \"./ja/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/slug.d.cts\",\n        \"default\": \"./ja/slug.cjs\"\n      }\n    },\n    \"./ja/someItem\": {\n      \"import\": {\n        \"types\": \"./ja/someItem.d.mts\",\n        \"default\": \"./ja/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/someItem.d.cts\",\n        \"default\": \"./ja/someItem.cjs\"\n      }\n    },\n    \"./ja/startsWith\": {\n      \"import\": {\n        \"types\": \"./ja/startsWith.d.mts\",\n        \"default\": \"./ja/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/startsWith.d.cts\",\n        \"default\": \"./ja/startsWith.cjs\"\n      }\n    },\n    \"./ja/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./ja/stringifyJson.d.mts\",\n        \"default\": \"./ja/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/stringifyJson.d.cts\",\n        \"default\": \"./ja/stringifyJson.cjs\"\n      }\n    },\n    \"./ja/toBigint\": {\n      \"import\": {\n        \"types\": \"./ja/toBigint.d.mts\",\n        \"default\": \"./ja/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/toBigint.d.cts\",\n        \"default\": \"./ja/toBigint.cjs\"\n      }\n    },\n    \"./ja/toDate\": {\n      \"import\": {\n        \"types\": \"./ja/toDate.d.mts\",\n        \"default\": \"./ja/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/toDate.d.cts\",\n        \"default\": \"./ja/toDate.cjs\"\n      }\n    },\n    \"./ja/toNumber\": {\n      \"import\": {\n        \"types\": \"./ja/toNumber.d.mts\",\n        \"default\": \"./ja/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/toNumber.d.cts\",\n        \"default\": \"./ja/toNumber.cjs\"\n      }\n    },\n    \"./ja/toString\": {\n      \"import\": {\n        \"types\": \"./ja/toString.d.mts\",\n        \"default\": \"./ja/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/toString.d.cts\",\n        \"default\": \"./ja/toString.cjs\"\n      }\n    },\n    \"./ja/ulid\": {\n      \"import\": {\n        \"types\": \"./ja/ulid.d.mts\",\n        \"default\": \"./ja/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/ulid.d.cts\",\n        \"default\": \"./ja/ulid.cjs\"\n      }\n    },\n    \"./ja/url\": {\n      \"import\": {\n        \"types\": \"./ja/url.d.mts\",\n        \"default\": \"./ja/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/url.d.cts\",\n        \"default\": \"./ja/url.cjs\"\n      }\n    },\n    \"./ja/uuid\": {\n      \"import\": {\n        \"types\": \"./ja/uuid.d.mts\",\n        \"default\": \"./ja/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/uuid.d.cts\",\n        \"default\": \"./ja/uuid.cjs\"\n      }\n    },\n    \"./ja/value\": {\n      \"import\": {\n        \"types\": \"./ja/value.d.mts\",\n        \"default\": \"./ja/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/value.d.cts\",\n        \"default\": \"./ja/value.cjs\"\n      }\n    },\n    \"./ja/values\": {\n      \"import\": {\n        \"types\": \"./ja/values.d.mts\",\n        \"default\": \"./ja/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/values.d.cts\",\n        \"default\": \"./ja/values.cjs\"\n      }\n    },\n    \"./ja/words\": {\n      \"import\": {\n        \"types\": \"./ja/words.d.mts\",\n        \"default\": \"./ja/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ja/words.d.cts\",\n        \"default\": \"./ja/words.cjs\"\n      }\n    },\n    \"./ko\": {\n      \"import\": {\n        \"types\": \"./ko/index.d.mts\",\n        \"default\": \"./ko/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/index.d.cts\",\n        \"default\": \"./ko/index.cjs\"\n      }\n    },\n    \"./ko/schema\": {\n      \"import\": {\n        \"types\": \"./ko/schema.d.mts\",\n        \"default\": \"./ko/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/schema.d.cts\",\n        \"default\": \"./ko/schema.cjs\"\n      }\n    },\n    \"./ko/base64\": {\n      \"import\": {\n        \"types\": \"./ko/base64.d.mts\",\n        \"default\": \"./ko/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/base64.d.cts\",\n        \"default\": \"./ko/base64.cjs\"\n      }\n    },\n    \"./ko/bic\": {\n      \"import\": {\n        \"types\": \"./ko/bic.d.mts\",\n        \"default\": \"./ko/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/bic.d.cts\",\n        \"default\": \"./ko/bic.cjs\"\n      }\n    },\n    \"./ko/bytes\": {\n      \"import\": {\n        \"types\": \"./ko/bytes.d.mts\",\n        \"default\": \"./ko/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/bytes.d.cts\",\n        \"default\": \"./ko/bytes.cjs\"\n      }\n    },\n    \"./ko/check\": {\n      \"import\": {\n        \"types\": \"./ko/check.d.mts\",\n        \"default\": \"./ko/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/check.d.cts\",\n        \"default\": \"./ko/check.cjs\"\n      }\n    },\n    \"./ko/checkAsync\": {\n      \"import\": {\n        \"types\": \"./ko/checkAsync.d.mts\",\n        \"default\": \"./ko/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/checkAsync.d.cts\",\n        \"default\": \"./ko/checkAsync.cjs\"\n      }\n    },\n    \"./ko/checkItems\": {\n      \"import\": {\n        \"types\": \"./ko/checkItems.d.mts\",\n        \"default\": \"./ko/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/checkItems.d.cts\",\n        \"default\": \"./ko/checkItems.cjs\"\n      }\n    },\n    \"./ko/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./ko/checkItemsAsync.d.mts\",\n        \"default\": \"./ko/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/checkItemsAsync.d.cts\",\n        \"default\": \"./ko/checkItemsAsync.cjs\"\n      }\n    },\n    \"./ko/creditCard\": {\n      \"import\": {\n        \"types\": \"./ko/creditCard.d.mts\",\n        \"default\": \"./ko/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/creditCard.d.cts\",\n        \"default\": \"./ko/creditCard.cjs\"\n      }\n    },\n    \"./ko/cuid2\": {\n      \"import\": {\n        \"types\": \"./ko/cuid2.d.mts\",\n        \"default\": \"./ko/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/cuid2.d.cts\",\n        \"default\": \"./ko/cuid2.cjs\"\n      }\n    },\n    \"./ko/decimal\": {\n      \"import\": {\n        \"types\": \"./ko/decimal.d.mts\",\n        \"default\": \"./ko/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/decimal.d.cts\",\n        \"default\": \"./ko/decimal.cjs\"\n      }\n    },\n    \"./ko/digits\": {\n      \"import\": {\n        \"types\": \"./ko/digits.d.mts\",\n        \"default\": \"./ko/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/digits.d.cts\",\n        \"default\": \"./ko/digits.cjs\"\n      }\n    },\n    \"./ko/domain\": {\n      \"import\": {\n        \"types\": \"./ko/domain.d.mts\",\n        \"default\": \"./ko/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/domain.d.cts\",\n        \"default\": \"./ko/domain.cjs\"\n      }\n    },\n    \"./ko/email\": {\n      \"import\": {\n        \"types\": \"./ko/email.d.mts\",\n        \"default\": \"./ko/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/email.d.cts\",\n        \"default\": \"./ko/email.cjs\"\n      }\n    },\n    \"./ko/emoji\": {\n      \"import\": {\n        \"types\": \"./ko/emoji.d.mts\",\n        \"default\": \"./ko/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/emoji.d.cts\",\n        \"default\": \"./ko/emoji.cjs\"\n      }\n    },\n    \"./ko/empty\": {\n      \"import\": {\n        \"types\": \"./ko/empty.d.mts\",\n        \"default\": \"./ko/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/empty.d.cts\",\n        \"default\": \"./ko/empty.cjs\"\n      }\n    },\n    \"./ko/endsWith\": {\n      \"import\": {\n        \"types\": \"./ko/endsWith.d.mts\",\n        \"default\": \"./ko/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/endsWith.d.cts\",\n        \"default\": \"./ko/endsWith.cjs\"\n      }\n    },\n    \"./ko/entries\": {\n      \"import\": {\n        \"types\": \"./ko/entries.d.mts\",\n        \"default\": \"./ko/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/entries.d.cts\",\n        \"default\": \"./ko/entries.cjs\"\n      }\n    },\n    \"./ko/everyItem\": {\n      \"import\": {\n        \"types\": \"./ko/everyItem.d.mts\",\n        \"default\": \"./ko/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/everyItem.d.cts\",\n        \"default\": \"./ko/everyItem.cjs\"\n      }\n    },\n    \"./ko/excludes\": {\n      \"import\": {\n        \"types\": \"./ko/excludes.d.mts\",\n        \"default\": \"./ko/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/excludes.d.cts\",\n        \"default\": \"./ko/excludes.cjs\"\n      }\n    },\n    \"./ko/finite\": {\n      \"import\": {\n        \"types\": \"./ko/finite.d.mts\",\n        \"default\": \"./ko/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/finite.d.cts\",\n        \"default\": \"./ko/finite.cjs\"\n      }\n    },\n    \"./ko/graphemes\": {\n      \"import\": {\n        \"types\": \"./ko/graphemes.d.mts\",\n        \"default\": \"./ko/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/graphemes.d.cts\",\n        \"default\": \"./ko/graphemes.cjs\"\n      }\n    },\n    \"./ko/gtValue\": {\n      \"import\": {\n        \"types\": \"./ko/gtValue.d.mts\",\n        \"default\": \"./ko/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/gtValue.d.cts\",\n        \"default\": \"./ko/gtValue.cjs\"\n      }\n    },\n    \"./ko/guard\": {\n      \"import\": {\n        \"types\": \"./ko/guard.d.mts\",\n        \"default\": \"./ko/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/guard.d.cts\",\n        \"default\": \"./ko/guard.cjs\"\n      }\n    },\n    \"./ko/hash\": {\n      \"import\": {\n        \"types\": \"./ko/hash.d.mts\",\n        \"default\": \"./ko/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/hash.d.cts\",\n        \"default\": \"./ko/hash.cjs\"\n      }\n    },\n    \"./ko/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./ko/hexadecimal.d.mts\",\n        \"default\": \"./ko/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/hexadecimal.d.cts\",\n        \"default\": \"./ko/hexadecimal.cjs\"\n      }\n    },\n    \"./ko/hexColor\": {\n      \"import\": {\n        \"types\": \"./ko/hexColor.d.mts\",\n        \"default\": \"./ko/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/hexColor.d.cts\",\n        \"default\": \"./ko/hexColor.cjs\"\n      }\n    },\n    \"./ko/imei\": {\n      \"import\": {\n        \"types\": \"./ko/imei.d.mts\",\n        \"default\": \"./ko/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/imei.d.cts\",\n        \"default\": \"./ko/imei.cjs\"\n      }\n    },\n    \"./ko/includes\": {\n      \"import\": {\n        \"types\": \"./ko/includes.d.mts\",\n        \"default\": \"./ko/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/includes.d.cts\",\n        \"default\": \"./ko/includes.cjs\"\n      }\n    },\n    \"./ko/integer\": {\n      \"import\": {\n        \"types\": \"./ko/integer.d.mts\",\n        \"default\": \"./ko/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/integer.d.cts\",\n        \"default\": \"./ko/integer.cjs\"\n      }\n    },\n    \"./ko/ip\": {\n      \"import\": {\n        \"types\": \"./ko/ip.d.mts\",\n        \"default\": \"./ko/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/ip.d.cts\",\n        \"default\": \"./ko/ip.cjs\"\n      }\n    },\n    \"./ko/ipv4\": {\n      \"import\": {\n        \"types\": \"./ko/ipv4.d.mts\",\n        \"default\": \"./ko/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/ipv4.d.cts\",\n        \"default\": \"./ko/ipv4.cjs\"\n      }\n    },\n    \"./ko/ipv6\": {\n      \"import\": {\n        \"types\": \"./ko/ipv6.d.mts\",\n        \"default\": \"./ko/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/ipv6.d.cts\",\n        \"default\": \"./ko/ipv6.cjs\"\n      }\n    },\n    \"./ko/isbn\": {\n      \"import\": {\n        \"types\": \"./ko/isbn.d.mts\",\n        \"default\": \"./ko/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/isbn.d.cts\",\n        \"default\": \"./ko/isbn.cjs\"\n      }\n    },\n    \"./ko/isoDate\": {\n      \"import\": {\n        \"types\": \"./ko/isoDate.d.mts\",\n        \"default\": \"./ko/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/isoDate.d.cts\",\n        \"default\": \"./ko/isoDate.cjs\"\n      }\n    },\n    \"./ko/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./ko/isoDateTime.d.mts\",\n        \"default\": \"./ko/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/isoDateTime.d.cts\",\n        \"default\": \"./ko/isoDateTime.cjs\"\n      }\n    },\n    \"./ko/isoTime\": {\n      \"import\": {\n        \"types\": \"./ko/isoTime.d.mts\",\n        \"default\": \"./ko/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/isoTime.d.cts\",\n        \"default\": \"./ko/isoTime.cjs\"\n      }\n    },\n    \"./ko/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./ko/isoTimeSecond.d.mts\",\n        \"default\": \"./ko/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/isoTimeSecond.d.cts\",\n        \"default\": \"./ko/isoTimeSecond.cjs\"\n      }\n    },\n    \"./ko/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./ko/isoTimestamp.d.mts\",\n        \"default\": \"./ko/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/isoTimestamp.d.cts\",\n        \"default\": \"./ko/isoTimestamp.cjs\"\n      }\n    },\n    \"./ko/isoWeek\": {\n      \"import\": {\n        \"types\": \"./ko/isoWeek.d.mts\",\n        \"default\": \"./ko/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/isoWeek.d.cts\",\n        \"default\": \"./ko/isoWeek.cjs\"\n      }\n    },\n    \"./ko/isrc\": {\n      \"import\": {\n        \"types\": \"./ko/isrc.d.mts\",\n        \"default\": \"./ko/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/isrc.d.cts\",\n        \"default\": \"./ko/isrc.cjs\"\n      }\n    },\n    \"./ko/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./ko/jwsCompact.d.mts\",\n        \"default\": \"./ko/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/jwsCompact.d.cts\",\n        \"default\": \"./ko/jwsCompact.cjs\"\n      }\n    },\n    \"./ko/length\": {\n      \"import\": {\n        \"types\": \"./ko/length.d.mts\",\n        \"default\": \"./ko/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/length.d.cts\",\n        \"default\": \"./ko/length.cjs\"\n      }\n    },\n    \"./ko/ltValue\": {\n      \"import\": {\n        \"types\": \"./ko/ltValue.d.mts\",\n        \"default\": \"./ko/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/ltValue.d.cts\",\n        \"default\": \"./ko/ltValue.cjs\"\n      }\n    },\n    \"./ko/mac\": {\n      \"import\": {\n        \"types\": \"./ko/mac.d.mts\",\n        \"default\": \"./ko/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/mac.d.cts\",\n        \"default\": \"./ko/mac.cjs\"\n      }\n    },\n    \"./ko/mac48\": {\n      \"import\": {\n        \"types\": \"./ko/mac48.d.mts\",\n        \"default\": \"./ko/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/mac48.d.cts\",\n        \"default\": \"./ko/mac48.cjs\"\n      }\n    },\n    \"./ko/mac64\": {\n      \"import\": {\n        \"types\": \"./ko/mac64.d.mts\",\n        \"default\": \"./ko/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/mac64.d.cts\",\n        \"default\": \"./ko/mac64.cjs\"\n      }\n    },\n    \"./ko/maxBytes\": {\n      \"import\": {\n        \"types\": \"./ko/maxBytes.d.mts\",\n        \"default\": \"./ko/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/maxBytes.d.cts\",\n        \"default\": \"./ko/maxBytes.cjs\"\n      }\n    },\n    \"./ko/maxEntries\": {\n      \"import\": {\n        \"types\": \"./ko/maxEntries.d.mts\",\n        \"default\": \"./ko/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/maxEntries.d.cts\",\n        \"default\": \"./ko/maxEntries.cjs\"\n      }\n    },\n    \"./ko/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./ko/maxGraphemes.d.mts\",\n        \"default\": \"./ko/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/maxGraphemes.d.cts\",\n        \"default\": \"./ko/maxGraphemes.cjs\"\n      }\n    },\n    \"./ko/maxLength\": {\n      \"import\": {\n        \"types\": \"./ko/maxLength.d.mts\",\n        \"default\": \"./ko/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/maxLength.d.cts\",\n        \"default\": \"./ko/maxLength.cjs\"\n      }\n    },\n    \"./ko/maxSize\": {\n      \"import\": {\n        \"types\": \"./ko/maxSize.d.mts\",\n        \"default\": \"./ko/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/maxSize.d.cts\",\n        \"default\": \"./ko/maxSize.cjs\"\n      }\n    },\n    \"./ko/maxValue\": {\n      \"import\": {\n        \"types\": \"./ko/maxValue.d.mts\",\n        \"default\": \"./ko/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/maxValue.d.cts\",\n        \"default\": \"./ko/maxValue.cjs\"\n      }\n    },\n    \"./ko/maxWords\": {\n      \"import\": {\n        \"types\": \"./ko/maxWords.d.mts\",\n        \"default\": \"./ko/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/maxWords.d.cts\",\n        \"default\": \"./ko/maxWords.cjs\"\n      }\n    },\n    \"./ko/mimeType\": {\n      \"import\": {\n        \"types\": \"./ko/mimeType.d.mts\",\n        \"default\": \"./ko/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/mimeType.d.cts\",\n        \"default\": \"./ko/mimeType.cjs\"\n      }\n    },\n    \"./ko/minBytes\": {\n      \"import\": {\n        \"types\": \"./ko/minBytes.d.mts\",\n        \"default\": \"./ko/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/minBytes.d.cts\",\n        \"default\": \"./ko/minBytes.cjs\"\n      }\n    },\n    \"./ko/minEntries\": {\n      \"import\": {\n        \"types\": \"./ko/minEntries.d.mts\",\n        \"default\": \"./ko/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/minEntries.d.cts\",\n        \"default\": \"./ko/minEntries.cjs\"\n      }\n    },\n    \"./ko/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./ko/minGraphemes.d.mts\",\n        \"default\": \"./ko/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/minGraphemes.d.cts\",\n        \"default\": \"./ko/minGraphemes.cjs\"\n      }\n    },\n    \"./ko/minLength\": {\n      \"import\": {\n        \"types\": \"./ko/minLength.d.mts\",\n        \"default\": \"./ko/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/minLength.d.cts\",\n        \"default\": \"./ko/minLength.cjs\"\n      }\n    },\n    \"./ko/minSize\": {\n      \"import\": {\n        \"types\": \"./ko/minSize.d.mts\",\n        \"default\": \"./ko/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/minSize.d.cts\",\n        \"default\": \"./ko/minSize.cjs\"\n      }\n    },\n    \"./ko/minValue\": {\n      \"import\": {\n        \"types\": \"./ko/minValue.d.mts\",\n        \"default\": \"./ko/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/minValue.d.cts\",\n        \"default\": \"./ko/minValue.cjs\"\n      }\n    },\n    \"./ko/minWords\": {\n      \"import\": {\n        \"types\": \"./ko/minWords.d.mts\",\n        \"default\": \"./ko/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/minWords.d.cts\",\n        \"default\": \"./ko/minWords.cjs\"\n      }\n    },\n    \"./ko/multipleOf\": {\n      \"import\": {\n        \"types\": \"./ko/multipleOf.d.mts\",\n        \"default\": \"./ko/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/multipleOf.d.cts\",\n        \"default\": \"./ko/multipleOf.cjs\"\n      }\n    },\n    \"./ko/nanoid\": {\n      \"import\": {\n        \"types\": \"./ko/nanoid.d.mts\",\n        \"default\": \"./ko/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/nanoid.d.cts\",\n        \"default\": \"./ko/nanoid.cjs\"\n      }\n    },\n    \"./ko/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./ko/nonEmpty.d.mts\",\n        \"default\": \"./ko/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/nonEmpty.d.cts\",\n        \"default\": \"./ko/nonEmpty.cjs\"\n      }\n    },\n    \"./ko/notBytes\": {\n      \"import\": {\n        \"types\": \"./ko/notBytes.d.mts\",\n        \"default\": \"./ko/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/notBytes.d.cts\",\n        \"default\": \"./ko/notBytes.cjs\"\n      }\n    },\n    \"./ko/notEntries\": {\n      \"import\": {\n        \"types\": \"./ko/notEntries.d.mts\",\n        \"default\": \"./ko/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/notEntries.d.cts\",\n        \"default\": \"./ko/notEntries.cjs\"\n      }\n    },\n    \"./ko/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./ko/notGraphemes.d.mts\",\n        \"default\": \"./ko/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/notGraphemes.d.cts\",\n        \"default\": \"./ko/notGraphemes.cjs\"\n      }\n    },\n    \"./ko/notLength\": {\n      \"import\": {\n        \"types\": \"./ko/notLength.d.mts\",\n        \"default\": \"./ko/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/notLength.d.cts\",\n        \"default\": \"./ko/notLength.cjs\"\n      }\n    },\n    \"./ko/notSize\": {\n      \"import\": {\n        \"types\": \"./ko/notSize.d.mts\",\n        \"default\": \"./ko/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/notSize.d.cts\",\n        \"default\": \"./ko/notSize.cjs\"\n      }\n    },\n    \"./ko/notValue\": {\n      \"import\": {\n        \"types\": \"./ko/notValue.d.mts\",\n        \"default\": \"./ko/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/notValue.d.cts\",\n        \"default\": \"./ko/notValue.cjs\"\n      }\n    },\n    \"./ko/notValues\": {\n      \"import\": {\n        \"types\": \"./ko/notValues.d.mts\",\n        \"default\": \"./ko/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/notValues.d.cts\",\n        \"default\": \"./ko/notValues.cjs\"\n      }\n    },\n    \"./ko/notWords\": {\n      \"import\": {\n        \"types\": \"./ko/notWords.d.mts\",\n        \"default\": \"./ko/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/notWords.d.cts\",\n        \"default\": \"./ko/notWords.cjs\"\n      }\n    },\n    \"./ko/octal\": {\n      \"import\": {\n        \"types\": \"./ko/octal.d.mts\",\n        \"default\": \"./ko/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/octal.d.cts\",\n        \"default\": \"./ko/octal.cjs\"\n      }\n    },\n    \"./ko/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./ko/parseBoolean.d.mts\",\n        \"default\": \"./ko/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/parseBoolean.d.cts\",\n        \"default\": \"./ko/parseBoolean.cjs\"\n      }\n    },\n    \"./ko/parseJson\": {\n      \"import\": {\n        \"types\": \"./ko/parseJson.d.mts\",\n        \"default\": \"./ko/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/parseJson.d.cts\",\n        \"default\": \"./ko/parseJson.cjs\"\n      }\n    },\n    \"./ko/partialCheck\": {\n      \"import\": {\n        \"types\": \"./ko/partialCheck.d.mts\",\n        \"default\": \"./ko/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/partialCheck.d.cts\",\n        \"default\": \"./ko/partialCheck.cjs\"\n      }\n    },\n    \"./ko/rawCheck\": {\n      \"import\": {\n        \"types\": \"./ko/rawCheck.d.mts\",\n        \"default\": \"./ko/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/rawCheck.d.cts\",\n        \"default\": \"./ko/rawCheck.cjs\"\n      }\n    },\n    \"./ko/rawTransform\": {\n      \"import\": {\n        \"types\": \"./ko/rawTransform.d.mts\",\n        \"default\": \"./ko/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/rawTransform.d.cts\",\n        \"default\": \"./ko/rawTransform.cjs\"\n      }\n    },\n    \"./ko/regex\": {\n      \"import\": {\n        \"types\": \"./ko/regex.d.mts\",\n        \"default\": \"./ko/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/regex.d.cts\",\n        \"default\": \"./ko/regex.cjs\"\n      }\n    },\n    \"./ko/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./ko/rfcEmail.d.mts\",\n        \"default\": \"./ko/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/rfcEmail.d.cts\",\n        \"default\": \"./ko/rfcEmail.cjs\"\n      }\n    },\n    \"./ko/safeInteger\": {\n      \"import\": {\n        \"types\": \"./ko/safeInteger.d.mts\",\n        \"default\": \"./ko/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/safeInteger.d.cts\",\n        \"default\": \"./ko/safeInteger.cjs\"\n      }\n    },\n    \"./ko/size\": {\n      \"import\": {\n        \"types\": \"./ko/size.d.mts\",\n        \"default\": \"./ko/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/size.d.cts\",\n        \"default\": \"./ko/size.cjs\"\n      }\n    },\n    \"./ko/slug\": {\n      \"import\": {\n        \"types\": \"./ko/slug.d.mts\",\n        \"default\": \"./ko/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/slug.d.cts\",\n        \"default\": \"./ko/slug.cjs\"\n      }\n    },\n    \"./ko/someItem\": {\n      \"import\": {\n        \"types\": \"./ko/someItem.d.mts\",\n        \"default\": \"./ko/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/someItem.d.cts\",\n        \"default\": \"./ko/someItem.cjs\"\n      }\n    },\n    \"./ko/startsWith\": {\n      \"import\": {\n        \"types\": \"./ko/startsWith.d.mts\",\n        \"default\": \"./ko/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/startsWith.d.cts\",\n        \"default\": \"./ko/startsWith.cjs\"\n      }\n    },\n    \"./ko/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./ko/stringifyJson.d.mts\",\n        \"default\": \"./ko/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/stringifyJson.d.cts\",\n        \"default\": \"./ko/stringifyJson.cjs\"\n      }\n    },\n    \"./ko/toBigint\": {\n      \"import\": {\n        \"types\": \"./ko/toBigint.d.mts\",\n        \"default\": \"./ko/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/toBigint.d.cts\",\n        \"default\": \"./ko/toBigint.cjs\"\n      }\n    },\n    \"./ko/toDate\": {\n      \"import\": {\n        \"types\": \"./ko/toDate.d.mts\",\n        \"default\": \"./ko/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/toDate.d.cts\",\n        \"default\": \"./ko/toDate.cjs\"\n      }\n    },\n    \"./ko/toNumber\": {\n      \"import\": {\n        \"types\": \"./ko/toNumber.d.mts\",\n        \"default\": \"./ko/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/toNumber.d.cts\",\n        \"default\": \"./ko/toNumber.cjs\"\n      }\n    },\n    \"./ko/toString\": {\n      \"import\": {\n        \"types\": \"./ko/toString.d.mts\",\n        \"default\": \"./ko/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/toString.d.cts\",\n        \"default\": \"./ko/toString.cjs\"\n      }\n    },\n    \"./ko/ulid\": {\n      \"import\": {\n        \"types\": \"./ko/ulid.d.mts\",\n        \"default\": \"./ko/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/ulid.d.cts\",\n        \"default\": \"./ko/ulid.cjs\"\n      }\n    },\n    \"./ko/url\": {\n      \"import\": {\n        \"types\": \"./ko/url.d.mts\",\n        \"default\": \"./ko/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/url.d.cts\",\n        \"default\": \"./ko/url.cjs\"\n      }\n    },\n    \"./ko/uuid\": {\n      \"import\": {\n        \"types\": \"./ko/uuid.d.mts\",\n        \"default\": \"./ko/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/uuid.d.cts\",\n        \"default\": \"./ko/uuid.cjs\"\n      }\n    },\n    \"./ko/value\": {\n      \"import\": {\n        \"types\": \"./ko/value.d.mts\",\n        \"default\": \"./ko/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/value.d.cts\",\n        \"default\": \"./ko/value.cjs\"\n      }\n    },\n    \"./ko/values\": {\n      \"import\": {\n        \"types\": \"./ko/values.d.mts\",\n        \"default\": \"./ko/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/values.d.cts\",\n        \"default\": \"./ko/values.cjs\"\n      }\n    },\n    \"./ko/words\": {\n      \"import\": {\n        \"types\": \"./ko/words.d.mts\",\n        \"default\": \"./ko/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ko/words.d.cts\",\n        \"default\": \"./ko/words.cjs\"\n      }\n    },\n    \"./kr\": {\n      \"import\": {\n        \"types\": \"./kr/index.d.mts\",\n        \"default\": \"./kr/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/index.d.cts\",\n        \"default\": \"./kr/index.cjs\"\n      }\n    },\n    \"./kr/schema\": {\n      \"import\": {\n        \"types\": \"./kr/schema.d.mts\",\n        \"default\": \"./kr/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/schema.d.cts\",\n        \"default\": \"./kr/schema.cjs\"\n      }\n    },\n    \"./kr/base64\": {\n      \"import\": {\n        \"types\": \"./kr/base64.d.mts\",\n        \"default\": \"./kr/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/base64.d.cts\",\n        \"default\": \"./kr/base64.cjs\"\n      }\n    },\n    \"./kr/bic\": {\n      \"import\": {\n        \"types\": \"./kr/bic.d.mts\",\n        \"default\": \"./kr/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/bic.d.cts\",\n        \"default\": \"./kr/bic.cjs\"\n      }\n    },\n    \"./kr/bytes\": {\n      \"import\": {\n        \"types\": \"./kr/bytes.d.mts\",\n        \"default\": \"./kr/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/bytes.d.cts\",\n        \"default\": \"./kr/bytes.cjs\"\n      }\n    },\n    \"./kr/check\": {\n      \"import\": {\n        \"types\": \"./kr/check.d.mts\",\n        \"default\": \"./kr/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/check.d.cts\",\n        \"default\": \"./kr/check.cjs\"\n      }\n    },\n    \"./kr/checkAsync\": {\n      \"import\": {\n        \"types\": \"./kr/checkAsync.d.mts\",\n        \"default\": \"./kr/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/checkAsync.d.cts\",\n        \"default\": \"./kr/checkAsync.cjs\"\n      }\n    },\n    \"./kr/checkItems\": {\n      \"import\": {\n        \"types\": \"./kr/checkItems.d.mts\",\n        \"default\": \"./kr/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/checkItems.d.cts\",\n        \"default\": \"./kr/checkItems.cjs\"\n      }\n    },\n    \"./kr/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./kr/checkItemsAsync.d.mts\",\n        \"default\": \"./kr/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/checkItemsAsync.d.cts\",\n        \"default\": \"./kr/checkItemsAsync.cjs\"\n      }\n    },\n    \"./kr/creditCard\": {\n      \"import\": {\n        \"types\": \"./kr/creditCard.d.mts\",\n        \"default\": \"./kr/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/creditCard.d.cts\",\n        \"default\": \"./kr/creditCard.cjs\"\n      }\n    },\n    \"./kr/cuid2\": {\n      \"import\": {\n        \"types\": \"./kr/cuid2.d.mts\",\n        \"default\": \"./kr/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/cuid2.d.cts\",\n        \"default\": \"./kr/cuid2.cjs\"\n      }\n    },\n    \"./kr/decimal\": {\n      \"import\": {\n        \"types\": \"./kr/decimal.d.mts\",\n        \"default\": \"./kr/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/decimal.d.cts\",\n        \"default\": \"./kr/decimal.cjs\"\n      }\n    },\n    \"./kr/digits\": {\n      \"import\": {\n        \"types\": \"./kr/digits.d.mts\",\n        \"default\": \"./kr/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/digits.d.cts\",\n        \"default\": \"./kr/digits.cjs\"\n      }\n    },\n    \"./kr/domain\": {\n      \"import\": {\n        \"types\": \"./kr/domain.d.mts\",\n        \"default\": \"./kr/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/domain.d.cts\",\n        \"default\": \"./kr/domain.cjs\"\n      }\n    },\n    \"./kr/email\": {\n      \"import\": {\n        \"types\": \"./kr/email.d.mts\",\n        \"default\": \"./kr/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/email.d.cts\",\n        \"default\": \"./kr/email.cjs\"\n      }\n    },\n    \"./kr/emoji\": {\n      \"import\": {\n        \"types\": \"./kr/emoji.d.mts\",\n        \"default\": \"./kr/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/emoji.d.cts\",\n        \"default\": \"./kr/emoji.cjs\"\n      }\n    },\n    \"./kr/empty\": {\n      \"import\": {\n        \"types\": \"./kr/empty.d.mts\",\n        \"default\": \"./kr/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/empty.d.cts\",\n        \"default\": \"./kr/empty.cjs\"\n      }\n    },\n    \"./kr/endsWith\": {\n      \"import\": {\n        \"types\": \"./kr/endsWith.d.mts\",\n        \"default\": \"./kr/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/endsWith.d.cts\",\n        \"default\": \"./kr/endsWith.cjs\"\n      }\n    },\n    \"./kr/entries\": {\n      \"import\": {\n        \"types\": \"./kr/entries.d.mts\",\n        \"default\": \"./kr/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/entries.d.cts\",\n        \"default\": \"./kr/entries.cjs\"\n      }\n    },\n    \"./kr/everyItem\": {\n      \"import\": {\n        \"types\": \"./kr/everyItem.d.mts\",\n        \"default\": \"./kr/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/everyItem.d.cts\",\n        \"default\": \"./kr/everyItem.cjs\"\n      }\n    },\n    \"./kr/excludes\": {\n      \"import\": {\n        \"types\": \"./kr/excludes.d.mts\",\n        \"default\": \"./kr/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/excludes.d.cts\",\n        \"default\": \"./kr/excludes.cjs\"\n      }\n    },\n    \"./kr/finite\": {\n      \"import\": {\n        \"types\": \"./kr/finite.d.mts\",\n        \"default\": \"./kr/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/finite.d.cts\",\n        \"default\": \"./kr/finite.cjs\"\n      }\n    },\n    \"./kr/graphemes\": {\n      \"import\": {\n        \"types\": \"./kr/graphemes.d.mts\",\n        \"default\": \"./kr/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/graphemes.d.cts\",\n        \"default\": \"./kr/graphemes.cjs\"\n      }\n    },\n    \"./kr/gtValue\": {\n      \"import\": {\n        \"types\": \"./kr/gtValue.d.mts\",\n        \"default\": \"./kr/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/gtValue.d.cts\",\n        \"default\": \"./kr/gtValue.cjs\"\n      }\n    },\n    \"./kr/guard\": {\n      \"import\": {\n        \"types\": \"./kr/guard.d.mts\",\n        \"default\": \"./kr/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/guard.d.cts\",\n        \"default\": \"./kr/guard.cjs\"\n      }\n    },\n    \"./kr/hash\": {\n      \"import\": {\n        \"types\": \"./kr/hash.d.mts\",\n        \"default\": \"./kr/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/hash.d.cts\",\n        \"default\": \"./kr/hash.cjs\"\n      }\n    },\n    \"./kr/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./kr/hexadecimal.d.mts\",\n        \"default\": \"./kr/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/hexadecimal.d.cts\",\n        \"default\": \"./kr/hexadecimal.cjs\"\n      }\n    },\n    \"./kr/hexColor\": {\n      \"import\": {\n        \"types\": \"./kr/hexColor.d.mts\",\n        \"default\": \"./kr/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/hexColor.d.cts\",\n        \"default\": \"./kr/hexColor.cjs\"\n      }\n    },\n    \"./kr/imei\": {\n      \"import\": {\n        \"types\": \"./kr/imei.d.mts\",\n        \"default\": \"./kr/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/imei.d.cts\",\n        \"default\": \"./kr/imei.cjs\"\n      }\n    },\n    \"./kr/includes\": {\n      \"import\": {\n        \"types\": \"./kr/includes.d.mts\",\n        \"default\": \"./kr/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/includes.d.cts\",\n        \"default\": \"./kr/includes.cjs\"\n      }\n    },\n    \"./kr/integer\": {\n      \"import\": {\n        \"types\": \"./kr/integer.d.mts\",\n        \"default\": \"./kr/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/integer.d.cts\",\n        \"default\": \"./kr/integer.cjs\"\n      }\n    },\n    \"./kr/ip\": {\n      \"import\": {\n        \"types\": \"./kr/ip.d.mts\",\n        \"default\": \"./kr/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/ip.d.cts\",\n        \"default\": \"./kr/ip.cjs\"\n      }\n    },\n    \"./kr/ipv4\": {\n      \"import\": {\n        \"types\": \"./kr/ipv4.d.mts\",\n        \"default\": \"./kr/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/ipv4.d.cts\",\n        \"default\": \"./kr/ipv4.cjs\"\n      }\n    },\n    \"./kr/ipv6\": {\n      \"import\": {\n        \"types\": \"./kr/ipv6.d.mts\",\n        \"default\": \"./kr/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/ipv6.d.cts\",\n        \"default\": \"./kr/ipv6.cjs\"\n      }\n    },\n    \"./kr/isbn\": {\n      \"import\": {\n        \"types\": \"./kr/isbn.d.mts\",\n        \"default\": \"./kr/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/isbn.d.cts\",\n        \"default\": \"./kr/isbn.cjs\"\n      }\n    },\n    \"./kr/isoDate\": {\n      \"import\": {\n        \"types\": \"./kr/isoDate.d.mts\",\n        \"default\": \"./kr/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/isoDate.d.cts\",\n        \"default\": \"./kr/isoDate.cjs\"\n      }\n    },\n    \"./kr/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./kr/isoDateTime.d.mts\",\n        \"default\": \"./kr/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/isoDateTime.d.cts\",\n        \"default\": \"./kr/isoDateTime.cjs\"\n      }\n    },\n    \"./kr/isoTime\": {\n      \"import\": {\n        \"types\": \"./kr/isoTime.d.mts\",\n        \"default\": \"./kr/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/isoTime.d.cts\",\n        \"default\": \"./kr/isoTime.cjs\"\n      }\n    },\n    \"./kr/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./kr/isoTimeSecond.d.mts\",\n        \"default\": \"./kr/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/isoTimeSecond.d.cts\",\n        \"default\": \"./kr/isoTimeSecond.cjs\"\n      }\n    },\n    \"./kr/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./kr/isoTimestamp.d.mts\",\n        \"default\": \"./kr/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/isoTimestamp.d.cts\",\n        \"default\": \"./kr/isoTimestamp.cjs\"\n      }\n    },\n    \"./kr/isoWeek\": {\n      \"import\": {\n        \"types\": \"./kr/isoWeek.d.mts\",\n        \"default\": \"./kr/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/isoWeek.d.cts\",\n        \"default\": \"./kr/isoWeek.cjs\"\n      }\n    },\n    \"./kr/isrc\": {\n      \"import\": {\n        \"types\": \"./kr/isrc.d.mts\",\n        \"default\": \"./kr/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/isrc.d.cts\",\n        \"default\": \"./kr/isrc.cjs\"\n      }\n    },\n    \"./kr/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./kr/jwsCompact.d.mts\",\n        \"default\": \"./kr/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/jwsCompact.d.cts\",\n        \"default\": \"./kr/jwsCompact.cjs\"\n      }\n    },\n    \"./kr/length\": {\n      \"import\": {\n        \"types\": \"./kr/length.d.mts\",\n        \"default\": \"./kr/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/length.d.cts\",\n        \"default\": \"./kr/length.cjs\"\n      }\n    },\n    \"./kr/ltValue\": {\n      \"import\": {\n        \"types\": \"./kr/ltValue.d.mts\",\n        \"default\": \"./kr/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/ltValue.d.cts\",\n        \"default\": \"./kr/ltValue.cjs\"\n      }\n    },\n    \"./kr/mac\": {\n      \"import\": {\n        \"types\": \"./kr/mac.d.mts\",\n        \"default\": \"./kr/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/mac.d.cts\",\n        \"default\": \"./kr/mac.cjs\"\n      }\n    },\n    \"./kr/mac48\": {\n      \"import\": {\n        \"types\": \"./kr/mac48.d.mts\",\n        \"default\": \"./kr/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/mac48.d.cts\",\n        \"default\": \"./kr/mac48.cjs\"\n      }\n    },\n    \"./kr/mac64\": {\n      \"import\": {\n        \"types\": \"./kr/mac64.d.mts\",\n        \"default\": \"./kr/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/mac64.d.cts\",\n        \"default\": \"./kr/mac64.cjs\"\n      }\n    },\n    \"./kr/maxBytes\": {\n      \"import\": {\n        \"types\": \"./kr/maxBytes.d.mts\",\n        \"default\": \"./kr/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/maxBytes.d.cts\",\n        \"default\": \"./kr/maxBytes.cjs\"\n      }\n    },\n    \"./kr/maxEntries\": {\n      \"import\": {\n        \"types\": \"./kr/maxEntries.d.mts\",\n        \"default\": \"./kr/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/maxEntries.d.cts\",\n        \"default\": \"./kr/maxEntries.cjs\"\n      }\n    },\n    \"./kr/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./kr/maxGraphemes.d.mts\",\n        \"default\": \"./kr/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/maxGraphemes.d.cts\",\n        \"default\": \"./kr/maxGraphemes.cjs\"\n      }\n    },\n    \"./kr/maxLength\": {\n      \"import\": {\n        \"types\": \"./kr/maxLength.d.mts\",\n        \"default\": \"./kr/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/maxLength.d.cts\",\n        \"default\": \"./kr/maxLength.cjs\"\n      }\n    },\n    \"./kr/maxSize\": {\n      \"import\": {\n        \"types\": \"./kr/maxSize.d.mts\",\n        \"default\": \"./kr/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/maxSize.d.cts\",\n        \"default\": \"./kr/maxSize.cjs\"\n      }\n    },\n    \"./kr/maxValue\": {\n      \"import\": {\n        \"types\": \"./kr/maxValue.d.mts\",\n        \"default\": \"./kr/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/maxValue.d.cts\",\n        \"default\": \"./kr/maxValue.cjs\"\n      }\n    },\n    \"./kr/maxWords\": {\n      \"import\": {\n        \"types\": \"./kr/maxWords.d.mts\",\n        \"default\": \"./kr/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/maxWords.d.cts\",\n        \"default\": \"./kr/maxWords.cjs\"\n      }\n    },\n    \"./kr/mimeType\": {\n      \"import\": {\n        \"types\": \"./kr/mimeType.d.mts\",\n        \"default\": \"./kr/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/mimeType.d.cts\",\n        \"default\": \"./kr/mimeType.cjs\"\n      }\n    },\n    \"./kr/minBytes\": {\n      \"import\": {\n        \"types\": \"./kr/minBytes.d.mts\",\n        \"default\": \"./kr/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/minBytes.d.cts\",\n        \"default\": \"./kr/minBytes.cjs\"\n      }\n    },\n    \"./kr/minEntries\": {\n      \"import\": {\n        \"types\": \"./kr/minEntries.d.mts\",\n        \"default\": \"./kr/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/minEntries.d.cts\",\n        \"default\": \"./kr/minEntries.cjs\"\n      }\n    },\n    \"./kr/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./kr/minGraphemes.d.mts\",\n        \"default\": \"./kr/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/minGraphemes.d.cts\",\n        \"default\": \"./kr/minGraphemes.cjs\"\n      }\n    },\n    \"./kr/minLength\": {\n      \"import\": {\n        \"types\": \"./kr/minLength.d.mts\",\n        \"default\": \"./kr/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/minLength.d.cts\",\n        \"default\": \"./kr/minLength.cjs\"\n      }\n    },\n    \"./kr/minSize\": {\n      \"import\": {\n        \"types\": \"./kr/minSize.d.mts\",\n        \"default\": \"./kr/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/minSize.d.cts\",\n        \"default\": \"./kr/minSize.cjs\"\n      }\n    },\n    \"./kr/minValue\": {\n      \"import\": {\n        \"types\": \"./kr/minValue.d.mts\",\n        \"default\": \"./kr/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/minValue.d.cts\",\n        \"default\": \"./kr/minValue.cjs\"\n      }\n    },\n    \"./kr/minWords\": {\n      \"import\": {\n        \"types\": \"./kr/minWords.d.mts\",\n        \"default\": \"./kr/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/minWords.d.cts\",\n        \"default\": \"./kr/minWords.cjs\"\n      }\n    },\n    \"./kr/multipleOf\": {\n      \"import\": {\n        \"types\": \"./kr/multipleOf.d.mts\",\n        \"default\": \"./kr/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/multipleOf.d.cts\",\n        \"default\": \"./kr/multipleOf.cjs\"\n      }\n    },\n    \"./kr/nanoid\": {\n      \"import\": {\n        \"types\": \"./kr/nanoid.d.mts\",\n        \"default\": \"./kr/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/nanoid.d.cts\",\n        \"default\": \"./kr/nanoid.cjs\"\n      }\n    },\n    \"./kr/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./kr/nonEmpty.d.mts\",\n        \"default\": \"./kr/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/nonEmpty.d.cts\",\n        \"default\": \"./kr/nonEmpty.cjs\"\n      }\n    },\n    \"./kr/notBytes\": {\n      \"import\": {\n        \"types\": \"./kr/notBytes.d.mts\",\n        \"default\": \"./kr/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/notBytes.d.cts\",\n        \"default\": \"./kr/notBytes.cjs\"\n      }\n    },\n    \"./kr/notEntries\": {\n      \"import\": {\n        \"types\": \"./kr/notEntries.d.mts\",\n        \"default\": \"./kr/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/notEntries.d.cts\",\n        \"default\": \"./kr/notEntries.cjs\"\n      }\n    },\n    \"./kr/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./kr/notGraphemes.d.mts\",\n        \"default\": \"./kr/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/notGraphemes.d.cts\",\n        \"default\": \"./kr/notGraphemes.cjs\"\n      }\n    },\n    \"./kr/notLength\": {\n      \"import\": {\n        \"types\": \"./kr/notLength.d.mts\",\n        \"default\": \"./kr/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/notLength.d.cts\",\n        \"default\": \"./kr/notLength.cjs\"\n      }\n    },\n    \"./kr/notSize\": {\n      \"import\": {\n        \"types\": \"./kr/notSize.d.mts\",\n        \"default\": \"./kr/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/notSize.d.cts\",\n        \"default\": \"./kr/notSize.cjs\"\n      }\n    },\n    \"./kr/notValue\": {\n      \"import\": {\n        \"types\": \"./kr/notValue.d.mts\",\n        \"default\": \"./kr/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/notValue.d.cts\",\n        \"default\": \"./kr/notValue.cjs\"\n      }\n    },\n    \"./kr/notValues\": {\n      \"import\": {\n        \"types\": \"./kr/notValues.d.mts\",\n        \"default\": \"./kr/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/notValues.d.cts\",\n        \"default\": \"./kr/notValues.cjs\"\n      }\n    },\n    \"./kr/notWords\": {\n      \"import\": {\n        \"types\": \"./kr/notWords.d.mts\",\n        \"default\": \"./kr/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/notWords.d.cts\",\n        \"default\": \"./kr/notWords.cjs\"\n      }\n    },\n    \"./kr/octal\": {\n      \"import\": {\n        \"types\": \"./kr/octal.d.mts\",\n        \"default\": \"./kr/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/octal.d.cts\",\n        \"default\": \"./kr/octal.cjs\"\n      }\n    },\n    \"./kr/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./kr/parseBoolean.d.mts\",\n        \"default\": \"./kr/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/parseBoolean.d.cts\",\n        \"default\": \"./kr/parseBoolean.cjs\"\n      }\n    },\n    \"./kr/parseJson\": {\n      \"import\": {\n        \"types\": \"./kr/parseJson.d.mts\",\n        \"default\": \"./kr/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/parseJson.d.cts\",\n        \"default\": \"./kr/parseJson.cjs\"\n      }\n    },\n    \"./kr/partialCheck\": {\n      \"import\": {\n        \"types\": \"./kr/partialCheck.d.mts\",\n        \"default\": \"./kr/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/partialCheck.d.cts\",\n        \"default\": \"./kr/partialCheck.cjs\"\n      }\n    },\n    \"./kr/rawCheck\": {\n      \"import\": {\n        \"types\": \"./kr/rawCheck.d.mts\",\n        \"default\": \"./kr/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/rawCheck.d.cts\",\n        \"default\": \"./kr/rawCheck.cjs\"\n      }\n    },\n    \"./kr/rawTransform\": {\n      \"import\": {\n        \"types\": \"./kr/rawTransform.d.mts\",\n        \"default\": \"./kr/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/rawTransform.d.cts\",\n        \"default\": \"./kr/rawTransform.cjs\"\n      }\n    },\n    \"./kr/regex\": {\n      \"import\": {\n        \"types\": \"./kr/regex.d.mts\",\n        \"default\": \"./kr/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/regex.d.cts\",\n        \"default\": \"./kr/regex.cjs\"\n      }\n    },\n    \"./kr/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./kr/rfcEmail.d.mts\",\n        \"default\": \"./kr/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/rfcEmail.d.cts\",\n        \"default\": \"./kr/rfcEmail.cjs\"\n      }\n    },\n    \"./kr/safeInteger\": {\n      \"import\": {\n        \"types\": \"./kr/safeInteger.d.mts\",\n        \"default\": \"./kr/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/safeInteger.d.cts\",\n        \"default\": \"./kr/safeInteger.cjs\"\n      }\n    },\n    \"./kr/size\": {\n      \"import\": {\n        \"types\": \"./kr/size.d.mts\",\n        \"default\": \"./kr/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/size.d.cts\",\n        \"default\": \"./kr/size.cjs\"\n      }\n    },\n    \"./kr/slug\": {\n      \"import\": {\n        \"types\": \"./kr/slug.d.mts\",\n        \"default\": \"./kr/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/slug.d.cts\",\n        \"default\": \"./kr/slug.cjs\"\n      }\n    },\n    \"./kr/someItem\": {\n      \"import\": {\n        \"types\": \"./kr/someItem.d.mts\",\n        \"default\": \"./kr/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/someItem.d.cts\",\n        \"default\": \"./kr/someItem.cjs\"\n      }\n    },\n    \"./kr/startsWith\": {\n      \"import\": {\n        \"types\": \"./kr/startsWith.d.mts\",\n        \"default\": \"./kr/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/startsWith.d.cts\",\n        \"default\": \"./kr/startsWith.cjs\"\n      }\n    },\n    \"./kr/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./kr/stringifyJson.d.mts\",\n        \"default\": \"./kr/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/stringifyJson.d.cts\",\n        \"default\": \"./kr/stringifyJson.cjs\"\n      }\n    },\n    \"./kr/toBigint\": {\n      \"import\": {\n        \"types\": \"./kr/toBigint.d.mts\",\n        \"default\": \"./kr/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/toBigint.d.cts\",\n        \"default\": \"./kr/toBigint.cjs\"\n      }\n    },\n    \"./kr/toDate\": {\n      \"import\": {\n        \"types\": \"./kr/toDate.d.mts\",\n        \"default\": \"./kr/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/toDate.d.cts\",\n        \"default\": \"./kr/toDate.cjs\"\n      }\n    },\n    \"./kr/toNumber\": {\n      \"import\": {\n        \"types\": \"./kr/toNumber.d.mts\",\n        \"default\": \"./kr/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/toNumber.d.cts\",\n        \"default\": \"./kr/toNumber.cjs\"\n      }\n    },\n    \"./kr/toString\": {\n      \"import\": {\n        \"types\": \"./kr/toString.d.mts\",\n        \"default\": \"./kr/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/toString.d.cts\",\n        \"default\": \"./kr/toString.cjs\"\n      }\n    },\n    \"./kr/ulid\": {\n      \"import\": {\n        \"types\": \"./kr/ulid.d.mts\",\n        \"default\": \"./kr/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/ulid.d.cts\",\n        \"default\": \"./kr/ulid.cjs\"\n      }\n    },\n    \"./kr/url\": {\n      \"import\": {\n        \"types\": \"./kr/url.d.mts\",\n        \"default\": \"./kr/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/url.d.cts\",\n        \"default\": \"./kr/url.cjs\"\n      }\n    },\n    \"./kr/uuid\": {\n      \"import\": {\n        \"types\": \"./kr/uuid.d.mts\",\n        \"default\": \"./kr/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/uuid.d.cts\",\n        \"default\": \"./kr/uuid.cjs\"\n      }\n    },\n    \"./kr/value\": {\n      \"import\": {\n        \"types\": \"./kr/value.d.mts\",\n        \"default\": \"./kr/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/value.d.cts\",\n        \"default\": \"./kr/value.cjs\"\n      }\n    },\n    \"./kr/values\": {\n      \"import\": {\n        \"types\": \"./kr/values.d.mts\",\n        \"default\": \"./kr/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/values.d.cts\",\n        \"default\": \"./kr/values.cjs\"\n      }\n    },\n    \"./kr/words\": {\n      \"import\": {\n        \"types\": \"./kr/words.d.mts\",\n        \"default\": \"./kr/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./kr/words.d.cts\",\n        \"default\": \"./kr/words.cjs\"\n      }\n    },\n    \"./mn\": {\n      \"import\": {\n        \"types\": \"./mn/index.d.mts\",\n        \"default\": \"./mn/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/index.d.cts\",\n        \"default\": \"./mn/index.cjs\"\n      }\n    },\n    \"./mn/schema\": {\n      \"import\": {\n        \"types\": \"./mn/schema.d.mts\",\n        \"default\": \"./mn/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/schema.d.cts\",\n        \"default\": \"./mn/schema.cjs\"\n      }\n    },\n    \"./mn/base64\": {\n      \"import\": {\n        \"types\": \"./mn/base64.d.mts\",\n        \"default\": \"./mn/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/base64.d.cts\",\n        \"default\": \"./mn/base64.cjs\"\n      }\n    },\n    \"./mn/bic\": {\n      \"import\": {\n        \"types\": \"./mn/bic.d.mts\",\n        \"default\": \"./mn/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/bic.d.cts\",\n        \"default\": \"./mn/bic.cjs\"\n      }\n    },\n    \"./mn/bytes\": {\n      \"import\": {\n        \"types\": \"./mn/bytes.d.mts\",\n        \"default\": \"./mn/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/bytes.d.cts\",\n        \"default\": \"./mn/bytes.cjs\"\n      }\n    },\n    \"./mn/check\": {\n      \"import\": {\n        \"types\": \"./mn/check.d.mts\",\n        \"default\": \"./mn/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/check.d.cts\",\n        \"default\": \"./mn/check.cjs\"\n      }\n    },\n    \"./mn/checkAsync\": {\n      \"import\": {\n        \"types\": \"./mn/checkAsync.d.mts\",\n        \"default\": \"./mn/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/checkAsync.d.cts\",\n        \"default\": \"./mn/checkAsync.cjs\"\n      }\n    },\n    \"./mn/checkItems\": {\n      \"import\": {\n        \"types\": \"./mn/checkItems.d.mts\",\n        \"default\": \"./mn/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/checkItems.d.cts\",\n        \"default\": \"./mn/checkItems.cjs\"\n      }\n    },\n    \"./mn/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./mn/checkItemsAsync.d.mts\",\n        \"default\": \"./mn/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/checkItemsAsync.d.cts\",\n        \"default\": \"./mn/checkItemsAsync.cjs\"\n      }\n    },\n    \"./mn/creditCard\": {\n      \"import\": {\n        \"types\": \"./mn/creditCard.d.mts\",\n        \"default\": \"./mn/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/creditCard.d.cts\",\n        \"default\": \"./mn/creditCard.cjs\"\n      }\n    },\n    \"./mn/cuid2\": {\n      \"import\": {\n        \"types\": \"./mn/cuid2.d.mts\",\n        \"default\": \"./mn/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/cuid2.d.cts\",\n        \"default\": \"./mn/cuid2.cjs\"\n      }\n    },\n    \"./mn/decimal\": {\n      \"import\": {\n        \"types\": \"./mn/decimal.d.mts\",\n        \"default\": \"./mn/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/decimal.d.cts\",\n        \"default\": \"./mn/decimal.cjs\"\n      }\n    },\n    \"./mn/digits\": {\n      \"import\": {\n        \"types\": \"./mn/digits.d.mts\",\n        \"default\": \"./mn/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/digits.d.cts\",\n        \"default\": \"./mn/digits.cjs\"\n      }\n    },\n    \"./mn/domain\": {\n      \"import\": {\n        \"types\": \"./mn/domain.d.mts\",\n        \"default\": \"./mn/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/domain.d.cts\",\n        \"default\": \"./mn/domain.cjs\"\n      }\n    },\n    \"./mn/email\": {\n      \"import\": {\n        \"types\": \"./mn/email.d.mts\",\n        \"default\": \"./mn/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/email.d.cts\",\n        \"default\": \"./mn/email.cjs\"\n      }\n    },\n    \"./mn/emoji\": {\n      \"import\": {\n        \"types\": \"./mn/emoji.d.mts\",\n        \"default\": \"./mn/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/emoji.d.cts\",\n        \"default\": \"./mn/emoji.cjs\"\n      }\n    },\n    \"./mn/empty\": {\n      \"import\": {\n        \"types\": \"./mn/empty.d.mts\",\n        \"default\": \"./mn/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/empty.d.cts\",\n        \"default\": \"./mn/empty.cjs\"\n      }\n    },\n    \"./mn/endsWith\": {\n      \"import\": {\n        \"types\": \"./mn/endsWith.d.mts\",\n        \"default\": \"./mn/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/endsWith.d.cts\",\n        \"default\": \"./mn/endsWith.cjs\"\n      }\n    },\n    \"./mn/entries\": {\n      \"import\": {\n        \"types\": \"./mn/entries.d.mts\",\n        \"default\": \"./mn/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/entries.d.cts\",\n        \"default\": \"./mn/entries.cjs\"\n      }\n    },\n    \"./mn/everyItem\": {\n      \"import\": {\n        \"types\": \"./mn/everyItem.d.mts\",\n        \"default\": \"./mn/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/everyItem.d.cts\",\n        \"default\": \"./mn/everyItem.cjs\"\n      }\n    },\n    \"./mn/excludes\": {\n      \"import\": {\n        \"types\": \"./mn/excludes.d.mts\",\n        \"default\": \"./mn/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/excludes.d.cts\",\n        \"default\": \"./mn/excludes.cjs\"\n      }\n    },\n    \"./mn/finite\": {\n      \"import\": {\n        \"types\": \"./mn/finite.d.mts\",\n        \"default\": \"./mn/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/finite.d.cts\",\n        \"default\": \"./mn/finite.cjs\"\n      }\n    },\n    \"./mn/graphemes\": {\n      \"import\": {\n        \"types\": \"./mn/graphemes.d.mts\",\n        \"default\": \"./mn/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/graphemes.d.cts\",\n        \"default\": \"./mn/graphemes.cjs\"\n      }\n    },\n    \"./mn/gtValue\": {\n      \"import\": {\n        \"types\": \"./mn/gtValue.d.mts\",\n        \"default\": \"./mn/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/gtValue.d.cts\",\n        \"default\": \"./mn/gtValue.cjs\"\n      }\n    },\n    \"./mn/guard\": {\n      \"import\": {\n        \"types\": \"./mn/guard.d.mts\",\n        \"default\": \"./mn/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/guard.d.cts\",\n        \"default\": \"./mn/guard.cjs\"\n      }\n    },\n    \"./mn/hash\": {\n      \"import\": {\n        \"types\": \"./mn/hash.d.mts\",\n        \"default\": \"./mn/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/hash.d.cts\",\n        \"default\": \"./mn/hash.cjs\"\n      }\n    },\n    \"./mn/hexColor\": {\n      \"import\": {\n        \"types\": \"./mn/hexColor.d.mts\",\n        \"default\": \"./mn/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/hexColor.d.cts\",\n        \"default\": \"./mn/hexColor.cjs\"\n      }\n    },\n    \"./mn/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./mn/hexadecimal.d.mts\",\n        \"default\": \"./mn/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/hexadecimal.d.cts\",\n        \"default\": \"./mn/hexadecimal.cjs\"\n      }\n    },\n    \"./mn/imei\": {\n      \"import\": {\n        \"types\": \"./mn/imei.d.mts\",\n        \"default\": \"./mn/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/imei.d.cts\",\n        \"default\": \"./mn/imei.cjs\"\n      }\n    },\n    \"./mn/includes\": {\n      \"import\": {\n        \"types\": \"./mn/includes.d.mts\",\n        \"default\": \"./mn/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/includes.d.cts\",\n        \"default\": \"./mn/includes.cjs\"\n      }\n    },\n    \"./mn/integer\": {\n      \"import\": {\n        \"types\": \"./mn/integer.d.mts\",\n        \"default\": \"./mn/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/integer.d.cts\",\n        \"default\": \"./mn/integer.cjs\"\n      }\n    },\n    \"./mn/ip\": {\n      \"import\": {\n        \"types\": \"./mn/ip.d.mts\",\n        \"default\": \"./mn/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/ip.d.cts\",\n        \"default\": \"./mn/ip.cjs\"\n      }\n    },\n    \"./mn/ipv4\": {\n      \"import\": {\n        \"types\": \"./mn/ipv4.d.mts\",\n        \"default\": \"./mn/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/ipv4.d.cts\",\n        \"default\": \"./mn/ipv4.cjs\"\n      }\n    },\n    \"./mn/ipv6\": {\n      \"import\": {\n        \"types\": \"./mn/ipv6.d.mts\",\n        \"default\": \"./mn/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/ipv6.d.cts\",\n        \"default\": \"./mn/ipv6.cjs\"\n      }\n    },\n    \"./mn/isbn\": {\n      \"import\": {\n        \"types\": \"./mn/isbn.d.mts\",\n        \"default\": \"./mn/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/isbn.d.cts\",\n        \"default\": \"./mn/isbn.cjs\"\n      }\n    },\n    \"./mn/isoDate\": {\n      \"import\": {\n        \"types\": \"./mn/isoDate.d.mts\",\n        \"default\": \"./mn/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/isoDate.d.cts\",\n        \"default\": \"./mn/isoDate.cjs\"\n      }\n    },\n    \"./mn/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./mn/isoDateTime.d.mts\",\n        \"default\": \"./mn/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/isoDateTime.d.cts\",\n        \"default\": \"./mn/isoDateTime.cjs\"\n      }\n    },\n    \"./mn/isoTime\": {\n      \"import\": {\n        \"types\": \"./mn/isoTime.d.mts\",\n        \"default\": \"./mn/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/isoTime.d.cts\",\n        \"default\": \"./mn/isoTime.cjs\"\n      }\n    },\n    \"./mn/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./mn/isoTimeSecond.d.mts\",\n        \"default\": \"./mn/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/isoTimeSecond.d.cts\",\n        \"default\": \"./mn/isoTimeSecond.cjs\"\n      }\n    },\n    \"./mn/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./mn/isoTimestamp.d.mts\",\n        \"default\": \"./mn/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/isoTimestamp.d.cts\",\n        \"default\": \"./mn/isoTimestamp.cjs\"\n      }\n    },\n    \"./mn/isoWeek\": {\n      \"import\": {\n        \"types\": \"./mn/isoWeek.d.mts\",\n        \"default\": \"./mn/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/isoWeek.d.cts\",\n        \"default\": \"./mn/isoWeek.cjs\"\n      }\n    },\n    \"./mn/isrc\": {\n      \"import\": {\n        \"types\": \"./mn/isrc.d.mts\",\n        \"default\": \"./mn/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/isrc.d.cts\",\n        \"default\": \"./mn/isrc.cjs\"\n      }\n    },\n    \"./mn/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./mn/jwsCompact.d.mts\",\n        \"default\": \"./mn/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/jwsCompact.d.cts\",\n        \"default\": \"./mn/jwsCompact.cjs\"\n      }\n    },\n    \"./mn/length\": {\n      \"import\": {\n        \"types\": \"./mn/length.d.mts\",\n        \"default\": \"./mn/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/length.d.cts\",\n        \"default\": \"./mn/length.cjs\"\n      }\n    },\n    \"./mn/ltValue\": {\n      \"import\": {\n        \"types\": \"./mn/ltValue.d.mts\",\n        \"default\": \"./mn/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/ltValue.d.cts\",\n        \"default\": \"./mn/ltValue.cjs\"\n      }\n    },\n    \"./mn/mac\": {\n      \"import\": {\n        \"types\": \"./mn/mac.d.mts\",\n        \"default\": \"./mn/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/mac.d.cts\",\n        \"default\": \"./mn/mac.cjs\"\n      }\n    },\n    \"./mn/mac48\": {\n      \"import\": {\n        \"types\": \"./mn/mac48.d.mts\",\n        \"default\": \"./mn/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/mac48.d.cts\",\n        \"default\": \"./mn/mac48.cjs\"\n      }\n    },\n    \"./mn/mac64\": {\n      \"import\": {\n        \"types\": \"./mn/mac64.d.mts\",\n        \"default\": \"./mn/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/mac64.d.cts\",\n        \"default\": \"./mn/mac64.cjs\"\n      }\n    },\n    \"./mn/maxBytes\": {\n      \"import\": {\n        \"types\": \"./mn/maxBytes.d.mts\",\n        \"default\": \"./mn/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/maxBytes.d.cts\",\n        \"default\": \"./mn/maxBytes.cjs\"\n      }\n    },\n    \"./mn/maxEntries\": {\n      \"import\": {\n        \"types\": \"./mn/maxEntries.d.mts\",\n        \"default\": \"./mn/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/maxEntries.d.cts\",\n        \"default\": \"./mn/maxEntries.cjs\"\n      }\n    },\n    \"./mn/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./mn/maxGraphemes.d.mts\",\n        \"default\": \"./mn/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/maxGraphemes.d.cts\",\n        \"default\": \"./mn/maxGraphemes.cjs\"\n      }\n    },\n    \"./mn/maxLength\": {\n      \"import\": {\n        \"types\": \"./mn/maxLength.d.mts\",\n        \"default\": \"./mn/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/maxLength.d.cts\",\n        \"default\": \"./mn/maxLength.cjs\"\n      }\n    },\n    \"./mn/maxSize\": {\n      \"import\": {\n        \"types\": \"./mn/maxSize.d.mts\",\n        \"default\": \"./mn/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/maxSize.d.cts\",\n        \"default\": \"./mn/maxSize.cjs\"\n      }\n    },\n    \"./mn/maxValue\": {\n      \"import\": {\n        \"types\": \"./mn/maxValue.d.mts\",\n        \"default\": \"./mn/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/maxValue.d.cts\",\n        \"default\": \"./mn/maxValue.cjs\"\n      }\n    },\n    \"./mn/maxWords\": {\n      \"import\": {\n        \"types\": \"./mn/maxWords.d.mts\",\n        \"default\": \"./mn/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/maxWords.d.cts\",\n        \"default\": \"./mn/maxWords.cjs\"\n      }\n    },\n    \"./mn/mimeType\": {\n      \"import\": {\n        \"types\": \"./mn/mimeType.d.mts\",\n        \"default\": \"./mn/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/mimeType.d.cts\",\n        \"default\": \"./mn/mimeType.cjs\"\n      }\n    },\n    \"./mn/minBytes\": {\n      \"import\": {\n        \"types\": \"./mn/minBytes.d.mts\",\n        \"default\": \"./mn/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/minBytes.d.cts\",\n        \"default\": \"./mn/minBytes.cjs\"\n      }\n    },\n    \"./mn/minEntries\": {\n      \"import\": {\n        \"types\": \"./mn/minEntries.d.mts\",\n        \"default\": \"./mn/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/minEntries.d.cts\",\n        \"default\": \"./mn/minEntries.cjs\"\n      }\n    },\n    \"./mn/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./mn/minGraphemes.d.mts\",\n        \"default\": \"./mn/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/minGraphemes.d.cts\",\n        \"default\": \"./mn/minGraphemes.cjs\"\n      }\n    },\n    \"./mn/minLength\": {\n      \"import\": {\n        \"types\": \"./mn/minLength.d.mts\",\n        \"default\": \"./mn/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/minLength.d.cts\",\n        \"default\": \"./mn/minLength.cjs\"\n      }\n    },\n    \"./mn/minSize\": {\n      \"import\": {\n        \"types\": \"./mn/minSize.d.mts\",\n        \"default\": \"./mn/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/minSize.d.cts\",\n        \"default\": \"./mn/minSize.cjs\"\n      }\n    },\n    \"./mn/minValue\": {\n      \"import\": {\n        \"types\": \"./mn/minValue.d.mts\",\n        \"default\": \"./mn/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/minValue.d.cts\",\n        \"default\": \"./mn/minValue.cjs\"\n      }\n    },\n    \"./mn/minWords\": {\n      \"import\": {\n        \"types\": \"./mn/minWords.d.mts\",\n        \"default\": \"./mn/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/minWords.d.cts\",\n        \"default\": \"./mn/minWords.cjs\"\n      }\n    },\n    \"./mn/multipleOf\": {\n      \"import\": {\n        \"types\": \"./mn/multipleOf.d.mts\",\n        \"default\": \"./mn/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/multipleOf.d.cts\",\n        \"default\": \"./mn/multipleOf.cjs\"\n      }\n    },\n    \"./mn/nanoid\": {\n      \"import\": {\n        \"types\": \"./mn/nanoid.d.mts\",\n        \"default\": \"./mn/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/nanoid.d.cts\",\n        \"default\": \"./mn/nanoid.cjs\"\n      }\n    },\n    \"./mn/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./mn/nonEmpty.d.mts\",\n        \"default\": \"./mn/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/nonEmpty.d.cts\",\n        \"default\": \"./mn/nonEmpty.cjs\"\n      }\n    },\n    \"./mn/notBytes\": {\n      \"import\": {\n        \"types\": \"./mn/notBytes.d.mts\",\n        \"default\": \"./mn/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/notBytes.d.cts\",\n        \"default\": \"./mn/notBytes.cjs\"\n      }\n    },\n    \"./mn/notEntries\": {\n      \"import\": {\n        \"types\": \"./mn/notEntries.d.mts\",\n        \"default\": \"./mn/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/notEntries.d.cts\",\n        \"default\": \"./mn/notEntries.cjs\"\n      }\n    },\n    \"./mn/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./mn/notGraphemes.d.mts\",\n        \"default\": \"./mn/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/notGraphemes.d.cts\",\n        \"default\": \"./mn/notGraphemes.cjs\"\n      }\n    },\n    \"./mn/notLength\": {\n      \"import\": {\n        \"types\": \"./mn/notLength.d.mts\",\n        \"default\": \"./mn/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/notLength.d.cts\",\n        \"default\": \"./mn/notLength.cjs\"\n      }\n    },\n    \"./mn/notSize\": {\n      \"import\": {\n        \"types\": \"./mn/notSize.d.mts\",\n        \"default\": \"./mn/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/notSize.d.cts\",\n        \"default\": \"./mn/notSize.cjs\"\n      }\n    },\n    \"./mn/notValue\": {\n      \"import\": {\n        \"types\": \"./mn/notValue.d.mts\",\n        \"default\": \"./mn/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/notValue.d.cts\",\n        \"default\": \"./mn/notValue.cjs\"\n      }\n    },\n    \"./mn/notValues\": {\n      \"import\": {\n        \"types\": \"./mn/notValues.d.mts\",\n        \"default\": \"./mn/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/notValues.d.cts\",\n        \"default\": \"./mn/notValues.cjs\"\n      }\n    },\n    \"./mn/notWords\": {\n      \"import\": {\n        \"types\": \"./mn/notWords.d.mts\",\n        \"default\": \"./mn/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/notWords.d.cts\",\n        \"default\": \"./mn/notWords.cjs\"\n      }\n    },\n    \"./mn/octal\": {\n      \"import\": {\n        \"types\": \"./mn/octal.d.mts\",\n        \"default\": \"./mn/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/octal.d.cts\",\n        \"default\": \"./mn/octal.cjs\"\n      }\n    },\n    \"./mn/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./mn/parseBoolean.d.mts\",\n        \"default\": \"./mn/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/parseBoolean.d.cts\",\n        \"default\": \"./mn/parseBoolean.cjs\"\n      }\n    },\n    \"./mn/parseJson\": {\n      \"import\": {\n        \"types\": \"./mn/parseJson.d.mts\",\n        \"default\": \"./mn/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/parseJson.d.cts\",\n        \"default\": \"./mn/parseJson.cjs\"\n      }\n    },\n    \"./mn/partialCheck\": {\n      \"import\": {\n        \"types\": \"./mn/partialCheck.d.mts\",\n        \"default\": \"./mn/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/partialCheck.d.cts\",\n        \"default\": \"./mn/partialCheck.cjs\"\n      }\n    },\n    \"./mn/rawCheck\": {\n      \"import\": {\n        \"types\": \"./mn/rawCheck.d.mts\",\n        \"default\": \"./mn/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/rawCheck.d.cts\",\n        \"default\": \"./mn/rawCheck.cjs\"\n      }\n    },\n    \"./mn/rawTransform\": {\n      \"import\": {\n        \"types\": \"./mn/rawTransform.d.mts\",\n        \"default\": \"./mn/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/rawTransform.d.cts\",\n        \"default\": \"./mn/rawTransform.cjs\"\n      }\n    },\n    \"./mn/regex\": {\n      \"import\": {\n        \"types\": \"./mn/regex.d.mts\",\n        \"default\": \"./mn/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/regex.d.cts\",\n        \"default\": \"./mn/regex.cjs\"\n      }\n    },\n    \"./mn/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./mn/rfcEmail.d.mts\",\n        \"default\": \"./mn/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/rfcEmail.d.cts\",\n        \"default\": \"./mn/rfcEmail.cjs\"\n      }\n    },\n    \"./mn/safeInteger\": {\n      \"import\": {\n        \"types\": \"./mn/safeInteger.d.mts\",\n        \"default\": \"./mn/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/safeInteger.d.cts\",\n        \"default\": \"./mn/safeInteger.cjs\"\n      }\n    },\n    \"./mn/size\": {\n      \"import\": {\n        \"types\": \"./mn/size.d.mts\",\n        \"default\": \"./mn/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/size.d.cts\",\n        \"default\": \"./mn/size.cjs\"\n      }\n    },\n    \"./mn/slug\": {\n      \"import\": {\n        \"types\": \"./mn/slug.d.mts\",\n        \"default\": \"./mn/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/slug.d.cts\",\n        \"default\": \"./mn/slug.cjs\"\n      }\n    },\n    \"./mn/someItem\": {\n      \"import\": {\n        \"types\": \"./mn/someItem.d.mts\",\n        \"default\": \"./mn/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/someItem.d.cts\",\n        \"default\": \"./mn/someItem.cjs\"\n      }\n    },\n    \"./mn/startsWith\": {\n      \"import\": {\n        \"types\": \"./mn/startsWith.d.mts\",\n        \"default\": \"./mn/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/startsWith.d.cts\",\n        \"default\": \"./mn/startsWith.cjs\"\n      }\n    },\n    \"./mn/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./mn/stringifyJson.d.mts\",\n        \"default\": \"./mn/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/stringifyJson.d.cts\",\n        \"default\": \"./mn/stringifyJson.cjs\"\n      }\n    },\n    \"./mn/toBigint\": {\n      \"import\": {\n        \"types\": \"./mn/toBigint.d.mts\",\n        \"default\": \"./mn/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/toBigint.d.cts\",\n        \"default\": \"./mn/toBigint.cjs\"\n      }\n    },\n    \"./mn/toDate\": {\n      \"import\": {\n        \"types\": \"./mn/toDate.d.mts\",\n        \"default\": \"./mn/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/toDate.d.cts\",\n        \"default\": \"./mn/toDate.cjs\"\n      }\n    },\n    \"./mn/toNumber\": {\n      \"import\": {\n        \"types\": \"./mn/toNumber.d.mts\",\n        \"default\": \"./mn/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/toNumber.d.cts\",\n        \"default\": \"./mn/toNumber.cjs\"\n      }\n    },\n    \"./mn/toString\": {\n      \"import\": {\n        \"types\": \"./mn/toString.d.mts\",\n        \"default\": \"./mn/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/toString.d.cts\",\n        \"default\": \"./mn/toString.cjs\"\n      }\n    },\n    \"./mn/ulid\": {\n      \"import\": {\n        \"types\": \"./mn/ulid.d.mts\",\n        \"default\": \"./mn/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/ulid.d.cts\",\n        \"default\": \"./mn/ulid.cjs\"\n      }\n    },\n    \"./mn/url\": {\n      \"import\": {\n        \"types\": \"./mn/url.d.mts\",\n        \"default\": \"./mn/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/url.d.cts\",\n        \"default\": \"./mn/url.cjs\"\n      }\n    },\n    \"./mn/uuid\": {\n      \"import\": {\n        \"types\": \"./mn/uuid.d.mts\",\n        \"default\": \"./mn/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/uuid.d.cts\",\n        \"default\": \"./mn/uuid.cjs\"\n      }\n    },\n    \"./mn/value\": {\n      \"import\": {\n        \"types\": \"./mn/value.d.mts\",\n        \"default\": \"./mn/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/value.d.cts\",\n        \"default\": \"./mn/value.cjs\"\n      }\n    },\n    \"./mn/values\": {\n      \"import\": {\n        \"types\": \"./mn/values.d.mts\",\n        \"default\": \"./mn/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/values.d.cts\",\n        \"default\": \"./mn/values.cjs\"\n      }\n    },\n    \"./mn/words\": {\n      \"import\": {\n        \"types\": \"./mn/words.d.mts\",\n        \"default\": \"./mn/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./mn/words.d.cts\",\n        \"default\": \"./mn/words.cjs\"\n      }\n    },\n    \"./nb\": {\n      \"import\": {\n        \"types\": \"./nb/index.d.mts\",\n        \"default\": \"./nb/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/index.d.cts\",\n        \"default\": \"./nb/index.cjs\"\n      }\n    },\n    \"./nb/schema\": {\n      \"import\": {\n        \"types\": \"./nb/schema.d.mts\",\n        \"default\": \"./nb/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/schema.d.cts\",\n        \"default\": \"./nb/schema.cjs\"\n      }\n    },\n    \"./nb/base64\": {\n      \"import\": {\n        \"types\": \"./nb/base64.d.mts\",\n        \"default\": \"./nb/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/base64.d.cts\",\n        \"default\": \"./nb/base64.cjs\"\n      }\n    },\n    \"./nb/bic\": {\n      \"import\": {\n        \"types\": \"./nb/bic.d.mts\",\n        \"default\": \"./nb/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/bic.d.cts\",\n        \"default\": \"./nb/bic.cjs\"\n      }\n    },\n    \"./nb/bytes\": {\n      \"import\": {\n        \"types\": \"./nb/bytes.d.mts\",\n        \"default\": \"./nb/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/bytes.d.cts\",\n        \"default\": \"./nb/bytes.cjs\"\n      }\n    },\n    \"./nb/check\": {\n      \"import\": {\n        \"types\": \"./nb/check.d.mts\",\n        \"default\": \"./nb/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/check.d.cts\",\n        \"default\": \"./nb/check.cjs\"\n      }\n    },\n    \"./nb/checkAsync\": {\n      \"import\": {\n        \"types\": \"./nb/checkAsync.d.mts\",\n        \"default\": \"./nb/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/checkAsync.d.cts\",\n        \"default\": \"./nb/checkAsync.cjs\"\n      }\n    },\n    \"./nb/checkItems\": {\n      \"import\": {\n        \"types\": \"./nb/checkItems.d.mts\",\n        \"default\": \"./nb/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/checkItems.d.cts\",\n        \"default\": \"./nb/checkItems.cjs\"\n      }\n    },\n    \"./nb/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./nb/checkItemsAsync.d.mts\",\n        \"default\": \"./nb/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/checkItemsAsync.d.cts\",\n        \"default\": \"./nb/checkItemsAsync.cjs\"\n      }\n    },\n    \"./nb/creditCard\": {\n      \"import\": {\n        \"types\": \"./nb/creditCard.d.mts\",\n        \"default\": \"./nb/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/creditCard.d.cts\",\n        \"default\": \"./nb/creditCard.cjs\"\n      }\n    },\n    \"./nb/cuid2\": {\n      \"import\": {\n        \"types\": \"./nb/cuid2.d.mts\",\n        \"default\": \"./nb/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/cuid2.d.cts\",\n        \"default\": \"./nb/cuid2.cjs\"\n      }\n    },\n    \"./nb/decimal\": {\n      \"import\": {\n        \"types\": \"./nb/decimal.d.mts\",\n        \"default\": \"./nb/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/decimal.d.cts\",\n        \"default\": \"./nb/decimal.cjs\"\n      }\n    },\n    \"./nb/digits\": {\n      \"import\": {\n        \"types\": \"./nb/digits.d.mts\",\n        \"default\": \"./nb/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/digits.d.cts\",\n        \"default\": \"./nb/digits.cjs\"\n      }\n    },\n    \"./nb/domain\": {\n      \"import\": {\n        \"types\": \"./nb/domain.d.mts\",\n        \"default\": \"./nb/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/domain.d.cts\",\n        \"default\": \"./nb/domain.cjs\"\n      }\n    },\n    \"./nb/email\": {\n      \"import\": {\n        \"types\": \"./nb/email.d.mts\",\n        \"default\": \"./nb/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/email.d.cts\",\n        \"default\": \"./nb/email.cjs\"\n      }\n    },\n    \"./nb/emoji\": {\n      \"import\": {\n        \"types\": \"./nb/emoji.d.mts\",\n        \"default\": \"./nb/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/emoji.d.cts\",\n        \"default\": \"./nb/emoji.cjs\"\n      }\n    },\n    \"./nb/empty\": {\n      \"import\": {\n        \"types\": \"./nb/empty.d.mts\",\n        \"default\": \"./nb/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/empty.d.cts\",\n        \"default\": \"./nb/empty.cjs\"\n      }\n    },\n    \"./nb/endsWith\": {\n      \"import\": {\n        \"types\": \"./nb/endsWith.d.mts\",\n        \"default\": \"./nb/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/endsWith.d.cts\",\n        \"default\": \"./nb/endsWith.cjs\"\n      }\n    },\n    \"./nb/entries\": {\n      \"import\": {\n        \"types\": \"./nb/entries.d.mts\",\n        \"default\": \"./nb/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/entries.d.cts\",\n        \"default\": \"./nb/entries.cjs\"\n      }\n    },\n    \"./nb/everyItem\": {\n      \"import\": {\n        \"types\": \"./nb/everyItem.d.mts\",\n        \"default\": \"./nb/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/everyItem.d.cts\",\n        \"default\": \"./nb/everyItem.cjs\"\n      }\n    },\n    \"./nb/excludes\": {\n      \"import\": {\n        \"types\": \"./nb/excludes.d.mts\",\n        \"default\": \"./nb/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/excludes.d.cts\",\n        \"default\": \"./nb/excludes.cjs\"\n      }\n    },\n    \"./nb/finite\": {\n      \"import\": {\n        \"types\": \"./nb/finite.d.mts\",\n        \"default\": \"./nb/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/finite.d.cts\",\n        \"default\": \"./nb/finite.cjs\"\n      }\n    },\n    \"./nb/graphemes\": {\n      \"import\": {\n        \"types\": \"./nb/graphemes.d.mts\",\n        \"default\": \"./nb/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/graphemes.d.cts\",\n        \"default\": \"./nb/graphemes.cjs\"\n      }\n    },\n    \"./nb/gtValue\": {\n      \"import\": {\n        \"types\": \"./nb/gtValue.d.mts\",\n        \"default\": \"./nb/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/gtValue.d.cts\",\n        \"default\": \"./nb/gtValue.cjs\"\n      }\n    },\n    \"./nb/guard\": {\n      \"import\": {\n        \"types\": \"./nb/guard.d.mts\",\n        \"default\": \"./nb/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/guard.d.cts\",\n        \"default\": \"./nb/guard.cjs\"\n      }\n    },\n    \"./nb/hash\": {\n      \"import\": {\n        \"types\": \"./nb/hash.d.mts\",\n        \"default\": \"./nb/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/hash.d.cts\",\n        \"default\": \"./nb/hash.cjs\"\n      }\n    },\n    \"./nb/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./nb/hexadecimal.d.mts\",\n        \"default\": \"./nb/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/hexadecimal.d.cts\",\n        \"default\": \"./nb/hexadecimal.cjs\"\n      }\n    },\n    \"./nb/hexColor\": {\n      \"import\": {\n        \"types\": \"./nb/hexColor.d.mts\",\n        \"default\": \"./nb/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/hexColor.d.cts\",\n        \"default\": \"./nb/hexColor.cjs\"\n      }\n    },\n    \"./nb/imei\": {\n      \"import\": {\n        \"types\": \"./nb/imei.d.mts\",\n        \"default\": \"./nb/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/imei.d.cts\",\n        \"default\": \"./nb/imei.cjs\"\n      }\n    },\n    \"./nb/includes\": {\n      \"import\": {\n        \"types\": \"./nb/includes.d.mts\",\n        \"default\": \"./nb/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/includes.d.cts\",\n        \"default\": \"./nb/includes.cjs\"\n      }\n    },\n    \"./nb/integer\": {\n      \"import\": {\n        \"types\": \"./nb/integer.d.mts\",\n        \"default\": \"./nb/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/integer.d.cts\",\n        \"default\": \"./nb/integer.cjs\"\n      }\n    },\n    \"./nb/ip\": {\n      \"import\": {\n        \"types\": \"./nb/ip.d.mts\",\n        \"default\": \"./nb/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/ip.d.cts\",\n        \"default\": \"./nb/ip.cjs\"\n      }\n    },\n    \"./nb/ipv4\": {\n      \"import\": {\n        \"types\": \"./nb/ipv4.d.mts\",\n        \"default\": \"./nb/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/ipv4.d.cts\",\n        \"default\": \"./nb/ipv4.cjs\"\n      }\n    },\n    \"./nb/ipv6\": {\n      \"import\": {\n        \"types\": \"./nb/ipv6.d.mts\",\n        \"default\": \"./nb/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/ipv6.d.cts\",\n        \"default\": \"./nb/ipv6.cjs\"\n      }\n    },\n    \"./nb/isbn\": {\n      \"import\": {\n        \"types\": \"./nb/isbn.d.mts\",\n        \"default\": \"./nb/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/isbn.d.cts\",\n        \"default\": \"./nb/isbn.cjs\"\n      }\n    },\n    \"./nb/isoDate\": {\n      \"import\": {\n        \"types\": \"./nb/isoDate.d.mts\",\n        \"default\": \"./nb/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/isoDate.d.cts\",\n        \"default\": \"./nb/isoDate.cjs\"\n      }\n    },\n    \"./nb/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./nb/isoDateTime.d.mts\",\n        \"default\": \"./nb/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/isoDateTime.d.cts\",\n        \"default\": \"./nb/isoDateTime.cjs\"\n      }\n    },\n    \"./nb/isoTime\": {\n      \"import\": {\n        \"types\": \"./nb/isoTime.d.mts\",\n        \"default\": \"./nb/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/isoTime.d.cts\",\n        \"default\": \"./nb/isoTime.cjs\"\n      }\n    },\n    \"./nb/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./nb/isoTimeSecond.d.mts\",\n        \"default\": \"./nb/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/isoTimeSecond.d.cts\",\n        \"default\": \"./nb/isoTimeSecond.cjs\"\n      }\n    },\n    \"./nb/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./nb/isoTimestamp.d.mts\",\n        \"default\": \"./nb/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/isoTimestamp.d.cts\",\n        \"default\": \"./nb/isoTimestamp.cjs\"\n      }\n    },\n    \"./nb/isoWeek\": {\n      \"import\": {\n        \"types\": \"./nb/isoWeek.d.mts\",\n        \"default\": \"./nb/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/isoWeek.d.cts\",\n        \"default\": \"./nb/isoWeek.cjs\"\n      }\n    },\n    \"./nb/isrc\": {\n      \"import\": {\n        \"types\": \"./nb/isrc.d.mts\",\n        \"default\": \"./nb/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/isrc.d.cts\",\n        \"default\": \"./nb/isrc.cjs\"\n      }\n    },\n    \"./nb/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./nb/jwsCompact.d.mts\",\n        \"default\": \"./nb/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/jwsCompact.d.cts\",\n        \"default\": \"./nb/jwsCompact.cjs\"\n      }\n    },\n    \"./nb/length\": {\n      \"import\": {\n        \"types\": \"./nb/length.d.mts\",\n        \"default\": \"./nb/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/length.d.cts\",\n        \"default\": \"./nb/length.cjs\"\n      }\n    },\n    \"./nb/ltValue\": {\n      \"import\": {\n        \"types\": \"./nb/ltValue.d.mts\",\n        \"default\": \"./nb/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/ltValue.d.cts\",\n        \"default\": \"./nb/ltValue.cjs\"\n      }\n    },\n    \"./nb/mac\": {\n      \"import\": {\n        \"types\": \"./nb/mac.d.mts\",\n        \"default\": \"./nb/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/mac.d.cts\",\n        \"default\": \"./nb/mac.cjs\"\n      }\n    },\n    \"./nb/mac48\": {\n      \"import\": {\n        \"types\": \"./nb/mac48.d.mts\",\n        \"default\": \"./nb/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/mac48.d.cts\",\n        \"default\": \"./nb/mac48.cjs\"\n      }\n    },\n    \"./nb/mac64\": {\n      \"import\": {\n        \"types\": \"./nb/mac64.d.mts\",\n        \"default\": \"./nb/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/mac64.d.cts\",\n        \"default\": \"./nb/mac64.cjs\"\n      }\n    },\n    \"./nb/maxBytes\": {\n      \"import\": {\n        \"types\": \"./nb/maxBytes.d.mts\",\n        \"default\": \"./nb/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/maxBytes.d.cts\",\n        \"default\": \"./nb/maxBytes.cjs\"\n      }\n    },\n    \"./nb/maxEntries\": {\n      \"import\": {\n        \"types\": \"./nb/maxEntries.d.mts\",\n        \"default\": \"./nb/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/maxEntries.d.cts\",\n        \"default\": \"./nb/maxEntries.cjs\"\n      }\n    },\n    \"./nb/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./nb/maxGraphemes.d.mts\",\n        \"default\": \"./nb/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/maxGraphemes.d.cts\",\n        \"default\": \"./nb/maxGraphemes.cjs\"\n      }\n    },\n    \"./nb/maxLength\": {\n      \"import\": {\n        \"types\": \"./nb/maxLength.d.mts\",\n        \"default\": \"./nb/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/maxLength.d.cts\",\n        \"default\": \"./nb/maxLength.cjs\"\n      }\n    },\n    \"./nb/maxSize\": {\n      \"import\": {\n        \"types\": \"./nb/maxSize.d.mts\",\n        \"default\": \"./nb/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/maxSize.d.cts\",\n        \"default\": \"./nb/maxSize.cjs\"\n      }\n    },\n    \"./nb/maxValue\": {\n      \"import\": {\n        \"types\": \"./nb/maxValue.d.mts\",\n        \"default\": \"./nb/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/maxValue.d.cts\",\n        \"default\": \"./nb/maxValue.cjs\"\n      }\n    },\n    \"./nb/maxWords\": {\n      \"import\": {\n        \"types\": \"./nb/maxWords.d.mts\",\n        \"default\": \"./nb/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/maxWords.d.cts\",\n        \"default\": \"./nb/maxWords.cjs\"\n      }\n    },\n    \"./nb/mimeType\": {\n      \"import\": {\n        \"types\": \"./nb/mimeType.d.mts\",\n        \"default\": \"./nb/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/mimeType.d.cts\",\n        \"default\": \"./nb/mimeType.cjs\"\n      }\n    },\n    \"./nb/minBytes\": {\n      \"import\": {\n        \"types\": \"./nb/minBytes.d.mts\",\n        \"default\": \"./nb/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/minBytes.d.cts\",\n        \"default\": \"./nb/minBytes.cjs\"\n      }\n    },\n    \"./nb/minEntries\": {\n      \"import\": {\n        \"types\": \"./nb/minEntries.d.mts\",\n        \"default\": \"./nb/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/minEntries.d.cts\",\n        \"default\": \"./nb/minEntries.cjs\"\n      }\n    },\n    \"./nb/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./nb/minGraphemes.d.mts\",\n        \"default\": \"./nb/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/minGraphemes.d.cts\",\n        \"default\": \"./nb/minGraphemes.cjs\"\n      }\n    },\n    \"./nb/minLength\": {\n      \"import\": {\n        \"types\": \"./nb/minLength.d.mts\",\n        \"default\": \"./nb/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/minLength.d.cts\",\n        \"default\": \"./nb/minLength.cjs\"\n      }\n    },\n    \"./nb/minSize\": {\n      \"import\": {\n        \"types\": \"./nb/minSize.d.mts\",\n        \"default\": \"./nb/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/minSize.d.cts\",\n        \"default\": \"./nb/minSize.cjs\"\n      }\n    },\n    \"./nb/minValue\": {\n      \"import\": {\n        \"types\": \"./nb/minValue.d.mts\",\n        \"default\": \"./nb/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/minValue.d.cts\",\n        \"default\": \"./nb/minValue.cjs\"\n      }\n    },\n    \"./nb/minWords\": {\n      \"import\": {\n        \"types\": \"./nb/minWords.d.mts\",\n        \"default\": \"./nb/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/minWords.d.cts\",\n        \"default\": \"./nb/minWords.cjs\"\n      }\n    },\n    \"./nb/multipleOf\": {\n      \"import\": {\n        \"types\": \"./nb/multipleOf.d.mts\",\n        \"default\": \"./nb/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/multipleOf.d.cts\",\n        \"default\": \"./nb/multipleOf.cjs\"\n      }\n    },\n    \"./nb/nanoid\": {\n      \"import\": {\n        \"types\": \"./nb/nanoid.d.mts\",\n        \"default\": \"./nb/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/nanoid.d.cts\",\n        \"default\": \"./nb/nanoid.cjs\"\n      }\n    },\n    \"./nb/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./nb/nonEmpty.d.mts\",\n        \"default\": \"./nb/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/nonEmpty.d.cts\",\n        \"default\": \"./nb/nonEmpty.cjs\"\n      }\n    },\n    \"./nb/notBytes\": {\n      \"import\": {\n        \"types\": \"./nb/notBytes.d.mts\",\n        \"default\": \"./nb/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/notBytes.d.cts\",\n        \"default\": \"./nb/notBytes.cjs\"\n      }\n    },\n    \"./nb/notEntries\": {\n      \"import\": {\n        \"types\": \"./nb/notEntries.d.mts\",\n        \"default\": \"./nb/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/notEntries.d.cts\",\n        \"default\": \"./nb/notEntries.cjs\"\n      }\n    },\n    \"./nb/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./nb/notGraphemes.d.mts\",\n        \"default\": \"./nb/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/notGraphemes.d.cts\",\n        \"default\": \"./nb/notGraphemes.cjs\"\n      }\n    },\n    \"./nb/notLength\": {\n      \"import\": {\n        \"types\": \"./nb/notLength.d.mts\",\n        \"default\": \"./nb/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/notLength.d.cts\",\n        \"default\": \"./nb/notLength.cjs\"\n      }\n    },\n    \"./nb/notSize\": {\n      \"import\": {\n        \"types\": \"./nb/notSize.d.mts\",\n        \"default\": \"./nb/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/notSize.d.cts\",\n        \"default\": \"./nb/notSize.cjs\"\n      }\n    },\n    \"./nb/notValue\": {\n      \"import\": {\n        \"types\": \"./nb/notValue.d.mts\",\n        \"default\": \"./nb/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/notValue.d.cts\",\n        \"default\": \"./nb/notValue.cjs\"\n      }\n    },\n    \"./nb/notValues\": {\n      \"import\": {\n        \"types\": \"./nb/notValues.d.mts\",\n        \"default\": \"./nb/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/notValues.d.cts\",\n        \"default\": \"./nb/notValues.cjs\"\n      }\n    },\n    \"./nb/notWords\": {\n      \"import\": {\n        \"types\": \"./nb/notWords.d.mts\",\n        \"default\": \"./nb/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/notWords.d.cts\",\n        \"default\": \"./nb/notWords.cjs\"\n      }\n    },\n    \"./nb/octal\": {\n      \"import\": {\n        \"types\": \"./nb/octal.d.mts\",\n        \"default\": \"./nb/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/octal.d.cts\",\n        \"default\": \"./nb/octal.cjs\"\n      }\n    },\n    \"./nb/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./nb/parseBoolean.d.mts\",\n        \"default\": \"./nb/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/parseBoolean.d.cts\",\n        \"default\": \"./nb/parseBoolean.cjs\"\n      }\n    },\n    \"./nb/parseJson\": {\n      \"import\": {\n        \"types\": \"./nb/parseJson.d.mts\",\n        \"default\": \"./nb/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/parseJson.d.cts\",\n        \"default\": \"./nb/parseJson.cjs\"\n      }\n    },\n    \"./nb/partialCheck\": {\n      \"import\": {\n        \"types\": \"./nb/partialCheck.d.mts\",\n        \"default\": \"./nb/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/partialCheck.d.cts\",\n        \"default\": \"./nb/partialCheck.cjs\"\n      }\n    },\n    \"./nb/rawCheck\": {\n      \"import\": {\n        \"types\": \"./nb/rawCheck.d.mts\",\n        \"default\": \"./nb/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/rawCheck.d.cts\",\n        \"default\": \"./nb/rawCheck.cjs\"\n      }\n    },\n    \"./nb/rawTransform\": {\n      \"import\": {\n        \"types\": \"./nb/rawTransform.d.mts\",\n        \"default\": \"./nb/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/rawTransform.d.cts\",\n        \"default\": \"./nb/rawTransform.cjs\"\n      }\n    },\n    \"./nb/regex\": {\n      \"import\": {\n        \"types\": \"./nb/regex.d.mts\",\n        \"default\": \"./nb/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/regex.d.cts\",\n        \"default\": \"./nb/regex.cjs\"\n      }\n    },\n    \"./nb/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./nb/rfcEmail.d.mts\",\n        \"default\": \"./nb/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/rfcEmail.d.cts\",\n        \"default\": \"./nb/rfcEmail.cjs\"\n      }\n    },\n    \"./nb/safeInteger\": {\n      \"import\": {\n        \"types\": \"./nb/safeInteger.d.mts\",\n        \"default\": \"./nb/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/safeInteger.d.cts\",\n        \"default\": \"./nb/safeInteger.cjs\"\n      }\n    },\n    \"./nb/size\": {\n      \"import\": {\n        \"types\": \"./nb/size.d.mts\",\n        \"default\": \"./nb/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/size.d.cts\",\n        \"default\": \"./nb/size.cjs\"\n      }\n    },\n    \"./nb/slug\": {\n      \"import\": {\n        \"types\": \"./nb/slug.d.mts\",\n        \"default\": \"./nb/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/slug.d.cts\",\n        \"default\": \"./nb/slug.cjs\"\n      }\n    },\n    \"./nb/someItem\": {\n      \"import\": {\n        \"types\": \"./nb/someItem.d.mts\",\n        \"default\": \"./nb/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/someItem.d.cts\",\n        \"default\": \"./nb/someItem.cjs\"\n      }\n    },\n    \"./nb/startsWith\": {\n      \"import\": {\n        \"types\": \"./nb/startsWith.d.mts\",\n        \"default\": \"./nb/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/startsWith.d.cts\",\n        \"default\": \"./nb/startsWith.cjs\"\n      }\n    },\n    \"./nb/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./nb/stringifyJson.d.mts\",\n        \"default\": \"./nb/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/stringifyJson.d.cts\",\n        \"default\": \"./nb/stringifyJson.cjs\"\n      }\n    },\n    \"./nb/toBigint\": {\n      \"import\": {\n        \"types\": \"./nb/toBigint.d.mts\",\n        \"default\": \"./nb/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/toBigint.d.cts\",\n        \"default\": \"./nb/toBigint.cjs\"\n      }\n    },\n    \"./nb/toDate\": {\n      \"import\": {\n        \"types\": \"./nb/toDate.d.mts\",\n        \"default\": \"./nb/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/toDate.d.cts\",\n        \"default\": \"./nb/toDate.cjs\"\n      }\n    },\n    \"./nb/toNumber\": {\n      \"import\": {\n        \"types\": \"./nb/toNumber.d.mts\",\n        \"default\": \"./nb/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/toNumber.d.cts\",\n        \"default\": \"./nb/toNumber.cjs\"\n      }\n    },\n    \"./nb/toString\": {\n      \"import\": {\n        \"types\": \"./nb/toString.d.mts\",\n        \"default\": \"./nb/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/toString.d.cts\",\n        \"default\": \"./nb/toString.cjs\"\n      }\n    },\n    \"./nb/ulid\": {\n      \"import\": {\n        \"types\": \"./nb/ulid.d.mts\",\n        \"default\": \"./nb/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/ulid.d.cts\",\n        \"default\": \"./nb/ulid.cjs\"\n      }\n    },\n    \"./nb/url\": {\n      \"import\": {\n        \"types\": \"./nb/url.d.mts\",\n        \"default\": \"./nb/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/url.d.cts\",\n        \"default\": \"./nb/url.cjs\"\n      }\n    },\n    \"./nb/uuid\": {\n      \"import\": {\n        \"types\": \"./nb/uuid.d.mts\",\n        \"default\": \"./nb/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/uuid.d.cts\",\n        \"default\": \"./nb/uuid.cjs\"\n      }\n    },\n    \"./nb/value\": {\n      \"import\": {\n        \"types\": \"./nb/value.d.mts\",\n        \"default\": \"./nb/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/value.d.cts\",\n        \"default\": \"./nb/value.cjs\"\n      }\n    },\n    \"./nb/values\": {\n      \"import\": {\n        \"types\": \"./nb/values.d.mts\",\n        \"default\": \"./nb/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/values.d.cts\",\n        \"default\": \"./nb/values.cjs\"\n      }\n    },\n    \"./nb/words\": {\n      \"import\": {\n        \"types\": \"./nb/words.d.mts\",\n        \"default\": \"./nb/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nb/words.d.cts\",\n        \"default\": \"./nb/words.cjs\"\n      }\n    },\n    \"./nl\": {\n      \"import\": {\n        \"types\": \"./nl/index.d.mts\",\n        \"default\": \"./nl/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/index.d.cts\",\n        \"default\": \"./nl/index.cjs\"\n      }\n    },\n    \"./nl/schema\": {\n      \"import\": {\n        \"types\": \"./nl/schema.d.mts\",\n        \"default\": \"./nl/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/schema.d.cts\",\n        \"default\": \"./nl/schema.cjs\"\n      }\n    },\n    \"./nl/base64\": {\n      \"import\": {\n        \"types\": \"./nl/base64.d.mts\",\n        \"default\": \"./nl/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/base64.d.cts\",\n        \"default\": \"./nl/base64.cjs\"\n      }\n    },\n    \"./nl/bic\": {\n      \"import\": {\n        \"types\": \"./nl/bic.d.mts\",\n        \"default\": \"./nl/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/bic.d.cts\",\n        \"default\": \"./nl/bic.cjs\"\n      }\n    },\n    \"./nl/bytes\": {\n      \"import\": {\n        \"types\": \"./nl/bytes.d.mts\",\n        \"default\": \"./nl/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/bytes.d.cts\",\n        \"default\": \"./nl/bytes.cjs\"\n      }\n    },\n    \"./nl/check\": {\n      \"import\": {\n        \"types\": \"./nl/check.d.mts\",\n        \"default\": \"./nl/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/check.d.cts\",\n        \"default\": \"./nl/check.cjs\"\n      }\n    },\n    \"./nl/checkAsync\": {\n      \"import\": {\n        \"types\": \"./nl/checkAsync.d.mts\",\n        \"default\": \"./nl/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/checkAsync.d.cts\",\n        \"default\": \"./nl/checkAsync.cjs\"\n      }\n    },\n    \"./nl/checkItems\": {\n      \"import\": {\n        \"types\": \"./nl/checkItems.d.mts\",\n        \"default\": \"./nl/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/checkItems.d.cts\",\n        \"default\": \"./nl/checkItems.cjs\"\n      }\n    },\n    \"./nl/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./nl/checkItemsAsync.d.mts\",\n        \"default\": \"./nl/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/checkItemsAsync.d.cts\",\n        \"default\": \"./nl/checkItemsAsync.cjs\"\n      }\n    },\n    \"./nl/creditCard\": {\n      \"import\": {\n        \"types\": \"./nl/creditCard.d.mts\",\n        \"default\": \"./nl/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/creditCard.d.cts\",\n        \"default\": \"./nl/creditCard.cjs\"\n      }\n    },\n    \"./nl/cuid2\": {\n      \"import\": {\n        \"types\": \"./nl/cuid2.d.mts\",\n        \"default\": \"./nl/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/cuid2.d.cts\",\n        \"default\": \"./nl/cuid2.cjs\"\n      }\n    },\n    \"./nl/decimal\": {\n      \"import\": {\n        \"types\": \"./nl/decimal.d.mts\",\n        \"default\": \"./nl/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/decimal.d.cts\",\n        \"default\": \"./nl/decimal.cjs\"\n      }\n    },\n    \"./nl/digits\": {\n      \"import\": {\n        \"types\": \"./nl/digits.d.mts\",\n        \"default\": \"./nl/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/digits.d.cts\",\n        \"default\": \"./nl/digits.cjs\"\n      }\n    },\n    \"./nl/domain\": {\n      \"import\": {\n        \"types\": \"./nl/domain.d.mts\",\n        \"default\": \"./nl/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/domain.d.cts\",\n        \"default\": \"./nl/domain.cjs\"\n      }\n    },\n    \"./nl/email\": {\n      \"import\": {\n        \"types\": \"./nl/email.d.mts\",\n        \"default\": \"./nl/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/email.d.cts\",\n        \"default\": \"./nl/email.cjs\"\n      }\n    },\n    \"./nl/emoji\": {\n      \"import\": {\n        \"types\": \"./nl/emoji.d.mts\",\n        \"default\": \"./nl/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/emoji.d.cts\",\n        \"default\": \"./nl/emoji.cjs\"\n      }\n    },\n    \"./nl/empty\": {\n      \"import\": {\n        \"types\": \"./nl/empty.d.mts\",\n        \"default\": \"./nl/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/empty.d.cts\",\n        \"default\": \"./nl/empty.cjs\"\n      }\n    },\n    \"./nl/endsWith\": {\n      \"import\": {\n        \"types\": \"./nl/endsWith.d.mts\",\n        \"default\": \"./nl/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/endsWith.d.cts\",\n        \"default\": \"./nl/endsWith.cjs\"\n      }\n    },\n    \"./nl/entries\": {\n      \"import\": {\n        \"types\": \"./nl/entries.d.mts\",\n        \"default\": \"./nl/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/entries.d.cts\",\n        \"default\": \"./nl/entries.cjs\"\n      }\n    },\n    \"./nl/everyItem\": {\n      \"import\": {\n        \"types\": \"./nl/everyItem.d.mts\",\n        \"default\": \"./nl/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/everyItem.d.cts\",\n        \"default\": \"./nl/everyItem.cjs\"\n      }\n    },\n    \"./nl/excludes\": {\n      \"import\": {\n        \"types\": \"./nl/excludes.d.mts\",\n        \"default\": \"./nl/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/excludes.d.cts\",\n        \"default\": \"./nl/excludes.cjs\"\n      }\n    },\n    \"./nl/finite\": {\n      \"import\": {\n        \"types\": \"./nl/finite.d.mts\",\n        \"default\": \"./nl/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/finite.d.cts\",\n        \"default\": \"./nl/finite.cjs\"\n      }\n    },\n    \"./nl/graphemes\": {\n      \"import\": {\n        \"types\": \"./nl/graphemes.d.mts\",\n        \"default\": \"./nl/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/graphemes.d.cts\",\n        \"default\": \"./nl/graphemes.cjs\"\n      }\n    },\n    \"./nl/gtValue\": {\n      \"import\": {\n        \"types\": \"./nl/gtValue.d.mts\",\n        \"default\": \"./nl/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/gtValue.d.cts\",\n        \"default\": \"./nl/gtValue.cjs\"\n      }\n    },\n    \"./nl/guard\": {\n      \"import\": {\n        \"types\": \"./nl/guard.d.mts\",\n        \"default\": \"./nl/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/guard.d.cts\",\n        \"default\": \"./nl/guard.cjs\"\n      }\n    },\n    \"./nl/hash\": {\n      \"import\": {\n        \"types\": \"./nl/hash.d.mts\",\n        \"default\": \"./nl/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/hash.d.cts\",\n        \"default\": \"./nl/hash.cjs\"\n      }\n    },\n    \"./nl/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./nl/hexadecimal.d.mts\",\n        \"default\": \"./nl/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/hexadecimal.d.cts\",\n        \"default\": \"./nl/hexadecimal.cjs\"\n      }\n    },\n    \"./nl/hexColor\": {\n      \"import\": {\n        \"types\": \"./nl/hexColor.d.mts\",\n        \"default\": \"./nl/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/hexColor.d.cts\",\n        \"default\": \"./nl/hexColor.cjs\"\n      }\n    },\n    \"./nl/imei\": {\n      \"import\": {\n        \"types\": \"./nl/imei.d.mts\",\n        \"default\": \"./nl/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/imei.d.cts\",\n        \"default\": \"./nl/imei.cjs\"\n      }\n    },\n    \"./nl/includes\": {\n      \"import\": {\n        \"types\": \"./nl/includes.d.mts\",\n        \"default\": \"./nl/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/includes.d.cts\",\n        \"default\": \"./nl/includes.cjs\"\n      }\n    },\n    \"./nl/integer\": {\n      \"import\": {\n        \"types\": \"./nl/integer.d.mts\",\n        \"default\": \"./nl/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/integer.d.cts\",\n        \"default\": \"./nl/integer.cjs\"\n      }\n    },\n    \"./nl/ip\": {\n      \"import\": {\n        \"types\": \"./nl/ip.d.mts\",\n        \"default\": \"./nl/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/ip.d.cts\",\n        \"default\": \"./nl/ip.cjs\"\n      }\n    },\n    \"./nl/ipv4\": {\n      \"import\": {\n        \"types\": \"./nl/ipv4.d.mts\",\n        \"default\": \"./nl/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/ipv4.d.cts\",\n        \"default\": \"./nl/ipv4.cjs\"\n      }\n    },\n    \"./nl/ipv6\": {\n      \"import\": {\n        \"types\": \"./nl/ipv6.d.mts\",\n        \"default\": \"./nl/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/ipv6.d.cts\",\n        \"default\": \"./nl/ipv6.cjs\"\n      }\n    },\n    \"./nl/isbn\": {\n      \"import\": {\n        \"types\": \"./nl/isbn.d.mts\",\n        \"default\": \"./nl/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/isbn.d.cts\",\n        \"default\": \"./nl/isbn.cjs\"\n      }\n    },\n    \"./nl/isoDate\": {\n      \"import\": {\n        \"types\": \"./nl/isoDate.d.mts\",\n        \"default\": \"./nl/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/isoDate.d.cts\",\n        \"default\": \"./nl/isoDate.cjs\"\n      }\n    },\n    \"./nl/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./nl/isoDateTime.d.mts\",\n        \"default\": \"./nl/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/isoDateTime.d.cts\",\n        \"default\": \"./nl/isoDateTime.cjs\"\n      }\n    },\n    \"./nl/isoTime\": {\n      \"import\": {\n        \"types\": \"./nl/isoTime.d.mts\",\n        \"default\": \"./nl/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/isoTime.d.cts\",\n        \"default\": \"./nl/isoTime.cjs\"\n      }\n    },\n    \"./nl/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./nl/isoTimeSecond.d.mts\",\n        \"default\": \"./nl/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/isoTimeSecond.d.cts\",\n        \"default\": \"./nl/isoTimeSecond.cjs\"\n      }\n    },\n    \"./nl/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./nl/isoTimestamp.d.mts\",\n        \"default\": \"./nl/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/isoTimestamp.d.cts\",\n        \"default\": \"./nl/isoTimestamp.cjs\"\n      }\n    },\n    \"./nl/isoWeek\": {\n      \"import\": {\n        \"types\": \"./nl/isoWeek.d.mts\",\n        \"default\": \"./nl/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/isoWeek.d.cts\",\n        \"default\": \"./nl/isoWeek.cjs\"\n      }\n    },\n    \"./nl/isrc\": {\n      \"import\": {\n        \"types\": \"./nl/isrc.d.mts\",\n        \"default\": \"./nl/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/isrc.d.cts\",\n        \"default\": \"./nl/isrc.cjs\"\n      }\n    },\n    \"./nl/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./nl/jwsCompact.d.mts\",\n        \"default\": \"./nl/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/jwsCompact.d.cts\",\n        \"default\": \"./nl/jwsCompact.cjs\"\n      }\n    },\n    \"./nl/length\": {\n      \"import\": {\n        \"types\": \"./nl/length.d.mts\",\n        \"default\": \"./nl/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/length.d.cts\",\n        \"default\": \"./nl/length.cjs\"\n      }\n    },\n    \"./nl/ltValue\": {\n      \"import\": {\n        \"types\": \"./nl/ltValue.d.mts\",\n        \"default\": \"./nl/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/ltValue.d.cts\",\n        \"default\": \"./nl/ltValue.cjs\"\n      }\n    },\n    \"./nl/mac\": {\n      \"import\": {\n        \"types\": \"./nl/mac.d.mts\",\n        \"default\": \"./nl/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/mac.d.cts\",\n        \"default\": \"./nl/mac.cjs\"\n      }\n    },\n    \"./nl/mac48\": {\n      \"import\": {\n        \"types\": \"./nl/mac48.d.mts\",\n        \"default\": \"./nl/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/mac48.d.cts\",\n        \"default\": \"./nl/mac48.cjs\"\n      }\n    },\n    \"./nl/mac64\": {\n      \"import\": {\n        \"types\": \"./nl/mac64.d.mts\",\n        \"default\": \"./nl/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/mac64.d.cts\",\n        \"default\": \"./nl/mac64.cjs\"\n      }\n    },\n    \"./nl/maxBytes\": {\n      \"import\": {\n        \"types\": \"./nl/maxBytes.d.mts\",\n        \"default\": \"./nl/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/maxBytes.d.cts\",\n        \"default\": \"./nl/maxBytes.cjs\"\n      }\n    },\n    \"./nl/maxEntries\": {\n      \"import\": {\n        \"types\": \"./nl/maxEntries.d.mts\",\n        \"default\": \"./nl/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/maxEntries.d.cts\",\n        \"default\": \"./nl/maxEntries.cjs\"\n      }\n    },\n    \"./nl/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./nl/maxGraphemes.d.mts\",\n        \"default\": \"./nl/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/maxGraphemes.d.cts\",\n        \"default\": \"./nl/maxGraphemes.cjs\"\n      }\n    },\n    \"./nl/maxLength\": {\n      \"import\": {\n        \"types\": \"./nl/maxLength.d.mts\",\n        \"default\": \"./nl/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/maxLength.d.cts\",\n        \"default\": \"./nl/maxLength.cjs\"\n      }\n    },\n    \"./nl/maxSize\": {\n      \"import\": {\n        \"types\": \"./nl/maxSize.d.mts\",\n        \"default\": \"./nl/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/maxSize.d.cts\",\n        \"default\": \"./nl/maxSize.cjs\"\n      }\n    },\n    \"./nl/maxValue\": {\n      \"import\": {\n        \"types\": \"./nl/maxValue.d.mts\",\n        \"default\": \"./nl/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/maxValue.d.cts\",\n        \"default\": \"./nl/maxValue.cjs\"\n      }\n    },\n    \"./nl/maxWords\": {\n      \"import\": {\n        \"types\": \"./nl/maxWords.d.mts\",\n        \"default\": \"./nl/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/maxWords.d.cts\",\n        \"default\": \"./nl/maxWords.cjs\"\n      }\n    },\n    \"./nl/mimeType\": {\n      \"import\": {\n        \"types\": \"./nl/mimeType.d.mts\",\n        \"default\": \"./nl/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/mimeType.d.cts\",\n        \"default\": \"./nl/mimeType.cjs\"\n      }\n    },\n    \"./nl/minBytes\": {\n      \"import\": {\n        \"types\": \"./nl/minBytes.d.mts\",\n        \"default\": \"./nl/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/minBytes.d.cts\",\n        \"default\": \"./nl/minBytes.cjs\"\n      }\n    },\n    \"./nl/minEntries\": {\n      \"import\": {\n        \"types\": \"./nl/minEntries.d.mts\",\n        \"default\": \"./nl/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/minEntries.d.cts\",\n        \"default\": \"./nl/minEntries.cjs\"\n      }\n    },\n    \"./nl/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./nl/minGraphemes.d.mts\",\n        \"default\": \"./nl/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/minGraphemes.d.cts\",\n        \"default\": \"./nl/minGraphemes.cjs\"\n      }\n    },\n    \"./nl/minLength\": {\n      \"import\": {\n        \"types\": \"./nl/minLength.d.mts\",\n        \"default\": \"./nl/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/minLength.d.cts\",\n        \"default\": \"./nl/minLength.cjs\"\n      }\n    },\n    \"./nl/minSize\": {\n      \"import\": {\n        \"types\": \"./nl/minSize.d.mts\",\n        \"default\": \"./nl/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/minSize.d.cts\",\n        \"default\": \"./nl/minSize.cjs\"\n      }\n    },\n    \"./nl/minValue\": {\n      \"import\": {\n        \"types\": \"./nl/minValue.d.mts\",\n        \"default\": \"./nl/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/minValue.d.cts\",\n        \"default\": \"./nl/minValue.cjs\"\n      }\n    },\n    \"./nl/minWords\": {\n      \"import\": {\n        \"types\": \"./nl/minWords.d.mts\",\n        \"default\": \"./nl/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/minWords.d.cts\",\n        \"default\": \"./nl/minWords.cjs\"\n      }\n    },\n    \"./nl/multipleOf\": {\n      \"import\": {\n        \"types\": \"./nl/multipleOf.d.mts\",\n        \"default\": \"./nl/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/multipleOf.d.cts\",\n        \"default\": \"./nl/multipleOf.cjs\"\n      }\n    },\n    \"./nl/nanoid\": {\n      \"import\": {\n        \"types\": \"./nl/nanoid.d.mts\",\n        \"default\": \"./nl/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/nanoid.d.cts\",\n        \"default\": \"./nl/nanoid.cjs\"\n      }\n    },\n    \"./nl/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./nl/nonEmpty.d.mts\",\n        \"default\": \"./nl/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/nonEmpty.d.cts\",\n        \"default\": \"./nl/nonEmpty.cjs\"\n      }\n    },\n    \"./nl/notBytes\": {\n      \"import\": {\n        \"types\": \"./nl/notBytes.d.mts\",\n        \"default\": \"./nl/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/notBytes.d.cts\",\n        \"default\": \"./nl/notBytes.cjs\"\n      }\n    },\n    \"./nl/notEntries\": {\n      \"import\": {\n        \"types\": \"./nl/notEntries.d.mts\",\n        \"default\": \"./nl/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/notEntries.d.cts\",\n        \"default\": \"./nl/notEntries.cjs\"\n      }\n    },\n    \"./nl/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./nl/notGraphemes.d.mts\",\n        \"default\": \"./nl/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/notGraphemes.d.cts\",\n        \"default\": \"./nl/notGraphemes.cjs\"\n      }\n    },\n    \"./nl/notLength\": {\n      \"import\": {\n        \"types\": \"./nl/notLength.d.mts\",\n        \"default\": \"./nl/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/notLength.d.cts\",\n        \"default\": \"./nl/notLength.cjs\"\n      }\n    },\n    \"./nl/notSize\": {\n      \"import\": {\n        \"types\": \"./nl/notSize.d.mts\",\n        \"default\": \"./nl/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/notSize.d.cts\",\n        \"default\": \"./nl/notSize.cjs\"\n      }\n    },\n    \"./nl/notValue\": {\n      \"import\": {\n        \"types\": \"./nl/notValue.d.mts\",\n        \"default\": \"./nl/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/notValue.d.cts\",\n        \"default\": \"./nl/notValue.cjs\"\n      }\n    },\n    \"./nl/notValues\": {\n      \"import\": {\n        \"types\": \"./nl/notValues.d.mts\",\n        \"default\": \"./nl/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/notValues.d.cts\",\n        \"default\": \"./nl/notValues.cjs\"\n      }\n    },\n    \"./nl/notWords\": {\n      \"import\": {\n        \"types\": \"./nl/notWords.d.mts\",\n        \"default\": \"./nl/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/notWords.d.cts\",\n        \"default\": \"./nl/notWords.cjs\"\n      }\n    },\n    \"./nl/octal\": {\n      \"import\": {\n        \"types\": \"./nl/octal.d.mts\",\n        \"default\": \"./nl/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/octal.d.cts\",\n        \"default\": \"./nl/octal.cjs\"\n      }\n    },\n    \"./nl/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./nl/parseBoolean.d.mts\",\n        \"default\": \"./nl/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/parseBoolean.d.cts\",\n        \"default\": \"./nl/parseBoolean.cjs\"\n      }\n    },\n    \"./nl/parseJson\": {\n      \"import\": {\n        \"types\": \"./nl/parseJson.d.mts\",\n        \"default\": \"./nl/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/parseJson.d.cts\",\n        \"default\": \"./nl/parseJson.cjs\"\n      }\n    },\n    \"./nl/partialCheck\": {\n      \"import\": {\n        \"types\": \"./nl/partialCheck.d.mts\",\n        \"default\": \"./nl/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/partialCheck.d.cts\",\n        \"default\": \"./nl/partialCheck.cjs\"\n      }\n    },\n    \"./nl/rawCheck\": {\n      \"import\": {\n        \"types\": \"./nl/rawCheck.d.mts\",\n        \"default\": \"./nl/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/rawCheck.d.cts\",\n        \"default\": \"./nl/rawCheck.cjs\"\n      }\n    },\n    \"./nl/rawTransform\": {\n      \"import\": {\n        \"types\": \"./nl/rawTransform.d.mts\",\n        \"default\": \"./nl/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/rawTransform.d.cts\",\n        \"default\": \"./nl/rawTransform.cjs\"\n      }\n    },\n    \"./nl/regex\": {\n      \"import\": {\n        \"types\": \"./nl/regex.d.mts\",\n        \"default\": \"./nl/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/regex.d.cts\",\n        \"default\": \"./nl/regex.cjs\"\n      }\n    },\n    \"./nl/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./nl/rfcEmail.d.mts\",\n        \"default\": \"./nl/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/rfcEmail.d.cts\",\n        \"default\": \"./nl/rfcEmail.cjs\"\n      }\n    },\n    \"./nl/safeInteger\": {\n      \"import\": {\n        \"types\": \"./nl/safeInteger.d.mts\",\n        \"default\": \"./nl/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/safeInteger.d.cts\",\n        \"default\": \"./nl/safeInteger.cjs\"\n      }\n    },\n    \"./nl/size\": {\n      \"import\": {\n        \"types\": \"./nl/size.d.mts\",\n        \"default\": \"./nl/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/size.d.cts\",\n        \"default\": \"./nl/size.cjs\"\n      }\n    },\n    \"./nl/slug\": {\n      \"import\": {\n        \"types\": \"./nl/slug.d.mts\",\n        \"default\": \"./nl/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/slug.d.cts\",\n        \"default\": \"./nl/slug.cjs\"\n      }\n    },\n    \"./nl/someItem\": {\n      \"import\": {\n        \"types\": \"./nl/someItem.d.mts\",\n        \"default\": \"./nl/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/someItem.d.cts\",\n        \"default\": \"./nl/someItem.cjs\"\n      }\n    },\n    \"./nl/startsWith\": {\n      \"import\": {\n        \"types\": \"./nl/startsWith.d.mts\",\n        \"default\": \"./nl/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/startsWith.d.cts\",\n        \"default\": \"./nl/startsWith.cjs\"\n      }\n    },\n    \"./nl/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./nl/stringifyJson.d.mts\",\n        \"default\": \"./nl/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/stringifyJson.d.cts\",\n        \"default\": \"./nl/stringifyJson.cjs\"\n      }\n    },\n    \"./nl/toBigint\": {\n      \"import\": {\n        \"types\": \"./nl/toBigint.d.mts\",\n        \"default\": \"./nl/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/toBigint.d.cts\",\n        \"default\": \"./nl/toBigint.cjs\"\n      }\n    },\n    \"./nl/toDate\": {\n      \"import\": {\n        \"types\": \"./nl/toDate.d.mts\",\n        \"default\": \"./nl/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/toDate.d.cts\",\n        \"default\": \"./nl/toDate.cjs\"\n      }\n    },\n    \"./nl/toNumber\": {\n      \"import\": {\n        \"types\": \"./nl/toNumber.d.mts\",\n        \"default\": \"./nl/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/toNumber.d.cts\",\n        \"default\": \"./nl/toNumber.cjs\"\n      }\n    },\n    \"./nl/toString\": {\n      \"import\": {\n        \"types\": \"./nl/toString.d.mts\",\n        \"default\": \"./nl/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/toString.d.cts\",\n        \"default\": \"./nl/toString.cjs\"\n      }\n    },\n    \"./nl/ulid\": {\n      \"import\": {\n        \"types\": \"./nl/ulid.d.mts\",\n        \"default\": \"./nl/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/ulid.d.cts\",\n        \"default\": \"./nl/ulid.cjs\"\n      }\n    },\n    \"./nl/url\": {\n      \"import\": {\n        \"types\": \"./nl/url.d.mts\",\n        \"default\": \"./nl/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/url.d.cts\",\n        \"default\": \"./nl/url.cjs\"\n      }\n    },\n    \"./nl/uuid\": {\n      \"import\": {\n        \"types\": \"./nl/uuid.d.mts\",\n        \"default\": \"./nl/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/uuid.d.cts\",\n        \"default\": \"./nl/uuid.cjs\"\n      }\n    },\n    \"./nl/value\": {\n      \"import\": {\n        \"types\": \"./nl/value.d.mts\",\n        \"default\": \"./nl/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/value.d.cts\",\n        \"default\": \"./nl/value.cjs\"\n      }\n    },\n    \"./nl/values\": {\n      \"import\": {\n        \"types\": \"./nl/values.d.mts\",\n        \"default\": \"./nl/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/values.d.cts\",\n        \"default\": \"./nl/values.cjs\"\n      }\n    },\n    \"./nl/words\": {\n      \"import\": {\n        \"types\": \"./nl/words.d.mts\",\n        \"default\": \"./nl/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./nl/words.d.cts\",\n        \"default\": \"./nl/words.cjs\"\n      }\n    },\n    \"./pl\": {\n      \"import\": {\n        \"types\": \"./pl/index.d.mts\",\n        \"default\": \"./pl/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/index.d.cts\",\n        \"default\": \"./pl/index.cjs\"\n      }\n    },\n    \"./pl/schema\": {\n      \"import\": {\n        \"types\": \"./pl/schema.d.mts\",\n        \"default\": \"./pl/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/schema.d.cts\",\n        \"default\": \"./pl/schema.cjs\"\n      }\n    },\n    \"./pl/base64\": {\n      \"import\": {\n        \"types\": \"./pl/base64.d.mts\",\n        \"default\": \"./pl/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/base64.d.cts\",\n        \"default\": \"./pl/base64.cjs\"\n      }\n    },\n    \"./pl/bic\": {\n      \"import\": {\n        \"types\": \"./pl/bic.d.mts\",\n        \"default\": \"./pl/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/bic.d.cts\",\n        \"default\": \"./pl/bic.cjs\"\n      }\n    },\n    \"./pl/bytes\": {\n      \"import\": {\n        \"types\": \"./pl/bytes.d.mts\",\n        \"default\": \"./pl/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/bytes.d.cts\",\n        \"default\": \"./pl/bytes.cjs\"\n      }\n    },\n    \"./pl/check\": {\n      \"import\": {\n        \"types\": \"./pl/check.d.mts\",\n        \"default\": \"./pl/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/check.d.cts\",\n        \"default\": \"./pl/check.cjs\"\n      }\n    },\n    \"./pl/checkAsync\": {\n      \"import\": {\n        \"types\": \"./pl/checkAsync.d.mts\",\n        \"default\": \"./pl/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/checkAsync.d.cts\",\n        \"default\": \"./pl/checkAsync.cjs\"\n      }\n    },\n    \"./pl/checkItems\": {\n      \"import\": {\n        \"types\": \"./pl/checkItems.d.mts\",\n        \"default\": \"./pl/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/checkItems.d.cts\",\n        \"default\": \"./pl/checkItems.cjs\"\n      }\n    },\n    \"./pl/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./pl/checkItemsAsync.d.mts\",\n        \"default\": \"./pl/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/checkItemsAsync.d.cts\",\n        \"default\": \"./pl/checkItemsAsync.cjs\"\n      }\n    },\n    \"./pl/creditCard\": {\n      \"import\": {\n        \"types\": \"./pl/creditCard.d.mts\",\n        \"default\": \"./pl/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/creditCard.d.cts\",\n        \"default\": \"./pl/creditCard.cjs\"\n      }\n    },\n    \"./pl/cuid2\": {\n      \"import\": {\n        \"types\": \"./pl/cuid2.d.mts\",\n        \"default\": \"./pl/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/cuid2.d.cts\",\n        \"default\": \"./pl/cuid2.cjs\"\n      }\n    },\n    \"./pl/decimal\": {\n      \"import\": {\n        \"types\": \"./pl/decimal.d.mts\",\n        \"default\": \"./pl/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/decimal.d.cts\",\n        \"default\": \"./pl/decimal.cjs\"\n      }\n    },\n    \"./pl/digits\": {\n      \"import\": {\n        \"types\": \"./pl/digits.d.mts\",\n        \"default\": \"./pl/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/digits.d.cts\",\n        \"default\": \"./pl/digits.cjs\"\n      }\n    },\n    \"./pl/domain\": {\n      \"import\": {\n        \"types\": \"./pl/domain.d.mts\",\n        \"default\": \"./pl/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/domain.d.cts\",\n        \"default\": \"./pl/domain.cjs\"\n      }\n    },\n    \"./pl/email\": {\n      \"import\": {\n        \"types\": \"./pl/email.d.mts\",\n        \"default\": \"./pl/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/email.d.cts\",\n        \"default\": \"./pl/email.cjs\"\n      }\n    },\n    \"./pl/emoji\": {\n      \"import\": {\n        \"types\": \"./pl/emoji.d.mts\",\n        \"default\": \"./pl/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/emoji.d.cts\",\n        \"default\": \"./pl/emoji.cjs\"\n      }\n    },\n    \"./pl/empty\": {\n      \"import\": {\n        \"types\": \"./pl/empty.d.mts\",\n        \"default\": \"./pl/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/empty.d.cts\",\n        \"default\": \"./pl/empty.cjs\"\n      }\n    },\n    \"./pl/endsWith\": {\n      \"import\": {\n        \"types\": \"./pl/endsWith.d.mts\",\n        \"default\": \"./pl/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/endsWith.d.cts\",\n        \"default\": \"./pl/endsWith.cjs\"\n      }\n    },\n    \"./pl/entries\": {\n      \"import\": {\n        \"types\": \"./pl/entries.d.mts\",\n        \"default\": \"./pl/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/entries.d.cts\",\n        \"default\": \"./pl/entries.cjs\"\n      }\n    },\n    \"./pl/everyItem\": {\n      \"import\": {\n        \"types\": \"./pl/everyItem.d.mts\",\n        \"default\": \"./pl/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/everyItem.d.cts\",\n        \"default\": \"./pl/everyItem.cjs\"\n      }\n    },\n    \"./pl/excludes\": {\n      \"import\": {\n        \"types\": \"./pl/excludes.d.mts\",\n        \"default\": \"./pl/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/excludes.d.cts\",\n        \"default\": \"./pl/excludes.cjs\"\n      }\n    },\n    \"./pl/finite\": {\n      \"import\": {\n        \"types\": \"./pl/finite.d.mts\",\n        \"default\": \"./pl/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/finite.d.cts\",\n        \"default\": \"./pl/finite.cjs\"\n      }\n    },\n    \"./pl/graphemes\": {\n      \"import\": {\n        \"types\": \"./pl/graphemes.d.mts\",\n        \"default\": \"./pl/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/graphemes.d.cts\",\n        \"default\": \"./pl/graphemes.cjs\"\n      }\n    },\n    \"./pl/gtValue\": {\n      \"import\": {\n        \"types\": \"./pl/gtValue.d.mts\",\n        \"default\": \"./pl/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/gtValue.d.cts\",\n        \"default\": \"./pl/gtValue.cjs\"\n      }\n    },\n    \"./pl/guard\": {\n      \"import\": {\n        \"types\": \"./pl/guard.d.mts\",\n        \"default\": \"./pl/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/guard.d.cts\",\n        \"default\": \"./pl/guard.cjs\"\n      }\n    },\n    \"./pl/hash\": {\n      \"import\": {\n        \"types\": \"./pl/hash.d.mts\",\n        \"default\": \"./pl/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/hash.d.cts\",\n        \"default\": \"./pl/hash.cjs\"\n      }\n    },\n    \"./pl/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./pl/hexadecimal.d.mts\",\n        \"default\": \"./pl/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/hexadecimal.d.cts\",\n        \"default\": \"./pl/hexadecimal.cjs\"\n      }\n    },\n    \"./pl/hexColor\": {\n      \"import\": {\n        \"types\": \"./pl/hexColor.d.mts\",\n        \"default\": \"./pl/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/hexColor.d.cts\",\n        \"default\": \"./pl/hexColor.cjs\"\n      }\n    },\n    \"./pl/imei\": {\n      \"import\": {\n        \"types\": \"./pl/imei.d.mts\",\n        \"default\": \"./pl/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/imei.d.cts\",\n        \"default\": \"./pl/imei.cjs\"\n      }\n    },\n    \"./pl/includes\": {\n      \"import\": {\n        \"types\": \"./pl/includes.d.mts\",\n        \"default\": \"./pl/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/includes.d.cts\",\n        \"default\": \"./pl/includes.cjs\"\n      }\n    },\n    \"./pl/integer\": {\n      \"import\": {\n        \"types\": \"./pl/integer.d.mts\",\n        \"default\": \"./pl/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/integer.d.cts\",\n        \"default\": \"./pl/integer.cjs\"\n      }\n    },\n    \"./pl/ip\": {\n      \"import\": {\n        \"types\": \"./pl/ip.d.mts\",\n        \"default\": \"./pl/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/ip.d.cts\",\n        \"default\": \"./pl/ip.cjs\"\n      }\n    },\n    \"./pl/ipv4\": {\n      \"import\": {\n        \"types\": \"./pl/ipv4.d.mts\",\n        \"default\": \"./pl/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/ipv4.d.cts\",\n        \"default\": \"./pl/ipv4.cjs\"\n      }\n    },\n    \"./pl/ipv6\": {\n      \"import\": {\n        \"types\": \"./pl/ipv6.d.mts\",\n        \"default\": \"./pl/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/ipv6.d.cts\",\n        \"default\": \"./pl/ipv6.cjs\"\n      }\n    },\n    \"./pl/isbn\": {\n      \"import\": {\n        \"types\": \"./pl/isbn.d.mts\",\n        \"default\": \"./pl/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/isbn.d.cts\",\n        \"default\": \"./pl/isbn.cjs\"\n      }\n    },\n    \"./pl/isoDate\": {\n      \"import\": {\n        \"types\": \"./pl/isoDate.d.mts\",\n        \"default\": \"./pl/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/isoDate.d.cts\",\n        \"default\": \"./pl/isoDate.cjs\"\n      }\n    },\n    \"./pl/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./pl/isoDateTime.d.mts\",\n        \"default\": \"./pl/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/isoDateTime.d.cts\",\n        \"default\": \"./pl/isoDateTime.cjs\"\n      }\n    },\n    \"./pl/isoTime\": {\n      \"import\": {\n        \"types\": \"./pl/isoTime.d.mts\",\n        \"default\": \"./pl/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/isoTime.d.cts\",\n        \"default\": \"./pl/isoTime.cjs\"\n      }\n    },\n    \"./pl/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./pl/isoTimeSecond.d.mts\",\n        \"default\": \"./pl/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/isoTimeSecond.d.cts\",\n        \"default\": \"./pl/isoTimeSecond.cjs\"\n      }\n    },\n    \"./pl/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./pl/isoTimestamp.d.mts\",\n        \"default\": \"./pl/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/isoTimestamp.d.cts\",\n        \"default\": \"./pl/isoTimestamp.cjs\"\n      }\n    },\n    \"./pl/isoWeek\": {\n      \"import\": {\n        \"types\": \"./pl/isoWeek.d.mts\",\n        \"default\": \"./pl/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/isoWeek.d.cts\",\n        \"default\": \"./pl/isoWeek.cjs\"\n      }\n    },\n    \"./pl/isrc\": {\n      \"import\": {\n        \"types\": \"./pl/isrc.d.mts\",\n        \"default\": \"./pl/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/isrc.d.cts\",\n        \"default\": \"./pl/isrc.cjs\"\n      }\n    },\n    \"./pl/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./pl/jwsCompact.d.mts\",\n        \"default\": \"./pl/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/jwsCompact.d.cts\",\n        \"default\": \"./pl/jwsCompact.cjs\"\n      }\n    },\n    \"./pl/length\": {\n      \"import\": {\n        \"types\": \"./pl/length.d.mts\",\n        \"default\": \"./pl/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/length.d.cts\",\n        \"default\": \"./pl/length.cjs\"\n      }\n    },\n    \"./pl/ltValue\": {\n      \"import\": {\n        \"types\": \"./pl/ltValue.d.mts\",\n        \"default\": \"./pl/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/ltValue.d.cts\",\n        \"default\": \"./pl/ltValue.cjs\"\n      }\n    },\n    \"./pl/mac\": {\n      \"import\": {\n        \"types\": \"./pl/mac.d.mts\",\n        \"default\": \"./pl/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/mac.d.cts\",\n        \"default\": \"./pl/mac.cjs\"\n      }\n    },\n    \"./pl/mac48\": {\n      \"import\": {\n        \"types\": \"./pl/mac48.d.mts\",\n        \"default\": \"./pl/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/mac48.d.cts\",\n        \"default\": \"./pl/mac48.cjs\"\n      }\n    },\n    \"./pl/mac64\": {\n      \"import\": {\n        \"types\": \"./pl/mac64.d.mts\",\n        \"default\": \"./pl/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/mac64.d.cts\",\n        \"default\": \"./pl/mac64.cjs\"\n      }\n    },\n    \"./pl/maxBytes\": {\n      \"import\": {\n        \"types\": \"./pl/maxBytes.d.mts\",\n        \"default\": \"./pl/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/maxBytes.d.cts\",\n        \"default\": \"./pl/maxBytes.cjs\"\n      }\n    },\n    \"./pl/maxEntries\": {\n      \"import\": {\n        \"types\": \"./pl/maxEntries.d.mts\",\n        \"default\": \"./pl/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/maxEntries.d.cts\",\n        \"default\": \"./pl/maxEntries.cjs\"\n      }\n    },\n    \"./pl/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./pl/maxGraphemes.d.mts\",\n        \"default\": \"./pl/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/maxGraphemes.d.cts\",\n        \"default\": \"./pl/maxGraphemes.cjs\"\n      }\n    },\n    \"./pl/maxLength\": {\n      \"import\": {\n        \"types\": \"./pl/maxLength.d.mts\",\n        \"default\": \"./pl/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/maxLength.d.cts\",\n        \"default\": \"./pl/maxLength.cjs\"\n      }\n    },\n    \"./pl/maxSize\": {\n      \"import\": {\n        \"types\": \"./pl/maxSize.d.mts\",\n        \"default\": \"./pl/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/maxSize.d.cts\",\n        \"default\": \"./pl/maxSize.cjs\"\n      }\n    },\n    \"./pl/maxValue\": {\n      \"import\": {\n        \"types\": \"./pl/maxValue.d.mts\",\n        \"default\": \"./pl/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/maxValue.d.cts\",\n        \"default\": \"./pl/maxValue.cjs\"\n      }\n    },\n    \"./pl/maxWords\": {\n      \"import\": {\n        \"types\": \"./pl/maxWords.d.mts\",\n        \"default\": \"./pl/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/maxWords.d.cts\",\n        \"default\": \"./pl/maxWords.cjs\"\n      }\n    },\n    \"./pl/mimeType\": {\n      \"import\": {\n        \"types\": \"./pl/mimeType.d.mts\",\n        \"default\": \"./pl/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/mimeType.d.cts\",\n        \"default\": \"./pl/mimeType.cjs\"\n      }\n    },\n    \"./pl/minBytes\": {\n      \"import\": {\n        \"types\": \"./pl/minBytes.d.mts\",\n        \"default\": \"./pl/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/minBytes.d.cts\",\n        \"default\": \"./pl/minBytes.cjs\"\n      }\n    },\n    \"./pl/minEntries\": {\n      \"import\": {\n        \"types\": \"./pl/minEntries.d.mts\",\n        \"default\": \"./pl/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/minEntries.d.cts\",\n        \"default\": \"./pl/minEntries.cjs\"\n      }\n    },\n    \"./pl/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./pl/minGraphemes.d.mts\",\n        \"default\": \"./pl/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/minGraphemes.d.cts\",\n        \"default\": \"./pl/minGraphemes.cjs\"\n      }\n    },\n    \"./pl/minLength\": {\n      \"import\": {\n        \"types\": \"./pl/minLength.d.mts\",\n        \"default\": \"./pl/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/minLength.d.cts\",\n        \"default\": \"./pl/minLength.cjs\"\n      }\n    },\n    \"./pl/minSize\": {\n      \"import\": {\n        \"types\": \"./pl/minSize.d.mts\",\n        \"default\": \"./pl/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/minSize.d.cts\",\n        \"default\": \"./pl/minSize.cjs\"\n      }\n    },\n    \"./pl/minValue\": {\n      \"import\": {\n        \"types\": \"./pl/minValue.d.mts\",\n        \"default\": \"./pl/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/minValue.d.cts\",\n        \"default\": \"./pl/minValue.cjs\"\n      }\n    },\n    \"./pl/minWords\": {\n      \"import\": {\n        \"types\": \"./pl/minWords.d.mts\",\n        \"default\": \"./pl/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/minWords.d.cts\",\n        \"default\": \"./pl/minWords.cjs\"\n      }\n    },\n    \"./pl/multipleOf\": {\n      \"import\": {\n        \"types\": \"./pl/multipleOf.d.mts\",\n        \"default\": \"./pl/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/multipleOf.d.cts\",\n        \"default\": \"./pl/multipleOf.cjs\"\n      }\n    },\n    \"./pl/nanoid\": {\n      \"import\": {\n        \"types\": \"./pl/nanoid.d.mts\",\n        \"default\": \"./pl/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/nanoid.d.cts\",\n        \"default\": \"./pl/nanoid.cjs\"\n      }\n    },\n    \"./pl/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./pl/nonEmpty.d.mts\",\n        \"default\": \"./pl/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/nonEmpty.d.cts\",\n        \"default\": \"./pl/nonEmpty.cjs\"\n      }\n    },\n    \"./pl/notBytes\": {\n      \"import\": {\n        \"types\": \"./pl/notBytes.d.mts\",\n        \"default\": \"./pl/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/notBytes.d.cts\",\n        \"default\": \"./pl/notBytes.cjs\"\n      }\n    },\n    \"./pl/notEntries\": {\n      \"import\": {\n        \"types\": \"./pl/notEntries.d.mts\",\n        \"default\": \"./pl/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/notEntries.d.cts\",\n        \"default\": \"./pl/notEntries.cjs\"\n      }\n    },\n    \"./pl/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./pl/notGraphemes.d.mts\",\n        \"default\": \"./pl/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/notGraphemes.d.cts\",\n        \"default\": \"./pl/notGraphemes.cjs\"\n      }\n    },\n    \"./pl/notLength\": {\n      \"import\": {\n        \"types\": \"./pl/notLength.d.mts\",\n        \"default\": \"./pl/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/notLength.d.cts\",\n        \"default\": \"./pl/notLength.cjs\"\n      }\n    },\n    \"./pl/notSize\": {\n      \"import\": {\n        \"types\": \"./pl/notSize.d.mts\",\n        \"default\": \"./pl/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/notSize.d.cts\",\n        \"default\": \"./pl/notSize.cjs\"\n      }\n    },\n    \"./pl/notValue\": {\n      \"import\": {\n        \"types\": \"./pl/notValue.d.mts\",\n        \"default\": \"./pl/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/notValue.d.cts\",\n        \"default\": \"./pl/notValue.cjs\"\n      }\n    },\n    \"./pl/notValues\": {\n      \"import\": {\n        \"types\": \"./pl/notValues.d.mts\",\n        \"default\": \"./pl/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/notValues.d.cts\",\n        \"default\": \"./pl/notValues.cjs\"\n      }\n    },\n    \"./pl/notWords\": {\n      \"import\": {\n        \"types\": \"./pl/notWords.d.mts\",\n        \"default\": \"./pl/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/notWords.d.cts\",\n        \"default\": \"./pl/notWords.cjs\"\n      }\n    },\n    \"./pl/octal\": {\n      \"import\": {\n        \"types\": \"./pl/octal.d.mts\",\n        \"default\": \"./pl/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/octal.d.cts\",\n        \"default\": \"./pl/octal.cjs\"\n      }\n    },\n    \"./pl/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./pl/parseBoolean.d.mts\",\n        \"default\": \"./pl/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/parseBoolean.d.cts\",\n        \"default\": \"./pl/parseBoolean.cjs\"\n      }\n    },\n    \"./pl/parseJson\": {\n      \"import\": {\n        \"types\": \"./pl/parseJson.d.mts\",\n        \"default\": \"./pl/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/parseJson.d.cts\",\n        \"default\": \"./pl/parseJson.cjs\"\n      }\n    },\n    \"./pl/partialCheck\": {\n      \"import\": {\n        \"types\": \"./pl/partialCheck.d.mts\",\n        \"default\": \"./pl/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/partialCheck.d.cts\",\n        \"default\": \"./pl/partialCheck.cjs\"\n      }\n    },\n    \"./pl/rawCheck\": {\n      \"import\": {\n        \"types\": \"./pl/rawCheck.d.mts\",\n        \"default\": \"./pl/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/rawCheck.d.cts\",\n        \"default\": \"./pl/rawCheck.cjs\"\n      }\n    },\n    \"./pl/rawTransform\": {\n      \"import\": {\n        \"types\": \"./pl/rawTransform.d.mts\",\n        \"default\": \"./pl/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/rawTransform.d.cts\",\n        \"default\": \"./pl/rawTransform.cjs\"\n      }\n    },\n    \"./pl/regex\": {\n      \"import\": {\n        \"types\": \"./pl/regex.d.mts\",\n        \"default\": \"./pl/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/regex.d.cts\",\n        \"default\": \"./pl/regex.cjs\"\n      }\n    },\n    \"./pl/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./pl/rfcEmail.d.mts\",\n        \"default\": \"./pl/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/rfcEmail.d.cts\",\n        \"default\": \"./pl/rfcEmail.cjs\"\n      }\n    },\n    \"./pl/safeInteger\": {\n      \"import\": {\n        \"types\": \"./pl/safeInteger.d.mts\",\n        \"default\": \"./pl/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/safeInteger.d.cts\",\n        \"default\": \"./pl/safeInteger.cjs\"\n      }\n    },\n    \"./pl/size\": {\n      \"import\": {\n        \"types\": \"./pl/size.d.mts\",\n        \"default\": \"./pl/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/size.d.cts\",\n        \"default\": \"./pl/size.cjs\"\n      }\n    },\n    \"./pl/slug\": {\n      \"import\": {\n        \"types\": \"./pl/slug.d.mts\",\n        \"default\": \"./pl/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/slug.d.cts\",\n        \"default\": \"./pl/slug.cjs\"\n      }\n    },\n    \"./pl/someItem\": {\n      \"import\": {\n        \"types\": \"./pl/someItem.d.mts\",\n        \"default\": \"./pl/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/someItem.d.cts\",\n        \"default\": \"./pl/someItem.cjs\"\n      }\n    },\n    \"./pl/startsWith\": {\n      \"import\": {\n        \"types\": \"./pl/startsWith.d.mts\",\n        \"default\": \"./pl/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/startsWith.d.cts\",\n        \"default\": \"./pl/startsWith.cjs\"\n      }\n    },\n    \"./pl/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./pl/stringifyJson.d.mts\",\n        \"default\": \"./pl/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/stringifyJson.d.cts\",\n        \"default\": \"./pl/stringifyJson.cjs\"\n      }\n    },\n    \"./pl/toBigint\": {\n      \"import\": {\n        \"types\": \"./pl/toBigint.d.mts\",\n        \"default\": \"./pl/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/toBigint.d.cts\",\n        \"default\": \"./pl/toBigint.cjs\"\n      }\n    },\n    \"./pl/toDate\": {\n      \"import\": {\n        \"types\": \"./pl/toDate.d.mts\",\n        \"default\": \"./pl/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/toDate.d.cts\",\n        \"default\": \"./pl/toDate.cjs\"\n      }\n    },\n    \"./pl/toNumber\": {\n      \"import\": {\n        \"types\": \"./pl/toNumber.d.mts\",\n        \"default\": \"./pl/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/toNumber.d.cts\",\n        \"default\": \"./pl/toNumber.cjs\"\n      }\n    },\n    \"./pl/toString\": {\n      \"import\": {\n        \"types\": \"./pl/toString.d.mts\",\n        \"default\": \"./pl/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/toString.d.cts\",\n        \"default\": \"./pl/toString.cjs\"\n      }\n    },\n    \"./pl/ulid\": {\n      \"import\": {\n        \"types\": \"./pl/ulid.d.mts\",\n        \"default\": \"./pl/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/ulid.d.cts\",\n        \"default\": \"./pl/ulid.cjs\"\n      }\n    },\n    \"./pl/url\": {\n      \"import\": {\n        \"types\": \"./pl/url.d.mts\",\n        \"default\": \"./pl/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/url.d.cts\",\n        \"default\": \"./pl/url.cjs\"\n      }\n    },\n    \"./pl/uuid\": {\n      \"import\": {\n        \"types\": \"./pl/uuid.d.mts\",\n        \"default\": \"./pl/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/uuid.d.cts\",\n        \"default\": \"./pl/uuid.cjs\"\n      }\n    },\n    \"./pl/value\": {\n      \"import\": {\n        \"types\": \"./pl/value.d.mts\",\n        \"default\": \"./pl/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/value.d.cts\",\n        \"default\": \"./pl/value.cjs\"\n      }\n    },\n    \"./pl/values\": {\n      \"import\": {\n        \"types\": \"./pl/values.d.mts\",\n        \"default\": \"./pl/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/values.d.cts\",\n        \"default\": \"./pl/values.cjs\"\n      }\n    },\n    \"./pl/words\": {\n      \"import\": {\n        \"types\": \"./pl/words.d.mts\",\n        \"default\": \"./pl/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pl/words.d.cts\",\n        \"default\": \"./pl/words.cjs\"\n      }\n    },\n    \"./pt\": {\n      \"import\": {\n        \"types\": \"./pt/index.d.mts\",\n        \"default\": \"./pt/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/index.d.cts\",\n        \"default\": \"./pt/index.cjs\"\n      }\n    },\n    \"./pt/schema\": {\n      \"import\": {\n        \"types\": \"./pt/schema.d.mts\",\n        \"default\": \"./pt/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/schema.d.cts\",\n        \"default\": \"./pt/schema.cjs\"\n      }\n    },\n    \"./pt/base64\": {\n      \"import\": {\n        \"types\": \"./pt/base64.d.mts\",\n        \"default\": \"./pt/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/base64.d.cts\",\n        \"default\": \"./pt/base64.cjs\"\n      }\n    },\n    \"./pt/bic\": {\n      \"import\": {\n        \"types\": \"./pt/bic.d.mts\",\n        \"default\": \"./pt/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/bic.d.cts\",\n        \"default\": \"./pt/bic.cjs\"\n      }\n    },\n    \"./pt/bytes\": {\n      \"import\": {\n        \"types\": \"./pt/bytes.d.mts\",\n        \"default\": \"./pt/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/bytes.d.cts\",\n        \"default\": \"./pt/bytes.cjs\"\n      }\n    },\n    \"./pt/check\": {\n      \"import\": {\n        \"types\": \"./pt/check.d.mts\",\n        \"default\": \"./pt/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/check.d.cts\",\n        \"default\": \"./pt/check.cjs\"\n      }\n    },\n    \"./pt/checkAsync\": {\n      \"import\": {\n        \"types\": \"./pt/checkAsync.d.mts\",\n        \"default\": \"./pt/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/checkAsync.d.cts\",\n        \"default\": \"./pt/checkAsync.cjs\"\n      }\n    },\n    \"./pt/checkItems\": {\n      \"import\": {\n        \"types\": \"./pt/checkItems.d.mts\",\n        \"default\": \"./pt/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/checkItems.d.cts\",\n        \"default\": \"./pt/checkItems.cjs\"\n      }\n    },\n    \"./pt/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./pt/checkItemsAsync.d.mts\",\n        \"default\": \"./pt/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/checkItemsAsync.d.cts\",\n        \"default\": \"./pt/checkItemsAsync.cjs\"\n      }\n    },\n    \"./pt/creditCard\": {\n      \"import\": {\n        \"types\": \"./pt/creditCard.d.mts\",\n        \"default\": \"./pt/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/creditCard.d.cts\",\n        \"default\": \"./pt/creditCard.cjs\"\n      }\n    },\n    \"./pt/cuid2\": {\n      \"import\": {\n        \"types\": \"./pt/cuid2.d.mts\",\n        \"default\": \"./pt/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/cuid2.d.cts\",\n        \"default\": \"./pt/cuid2.cjs\"\n      }\n    },\n    \"./pt/decimal\": {\n      \"import\": {\n        \"types\": \"./pt/decimal.d.mts\",\n        \"default\": \"./pt/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/decimal.d.cts\",\n        \"default\": \"./pt/decimal.cjs\"\n      }\n    },\n    \"./pt/digits\": {\n      \"import\": {\n        \"types\": \"./pt/digits.d.mts\",\n        \"default\": \"./pt/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/digits.d.cts\",\n        \"default\": \"./pt/digits.cjs\"\n      }\n    },\n    \"./pt/domain\": {\n      \"import\": {\n        \"types\": \"./pt/domain.d.mts\",\n        \"default\": \"./pt/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/domain.d.cts\",\n        \"default\": \"./pt/domain.cjs\"\n      }\n    },\n    \"./pt/email\": {\n      \"import\": {\n        \"types\": \"./pt/email.d.mts\",\n        \"default\": \"./pt/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/email.d.cts\",\n        \"default\": \"./pt/email.cjs\"\n      }\n    },\n    \"./pt/emoji\": {\n      \"import\": {\n        \"types\": \"./pt/emoji.d.mts\",\n        \"default\": \"./pt/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/emoji.d.cts\",\n        \"default\": \"./pt/emoji.cjs\"\n      }\n    },\n    \"./pt/empty\": {\n      \"import\": {\n        \"types\": \"./pt/empty.d.mts\",\n        \"default\": \"./pt/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/empty.d.cts\",\n        \"default\": \"./pt/empty.cjs\"\n      }\n    },\n    \"./pt/endsWith\": {\n      \"import\": {\n        \"types\": \"./pt/endsWith.d.mts\",\n        \"default\": \"./pt/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/endsWith.d.cts\",\n        \"default\": \"./pt/endsWith.cjs\"\n      }\n    },\n    \"./pt/entries\": {\n      \"import\": {\n        \"types\": \"./pt/entries.d.mts\",\n        \"default\": \"./pt/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/entries.d.cts\",\n        \"default\": \"./pt/entries.cjs\"\n      }\n    },\n    \"./pt/everyItem\": {\n      \"import\": {\n        \"types\": \"./pt/everyItem.d.mts\",\n        \"default\": \"./pt/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/everyItem.d.cts\",\n        \"default\": \"./pt/everyItem.cjs\"\n      }\n    },\n    \"./pt/excludes\": {\n      \"import\": {\n        \"types\": \"./pt/excludes.d.mts\",\n        \"default\": \"./pt/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/excludes.d.cts\",\n        \"default\": \"./pt/excludes.cjs\"\n      }\n    },\n    \"./pt/finite\": {\n      \"import\": {\n        \"types\": \"./pt/finite.d.mts\",\n        \"default\": \"./pt/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/finite.d.cts\",\n        \"default\": \"./pt/finite.cjs\"\n      }\n    },\n    \"./pt/graphemes\": {\n      \"import\": {\n        \"types\": \"./pt/graphemes.d.mts\",\n        \"default\": \"./pt/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/graphemes.d.cts\",\n        \"default\": \"./pt/graphemes.cjs\"\n      }\n    },\n    \"./pt/gtValue\": {\n      \"import\": {\n        \"types\": \"./pt/gtValue.d.mts\",\n        \"default\": \"./pt/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/gtValue.d.cts\",\n        \"default\": \"./pt/gtValue.cjs\"\n      }\n    },\n    \"./pt/guard\": {\n      \"import\": {\n        \"types\": \"./pt/guard.d.mts\",\n        \"default\": \"./pt/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/guard.d.cts\",\n        \"default\": \"./pt/guard.cjs\"\n      }\n    },\n    \"./pt/hash\": {\n      \"import\": {\n        \"types\": \"./pt/hash.d.mts\",\n        \"default\": \"./pt/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/hash.d.cts\",\n        \"default\": \"./pt/hash.cjs\"\n      }\n    },\n    \"./pt/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./pt/hexadecimal.d.mts\",\n        \"default\": \"./pt/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/hexadecimal.d.cts\",\n        \"default\": \"./pt/hexadecimal.cjs\"\n      }\n    },\n    \"./pt/hexColor\": {\n      \"import\": {\n        \"types\": \"./pt/hexColor.d.mts\",\n        \"default\": \"./pt/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/hexColor.d.cts\",\n        \"default\": \"./pt/hexColor.cjs\"\n      }\n    },\n    \"./pt/imei\": {\n      \"import\": {\n        \"types\": \"./pt/imei.d.mts\",\n        \"default\": \"./pt/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/imei.d.cts\",\n        \"default\": \"./pt/imei.cjs\"\n      }\n    },\n    \"./pt/includes\": {\n      \"import\": {\n        \"types\": \"./pt/includes.d.mts\",\n        \"default\": \"./pt/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/includes.d.cts\",\n        \"default\": \"./pt/includes.cjs\"\n      }\n    },\n    \"./pt/integer\": {\n      \"import\": {\n        \"types\": \"./pt/integer.d.mts\",\n        \"default\": \"./pt/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/integer.d.cts\",\n        \"default\": \"./pt/integer.cjs\"\n      }\n    },\n    \"./pt/ip\": {\n      \"import\": {\n        \"types\": \"./pt/ip.d.mts\",\n        \"default\": \"./pt/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/ip.d.cts\",\n        \"default\": \"./pt/ip.cjs\"\n      }\n    },\n    \"./pt/ipv4\": {\n      \"import\": {\n        \"types\": \"./pt/ipv4.d.mts\",\n        \"default\": \"./pt/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/ipv4.d.cts\",\n        \"default\": \"./pt/ipv4.cjs\"\n      }\n    },\n    \"./pt/ipv6\": {\n      \"import\": {\n        \"types\": \"./pt/ipv6.d.mts\",\n        \"default\": \"./pt/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/ipv6.d.cts\",\n        \"default\": \"./pt/ipv6.cjs\"\n      }\n    },\n    \"./pt/isbn\": {\n      \"import\": {\n        \"types\": \"./pt/isbn.d.mts\",\n        \"default\": \"./pt/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/isbn.d.cts\",\n        \"default\": \"./pt/isbn.cjs\"\n      }\n    },\n    \"./pt/isoDate\": {\n      \"import\": {\n        \"types\": \"./pt/isoDate.d.mts\",\n        \"default\": \"./pt/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/isoDate.d.cts\",\n        \"default\": \"./pt/isoDate.cjs\"\n      }\n    },\n    \"./pt/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./pt/isoDateTime.d.mts\",\n        \"default\": \"./pt/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/isoDateTime.d.cts\",\n        \"default\": \"./pt/isoDateTime.cjs\"\n      }\n    },\n    \"./pt/isoTime\": {\n      \"import\": {\n        \"types\": \"./pt/isoTime.d.mts\",\n        \"default\": \"./pt/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/isoTime.d.cts\",\n        \"default\": \"./pt/isoTime.cjs\"\n      }\n    },\n    \"./pt/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./pt/isoTimeSecond.d.mts\",\n        \"default\": \"./pt/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/isoTimeSecond.d.cts\",\n        \"default\": \"./pt/isoTimeSecond.cjs\"\n      }\n    },\n    \"./pt/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./pt/isoTimestamp.d.mts\",\n        \"default\": \"./pt/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/isoTimestamp.d.cts\",\n        \"default\": \"./pt/isoTimestamp.cjs\"\n      }\n    },\n    \"./pt/isoWeek\": {\n      \"import\": {\n        \"types\": \"./pt/isoWeek.d.mts\",\n        \"default\": \"./pt/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/isoWeek.d.cts\",\n        \"default\": \"./pt/isoWeek.cjs\"\n      }\n    },\n    \"./pt/isrc\": {\n      \"import\": {\n        \"types\": \"./pt/isrc.d.mts\",\n        \"default\": \"./pt/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/isrc.d.cts\",\n        \"default\": \"./pt/isrc.cjs\"\n      }\n    },\n    \"./pt/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./pt/jwsCompact.d.mts\",\n        \"default\": \"./pt/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/jwsCompact.d.cts\",\n        \"default\": \"./pt/jwsCompact.cjs\"\n      }\n    },\n    \"./pt/length\": {\n      \"import\": {\n        \"types\": \"./pt/length.d.mts\",\n        \"default\": \"./pt/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/length.d.cts\",\n        \"default\": \"./pt/length.cjs\"\n      }\n    },\n    \"./pt/ltValue\": {\n      \"import\": {\n        \"types\": \"./pt/ltValue.d.mts\",\n        \"default\": \"./pt/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/ltValue.d.cts\",\n        \"default\": \"./pt/ltValue.cjs\"\n      }\n    },\n    \"./pt/mac\": {\n      \"import\": {\n        \"types\": \"./pt/mac.d.mts\",\n        \"default\": \"./pt/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/mac.d.cts\",\n        \"default\": \"./pt/mac.cjs\"\n      }\n    },\n    \"./pt/mac48\": {\n      \"import\": {\n        \"types\": \"./pt/mac48.d.mts\",\n        \"default\": \"./pt/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/mac48.d.cts\",\n        \"default\": \"./pt/mac48.cjs\"\n      }\n    },\n    \"./pt/mac64\": {\n      \"import\": {\n        \"types\": \"./pt/mac64.d.mts\",\n        \"default\": \"./pt/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/mac64.d.cts\",\n        \"default\": \"./pt/mac64.cjs\"\n      }\n    },\n    \"./pt/maxBytes\": {\n      \"import\": {\n        \"types\": \"./pt/maxBytes.d.mts\",\n        \"default\": \"./pt/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/maxBytes.d.cts\",\n        \"default\": \"./pt/maxBytes.cjs\"\n      }\n    },\n    \"./pt/maxEntries\": {\n      \"import\": {\n        \"types\": \"./pt/maxEntries.d.mts\",\n        \"default\": \"./pt/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/maxEntries.d.cts\",\n        \"default\": \"./pt/maxEntries.cjs\"\n      }\n    },\n    \"./pt/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./pt/maxGraphemes.d.mts\",\n        \"default\": \"./pt/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/maxGraphemes.d.cts\",\n        \"default\": \"./pt/maxGraphemes.cjs\"\n      }\n    },\n    \"./pt/maxLength\": {\n      \"import\": {\n        \"types\": \"./pt/maxLength.d.mts\",\n        \"default\": \"./pt/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/maxLength.d.cts\",\n        \"default\": \"./pt/maxLength.cjs\"\n      }\n    },\n    \"./pt/maxSize\": {\n      \"import\": {\n        \"types\": \"./pt/maxSize.d.mts\",\n        \"default\": \"./pt/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/maxSize.d.cts\",\n        \"default\": \"./pt/maxSize.cjs\"\n      }\n    },\n    \"./pt/maxValue\": {\n      \"import\": {\n        \"types\": \"./pt/maxValue.d.mts\",\n        \"default\": \"./pt/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/maxValue.d.cts\",\n        \"default\": \"./pt/maxValue.cjs\"\n      }\n    },\n    \"./pt/maxWords\": {\n      \"import\": {\n        \"types\": \"./pt/maxWords.d.mts\",\n        \"default\": \"./pt/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/maxWords.d.cts\",\n        \"default\": \"./pt/maxWords.cjs\"\n      }\n    },\n    \"./pt/mimeType\": {\n      \"import\": {\n        \"types\": \"./pt/mimeType.d.mts\",\n        \"default\": \"./pt/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/mimeType.d.cts\",\n        \"default\": \"./pt/mimeType.cjs\"\n      }\n    },\n    \"./pt/minBytes\": {\n      \"import\": {\n        \"types\": \"./pt/minBytes.d.mts\",\n        \"default\": \"./pt/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/minBytes.d.cts\",\n        \"default\": \"./pt/minBytes.cjs\"\n      }\n    },\n    \"./pt/minEntries\": {\n      \"import\": {\n        \"types\": \"./pt/minEntries.d.mts\",\n        \"default\": \"./pt/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/minEntries.d.cts\",\n        \"default\": \"./pt/minEntries.cjs\"\n      }\n    },\n    \"./pt/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./pt/minGraphemes.d.mts\",\n        \"default\": \"./pt/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/minGraphemes.d.cts\",\n        \"default\": \"./pt/minGraphemes.cjs\"\n      }\n    },\n    \"./pt/minLength\": {\n      \"import\": {\n        \"types\": \"./pt/minLength.d.mts\",\n        \"default\": \"./pt/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/minLength.d.cts\",\n        \"default\": \"./pt/minLength.cjs\"\n      }\n    },\n    \"./pt/minSize\": {\n      \"import\": {\n        \"types\": \"./pt/minSize.d.mts\",\n        \"default\": \"./pt/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/minSize.d.cts\",\n        \"default\": \"./pt/minSize.cjs\"\n      }\n    },\n    \"./pt/minValue\": {\n      \"import\": {\n        \"types\": \"./pt/minValue.d.mts\",\n        \"default\": \"./pt/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/minValue.d.cts\",\n        \"default\": \"./pt/minValue.cjs\"\n      }\n    },\n    \"./pt/minWords\": {\n      \"import\": {\n        \"types\": \"./pt/minWords.d.mts\",\n        \"default\": \"./pt/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/minWords.d.cts\",\n        \"default\": \"./pt/minWords.cjs\"\n      }\n    },\n    \"./pt/multipleOf\": {\n      \"import\": {\n        \"types\": \"./pt/multipleOf.d.mts\",\n        \"default\": \"./pt/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/multipleOf.d.cts\",\n        \"default\": \"./pt/multipleOf.cjs\"\n      }\n    },\n    \"./pt/nanoid\": {\n      \"import\": {\n        \"types\": \"./pt/nanoid.d.mts\",\n        \"default\": \"./pt/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/nanoid.d.cts\",\n        \"default\": \"./pt/nanoid.cjs\"\n      }\n    },\n    \"./pt/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./pt/nonEmpty.d.mts\",\n        \"default\": \"./pt/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/nonEmpty.d.cts\",\n        \"default\": \"./pt/nonEmpty.cjs\"\n      }\n    },\n    \"./pt/notBytes\": {\n      \"import\": {\n        \"types\": \"./pt/notBytes.d.mts\",\n        \"default\": \"./pt/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/notBytes.d.cts\",\n        \"default\": \"./pt/notBytes.cjs\"\n      }\n    },\n    \"./pt/notEntries\": {\n      \"import\": {\n        \"types\": \"./pt/notEntries.d.mts\",\n        \"default\": \"./pt/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/notEntries.d.cts\",\n        \"default\": \"./pt/notEntries.cjs\"\n      }\n    },\n    \"./pt/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./pt/notGraphemes.d.mts\",\n        \"default\": \"./pt/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/notGraphemes.d.cts\",\n        \"default\": \"./pt/notGraphemes.cjs\"\n      }\n    },\n    \"./pt/notLength\": {\n      \"import\": {\n        \"types\": \"./pt/notLength.d.mts\",\n        \"default\": \"./pt/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/notLength.d.cts\",\n        \"default\": \"./pt/notLength.cjs\"\n      }\n    },\n    \"./pt/notSize\": {\n      \"import\": {\n        \"types\": \"./pt/notSize.d.mts\",\n        \"default\": \"./pt/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/notSize.d.cts\",\n        \"default\": \"./pt/notSize.cjs\"\n      }\n    },\n    \"./pt/notValue\": {\n      \"import\": {\n        \"types\": \"./pt/notValue.d.mts\",\n        \"default\": \"./pt/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/notValue.d.cts\",\n        \"default\": \"./pt/notValue.cjs\"\n      }\n    },\n    \"./pt/notValues\": {\n      \"import\": {\n        \"types\": \"./pt/notValues.d.mts\",\n        \"default\": \"./pt/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/notValues.d.cts\",\n        \"default\": \"./pt/notValues.cjs\"\n      }\n    },\n    \"./pt/notWords\": {\n      \"import\": {\n        \"types\": \"./pt/notWords.d.mts\",\n        \"default\": \"./pt/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/notWords.d.cts\",\n        \"default\": \"./pt/notWords.cjs\"\n      }\n    },\n    \"./pt/octal\": {\n      \"import\": {\n        \"types\": \"./pt/octal.d.mts\",\n        \"default\": \"./pt/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/octal.d.cts\",\n        \"default\": \"./pt/octal.cjs\"\n      }\n    },\n    \"./pt/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./pt/parseBoolean.d.mts\",\n        \"default\": \"./pt/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/parseBoolean.d.cts\",\n        \"default\": \"./pt/parseBoolean.cjs\"\n      }\n    },\n    \"./pt/parseJson\": {\n      \"import\": {\n        \"types\": \"./pt/parseJson.d.mts\",\n        \"default\": \"./pt/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/parseJson.d.cts\",\n        \"default\": \"./pt/parseJson.cjs\"\n      }\n    },\n    \"./pt/partialCheck\": {\n      \"import\": {\n        \"types\": \"./pt/partialCheck.d.mts\",\n        \"default\": \"./pt/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/partialCheck.d.cts\",\n        \"default\": \"./pt/partialCheck.cjs\"\n      }\n    },\n    \"./pt/rawCheck\": {\n      \"import\": {\n        \"types\": \"./pt/rawCheck.d.mts\",\n        \"default\": \"./pt/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/rawCheck.d.cts\",\n        \"default\": \"./pt/rawCheck.cjs\"\n      }\n    },\n    \"./pt/rawTransform\": {\n      \"import\": {\n        \"types\": \"./pt/rawTransform.d.mts\",\n        \"default\": \"./pt/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/rawTransform.d.cts\",\n        \"default\": \"./pt/rawTransform.cjs\"\n      }\n    },\n    \"./pt/regex\": {\n      \"import\": {\n        \"types\": \"./pt/regex.d.mts\",\n        \"default\": \"./pt/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/regex.d.cts\",\n        \"default\": \"./pt/regex.cjs\"\n      }\n    },\n    \"./pt/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./pt/rfcEmail.d.mts\",\n        \"default\": \"./pt/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/rfcEmail.d.cts\",\n        \"default\": \"./pt/rfcEmail.cjs\"\n      }\n    },\n    \"./pt/safeInteger\": {\n      \"import\": {\n        \"types\": \"./pt/safeInteger.d.mts\",\n        \"default\": \"./pt/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/safeInteger.d.cts\",\n        \"default\": \"./pt/safeInteger.cjs\"\n      }\n    },\n    \"./pt/size\": {\n      \"import\": {\n        \"types\": \"./pt/size.d.mts\",\n        \"default\": \"./pt/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/size.d.cts\",\n        \"default\": \"./pt/size.cjs\"\n      }\n    },\n    \"./pt/slug\": {\n      \"import\": {\n        \"types\": \"./pt/slug.d.mts\",\n        \"default\": \"./pt/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/slug.d.cts\",\n        \"default\": \"./pt/slug.cjs\"\n      }\n    },\n    \"./pt/someItem\": {\n      \"import\": {\n        \"types\": \"./pt/someItem.d.mts\",\n        \"default\": \"./pt/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/someItem.d.cts\",\n        \"default\": \"./pt/someItem.cjs\"\n      }\n    },\n    \"./pt/startsWith\": {\n      \"import\": {\n        \"types\": \"./pt/startsWith.d.mts\",\n        \"default\": \"./pt/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/startsWith.d.cts\",\n        \"default\": \"./pt/startsWith.cjs\"\n      }\n    },\n    \"./pt/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./pt/stringifyJson.d.mts\",\n        \"default\": \"./pt/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/stringifyJson.d.cts\",\n        \"default\": \"./pt/stringifyJson.cjs\"\n      }\n    },\n    \"./pt/toBigint\": {\n      \"import\": {\n        \"types\": \"./pt/toBigint.d.mts\",\n        \"default\": \"./pt/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/toBigint.d.cts\",\n        \"default\": \"./pt/toBigint.cjs\"\n      }\n    },\n    \"./pt/toDate\": {\n      \"import\": {\n        \"types\": \"./pt/toDate.d.mts\",\n        \"default\": \"./pt/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/toDate.d.cts\",\n        \"default\": \"./pt/toDate.cjs\"\n      }\n    },\n    \"./pt/toNumber\": {\n      \"import\": {\n        \"types\": \"./pt/toNumber.d.mts\",\n        \"default\": \"./pt/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/toNumber.d.cts\",\n        \"default\": \"./pt/toNumber.cjs\"\n      }\n    },\n    \"./pt/toString\": {\n      \"import\": {\n        \"types\": \"./pt/toString.d.mts\",\n        \"default\": \"./pt/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/toString.d.cts\",\n        \"default\": \"./pt/toString.cjs\"\n      }\n    },\n    \"./pt/ulid\": {\n      \"import\": {\n        \"types\": \"./pt/ulid.d.mts\",\n        \"default\": \"./pt/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/ulid.d.cts\",\n        \"default\": \"./pt/ulid.cjs\"\n      }\n    },\n    \"./pt/url\": {\n      \"import\": {\n        \"types\": \"./pt/url.d.mts\",\n        \"default\": \"./pt/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/url.d.cts\",\n        \"default\": \"./pt/url.cjs\"\n      }\n    },\n    \"./pt/uuid\": {\n      \"import\": {\n        \"types\": \"./pt/uuid.d.mts\",\n        \"default\": \"./pt/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/uuid.d.cts\",\n        \"default\": \"./pt/uuid.cjs\"\n      }\n    },\n    \"./pt/value\": {\n      \"import\": {\n        \"types\": \"./pt/value.d.mts\",\n        \"default\": \"./pt/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/value.d.cts\",\n        \"default\": \"./pt/value.cjs\"\n      }\n    },\n    \"./pt/values\": {\n      \"import\": {\n        \"types\": \"./pt/values.d.mts\",\n        \"default\": \"./pt/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/values.d.cts\",\n        \"default\": \"./pt/values.cjs\"\n      }\n    },\n    \"./pt/words\": {\n      \"import\": {\n        \"types\": \"./pt/words.d.mts\",\n        \"default\": \"./pt/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./pt/words.d.cts\",\n        \"default\": \"./pt/words.cjs\"\n      }\n    },\n    \"./ro\": {\n      \"import\": {\n        \"types\": \"./ro/index.d.mts\",\n        \"default\": \"./ro/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/index.d.cts\",\n        \"default\": \"./ro/index.cjs\"\n      }\n    },\n    \"./ro/schema\": {\n      \"import\": {\n        \"types\": \"./ro/schema.d.mts\",\n        \"default\": \"./ro/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/schema.d.cts\",\n        \"default\": \"./ro/schema.cjs\"\n      }\n    },\n    \"./ro/base64\": {\n      \"import\": {\n        \"types\": \"./ro/base64.d.mts\",\n        \"default\": \"./ro/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/base64.d.cts\",\n        \"default\": \"./ro/base64.cjs\"\n      }\n    },\n    \"./ro/bic\": {\n      \"import\": {\n        \"types\": \"./ro/bic.d.mts\",\n        \"default\": \"./ro/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/bic.d.cts\",\n        \"default\": \"./ro/bic.cjs\"\n      }\n    },\n    \"./ro/bytes\": {\n      \"import\": {\n        \"types\": \"./ro/bytes.d.mts\",\n        \"default\": \"./ro/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/bytes.d.cts\",\n        \"default\": \"./ro/bytes.cjs\"\n      }\n    },\n    \"./ro/check\": {\n      \"import\": {\n        \"types\": \"./ro/check.d.mts\",\n        \"default\": \"./ro/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/check.d.cts\",\n        \"default\": \"./ro/check.cjs\"\n      }\n    },\n    \"./ro/checkAsync\": {\n      \"import\": {\n        \"types\": \"./ro/checkAsync.d.mts\",\n        \"default\": \"./ro/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/checkAsync.d.cts\",\n        \"default\": \"./ro/checkAsync.cjs\"\n      }\n    },\n    \"./ro/checkItems\": {\n      \"import\": {\n        \"types\": \"./ro/checkItems.d.mts\",\n        \"default\": \"./ro/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/checkItems.d.cts\",\n        \"default\": \"./ro/checkItems.cjs\"\n      }\n    },\n    \"./ro/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./ro/checkItemsAsync.d.mts\",\n        \"default\": \"./ro/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/checkItemsAsync.d.cts\",\n        \"default\": \"./ro/checkItemsAsync.cjs\"\n      }\n    },\n    \"./ro/creditCard\": {\n      \"import\": {\n        \"types\": \"./ro/creditCard.d.mts\",\n        \"default\": \"./ro/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/creditCard.d.cts\",\n        \"default\": \"./ro/creditCard.cjs\"\n      }\n    },\n    \"./ro/cuid2\": {\n      \"import\": {\n        \"types\": \"./ro/cuid2.d.mts\",\n        \"default\": \"./ro/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/cuid2.d.cts\",\n        \"default\": \"./ro/cuid2.cjs\"\n      }\n    },\n    \"./ro/decimal\": {\n      \"import\": {\n        \"types\": \"./ro/decimal.d.mts\",\n        \"default\": \"./ro/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/decimal.d.cts\",\n        \"default\": \"./ro/decimal.cjs\"\n      }\n    },\n    \"./ro/digits\": {\n      \"import\": {\n        \"types\": \"./ro/digits.d.mts\",\n        \"default\": \"./ro/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/digits.d.cts\",\n        \"default\": \"./ro/digits.cjs\"\n      }\n    },\n    \"./ro/domain\": {\n      \"import\": {\n        \"types\": \"./ro/domain.d.mts\",\n        \"default\": \"./ro/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/domain.d.cts\",\n        \"default\": \"./ro/domain.cjs\"\n      }\n    },\n    \"./ro/email\": {\n      \"import\": {\n        \"types\": \"./ro/email.d.mts\",\n        \"default\": \"./ro/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/email.d.cts\",\n        \"default\": \"./ro/email.cjs\"\n      }\n    },\n    \"./ro/emoji\": {\n      \"import\": {\n        \"types\": \"./ro/emoji.d.mts\",\n        \"default\": \"./ro/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/emoji.d.cts\",\n        \"default\": \"./ro/emoji.cjs\"\n      }\n    },\n    \"./ro/empty\": {\n      \"import\": {\n        \"types\": \"./ro/empty.d.mts\",\n        \"default\": \"./ro/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/empty.d.cts\",\n        \"default\": \"./ro/empty.cjs\"\n      }\n    },\n    \"./ro/endsWith\": {\n      \"import\": {\n        \"types\": \"./ro/endsWith.d.mts\",\n        \"default\": \"./ro/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/endsWith.d.cts\",\n        \"default\": \"./ro/endsWith.cjs\"\n      }\n    },\n    \"./ro/entries\": {\n      \"import\": {\n        \"types\": \"./ro/entries.d.mts\",\n        \"default\": \"./ro/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/entries.d.cts\",\n        \"default\": \"./ro/entries.cjs\"\n      }\n    },\n    \"./ro/everyItem\": {\n      \"import\": {\n        \"types\": \"./ro/everyItem.d.mts\",\n        \"default\": \"./ro/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/everyItem.d.cts\",\n        \"default\": \"./ro/everyItem.cjs\"\n      }\n    },\n    \"./ro/excludes\": {\n      \"import\": {\n        \"types\": \"./ro/excludes.d.mts\",\n        \"default\": \"./ro/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/excludes.d.cts\",\n        \"default\": \"./ro/excludes.cjs\"\n      }\n    },\n    \"./ro/finite\": {\n      \"import\": {\n        \"types\": \"./ro/finite.d.mts\",\n        \"default\": \"./ro/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/finite.d.cts\",\n        \"default\": \"./ro/finite.cjs\"\n      }\n    },\n    \"./ro/graphemes\": {\n      \"import\": {\n        \"types\": \"./ro/graphemes.d.mts\",\n        \"default\": \"./ro/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/graphemes.d.cts\",\n        \"default\": \"./ro/graphemes.cjs\"\n      }\n    },\n    \"./ro/gtValue\": {\n      \"import\": {\n        \"types\": \"./ro/gtValue.d.mts\",\n        \"default\": \"./ro/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/gtValue.d.cts\",\n        \"default\": \"./ro/gtValue.cjs\"\n      }\n    },\n    \"./ro/guard\": {\n      \"import\": {\n        \"types\": \"./ro/guard.d.mts\",\n        \"default\": \"./ro/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/guard.d.cts\",\n        \"default\": \"./ro/guard.cjs\"\n      }\n    },\n    \"./ro/hash\": {\n      \"import\": {\n        \"types\": \"./ro/hash.d.mts\",\n        \"default\": \"./ro/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/hash.d.cts\",\n        \"default\": \"./ro/hash.cjs\"\n      }\n    },\n    \"./ro/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./ro/hexadecimal.d.mts\",\n        \"default\": \"./ro/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/hexadecimal.d.cts\",\n        \"default\": \"./ro/hexadecimal.cjs\"\n      }\n    },\n    \"./ro/hexColor\": {\n      \"import\": {\n        \"types\": \"./ro/hexColor.d.mts\",\n        \"default\": \"./ro/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/hexColor.d.cts\",\n        \"default\": \"./ro/hexColor.cjs\"\n      }\n    },\n    \"./ro/imei\": {\n      \"import\": {\n        \"types\": \"./ro/imei.d.mts\",\n        \"default\": \"./ro/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/imei.d.cts\",\n        \"default\": \"./ro/imei.cjs\"\n      }\n    },\n    \"./ro/includes\": {\n      \"import\": {\n        \"types\": \"./ro/includes.d.mts\",\n        \"default\": \"./ro/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/includes.d.cts\",\n        \"default\": \"./ro/includes.cjs\"\n      }\n    },\n    \"./ro/integer\": {\n      \"import\": {\n        \"types\": \"./ro/integer.d.mts\",\n        \"default\": \"./ro/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/integer.d.cts\",\n        \"default\": \"./ro/integer.cjs\"\n      }\n    },\n    \"./ro/ip\": {\n      \"import\": {\n        \"types\": \"./ro/ip.d.mts\",\n        \"default\": \"./ro/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/ip.d.cts\",\n        \"default\": \"./ro/ip.cjs\"\n      }\n    },\n    \"./ro/ipv4\": {\n      \"import\": {\n        \"types\": \"./ro/ipv4.d.mts\",\n        \"default\": \"./ro/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/ipv4.d.cts\",\n        \"default\": \"./ro/ipv4.cjs\"\n      }\n    },\n    \"./ro/ipv6\": {\n      \"import\": {\n        \"types\": \"./ro/ipv6.d.mts\",\n        \"default\": \"./ro/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/ipv6.d.cts\",\n        \"default\": \"./ro/ipv6.cjs\"\n      }\n    },\n    \"./ro/isbn\": {\n      \"import\": {\n        \"types\": \"./ro/isbn.d.mts\",\n        \"default\": \"./ro/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/isbn.d.cts\",\n        \"default\": \"./ro/isbn.cjs\"\n      }\n    },\n    \"./ro/isoDate\": {\n      \"import\": {\n        \"types\": \"./ro/isoDate.d.mts\",\n        \"default\": \"./ro/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/isoDate.d.cts\",\n        \"default\": \"./ro/isoDate.cjs\"\n      }\n    },\n    \"./ro/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./ro/isoDateTime.d.mts\",\n        \"default\": \"./ro/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/isoDateTime.d.cts\",\n        \"default\": \"./ro/isoDateTime.cjs\"\n      }\n    },\n    \"./ro/isoTime\": {\n      \"import\": {\n        \"types\": \"./ro/isoTime.d.mts\",\n        \"default\": \"./ro/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/isoTime.d.cts\",\n        \"default\": \"./ro/isoTime.cjs\"\n      }\n    },\n    \"./ro/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./ro/isoTimeSecond.d.mts\",\n        \"default\": \"./ro/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/isoTimeSecond.d.cts\",\n        \"default\": \"./ro/isoTimeSecond.cjs\"\n      }\n    },\n    \"./ro/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./ro/isoTimestamp.d.mts\",\n        \"default\": \"./ro/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/isoTimestamp.d.cts\",\n        \"default\": \"./ro/isoTimestamp.cjs\"\n      }\n    },\n    \"./ro/isoWeek\": {\n      \"import\": {\n        \"types\": \"./ro/isoWeek.d.mts\",\n        \"default\": \"./ro/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/isoWeek.d.cts\",\n        \"default\": \"./ro/isoWeek.cjs\"\n      }\n    },\n    \"./ro/isrc\": {\n      \"import\": {\n        \"types\": \"./ro/isrc.d.mts\",\n        \"default\": \"./ro/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/isrc.d.cts\",\n        \"default\": \"./ro/isrc.cjs\"\n      }\n    },\n    \"./ro/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./ro/jwsCompact.d.mts\",\n        \"default\": \"./ro/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/jwsCompact.d.cts\",\n        \"default\": \"./ro/jwsCompact.cjs\"\n      }\n    },\n    \"./ro/length\": {\n      \"import\": {\n        \"types\": \"./ro/length.d.mts\",\n        \"default\": \"./ro/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/length.d.cts\",\n        \"default\": \"./ro/length.cjs\"\n      }\n    },\n    \"./ro/ltValue\": {\n      \"import\": {\n        \"types\": \"./ro/ltValue.d.mts\",\n        \"default\": \"./ro/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/ltValue.d.cts\",\n        \"default\": \"./ro/ltValue.cjs\"\n      }\n    },\n    \"./ro/mac\": {\n      \"import\": {\n        \"types\": \"./ro/mac.d.mts\",\n        \"default\": \"./ro/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/mac.d.cts\",\n        \"default\": \"./ro/mac.cjs\"\n      }\n    },\n    \"./ro/mac48\": {\n      \"import\": {\n        \"types\": \"./ro/mac48.d.mts\",\n        \"default\": \"./ro/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/mac48.d.cts\",\n        \"default\": \"./ro/mac48.cjs\"\n      }\n    },\n    \"./ro/mac64\": {\n      \"import\": {\n        \"types\": \"./ro/mac64.d.mts\",\n        \"default\": \"./ro/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/mac64.d.cts\",\n        \"default\": \"./ro/mac64.cjs\"\n      }\n    },\n    \"./ro/maxBytes\": {\n      \"import\": {\n        \"types\": \"./ro/maxBytes.d.mts\",\n        \"default\": \"./ro/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/maxBytes.d.cts\",\n        \"default\": \"./ro/maxBytes.cjs\"\n      }\n    },\n    \"./ro/maxEntries\": {\n      \"import\": {\n        \"types\": \"./ro/maxEntries.d.mts\",\n        \"default\": \"./ro/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/maxEntries.d.cts\",\n        \"default\": \"./ro/maxEntries.cjs\"\n      }\n    },\n    \"./ro/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./ro/maxGraphemes.d.mts\",\n        \"default\": \"./ro/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/maxGraphemes.d.cts\",\n        \"default\": \"./ro/maxGraphemes.cjs\"\n      }\n    },\n    \"./ro/maxLength\": {\n      \"import\": {\n        \"types\": \"./ro/maxLength.d.mts\",\n        \"default\": \"./ro/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/maxLength.d.cts\",\n        \"default\": \"./ro/maxLength.cjs\"\n      }\n    },\n    \"./ro/maxSize\": {\n      \"import\": {\n        \"types\": \"./ro/maxSize.d.mts\",\n        \"default\": \"./ro/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/maxSize.d.cts\",\n        \"default\": \"./ro/maxSize.cjs\"\n      }\n    },\n    \"./ro/maxValue\": {\n      \"import\": {\n        \"types\": \"./ro/maxValue.d.mts\",\n        \"default\": \"./ro/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/maxValue.d.cts\",\n        \"default\": \"./ro/maxValue.cjs\"\n      }\n    },\n    \"./ro/maxWords\": {\n      \"import\": {\n        \"types\": \"./ro/maxWords.d.mts\",\n        \"default\": \"./ro/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/maxWords.d.cts\",\n        \"default\": \"./ro/maxWords.cjs\"\n      }\n    },\n    \"./ro/mimeType\": {\n      \"import\": {\n        \"types\": \"./ro/mimeType.d.mts\",\n        \"default\": \"./ro/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/mimeType.d.cts\",\n        \"default\": \"./ro/mimeType.cjs\"\n      }\n    },\n    \"./ro/minBytes\": {\n      \"import\": {\n        \"types\": \"./ro/minBytes.d.mts\",\n        \"default\": \"./ro/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/minBytes.d.cts\",\n        \"default\": \"./ro/minBytes.cjs\"\n      }\n    },\n    \"./ro/minEntries\": {\n      \"import\": {\n        \"types\": \"./ro/minEntries.d.mts\",\n        \"default\": \"./ro/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/minEntries.d.cts\",\n        \"default\": \"./ro/minEntries.cjs\"\n      }\n    },\n    \"./ro/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./ro/minGraphemes.d.mts\",\n        \"default\": \"./ro/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/minGraphemes.d.cts\",\n        \"default\": \"./ro/minGraphemes.cjs\"\n      }\n    },\n    \"./ro/minLength\": {\n      \"import\": {\n        \"types\": \"./ro/minLength.d.mts\",\n        \"default\": \"./ro/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/minLength.d.cts\",\n        \"default\": \"./ro/minLength.cjs\"\n      }\n    },\n    \"./ro/minSize\": {\n      \"import\": {\n        \"types\": \"./ro/minSize.d.mts\",\n        \"default\": \"./ro/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/minSize.d.cts\",\n        \"default\": \"./ro/minSize.cjs\"\n      }\n    },\n    \"./ro/minValue\": {\n      \"import\": {\n        \"types\": \"./ro/minValue.d.mts\",\n        \"default\": \"./ro/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/minValue.d.cts\",\n        \"default\": \"./ro/minValue.cjs\"\n      }\n    },\n    \"./ro/minWords\": {\n      \"import\": {\n        \"types\": \"./ro/minWords.d.mts\",\n        \"default\": \"./ro/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/minWords.d.cts\",\n        \"default\": \"./ro/minWords.cjs\"\n      }\n    },\n    \"./ro/multipleOf\": {\n      \"import\": {\n        \"types\": \"./ro/multipleOf.d.mts\",\n        \"default\": \"./ro/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/multipleOf.d.cts\",\n        \"default\": \"./ro/multipleOf.cjs\"\n      }\n    },\n    \"./ro/nanoid\": {\n      \"import\": {\n        \"types\": \"./ro/nanoid.d.mts\",\n        \"default\": \"./ro/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/nanoid.d.cts\",\n        \"default\": \"./ro/nanoid.cjs\"\n      }\n    },\n    \"./ro/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./ro/nonEmpty.d.mts\",\n        \"default\": \"./ro/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/nonEmpty.d.cts\",\n        \"default\": \"./ro/nonEmpty.cjs\"\n      }\n    },\n    \"./ro/notBytes\": {\n      \"import\": {\n        \"types\": \"./ro/notBytes.d.mts\",\n        \"default\": \"./ro/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/notBytes.d.cts\",\n        \"default\": \"./ro/notBytes.cjs\"\n      }\n    },\n    \"./ro/notEntries\": {\n      \"import\": {\n        \"types\": \"./ro/notEntries.d.mts\",\n        \"default\": \"./ro/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/notEntries.d.cts\",\n        \"default\": \"./ro/notEntries.cjs\"\n      }\n    },\n    \"./ro/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./ro/notGraphemes.d.mts\",\n        \"default\": \"./ro/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/notGraphemes.d.cts\",\n        \"default\": \"./ro/notGraphemes.cjs\"\n      }\n    },\n    \"./ro/notLength\": {\n      \"import\": {\n        \"types\": \"./ro/notLength.d.mts\",\n        \"default\": \"./ro/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/notLength.d.cts\",\n        \"default\": \"./ro/notLength.cjs\"\n      }\n    },\n    \"./ro/notSize\": {\n      \"import\": {\n        \"types\": \"./ro/notSize.d.mts\",\n        \"default\": \"./ro/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/notSize.d.cts\",\n        \"default\": \"./ro/notSize.cjs\"\n      }\n    },\n    \"./ro/notValue\": {\n      \"import\": {\n        \"types\": \"./ro/notValue.d.mts\",\n        \"default\": \"./ro/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/notValue.d.cts\",\n        \"default\": \"./ro/notValue.cjs\"\n      }\n    },\n    \"./ro/notValues\": {\n      \"import\": {\n        \"types\": \"./ro/notValues.d.mts\",\n        \"default\": \"./ro/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/notValues.d.cts\",\n        \"default\": \"./ro/notValues.cjs\"\n      }\n    },\n    \"./ro/notWords\": {\n      \"import\": {\n        \"types\": \"./ro/notWords.d.mts\",\n        \"default\": \"./ro/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/notWords.d.cts\",\n        \"default\": \"./ro/notWords.cjs\"\n      }\n    },\n    \"./ro/octal\": {\n      \"import\": {\n        \"types\": \"./ro/octal.d.mts\",\n        \"default\": \"./ro/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/octal.d.cts\",\n        \"default\": \"./ro/octal.cjs\"\n      }\n    },\n    \"./ro/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./ro/parseBoolean.d.mts\",\n        \"default\": \"./ro/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/parseBoolean.d.cts\",\n        \"default\": \"./ro/parseBoolean.cjs\"\n      }\n    },\n    \"./ro/parseJson\": {\n      \"import\": {\n        \"types\": \"./ro/parseJson.d.mts\",\n        \"default\": \"./ro/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/parseJson.d.cts\",\n        \"default\": \"./ro/parseJson.cjs\"\n      }\n    },\n    \"./ro/partialCheck\": {\n      \"import\": {\n        \"types\": \"./ro/partialCheck.d.mts\",\n        \"default\": \"./ro/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/partialCheck.d.cts\",\n        \"default\": \"./ro/partialCheck.cjs\"\n      }\n    },\n    \"./ro/rawCheck\": {\n      \"import\": {\n        \"types\": \"./ro/rawCheck.d.mts\",\n        \"default\": \"./ro/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/rawCheck.d.cts\",\n        \"default\": \"./ro/rawCheck.cjs\"\n      }\n    },\n    \"./ro/rawTransform\": {\n      \"import\": {\n        \"types\": \"./ro/rawTransform.d.mts\",\n        \"default\": \"./ro/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/rawTransform.d.cts\",\n        \"default\": \"./ro/rawTransform.cjs\"\n      }\n    },\n    \"./ro/regex\": {\n      \"import\": {\n        \"types\": \"./ro/regex.d.mts\",\n        \"default\": \"./ro/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/regex.d.cts\",\n        \"default\": \"./ro/regex.cjs\"\n      }\n    },\n    \"./ro/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./ro/rfcEmail.d.mts\",\n        \"default\": \"./ro/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/rfcEmail.d.cts\",\n        \"default\": \"./ro/rfcEmail.cjs\"\n      }\n    },\n    \"./ro/safeInteger\": {\n      \"import\": {\n        \"types\": \"./ro/safeInteger.d.mts\",\n        \"default\": \"./ro/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/safeInteger.d.cts\",\n        \"default\": \"./ro/safeInteger.cjs\"\n      }\n    },\n    \"./ro/size\": {\n      \"import\": {\n        \"types\": \"./ro/size.d.mts\",\n        \"default\": \"./ro/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/size.d.cts\",\n        \"default\": \"./ro/size.cjs\"\n      }\n    },\n    \"./ro/slug\": {\n      \"import\": {\n        \"types\": \"./ro/slug.d.mts\",\n        \"default\": \"./ro/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/slug.d.cts\",\n        \"default\": \"./ro/slug.cjs\"\n      }\n    },\n    \"./ro/someItem\": {\n      \"import\": {\n        \"types\": \"./ro/someItem.d.mts\",\n        \"default\": \"./ro/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/someItem.d.cts\",\n        \"default\": \"./ro/someItem.cjs\"\n      }\n    },\n    \"./ro/startsWith\": {\n      \"import\": {\n        \"types\": \"./ro/startsWith.d.mts\",\n        \"default\": \"./ro/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/startsWith.d.cts\",\n        \"default\": \"./ro/startsWith.cjs\"\n      }\n    },\n    \"./ro/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./ro/stringifyJson.d.mts\",\n        \"default\": \"./ro/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/stringifyJson.d.cts\",\n        \"default\": \"./ro/stringifyJson.cjs\"\n      }\n    },\n    \"./ro/toBigint\": {\n      \"import\": {\n        \"types\": \"./ro/toBigint.d.mts\",\n        \"default\": \"./ro/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/toBigint.d.cts\",\n        \"default\": \"./ro/toBigint.cjs\"\n      }\n    },\n    \"./ro/toDate\": {\n      \"import\": {\n        \"types\": \"./ro/toDate.d.mts\",\n        \"default\": \"./ro/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/toDate.d.cts\",\n        \"default\": \"./ro/toDate.cjs\"\n      }\n    },\n    \"./ro/toNumber\": {\n      \"import\": {\n        \"types\": \"./ro/toNumber.d.mts\",\n        \"default\": \"./ro/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/toNumber.d.cts\",\n        \"default\": \"./ro/toNumber.cjs\"\n      }\n    },\n    \"./ro/toString\": {\n      \"import\": {\n        \"types\": \"./ro/toString.d.mts\",\n        \"default\": \"./ro/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/toString.d.cts\",\n        \"default\": \"./ro/toString.cjs\"\n      }\n    },\n    \"./ro/ulid\": {\n      \"import\": {\n        \"types\": \"./ro/ulid.d.mts\",\n        \"default\": \"./ro/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/ulid.d.cts\",\n        \"default\": \"./ro/ulid.cjs\"\n      }\n    },\n    \"./ro/url\": {\n      \"import\": {\n        \"types\": \"./ro/url.d.mts\",\n        \"default\": \"./ro/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/url.d.cts\",\n        \"default\": \"./ro/url.cjs\"\n      }\n    },\n    \"./ro/uuid\": {\n      \"import\": {\n        \"types\": \"./ro/uuid.d.mts\",\n        \"default\": \"./ro/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/uuid.d.cts\",\n        \"default\": \"./ro/uuid.cjs\"\n      }\n    },\n    \"./ro/value\": {\n      \"import\": {\n        \"types\": \"./ro/value.d.mts\",\n        \"default\": \"./ro/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/value.d.cts\",\n        \"default\": \"./ro/value.cjs\"\n      }\n    },\n    \"./ro/values\": {\n      \"import\": {\n        \"types\": \"./ro/values.d.mts\",\n        \"default\": \"./ro/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/values.d.cts\",\n        \"default\": \"./ro/values.cjs\"\n      }\n    },\n    \"./ro/words\": {\n      \"import\": {\n        \"types\": \"./ro/words.d.mts\",\n        \"default\": \"./ro/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ro/words.d.cts\",\n        \"default\": \"./ro/words.cjs\"\n      }\n    },\n    \"./ru\": {\n      \"import\": {\n        \"types\": \"./ru/index.d.mts\",\n        \"default\": \"./ru/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/index.d.cts\",\n        \"default\": \"./ru/index.cjs\"\n      }\n    },\n    \"./ru/schema\": {\n      \"import\": {\n        \"types\": \"./ru/schema.d.mts\",\n        \"default\": \"./ru/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/schema.d.cts\",\n        \"default\": \"./ru/schema.cjs\"\n      }\n    },\n    \"./ru/base64\": {\n      \"import\": {\n        \"types\": \"./ru/base64.d.mts\",\n        \"default\": \"./ru/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/base64.d.cts\",\n        \"default\": \"./ru/base64.cjs\"\n      }\n    },\n    \"./ru/bic\": {\n      \"import\": {\n        \"types\": \"./ru/bic.d.mts\",\n        \"default\": \"./ru/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/bic.d.cts\",\n        \"default\": \"./ru/bic.cjs\"\n      }\n    },\n    \"./ru/bytes\": {\n      \"import\": {\n        \"types\": \"./ru/bytes.d.mts\",\n        \"default\": \"./ru/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/bytes.d.cts\",\n        \"default\": \"./ru/bytes.cjs\"\n      }\n    },\n    \"./ru/check\": {\n      \"import\": {\n        \"types\": \"./ru/check.d.mts\",\n        \"default\": \"./ru/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/check.d.cts\",\n        \"default\": \"./ru/check.cjs\"\n      }\n    },\n    \"./ru/checkAsync\": {\n      \"import\": {\n        \"types\": \"./ru/checkAsync.d.mts\",\n        \"default\": \"./ru/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/checkAsync.d.cts\",\n        \"default\": \"./ru/checkAsync.cjs\"\n      }\n    },\n    \"./ru/checkItems\": {\n      \"import\": {\n        \"types\": \"./ru/checkItems.d.mts\",\n        \"default\": \"./ru/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/checkItems.d.cts\",\n        \"default\": \"./ru/checkItems.cjs\"\n      }\n    },\n    \"./ru/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./ru/checkItemsAsync.d.mts\",\n        \"default\": \"./ru/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/checkItemsAsync.d.cts\",\n        \"default\": \"./ru/checkItemsAsync.cjs\"\n      }\n    },\n    \"./ru/creditCard\": {\n      \"import\": {\n        \"types\": \"./ru/creditCard.d.mts\",\n        \"default\": \"./ru/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/creditCard.d.cts\",\n        \"default\": \"./ru/creditCard.cjs\"\n      }\n    },\n    \"./ru/cuid2\": {\n      \"import\": {\n        \"types\": \"./ru/cuid2.d.mts\",\n        \"default\": \"./ru/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/cuid2.d.cts\",\n        \"default\": \"./ru/cuid2.cjs\"\n      }\n    },\n    \"./ru/decimal\": {\n      \"import\": {\n        \"types\": \"./ru/decimal.d.mts\",\n        \"default\": \"./ru/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/decimal.d.cts\",\n        \"default\": \"./ru/decimal.cjs\"\n      }\n    },\n    \"./ru/digits\": {\n      \"import\": {\n        \"types\": \"./ru/digits.d.mts\",\n        \"default\": \"./ru/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/digits.d.cts\",\n        \"default\": \"./ru/digits.cjs\"\n      }\n    },\n    \"./ru/domain\": {\n      \"import\": {\n        \"types\": \"./ru/domain.d.mts\",\n        \"default\": \"./ru/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/domain.d.cts\",\n        \"default\": \"./ru/domain.cjs\"\n      }\n    },\n    \"./ru/email\": {\n      \"import\": {\n        \"types\": \"./ru/email.d.mts\",\n        \"default\": \"./ru/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/email.d.cts\",\n        \"default\": \"./ru/email.cjs\"\n      }\n    },\n    \"./ru/emoji\": {\n      \"import\": {\n        \"types\": \"./ru/emoji.d.mts\",\n        \"default\": \"./ru/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/emoji.d.cts\",\n        \"default\": \"./ru/emoji.cjs\"\n      }\n    },\n    \"./ru/empty\": {\n      \"import\": {\n        \"types\": \"./ru/empty.d.mts\",\n        \"default\": \"./ru/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/empty.d.cts\",\n        \"default\": \"./ru/empty.cjs\"\n      }\n    },\n    \"./ru/endsWith\": {\n      \"import\": {\n        \"types\": \"./ru/endsWith.d.mts\",\n        \"default\": \"./ru/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/endsWith.d.cts\",\n        \"default\": \"./ru/endsWith.cjs\"\n      }\n    },\n    \"./ru/entries\": {\n      \"import\": {\n        \"types\": \"./ru/entries.d.mts\",\n        \"default\": \"./ru/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/entries.d.cts\",\n        \"default\": \"./ru/entries.cjs\"\n      }\n    },\n    \"./ru/everyItem\": {\n      \"import\": {\n        \"types\": \"./ru/everyItem.d.mts\",\n        \"default\": \"./ru/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/everyItem.d.cts\",\n        \"default\": \"./ru/everyItem.cjs\"\n      }\n    },\n    \"./ru/excludes\": {\n      \"import\": {\n        \"types\": \"./ru/excludes.d.mts\",\n        \"default\": \"./ru/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/excludes.d.cts\",\n        \"default\": \"./ru/excludes.cjs\"\n      }\n    },\n    \"./ru/finite\": {\n      \"import\": {\n        \"types\": \"./ru/finite.d.mts\",\n        \"default\": \"./ru/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/finite.d.cts\",\n        \"default\": \"./ru/finite.cjs\"\n      }\n    },\n    \"./ru/graphemes\": {\n      \"import\": {\n        \"types\": \"./ru/graphemes.d.mts\",\n        \"default\": \"./ru/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/graphemes.d.cts\",\n        \"default\": \"./ru/graphemes.cjs\"\n      }\n    },\n    \"./ru/gtValue\": {\n      \"import\": {\n        \"types\": \"./ru/gtValue.d.mts\",\n        \"default\": \"./ru/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/gtValue.d.cts\",\n        \"default\": \"./ru/gtValue.cjs\"\n      }\n    },\n    \"./ru/guard\": {\n      \"import\": {\n        \"types\": \"./ru/guard.d.mts\",\n        \"default\": \"./ru/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/guard.d.cts\",\n        \"default\": \"./ru/guard.cjs\"\n      }\n    },\n    \"./ru/hash\": {\n      \"import\": {\n        \"types\": \"./ru/hash.d.mts\",\n        \"default\": \"./ru/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/hash.d.cts\",\n        \"default\": \"./ru/hash.cjs\"\n      }\n    },\n    \"./ru/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./ru/hexadecimal.d.mts\",\n        \"default\": \"./ru/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/hexadecimal.d.cts\",\n        \"default\": \"./ru/hexadecimal.cjs\"\n      }\n    },\n    \"./ru/hexColor\": {\n      \"import\": {\n        \"types\": \"./ru/hexColor.d.mts\",\n        \"default\": \"./ru/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/hexColor.d.cts\",\n        \"default\": \"./ru/hexColor.cjs\"\n      }\n    },\n    \"./ru/imei\": {\n      \"import\": {\n        \"types\": \"./ru/imei.d.mts\",\n        \"default\": \"./ru/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/imei.d.cts\",\n        \"default\": \"./ru/imei.cjs\"\n      }\n    },\n    \"./ru/includes\": {\n      \"import\": {\n        \"types\": \"./ru/includes.d.mts\",\n        \"default\": \"./ru/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/includes.d.cts\",\n        \"default\": \"./ru/includes.cjs\"\n      }\n    },\n    \"./ru/integer\": {\n      \"import\": {\n        \"types\": \"./ru/integer.d.mts\",\n        \"default\": \"./ru/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/integer.d.cts\",\n        \"default\": \"./ru/integer.cjs\"\n      }\n    },\n    \"./ru/ip\": {\n      \"import\": {\n        \"types\": \"./ru/ip.d.mts\",\n        \"default\": \"./ru/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/ip.d.cts\",\n        \"default\": \"./ru/ip.cjs\"\n      }\n    },\n    \"./ru/ipv4\": {\n      \"import\": {\n        \"types\": \"./ru/ipv4.d.mts\",\n        \"default\": \"./ru/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/ipv4.d.cts\",\n        \"default\": \"./ru/ipv4.cjs\"\n      }\n    },\n    \"./ru/ipv6\": {\n      \"import\": {\n        \"types\": \"./ru/ipv6.d.mts\",\n        \"default\": \"./ru/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/ipv6.d.cts\",\n        \"default\": \"./ru/ipv6.cjs\"\n      }\n    },\n    \"./ru/isbn\": {\n      \"import\": {\n        \"types\": \"./ru/isbn.d.mts\",\n        \"default\": \"./ru/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/isbn.d.cts\",\n        \"default\": \"./ru/isbn.cjs\"\n      }\n    },\n    \"./ru/isoDate\": {\n      \"import\": {\n        \"types\": \"./ru/isoDate.d.mts\",\n        \"default\": \"./ru/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/isoDate.d.cts\",\n        \"default\": \"./ru/isoDate.cjs\"\n      }\n    },\n    \"./ru/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./ru/isoDateTime.d.mts\",\n        \"default\": \"./ru/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/isoDateTime.d.cts\",\n        \"default\": \"./ru/isoDateTime.cjs\"\n      }\n    },\n    \"./ru/isoTime\": {\n      \"import\": {\n        \"types\": \"./ru/isoTime.d.mts\",\n        \"default\": \"./ru/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/isoTime.d.cts\",\n        \"default\": \"./ru/isoTime.cjs\"\n      }\n    },\n    \"./ru/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./ru/isoTimeSecond.d.mts\",\n        \"default\": \"./ru/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/isoTimeSecond.d.cts\",\n        \"default\": \"./ru/isoTimeSecond.cjs\"\n      }\n    },\n    \"./ru/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./ru/isoTimestamp.d.mts\",\n        \"default\": \"./ru/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/isoTimestamp.d.cts\",\n        \"default\": \"./ru/isoTimestamp.cjs\"\n      }\n    },\n    \"./ru/isoWeek\": {\n      \"import\": {\n        \"types\": \"./ru/isoWeek.d.mts\",\n        \"default\": \"./ru/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/isoWeek.d.cts\",\n        \"default\": \"./ru/isoWeek.cjs\"\n      }\n    },\n    \"./ru/isrc\": {\n      \"import\": {\n        \"types\": \"./ru/isrc.d.mts\",\n        \"default\": \"./ru/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/isrc.d.cts\",\n        \"default\": \"./ru/isrc.cjs\"\n      }\n    },\n    \"./ru/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./ru/jwsCompact.d.mts\",\n        \"default\": \"./ru/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/jwsCompact.d.cts\",\n        \"default\": \"./ru/jwsCompact.cjs\"\n      }\n    },\n    \"./ru/length\": {\n      \"import\": {\n        \"types\": \"./ru/length.d.mts\",\n        \"default\": \"./ru/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/length.d.cts\",\n        \"default\": \"./ru/length.cjs\"\n      }\n    },\n    \"./ru/ltValue\": {\n      \"import\": {\n        \"types\": \"./ru/ltValue.d.mts\",\n        \"default\": \"./ru/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/ltValue.d.cts\",\n        \"default\": \"./ru/ltValue.cjs\"\n      }\n    },\n    \"./ru/mac\": {\n      \"import\": {\n        \"types\": \"./ru/mac.d.mts\",\n        \"default\": \"./ru/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/mac.d.cts\",\n        \"default\": \"./ru/mac.cjs\"\n      }\n    },\n    \"./ru/mac48\": {\n      \"import\": {\n        \"types\": \"./ru/mac48.d.mts\",\n        \"default\": \"./ru/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/mac48.d.cts\",\n        \"default\": \"./ru/mac48.cjs\"\n      }\n    },\n    \"./ru/mac64\": {\n      \"import\": {\n        \"types\": \"./ru/mac64.d.mts\",\n        \"default\": \"./ru/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/mac64.d.cts\",\n        \"default\": \"./ru/mac64.cjs\"\n      }\n    },\n    \"./ru/maxBytes\": {\n      \"import\": {\n        \"types\": \"./ru/maxBytes.d.mts\",\n        \"default\": \"./ru/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/maxBytes.d.cts\",\n        \"default\": \"./ru/maxBytes.cjs\"\n      }\n    },\n    \"./ru/maxEntries\": {\n      \"import\": {\n        \"types\": \"./ru/maxEntries.d.mts\",\n        \"default\": \"./ru/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/maxEntries.d.cts\",\n        \"default\": \"./ru/maxEntries.cjs\"\n      }\n    },\n    \"./ru/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./ru/maxGraphemes.d.mts\",\n        \"default\": \"./ru/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/maxGraphemes.d.cts\",\n        \"default\": \"./ru/maxGraphemes.cjs\"\n      }\n    },\n    \"./ru/maxLength\": {\n      \"import\": {\n        \"types\": \"./ru/maxLength.d.mts\",\n        \"default\": \"./ru/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/maxLength.d.cts\",\n        \"default\": \"./ru/maxLength.cjs\"\n      }\n    },\n    \"./ru/maxSize\": {\n      \"import\": {\n        \"types\": \"./ru/maxSize.d.mts\",\n        \"default\": \"./ru/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/maxSize.d.cts\",\n        \"default\": \"./ru/maxSize.cjs\"\n      }\n    },\n    \"./ru/maxValue\": {\n      \"import\": {\n        \"types\": \"./ru/maxValue.d.mts\",\n        \"default\": \"./ru/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/maxValue.d.cts\",\n        \"default\": \"./ru/maxValue.cjs\"\n      }\n    },\n    \"./ru/maxWords\": {\n      \"import\": {\n        \"types\": \"./ru/maxWords.d.mts\",\n        \"default\": \"./ru/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/maxWords.d.cts\",\n        \"default\": \"./ru/maxWords.cjs\"\n      }\n    },\n    \"./ru/mimeType\": {\n      \"import\": {\n        \"types\": \"./ru/mimeType.d.mts\",\n        \"default\": \"./ru/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/mimeType.d.cts\",\n        \"default\": \"./ru/mimeType.cjs\"\n      }\n    },\n    \"./ru/minBytes\": {\n      \"import\": {\n        \"types\": \"./ru/minBytes.d.mts\",\n        \"default\": \"./ru/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/minBytes.d.cts\",\n        \"default\": \"./ru/minBytes.cjs\"\n      }\n    },\n    \"./ru/minEntries\": {\n      \"import\": {\n        \"types\": \"./ru/minEntries.d.mts\",\n        \"default\": \"./ru/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/minEntries.d.cts\",\n        \"default\": \"./ru/minEntries.cjs\"\n      }\n    },\n    \"./ru/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./ru/minGraphemes.d.mts\",\n        \"default\": \"./ru/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/minGraphemes.d.cts\",\n        \"default\": \"./ru/minGraphemes.cjs\"\n      }\n    },\n    \"./ru/minLength\": {\n      \"import\": {\n        \"types\": \"./ru/minLength.d.mts\",\n        \"default\": \"./ru/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/minLength.d.cts\",\n        \"default\": \"./ru/minLength.cjs\"\n      }\n    },\n    \"./ru/minSize\": {\n      \"import\": {\n        \"types\": \"./ru/minSize.d.mts\",\n        \"default\": \"./ru/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/minSize.d.cts\",\n        \"default\": \"./ru/minSize.cjs\"\n      }\n    },\n    \"./ru/minValue\": {\n      \"import\": {\n        \"types\": \"./ru/minValue.d.mts\",\n        \"default\": \"./ru/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/minValue.d.cts\",\n        \"default\": \"./ru/minValue.cjs\"\n      }\n    },\n    \"./ru/minWords\": {\n      \"import\": {\n        \"types\": \"./ru/minWords.d.mts\",\n        \"default\": \"./ru/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/minWords.d.cts\",\n        \"default\": \"./ru/minWords.cjs\"\n      }\n    },\n    \"./ru/multipleOf\": {\n      \"import\": {\n        \"types\": \"./ru/multipleOf.d.mts\",\n        \"default\": \"./ru/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/multipleOf.d.cts\",\n        \"default\": \"./ru/multipleOf.cjs\"\n      }\n    },\n    \"./ru/nanoid\": {\n      \"import\": {\n        \"types\": \"./ru/nanoid.d.mts\",\n        \"default\": \"./ru/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/nanoid.d.cts\",\n        \"default\": \"./ru/nanoid.cjs\"\n      }\n    },\n    \"./ru/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./ru/nonEmpty.d.mts\",\n        \"default\": \"./ru/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/nonEmpty.d.cts\",\n        \"default\": \"./ru/nonEmpty.cjs\"\n      }\n    },\n    \"./ru/notBytes\": {\n      \"import\": {\n        \"types\": \"./ru/notBytes.d.mts\",\n        \"default\": \"./ru/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/notBytes.d.cts\",\n        \"default\": \"./ru/notBytes.cjs\"\n      }\n    },\n    \"./ru/notEntries\": {\n      \"import\": {\n        \"types\": \"./ru/notEntries.d.mts\",\n        \"default\": \"./ru/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/notEntries.d.cts\",\n        \"default\": \"./ru/notEntries.cjs\"\n      }\n    },\n    \"./ru/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./ru/notGraphemes.d.mts\",\n        \"default\": \"./ru/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/notGraphemes.d.cts\",\n        \"default\": \"./ru/notGraphemes.cjs\"\n      }\n    },\n    \"./ru/notLength\": {\n      \"import\": {\n        \"types\": \"./ru/notLength.d.mts\",\n        \"default\": \"./ru/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/notLength.d.cts\",\n        \"default\": \"./ru/notLength.cjs\"\n      }\n    },\n    \"./ru/notSize\": {\n      \"import\": {\n        \"types\": \"./ru/notSize.d.mts\",\n        \"default\": \"./ru/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/notSize.d.cts\",\n        \"default\": \"./ru/notSize.cjs\"\n      }\n    },\n    \"./ru/notValue\": {\n      \"import\": {\n        \"types\": \"./ru/notValue.d.mts\",\n        \"default\": \"./ru/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/notValue.d.cts\",\n        \"default\": \"./ru/notValue.cjs\"\n      }\n    },\n    \"./ru/notValues\": {\n      \"import\": {\n        \"types\": \"./ru/notValues.d.mts\",\n        \"default\": \"./ru/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/notValues.d.cts\",\n        \"default\": \"./ru/notValues.cjs\"\n      }\n    },\n    \"./ru/notWords\": {\n      \"import\": {\n        \"types\": \"./ru/notWords.d.mts\",\n        \"default\": \"./ru/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/notWords.d.cts\",\n        \"default\": \"./ru/notWords.cjs\"\n      }\n    },\n    \"./ru/octal\": {\n      \"import\": {\n        \"types\": \"./ru/octal.d.mts\",\n        \"default\": \"./ru/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/octal.d.cts\",\n        \"default\": \"./ru/octal.cjs\"\n      }\n    },\n    \"./ru/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./ru/parseBoolean.d.mts\",\n        \"default\": \"./ru/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/parseBoolean.d.cts\",\n        \"default\": \"./ru/parseBoolean.cjs\"\n      }\n    },\n    \"./ru/parseJson\": {\n      \"import\": {\n        \"types\": \"./ru/parseJson.d.mts\",\n        \"default\": \"./ru/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/parseJson.d.cts\",\n        \"default\": \"./ru/parseJson.cjs\"\n      }\n    },\n    \"./ru/partialCheck\": {\n      \"import\": {\n        \"types\": \"./ru/partialCheck.d.mts\",\n        \"default\": \"./ru/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/partialCheck.d.cts\",\n        \"default\": \"./ru/partialCheck.cjs\"\n      }\n    },\n    \"./ru/rawCheck\": {\n      \"import\": {\n        \"types\": \"./ru/rawCheck.d.mts\",\n        \"default\": \"./ru/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/rawCheck.d.cts\",\n        \"default\": \"./ru/rawCheck.cjs\"\n      }\n    },\n    \"./ru/rawTransform\": {\n      \"import\": {\n        \"types\": \"./ru/rawTransform.d.mts\",\n        \"default\": \"./ru/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/rawTransform.d.cts\",\n        \"default\": \"./ru/rawTransform.cjs\"\n      }\n    },\n    \"./ru/regex\": {\n      \"import\": {\n        \"types\": \"./ru/regex.d.mts\",\n        \"default\": \"./ru/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/regex.d.cts\",\n        \"default\": \"./ru/regex.cjs\"\n      }\n    },\n    \"./ru/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./ru/rfcEmail.d.mts\",\n        \"default\": \"./ru/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/rfcEmail.d.cts\",\n        \"default\": \"./ru/rfcEmail.cjs\"\n      }\n    },\n    \"./ru/safeInteger\": {\n      \"import\": {\n        \"types\": \"./ru/safeInteger.d.mts\",\n        \"default\": \"./ru/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/safeInteger.d.cts\",\n        \"default\": \"./ru/safeInteger.cjs\"\n      }\n    },\n    \"./ru/size\": {\n      \"import\": {\n        \"types\": \"./ru/size.d.mts\",\n        \"default\": \"./ru/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/size.d.cts\",\n        \"default\": \"./ru/size.cjs\"\n      }\n    },\n    \"./ru/slug\": {\n      \"import\": {\n        \"types\": \"./ru/slug.d.mts\",\n        \"default\": \"./ru/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/slug.d.cts\",\n        \"default\": \"./ru/slug.cjs\"\n      }\n    },\n    \"./ru/someItem\": {\n      \"import\": {\n        \"types\": \"./ru/someItem.d.mts\",\n        \"default\": \"./ru/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/someItem.d.cts\",\n        \"default\": \"./ru/someItem.cjs\"\n      }\n    },\n    \"./ru/startsWith\": {\n      \"import\": {\n        \"types\": \"./ru/startsWith.d.mts\",\n        \"default\": \"./ru/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/startsWith.d.cts\",\n        \"default\": \"./ru/startsWith.cjs\"\n      }\n    },\n    \"./ru/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./ru/stringifyJson.d.mts\",\n        \"default\": \"./ru/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/stringifyJson.d.cts\",\n        \"default\": \"./ru/stringifyJson.cjs\"\n      }\n    },\n    \"./ru/toBigint\": {\n      \"import\": {\n        \"types\": \"./ru/toBigint.d.mts\",\n        \"default\": \"./ru/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/toBigint.d.cts\",\n        \"default\": \"./ru/toBigint.cjs\"\n      }\n    },\n    \"./ru/toDate\": {\n      \"import\": {\n        \"types\": \"./ru/toDate.d.mts\",\n        \"default\": \"./ru/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/toDate.d.cts\",\n        \"default\": \"./ru/toDate.cjs\"\n      }\n    },\n    \"./ru/toNumber\": {\n      \"import\": {\n        \"types\": \"./ru/toNumber.d.mts\",\n        \"default\": \"./ru/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/toNumber.d.cts\",\n        \"default\": \"./ru/toNumber.cjs\"\n      }\n    },\n    \"./ru/toString\": {\n      \"import\": {\n        \"types\": \"./ru/toString.d.mts\",\n        \"default\": \"./ru/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/toString.d.cts\",\n        \"default\": \"./ru/toString.cjs\"\n      }\n    },\n    \"./ru/ulid\": {\n      \"import\": {\n        \"types\": \"./ru/ulid.d.mts\",\n        \"default\": \"./ru/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/ulid.d.cts\",\n        \"default\": \"./ru/ulid.cjs\"\n      }\n    },\n    \"./ru/url\": {\n      \"import\": {\n        \"types\": \"./ru/url.d.mts\",\n        \"default\": \"./ru/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/url.d.cts\",\n        \"default\": \"./ru/url.cjs\"\n      }\n    },\n    \"./ru/uuid\": {\n      \"import\": {\n        \"types\": \"./ru/uuid.d.mts\",\n        \"default\": \"./ru/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/uuid.d.cts\",\n        \"default\": \"./ru/uuid.cjs\"\n      }\n    },\n    \"./ru/value\": {\n      \"import\": {\n        \"types\": \"./ru/value.d.mts\",\n        \"default\": \"./ru/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/value.d.cts\",\n        \"default\": \"./ru/value.cjs\"\n      }\n    },\n    \"./ru/values\": {\n      \"import\": {\n        \"types\": \"./ru/values.d.mts\",\n        \"default\": \"./ru/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/values.d.cts\",\n        \"default\": \"./ru/values.cjs\"\n      }\n    },\n    \"./ru/words\": {\n      \"import\": {\n        \"types\": \"./ru/words.d.mts\",\n        \"default\": \"./ru/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./ru/words.d.cts\",\n        \"default\": \"./ru/words.cjs\"\n      }\n    },\n    \"./sk\": {\n      \"import\": {\n        \"types\": \"./sk/index.d.mts\",\n        \"default\": \"./sk/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/index.d.cts\",\n        \"default\": \"./sk/index.cjs\"\n      }\n    },\n    \"./sk/schema\": {\n      \"import\": {\n        \"types\": \"./sk/schema.d.mts\",\n        \"default\": \"./sk/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/schema.d.cts\",\n        \"default\": \"./sk/schema.cjs\"\n      }\n    },\n    \"./sk/base64\": {\n      \"import\": {\n        \"types\": \"./sk/base64.d.mts\",\n        \"default\": \"./sk/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/base64.d.cts\",\n        \"default\": \"./sk/base64.cjs\"\n      }\n    },\n    \"./sk/bic\": {\n      \"import\": {\n        \"types\": \"./sk/bic.d.mts\",\n        \"default\": \"./sk/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/bic.d.cts\",\n        \"default\": \"./sk/bic.cjs\"\n      }\n    },\n    \"./sk/bytes\": {\n      \"import\": {\n        \"types\": \"./sk/bytes.d.mts\",\n        \"default\": \"./sk/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/bytes.d.cts\",\n        \"default\": \"./sk/bytes.cjs\"\n      }\n    },\n    \"./sk/check\": {\n      \"import\": {\n        \"types\": \"./sk/check.d.mts\",\n        \"default\": \"./sk/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/check.d.cts\",\n        \"default\": \"./sk/check.cjs\"\n      }\n    },\n    \"./sk/checkAsync\": {\n      \"import\": {\n        \"types\": \"./sk/checkAsync.d.mts\",\n        \"default\": \"./sk/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/checkAsync.d.cts\",\n        \"default\": \"./sk/checkAsync.cjs\"\n      }\n    },\n    \"./sk/checkItems\": {\n      \"import\": {\n        \"types\": \"./sk/checkItems.d.mts\",\n        \"default\": \"./sk/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/checkItems.d.cts\",\n        \"default\": \"./sk/checkItems.cjs\"\n      }\n    },\n    \"./sk/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./sk/checkItemsAsync.d.mts\",\n        \"default\": \"./sk/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/checkItemsAsync.d.cts\",\n        \"default\": \"./sk/checkItemsAsync.cjs\"\n      }\n    },\n    \"./sk/creditCard\": {\n      \"import\": {\n        \"types\": \"./sk/creditCard.d.mts\",\n        \"default\": \"./sk/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/creditCard.d.cts\",\n        \"default\": \"./sk/creditCard.cjs\"\n      }\n    },\n    \"./sk/cuid2\": {\n      \"import\": {\n        \"types\": \"./sk/cuid2.d.mts\",\n        \"default\": \"./sk/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/cuid2.d.cts\",\n        \"default\": \"./sk/cuid2.cjs\"\n      }\n    },\n    \"./sk/decimal\": {\n      \"import\": {\n        \"types\": \"./sk/decimal.d.mts\",\n        \"default\": \"./sk/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/decimal.d.cts\",\n        \"default\": \"./sk/decimal.cjs\"\n      }\n    },\n    \"./sk/digits\": {\n      \"import\": {\n        \"types\": \"./sk/digits.d.mts\",\n        \"default\": \"./sk/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/digits.d.cts\",\n        \"default\": \"./sk/digits.cjs\"\n      }\n    },\n    \"./sk/domain\": {\n      \"import\": {\n        \"types\": \"./sk/domain.d.mts\",\n        \"default\": \"./sk/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/domain.d.cts\",\n        \"default\": \"./sk/domain.cjs\"\n      }\n    },\n    \"./sk/email\": {\n      \"import\": {\n        \"types\": \"./sk/email.d.mts\",\n        \"default\": \"./sk/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/email.d.cts\",\n        \"default\": \"./sk/email.cjs\"\n      }\n    },\n    \"./sk/emoji\": {\n      \"import\": {\n        \"types\": \"./sk/emoji.d.mts\",\n        \"default\": \"./sk/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/emoji.d.cts\",\n        \"default\": \"./sk/emoji.cjs\"\n      }\n    },\n    \"./sk/empty\": {\n      \"import\": {\n        \"types\": \"./sk/empty.d.mts\",\n        \"default\": \"./sk/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/empty.d.cts\",\n        \"default\": \"./sk/empty.cjs\"\n      }\n    },\n    \"./sk/endsWith\": {\n      \"import\": {\n        \"types\": \"./sk/endsWith.d.mts\",\n        \"default\": \"./sk/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/endsWith.d.cts\",\n        \"default\": \"./sk/endsWith.cjs\"\n      }\n    },\n    \"./sk/entries\": {\n      \"import\": {\n        \"types\": \"./sk/entries.d.mts\",\n        \"default\": \"./sk/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/entries.d.cts\",\n        \"default\": \"./sk/entries.cjs\"\n      }\n    },\n    \"./sk/everyItem\": {\n      \"import\": {\n        \"types\": \"./sk/everyItem.d.mts\",\n        \"default\": \"./sk/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/everyItem.d.cts\",\n        \"default\": \"./sk/everyItem.cjs\"\n      }\n    },\n    \"./sk/excludes\": {\n      \"import\": {\n        \"types\": \"./sk/excludes.d.mts\",\n        \"default\": \"./sk/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/excludes.d.cts\",\n        \"default\": \"./sk/excludes.cjs\"\n      }\n    },\n    \"./sk/finite\": {\n      \"import\": {\n        \"types\": \"./sk/finite.d.mts\",\n        \"default\": \"./sk/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/finite.d.cts\",\n        \"default\": \"./sk/finite.cjs\"\n      }\n    },\n    \"./sk/graphemes\": {\n      \"import\": {\n        \"types\": \"./sk/graphemes.d.mts\",\n        \"default\": \"./sk/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/graphemes.d.cts\",\n        \"default\": \"./sk/graphemes.cjs\"\n      }\n    },\n    \"./sk/gtValue\": {\n      \"import\": {\n        \"types\": \"./sk/gtValue.d.mts\",\n        \"default\": \"./sk/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/gtValue.d.cts\",\n        \"default\": \"./sk/gtValue.cjs\"\n      }\n    },\n    \"./sk/guard\": {\n      \"import\": {\n        \"types\": \"./sk/guard.d.mts\",\n        \"default\": \"./sk/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/guard.d.cts\",\n        \"default\": \"./sk/guard.cjs\"\n      }\n    },\n    \"./sk/hash\": {\n      \"import\": {\n        \"types\": \"./sk/hash.d.mts\",\n        \"default\": \"./sk/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/hash.d.cts\",\n        \"default\": \"./sk/hash.cjs\"\n      }\n    },\n    \"./sk/hexColor\": {\n      \"import\": {\n        \"types\": \"./sk/hexColor.d.mts\",\n        \"default\": \"./sk/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/hexColor.d.cts\",\n        \"default\": \"./sk/hexColor.cjs\"\n      }\n    },\n    \"./sk/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./sk/hexadecimal.d.mts\",\n        \"default\": \"./sk/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/hexadecimal.d.cts\",\n        \"default\": \"./sk/hexadecimal.cjs\"\n      }\n    },\n    \"./sk/imei\": {\n      \"import\": {\n        \"types\": \"./sk/imei.d.mts\",\n        \"default\": \"./sk/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/imei.d.cts\",\n        \"default\": \"./sk/imei.cjs\"\n      }\n    },\n    \"./sk/includes\": {\n      \"import\": {\n        \"types\": \"./sk/includes.d.mts\",\n        \"default\": \"./sk/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/includes.d.cts\",\n        \"default\": \"./sk/includes.cjs\"\n      }\n    },\n    \"./sk/integer\": {\n      \"import\": {\n        \"types\": \"./sk/integer.d.mts\",\n        \"default\": \"./sk/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/integer.d.cts\",\n        \"default\": \"./sk/integer.cjs\"\n      }\n    },\n    \"./sk/ip\": {\n      \"import\": {\n        \"types\": \"./sk/ip.d.mts\",\n        \"default\": \"./sk/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/ip.d.cts\",\n        \"default\": \"./sk/ip.cjs\"\n      }\n    },\n    \"./sk/ipv4\": {\n      \"import\": {\n        \"types\": \"./sk/ipv4.d.mts\",\n        \"default\": \"./sk/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/ipv4.d.cts\",\n        \"default\": \"./sk/ipv4.cjs\"\n      }\n    },\n    \"./sk/ipv6\": {\n      \"import\": {\n        \"types\": \"./sk/ipv6.d.mts\",\n        \"default\": \"./sk/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/ipv6.d.cts\",\n        \"default\": \"./sk/ipv6.cjs\"\n      }\n    },\n    \"./sk/isbn\": {\n      \"import\": {\n        \"types\": \"./sk/isbn.d.mts\",\n        \"default\": \"./sk/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/isbn.d.cts\",\n        \"default\": \"./sk/isbn.cjs\"\n      }\n    },\n    \"./sk/isoDate\": {\n      \"import\": {\n        \"types\": \"./sk/isoDate.d.mts\",\n        \"default\": \"./sk/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/isoDate.d.cts\",\n        \"default\": \"./sk/isoDate.cjs\"\n      }\n    },\n    \"./sk/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./sk/isoDateTime.d.mts\",\n        \"default\": \"./sk/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/isoDateTime.d.cts\",\n        \"default\": \"./sk/isoDateTime.cjs\"\n      }\n    },\n    \"./sk/isoTime\": {\n      \"import\": {\n        \"types\": \"./sk/isoTime.d.mts\",\n        \"default\": \"./sk/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/isoTime.d.cts\",\n        \"default\": \"./sk/isoTime.cjs\"\n      }\n    },\n    \"./sk/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./sk/isoTimeSecond.d.mts\",\n        \"default\": \"./sk/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/isoTimeSecond.d.cts\",\n        \"default\": \"./sk/isoTimeSecond.cjs\"\n      }\n    },\n    \"./sk/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./sk/isoTimestamp.d.mts\",\n        \"default\": \"./sk/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/isoTimestamp.d.cts\",\n        \"default\": \"./sk/isoTimestamp.cjs\"\n      }\n    },\n    \"./sk/isoWeek\": {\n      \"import\": {\n        \"types\": \"./sk/isoWeek.d.mts\",\n        \"default\": \"./sk/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/isoWeek.d.cts\",\n        \"default\": \"./sk/isoWeek.cjs\"\n      }\n    },\n    \"./sk/isrc\": {\n      \"import\": {\n        \"types\": \"./sk/isrc.d.mts\",\n        \"default\": \"./sk/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/isrc.d.cts\",\n        \"default\": \"./sk/isrc.cjs\"\n      }\n    },\n    \"./sk/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./sk/jwsCompact.d.mts\",\n        \"default\": \"./sk/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/jwsCompact.d.cts\",\n        \"default\": \"./sk/jwsCompact.cjs\"\n      }\n    },\n    \"./sk/length\": {\n      \"import\": {\n        \"types\": \"./sk/length.d.mts\",\n        \"default\": \"./sk/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/length.d.cts\",\n        \"default\": \"./sk/length.cjs\"\n      }\n    },\n    \"./sk/ltValue\": {\n      \"import\": {\n        \"types\": \"./sk/ltValue.d.mts\",\n        \"default\": \"./sk/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/ltValue.d.cts\",\n        \"default\": \"./sk/ltValue.cjs\"\n      }\n    },\n    \"./sk/mac\": {\n      \"import\": {\n        \"types\": \"./sk/mac.d.mts\",\n        \"default\": \"./sk/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/mac.d.cts\",\n        \"default\": \"./sk/mac.cjs\"\n      }\n    },\n    \"./sk/mac48\": {\n      \"import\": {\n        \"types\": \"./sk/mac48.d.mts\",\n        \"default\": \"./sk/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/mac48.d.cts\",\n        \"default\": \"./sk/mac48.cjs\"\n      }\n    },\n    \"./sk/mac64\": {\n      \"import\": {\n        \"types\": \"./sk/mac64.d.mts\",\n        \"default\": \"./sk/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/mac64.d.cts\",\n        \"default\": \"./sk/mac64.cjs\"\n      }\n    },\n    \"./sk/maxBytes\": {\n      \"import\": {\n        \"types\": \"./sk/maxBytes.d.mts\",\n        \"default\": \"./sk/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/maxBytes.d.cts\",\n        \"default\": \"./sk/maxBytes.cjs\"\n      }\n    },\n    \"./sk/maxEntries\": {\n      \"import\": {\n        \"types\": \"./sk/maxEntries.d.mts\",\n        \"default\": \"./sk/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/maxEntries.d.cts\",\n        \"default\": \"./sk/maxEntries.cjs\"\n      }\n    },\n    \"./sk/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./sk/maxGraphemes.d.mts\",\n        \"default\": \"./sk/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/maxGraphemes.d.cts\",\n        \"default\": \"./sk/maxGraphemes.cjs\"\n      }\n    },\n    \"./sk/maxLength\": {\n      \"import\": {\n        \"types\": \"./sk/maxLength.d.mts\",\n        \"default\": \"./sk/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/maxLength.d.cts\",\n        \"default\": \"./sk/maxLength.cjs\"\n      }\n    },\n    \"./sk/maxSize\": {\n      \"import\": {\n        \"types\": \"./sk/maxSize.d.mts\",\n        \"default\": \"./sk/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/maxSize.d.cts\",\n        \"default\": \"./sk/maxSize.cjs\"\n      }\n    },\n    \"./sk/maxValue\": {\n      \"import\": {\n        \"types\": \"./sk/maxValue.d.mts\",\n        \"default\": \"./sk/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/maxValue.d.cts\",\n        \"default\": \"./sk/maxValue.cjs\"\n      }\n    },\n    \"./sk/maxWords\": {\n      \"import\": {\n        \"types\": \"./sk/maxWords.d.mts\",\n        \"default\": \"./sk/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/maxWords.d.cts\",\n        \"default\": \"./sk/maxWords.cjs\"\n      }\n    },\n    \"./sk/mimeType\": {\n      \"import\": {\n        \"types\": \"./sk/mimeType.d.mts\",\n        \"default\": \"./sk/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/mimeType.d.cts\",\n        \"default\": \"./sk/mimeType.cjs\"\n      }\n    },\n    \"./sk/minBytes\": {\n      \"import\": {\n        \"types\": \"./sk/minBytes.d.mts\",\n        \"default\": \"./sk/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/minBytes.d.cts\",\n        \"default\": \"./sk/minBytes.cjs\"\n      }\n    },\n    \"./sk/minEntries\": {\n      \"import\": {\n        \"types\": \"./sk/minEntries.d.mts\",\n        \"default\": \"./sk/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/minEntries.d.cts\",\n        \"default\": \"./sk/minEntries.cjs\"\n      }\n    },\n    \"./sk/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./sk/minGraphemes.d.mts\",\n        \"default\": \"./sk/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/minGraphemes.d.cts\",\n        \"default\": \"./sk/minGraphemes.cjs\"\n      }\n    },\n    \"./sk/minLength\": {\n      \"import\": {\n        \"types\": \"./sk/minLength.d.mts\",\n        \"default\": \"./sk/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/minLength.d.cts\",\n        \"default\": \"./sk/minLength.cjs\"\n      }\n    },\n    \"./sk/minSize\": {\n      \"import\": {\n        \"types\": \"./sk/minSize.d.mts\",\n        \"default\": \"./sk/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/minSize.d.cts\",\n        \"default\": \"./sk/minSize.cjs\"\n      }\n    },\n    \"./sk/minValue\": {\n      \"import\": {\n        \"types\": \"./sk/minValue.d.mts\",\n        \"default\": \"./sk/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/minValue.d.cts\",\n        \"default\": \"./sk/minValue.cjs\"\n      }\n    },\n    \"./sk/minWords\": {\n      \"import\": {\n        \"types\": \"./sk/minWords.d.mts\",\n        \"default\": \"./sk/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/minWords.d.cts\",\n        \"default\": \"./sk/minWords.cjs\"\n      }\n    },\n    \"./sk/multipleOf\": {\n      \"import\": {\n        \"types\": \"./sk/multipleOf.d.mts\",\n        \"default\": \"./sk/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/multipleOf.d.cts\",\n        \"default\": \"./sk/multipleOf.cjs\"\n      }\n    },\n    \"./sk/nanoid\": {\n      \"import\": {\n        \"types\": \"./sk/nanoid.d.mts\",\n        \"default\": \"./sk/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/nanoid.d.cts\",\n        \"default\": \"./sk/nanoid.cjs\"\n      }\n    },\n    \"./sk/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./sk/nonEmpty.d.mts\",\n        \"default\": \"./sk/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/nonEmpty.d.cts\",\n        \"default\": \"./sk/nonEmpty.cjs\"\n      }\n    },\n    \"./sk/notBytes\": {\n      \"import\": {\n        \"types\": \"./sk/notBytes.d.mts\",\n        \"default\": \"./sk/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/notBytes.d.cts\",\n        \"default\": \"./sk/notBytes.cjs\"\n      }\n    },\n    \"./sk/notEntries\": {\n      \"import\": {\n        \"types\": \"./sk/notEntries.d.mts\",\n        \"default\": \"./sk/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/notEntries.d.cts\",\n        \"default\": \"./sk/notEntries.cjs\"\n      }\n    },\n    \"./sk/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./sk/notGraphemes.d.mts\",\n        \"default\": \"./sk/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/notGraphemes.d.cts\",\n        \"default\": \"./sk/notGraphemes.cjs\"\n      }\n    },\n    \"./sk/notLength\": {\n      \"import\": {\n        \"types\": \"./sk/notLength.d.mts\",\n        \"default\": \"./sk/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/notLength.d.cts\",\n        \"default\": \"./sk/notLength.cjs\"\n      }\n    },\n    \"./sk/notSize\": {\n      \"import\": {\n        \"types\": \"./sk/notSize.d.mts\",\n        \"default\": \"./sk/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/notSize.d.cts\",\n        \"default\": \"./sk/notSize.cjs\"\n      }\n    },\n    \"./sk/notValue\": {\n      \"import\": {\n        \"types\": \"./sk/notValue.d.mts\",\n        \"default\": \"./sk/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/notValue.d.cts\",\n        \"default\": \"./sk/notValue.cjs\"\n      }\n    },\n    \"./sk/notValues\": {\n      \"import\": {\n        \"types\": \"./sk/notValues.d.mts\",\n        \"default\": \"./sk/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/notValues.d.cts\",\n        \"default\": \"./sk/notValues.cjs\"\n      }\n    },\n    \"./sk/notWords\": {\n      \"import\": {\n        \"types\": \"./sk/notWords.d.mts\",\n        \"default\": \"./sk/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/notWords.d.cts\",\n        \"default\": \"./sk/notWords.cjs\"\n      }\n    },\n    \"./sk/octal\": {\n      \"import\": {\n        \"types\": \"./sk/octal.d.mts\",\n        \"default\": \"./sk/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/octal.d.cts\",\n        \"default\": \"./sk/octal.cjs\"\n      }\n    },\n    \"./sk/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./sk/parseBoolean.d.mts\",\n        \"default\": \"./sk/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/parseBoolean.d.cts\",\n        \"default\": \"./sk/parseBoolean.cjs\"\n      }\n    },\n    \"./sk/parseJson\": {\n      \"import\": {\n        \"types\": \"./sk/parseJson.d.mts\",\n        \"default\": \"./sk/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/parseJson.d.cts\",\n        \"default\": \"./sk/parseJson.cjs\"\n      }\n    },\n    \"./sk/partialCheck\": {\n      \"import\": {\n        \"types\": \"./sk/partialCheck.d.mts\",\n        \"default\": \"./sk/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/partialCheck.d.cts\",\n        \"default\": \"./sk/partialCheck.cjs\"\n      }\n    },\n    \"./sk/rawCheck\": {\n      \"import\": {\n        \"types\": \"./sk/rawCheck.d.mts\",\n        \"default\": \"./sk/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/rawCheck.d.cts\",\n        \"default\": \"./sk/rawCheck.cjs\"\n      }\n    },\n    \"./sk/rawTransform\": {\n      \"import\": {\n        \"types\": \"./sk/rawTransform.d.mts\",\n        \"default\": \"./sk/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/rawTransform.d.cts\",\n        \"default\": \"./sk/rawTransform.cjs\"\n      }\n    },\n    \"./sk/regex\": {\n      \"import\": {\n        \"types\": \"./sk/regex.d.mts\",\n        \"default\": \"./sk/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/regex.d.cts\",\n        \"default\": \"./sk/regex.cjs\"\n      }\n    },\n    \"./sk/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./sk/rfcEmail.d.mts\",\n        \"default\": \"./sk/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/rfcEmail.d.cts\",\n        \"default\": \"./sk/rfcEmail.cjs\"\n      }\n    },\n    \"./sk/safeInteger\": {\n      \"import\": {\n        \"types\": \"./sk/safeInteger.d.mts\",\n        \"default\": \"./sk/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/safeInteger.d.cts\",\n        \"default\": \"./sk/safeInteger.cjs\"\n      }\n    },\n    \"./sk/size\": {\n      \"import\": {\n        \"types\": \"./sk/size.d.mts\",\n        \"default\": \"./sk/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/size.d.cts\",\n        \"default\": \"./sk/size.cjs\"\n      }\n    },\n    \"./sk/slug\": {\n      \"import\": {\n        \"types\": \"./sk/slug.d.mts\",\n        \"default\": \"./sk/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/slug.d.cts\",\n        \"default\": \"./sk/slug.cjs\"\n      }\n    },\n    \"./sk/someItem\": {\n      \"import\": {\n        \"types\": \"./sk/someItem.d.mts\",\n        \"default\": \"./sk/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/someItem.d.cts\",\n        \"default\": \"./sk/someItem.cjs\"\n      }\n    },\n    \"./sk/startsWith\": {\n      \"import\": {\n        \"types\": \"./sk/startsWith.d.mts\",\n        \"default\": \"./sk/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/startsWith.d.cts\",\n        \"default\": \"./sk/startsWith.cjs\"\n      }\n    },\n    \"./sk/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./sk/stringifyJson.d.mts\",\n        \"default\": \"./sk/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/stringifyJson.d.cts\",\n        \"default\": \"./sk/stringifyJson.cjs\"\n      }\n    },\n    \"./sk/toBigint\": {\n      \"import\": {\n        \"types\": \"./sk/toBigint.d.mts\",\n        \"default\": \"./sk/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/toBigint.d.cts\",\n        \"default\": \"./sk/toBigint.cjs\"\n      }\n    },\n    \"./sk/toDate\": {\n      \"import\": {\n        \"types\": \"./sk/toDate.d.mts\",\n        \"default\": \"./sk/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/toDate.d.cts\",\n        \"default\": \"./sk/toDate.cjs\"\n      }\n    },\n    \"./sk/toNumber\": {\n      \"import\": {\n        \"types\": \"./sk/toNumber.d.mts\",\n        \"default\": \"./sk/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/toNumber.d.cts\",\n        \"default\": \"./sk/toNumber.cjs\"\n      }\n    },\n    \"./sk/toString\": {\n      \"import\": {\n        \"types\": \"./sk/toString.d.mts\",\n        \"default\": \"./sk/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/toString.d.cts\",\n        \"default\": \"./sk/toString.cjs\"\n      }\n    },\n    \"./sk/ulid\": {\n      \"import\": {\n        \"types\": \"./sk/ulid.d.mts\",\n        \"default\": \"./sk/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/ulid.d.cts\",\n        \"default\": \"./sk/ulid.cjs\"\n      }\n    },\n    \"./sk/url\": {\n      \"import\": {\n        \"types\": \"./sk/url.d.mts\",\n        \"default\": \"./sk/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/url.d.cts\",\n        \"default\": \"./sk/url.cjs\"\n      }\n    },\n    \"./sk/uuid\": {\n      \"import\": {\n        \"types\": \"./sk/uuid.d.mts\",\n        \"default\": \"./sk/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/uuid.d.cts\",\n        \"default\": \"./sk/uuid.cjs\"\n      }\n    },\n    \"./sk/value\": {\n      \"import\": {\n        \"types\": \"./sk/value.d.mts\",\n        \"default\": \"./sk/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/value.d.cts\",\n        \"default\": \"./sk/value.cjs\"\n      }\n    },\n    \"./sk/values\": {\n      \"import\": {\n        \"types\": \"./sk/values.d.mts\",\n        \"default\": \"./sk/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/values.d.cts\",\n        \"default\": \"./sk/values.cjs\"\n      }\n    },\n    \"./sk/words\": {\n      \"import\": {\n        \"types\": \"./sk/words.d.mts\",\n        \"default\": \"./sk/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sk/words.d.cts\",\n        \"default\": \"./sk/words.cjs\"\n      }\n    },\n    \"./sl\": {\n      \"import\": {\n        \"types\": \"./sl/index.d.mts\",\n        \"default\": \"./sl/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/index.d.cts\",\n        \"default\": \"./sl/index.cjs\"\n      }\n    },\n    \"./sl/schema\": {\n      \"import\": {\n        \"types\": \"./sl/schema.d.mts\",\n        \"default\": \"./sl/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/schema.d.cts\",\n        \"default\": \"./sl/schema.cjs\"\n      }\n    },\n    \"./sl/base64\": {\n      \"import\": {\n        \"types\": \"./sl/base64.d.mts\",\n        \"default\": \"./sl/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/base64.d.cts\",\n        \"default\": \"./sl/base64.cjs\"\n      }\n    },\n    \"./sl/bic\": {\n      \"import\": {\n        \"types\": \"./sl/bic.d.mts\",\n        \"default\": \"./sl/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/bic.d.cts\",\n        \"default\": \"./sl/bic.cjs\"\n      }\n    },\n    \"./sl/bytes\": {\n      \"import\": {\n        \"types\": \"./sl/bytes.d.mts\",\n        \"default\": \"./sl/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/bytes.d.cts\",\n        \"default\": \"./sl/bytes.cjs\"\n      }\n    },\n    \"./sl/check\": {\n      \"import\": {\n        \"types\": \"./sl/check.d.mts\",\n        \"default\": \"./sl/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/check.d.cts\",\n        \"default\": \"./sl/check.cjs\"\n      }\n    },\n    \"./sl/checkAsync\": {\n      \"import\": {\n        \"types\": \"./sl/checkAsync.d.mts\",\n        \"default\": \"./sl/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/checkAsync.d.cts\",\n        \"default\": \"./sl/checkAsync.cjs\"\n      }\n    },\n    \"./sl/checkItems\": {\n      \"import\": {\n        \"types\": \"./sl/checkItems.d.mts\",\n        \"default\": \"./sl/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/checkItems.d.cts\",\n        \"default\": \"./sl/checkItems.cjs\"\n      }\n    },\n    \"./sl/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./sl/checkItemsAsync.d.mts\",\n        \"default\": \"./sl/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/checkItemsAsync.d.cts\",\n        \"default\": \"./sl/checkItemsAsync.cjs\"\n      }\n    },\n    \"./sl/creditCard\": {\n      \"import\": {\n        \"types\": \"./sl/creditCard.d.mts\",\n        \"default\": \"./sl/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/creditCard.d.cts\",\n        \"default\": \"./sl/creditCard.cjs\"\n      }\n    },\n    \"./sl/cuid2\": {\n      \"import\": {\n        \"types\": \"./sl/cuid2.d.mts\",\n        \"default\": \"./sl/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/cuid2.d.cts\",\n        \"default\": \"./sl/cuid2.cjs\"\n      }\n    },\n    \"./sl/decimal\": {\n      \"import\": {\n        \"types\": \"./sl/decimal.d.mts\",\n        \"default\": \"./sl/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/decimal.d.cts\",\n        \"default\": \"./sl/decimal.cjs\"\n      }\n    },\n    \"./sl/digits\": {\n      \"import\": {\n        \"types\": \"./sl/digits.d.mts\",\n        \"default\": \"./sl/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/digits.d.cts\",\n        \"default\": \"./sl/digits.cjs\"\n      }\n    },\n    \"./sl/domain\": {\n      \"import\": {\n        \"types\": \"./sl/domain.d.mts\",\n        \"default\": \"./sl/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/domain.d.cts\",\n        \"default\": \"./sl/domain.cjs\"\n      }\n    },\n    \"./sl/email\": {\n      \"import\": {\n        \"types\": \"./sl/email.d.mts\",\n        \"default\": \"./sl/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/email.d.cts\",\n        \"default\": \"./sl/email.cjs\"\n      }\n    },\n    \"./sl/emoji\": {\n      \"import\": {\n        \"types\": \"./sl/emoji.d.mts\",\n        \"default\": \"./sl/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/emoji.d.cts\",\n        \"default\": \"./sl/emoji.cjs\"\n      }\n    },\n    \"./sl/empty\": {\n      \"import\": {\n        \"types\": \"./sl/empty.d.mts\",\n        \"default\": \"./sl/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/empty.d.cts\",\n        \"default\": \"./sl/empty.cjs\"\n      }\n    },\n    \"./sl/endsWith\": {\n      \"import\": {\n        \"types\": \"./sl/endsWith.d.mts\",\n        \"default\": \"./sl/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/endsWith.d.cts\",\n        \"default\": \"./sl/endsWith.cjs\"\n      }\n    },\n    \"./sl/entries\": {\n      \"import\": {\n        \"types\": \"./sl/entries.d.mts\",\n        \"default\": \"./sl/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/entries.d.cts\",\n        \"default\": \"./sl/entries.cjs\"\n      }\n    },\n    \"./sl/everyItem\": {\n      \"import\": {\n        \"types\": \"./sl/everyItem.d.mts\",\n        \"default\": \"./sl/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/everyItem.d.cts\",\n        \"default\": \"./sl/everyItem.cjs\"\n      }\n    },\n    \"./sl/excludes\": {\n      \"import\": {\n        \"types\": \"./sl/excludes.d.mts\",\n        \"default\": \"./sl/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/excludes.d.cts\",\n        \"default\": \"./sl/excludes.cjs\"\n      }\n    },\n    \"./sl/finite\": {\n      \"import\": {\n        \"types\": \"./sl/finite.d.mts\",\n        \"default\": \"./sl/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/finite.d.cts\",\n        \"default\": \"./sl/finite.cjs\"\n      }\n    },\n    \"./sl/graphemes\": {\n      \"import\": {\n        \"types\": \"./sl/graphemes.d.mts\",\n        \"default\": \"./sl/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/graphemes.d.cts\",\n        \"default\": \"./sl/graphemes.cjs\"\n      }\n    },\n    \"./sl/gtValue\": {\n      \"import\": {\n        \"types\": \"./sl/gtValue.d.mts\",\n        \"default\": \"./sl/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/gtValue.d.cts\",\n        \"default\": \"./sl/gtValue.cjs\"\n      }\n    },\n    \"./sl/guard\": {\n      \"import\": {\n        \"types\": \"./sl/guard.d.mts\",\n        \"default\": \"./sl/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/guard.d.cts\",\n        \"default\": \"./sl/guard.cjs\"\n      }\n    },\n    \"./sl/hash\": {\n      \"import\": {\n        \"types\": \"./sl/hash.d.mts\",\n        \"default\": \"./sl/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/hash.d.cts\",\n        \"default\": \"./sl/hash.cjs\"\n      }\n    },\n    \"./sl/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./sl/hexadecimal.d.mts\",\n        \"default\": \"./sl/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/hexadecimal.d.cts\",\n        \"default\": \"./sl/hexadecimal.cjs\"\n      }\n    },\n    \"./sl/hexColor\": {\n      \"import\": {\n        \"types\": \"./sl/hexColor.d.mts\",\n        \"default\": \"./sl/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/hexColor.d.cts\",\n        \"default\": \"./sl/hexColor.cjs\"\n      }\n    },\n    \"./sl/imei\": {\n      \"import\": {\n        \"types\": \"./sl/imei.d.mts\",\n        \"default\": \"./sl/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/imei.d.cts\",\n        \"default\": \"./sl/imei.cjs\"\n      }\n    },\n    \"./sl/includes\": {\n      \"import\": {\n        \"types\": \"./sl/includes.d.mts\",\n        \"default\": \"./sl/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/includes.d.cts\",\n        \"default\": \"./sl/includes.cjs\"\n      }\n    },\n    \"./sl/integer\": {\n      \"import\": {\n        \"types\": \"./sl/integer.d.mts\",\n        \"default\": \"./sl/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/integer.d.cts\",\n        \"default\": \"./sl/integer.cjs\"\n      }\n    },\n    \"./sl/ip\": {\n      \"import\": {\n        \"types\": \"./sl/ip.d.mts\",\n        \"default\": \"./sl/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/ip.d.cts\",\n        \"default\": \"./sl/ip.cjs\"\n      }\n    },\n    \"./sl/ipv4\": {\n      \"import\": {\n        \"types\": \"./sl/ipv4.d.mts\",\n        \"default\": \"./sl/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/ipv4.d.cts\",\n        \"default\": \"./sl/ipv4.cjs\"\n      }\n    },\n    \"./sl/ipv6\": {\n      \"import\": {\n        \"types\": \"./sl/ipv6.d.mts\",\n        \"default\": \"./sl/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/ipv6.d.cts\",\n        \"default\": \"./sl/ipv6.cjs\"\n      }\n    },\n    \"./sl/isbn\": {\n      \"import\": {\n        \"types\": \"./sl/isbn.d.mts\",\n        \"default\": \"./sl/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/isbn.d.cts\",\n        \"default\": \"./sl/isbn.cjs\"\n      }\n    },\n    \"./sl/isoDate\": {\n      \"import\": {\n        \"types\": \"./sl/isoDate.d.mts\",\n        \"default\": \"./sl/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/isoDate.d.cts\",\n        \"default\": \"./sl/isoDate.cjs\"\n      }\n    },\n    \"./sl/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./sl/isoDateTime.d.mts\",\n        \"default\": \"./sl/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/isoDateTime.d.cts\",\n        \"default\": \"./sl/isoDateTime.cjs\"\n      }\n    },\n    \"./sl/isoTime\": {\n      \"import\": {\n        \"types\": \"./sl/isoTime.d.mts\",\n        \"default\": \"./sl/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/isoTime.d.cts\",\n        \"default\": \"./sl/isoTime.cjs\"\n      }\n    },\n    \"./sl/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./sl/isoTimeSecond.d.mts\",\n        \"default\": \"./sl/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/isoTimeSecond.d.cts\",\n        \"default\": \"./sl/isoTimeSecond.cjs\"\n      }\n    },\n    \"./sl/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./sl/isoTimestamp.d.mts\",\n        \"default\": \"./sl/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/isoTimestamp.d.cts\",\n        \"default\": \"./sl/isoTimestamp.cjs\"\n      }\n    },\n    \"./sl/isoWeek\": {\n      \"import\": {\n        \"types\": \"./sl/isoWeek.d.mts\",\n        \"default\": \"./sl/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/isoWeek.d.cts\",\n        \"default\": \"./sl/isoWeek.cjs\"\n      }\n    },\n    \"./sl/isrc\": {\n      \"import\": {\n        \"types\": \"./sl/isrc.d.mts\",\n        \"default\": \"./sl/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/isrc.d.cts\",\n        \"default\": \"./sl/isrc.cjs\"\n      }\n    },\n    \"./sl/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./sl/jwsCompact.d.mts\",\n        \"default\": \"./sl/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/jwsCompact.d.cts\",\n        \"default\": \"./sl/jwsCompact.cjs\"\n      }\n    },\n    \"./sl/length\": {\n      \"import\": {\n        \"types\": \"./sl/length.d.mts\",\n        \"default\": \"./sl/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/length.d.cts\",\n        \"default\": \"./sl/length.cjs\"\n      }\n    },\n    \"./sl/ltValue\": {\n      \"import\": {\n        \"types\": \"./sl/ltValue.d.mts\",\n        \"default\": \"./sl/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/ltValue.d.cts\",\n        \"default\": \"./sl/ltValue.cjs\"\n      }\n    },\n    \"./sl/mac\": {\n      \"import\": {\n        \"types\": \"./sl/mac.d.mts\",\n        \"default\": \"./sl/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/mac.d.cts\",\n        \"default\": \"./sl/mac.cjs\"\n      }\n    },\n    \"./sl/mac48\": {\n      \"import\": {\n        \"types\": \"./sl/mac48.d.mts\",\n        \"default\": \"./sl/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/mac48.d.cts\",\n        \"default\": \"./sl/mac48.cjs\"\n      }\n    },\n    \"./sl/mac64\": {\n      \"import\": {\n        \"types\": \"./sl/mac64.d.mts\",\n        \"default\": \"./sl/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/mac64.d.cts\",\n        \"default\": \"./sl/mac64.cjs\"\n      }\n    },\n    \"./sl/maxBytes\": {\n      \"import\": {\n        \"types\": \"./sl/maxBytes.d.mts\",\n        \"default\": \"./sl/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/maxBytes.d.cts\",\n        \"default\": \"./sl/maxBytes.cjs\"\n      }\n    },\n    \"./sl/maxEntries\": {\n      \"import\": {\n        \"types\": \"./sl/maxEntries.d.mts\",\n        \"default\": \"./sl/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/maxEntries.d.cts\",\n        \"default\": \"./sl/maxEntries.cjs\"\n      }\n    },\n    \"./sl/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./sl/maxGraphemes.d.mts\",\n        \"default\": \"./sl/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/maxGraphemes.d.cts\",\n        \"default\": \"./sl/maxGraphemes.cjs\"\n      }\n    },\n    \"./sl/maxLength\": {\n      \"import\": {\n        \"types\": \"./sl/maxLength.d.mts\",\n        \"default\": \"./sl/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/maxLength.d.cts\",\n        \"default\": \"./sl/maxLength.cjs\"\n      }\n    },\n    \"./sl/maxSize\": {\n      \"import\": {\n        \"types\": \"./sl/maxSize.d.mts\",\n        \"default\": \"./sl/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/maxSize.d.cts\",\n        \"default\": \"./sl/maxSize.cjs\"\n      }\n    },\n    \"./sl/maxValue\": {\n      \"import\": {\n        \"types\": \"./sl/maxValue.d.mts\",\n        \"default\": \"./sl/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/maxValue.d.cts\",\n        \"default\": \"./sl/maxValue.cjs\"\n      }\n    },\n    \"./sl/maxWords\": {\n      \"import\": {\n        \"types\": \"./sl/maxWords.d.mts\",\n        \"default\": \"./sl/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/maxWords.d.cts\",\n        \"default\": \"./sl/maxWords.cjs\"\n      }\n    },\n    \"./sl/mimeType\": {\n      \"import\": {\n        \"types\": \"./sl/mimeType.d.mts\",\n        \"default\": \"./sl/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/mimeType.d.cts\",\n        \"default\": \"./sl/mimeType.cjs\"\n      }\n    },\n    \"./sl/minBytes\": {\n      \"import\": {\n        \"types\": \"./sl/minBytes.d.mts\",\n        \"default\": \"./sl/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/minBytes.d.cts\",\n        \"default\": \"./sl/minBytes.cjs\"\n      }\n    },\n    \"./sl/minEntries\": {\n      \"import\": {\n        \"types\": \"./sl/minEntries.d.mts\",\n        \"default\": \"./sl/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/minEntries.d.cts\",\n        \"default\": \"./sl/minEntries.cjs\"\n      }\n    },\n    \"./sl/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./sl/minGraphemes.d.mts\",\n        \"default\": \"./sl/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/minGraphemes.d.cts\",\n        \"default\": \"./sl/minGraphemes.cjs\"\n      }\n    },\n    \"./sl/minLength\": {\n      \"import\": {\n        \"types\": \"./sl/minLength.d.mts\",\n        \"default\": \"./sl/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/minLength.d.cts\",\n        \"default\": \"./sl/minLength.cjs\"\n      }\n    },\n    \"./sl/minSize\": {\n      \"import\": {\n        \"types\": \"./sl/minSize.d.mts\",\n        \"default\": \"./sl/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/minSize.d.cts\",\n        \"default\": \"./sl/minSize.cjs\"\n      }\n    },\n    \"./sl/minValue\": {\n      \"import\": {\n        \"types\": \"./sl/minValue.d.mts\",\n        \"default\": \"./sl/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/minValue.d.cts\",\n        \"default\": \"./sl/minValue.cjs\"\n      }\n    },\n    \"./sl/minWords\": {\n      \"import\": {\n        \"types\": \"./sl/minWords.d.mts\",\n        \"default\": \"./sl/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/minWords.d.cts\",\n        \"default\": \"./sl/minWords.cjs\"\n      }\n    },\n    \"./sl/multipleOf\": {\n      \"import\": {\n        \"types\": \"./sl/multipleOf.d.mts\",\n        \"default\": \"./sl/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/multipleOf.d.cts\",\n        \"default\": \"./sl/multipleOf.cjs\"\n      }\n    },\n    \"./sl/nanoid\": {\n      \"import\": {\n        \"types\": \"./sl/nanoid.d.mts\",\n        \"default\": \"./sl/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/nanoid.d.cts\",\n        \"default\": \"./sl/nanoid.cjs\"\n      }\n    },\n    \"./sl/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./sl/nonEmpty.d.mts\",\n        \"default\": \"./sl/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/nonEmpty.d.cts\",\n        \"default\": \"./sl/nonEmpty.cjs\"\n      }\n    },\n    \"./sl/notBytes\": {\n      \"import\": {\n        \"types\": \"./sl/notBytes.d.mts\",\n        \"default\": \"./sl/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/notBytes.d.cts\",\n        \"default\": \"./sl/notBytes.cjs\"\n      }\n    },\n    \"./sl/notEntries\": {\n      \"import\": {\n        \"types\": \"./sl/notEntries.d.mts\",\n        \"default\": \"./sl/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/notEntries.d.cts\",\n        \"default\": \"./sl/notEntries.cjs\"\n      }\n    },\n    \"./sl/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./sl/notGraphemes.d.mts\",\n        \"default\": \"./sl/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/notGraphemes.d.cts\",\n        \"default\": \"./sl/notGraphemes.cjs\"\n      }\n    },\n    \"./sl/notLength\": {\n      \"import\": {\n        \"types\": \"./sl/notLength.d.mts\",\n        \"default\": \"./sl/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/notLength.d.cts\",\n        \"default\": \"./sl/notLength.cjs\"\n      }\n    },\n    \"./sl/notSize\": {\n      \"import\": {\n        \"types\": \"./sl/notSize.d.mts\",\n        \"default\": \"./sl/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/notSize.d.cts\",\n        \"default\": \"./sl/notSize.cjs\"\n      }\n    },\n    \"./sl/notValue\": {\n      \"import\": {\n        \"types\": \"./sl/notValue.d.mts\",\n        \"default\": \"./sl/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/notValue.d.cts\",\n        \"default\": \"./sl/notValue.cjs\"\n      }\n    },\n    \"./sl/notValues\": {\n      \"import\": {\n        \"types\": \"./sl/notValues.d.mts\",\n        \"default\": \"./sl/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/notValues.d.cts\",\n        \"default\": \"./sl/notValues.cjs\"\n      }\n    },\n    \"./sl/notWords\": {\n      \"import\": {\n        \"types\": \"./sl/notWords.d.mts\",\n        \"default\": \"./sl/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/notWords.d.cts\",\n        \"default\": \"./sl/notWords.cjs\"\n      }\n    },\n    \"./sl/octal\": {\n      \"import\": {\n        \"types\": \"./sl/octal.d.mts\",\n        \"default\": \"./sl/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/octal.d.cts\",\n        \"default\": \"./sl/octal.cjs\"\n      }\n    },\n    \"./sl/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./sl/parseBoolean.d.mts\",\n        \"default\": \"./sl/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/parseBoolean.d.cts\",\n        \"default\": \"./sl/parseBoolean.cjs\"\n      }\n    },\n    \"./sl/parseJson\": {\n      \"import\": {\n        \"types\": \"./sl/parseJson.d.mts\",\n        \"default\": \"./sl/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/parseJson.d.cts\",\n        \"default\": \"./sl/parseJson.cjs\"\n      }\n    },\n    \"./sl/partialCheck\": {\n      \"import\": {\n        \"types\": \"./sl/partialCheck.d.mts\",\n        \"default\": \"./sl/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/partialCheck.d.cts\",\n        \"default\": \"./sl/partialCheck.cjs\"\n      }\n    },\n    \"./sl/rawCheck\": {\n      \"import\": {\n        \"types\": \"./sl/rawCheck.d.mts\",\n        \"default\": \"./sl/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/rawCheck.d.cts\",\n        \"default\": \"./sl/rawCheck.cjs\"\n      }\n    },\n    \"./sl/rawTransform\": {\n      \"import\": {\n        \"types\": \"./sl/rawTransform.d.mts\",\n        \"default\": \"./sl/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/rawTransform.d.cts\",\n        \"default\": \"./sl/rawTransform.cjs\"\n      }\n    },\n    \"./sl/regex\": {\n      \"import\": {\n        \"types\": \"./sl/regex.d.mts\",\n        \"default\": \"./sl/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/regex.d.cts\",\n        \"default\": \"./sl/regex.cjs\"\n      }\n    },\n    \"./sl/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./sl/rfcEmail.d.mts\",\n        \"default\": \"./sl/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/rfcEmail.d.cts\",\n        \"default\": \"./sl/rfcEmail.cjs\"\n      }\n    },\n    \"./sl/safeInteger\": {\n      \"import\": {\n        \"types\": \"./sl/safeInteger.d.mts\",\n        \"default\": \"./sl/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/safeInteger.d.cts\",\n        \"default\": \"./sl/safeInteger.cjs\"\n      }\n    },\n    \"./sl/size\": {\n      \"import\": {\n        \"types\": \"./sl/size.d.mts\",\n        \"default\": \"./sl/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/size.d.cts\",\n        \"default\": \"./sl/size.cjs\"\n      }\n    },\n    \"./sl/slug\": {\n      \"import\": {\n        \"types\": \"./sl/slug.d.mts\",\n        \"default\": \"./sl/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/slug.d.cts\",\n        \"default\": \"./sl/slug.cjs\"\n      }\n    },\n    \"./sl/someItem\": {\n      \"import\": {\n        \"types\": \"./sl/someItem.d.mts\",\n        \"default\": \"./sl/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/someItem.d.cts\",\n        \"default\": \"./sl/someItem.cjs\"\n      }\n    },\n    \"./sl/startsWith\": {\n      \"import\": {\n        \"types\": \"./sl/startsWith.d.mts\",\n        \"default\": \"./sl/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/startsWith.d.cts\",\n        \"default\": \"./sl/startsWith.cjs\"\n      }\n    },\n    \"./sl/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./sl/stringifyJson.d.mts\",\n        \"default\": \"./sl/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/stringifyJson.d.cts\",\n        \"default\": \"./sl/stringifyJson.cjs\"\n      }\n    },\n    \"./sl/toBigint\": {\n      \"import\": {\n        \"types\": \"./sl/toBigint.d.mts\",\n        \"default\": \"./sl/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/toBigint.d.cts\",\n        \"default\": \"./sl/toBigint.cjs\"\n      }\n    },\n    \"./sl/toDate\": {\n      \"import\": {\n        \"types\": \"./sl/toDate.d.mts\",\n        \"default\": \"./sl/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/toDate.d.cts\",\n        \"default\": \"./sl/toDate.cjs\"\n      }\n    },\n    \"./sl/toNumber\": {\n      \"import\": {\n        \"types\": \"./sl/toNumber.d.mts\",\n        \"default\": \"./sl/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/toNumber.d.cts\",\n        \"default\": \"./sl/toNumber.cjs\"\n      }\n    },\n    \"./sl/toString\": {\n      \"import\": {\n        \"types\": \"./sl/toString.d.mts\",\n        \"default\": \"./sl/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/toString.d.cts\",\n        \"default\": \"./sl/toString.cjs\"\n      }\n    },\n    \"./sl/ulid\": {\n      \"import\": {\n        \"types\": \"./sl/ulid.d.mts\",\n        \"default\": \"./sl/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/ulid.d.cts\",\n        \"default\": \"./sl/ulid.cjs\"\n      }\n    },\n    \"./sl/url\": {\n      \"import\": {\n        \"types\": \"./sl/url.d.mts\",\n        \"default\": \"./sl/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/url.d.cts\",\n        \"default\": \"./sl/url.cjs\"\n      }\n    },\n    \"./sl/uuid\": {\n      \"import\": {\n        \"types\": \"./sl/uuid.d.mts\",\n        \"default\": \"./sl/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/uuid.d.cts\",\n        \"default\": \"./sl/uuid.cjs\"\n      }\n    },\n    \"./sl/value\": {\n      \"import\": {\n        \"types\": \"./sl/value.d.mts\",\n        \"default\": \"./sl/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/value.d.cts\",\n        \"default\": \"./sl/value.cjs\"\n      }\n    },\n    \"./sl/values\": {\n      \"import\": {\n        \"types\": \"./sl/values.d.mts\",\n        \"default\": \"./sl/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/values.d.cts\",\n        \"default\": \"./sl/values.cjs\"\n      }\n    },\n    \"./sl/words\": {\n      \"import\": {\n        \"types\": \"./sl/words.d.mts\",\n        \"default\": \"./sl/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sl/words.d.cts\",\n        \"default\": \"./sl/words.cjs\"\n      }\n    },\n    \"./sv\": {\n      \"import\": {\n        \"types\": \"./sv/index.d.mts\",\n        \"default\": \"./sv/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/index.d.cts\",\n        \"default\": \"./sv/index.cjs\"\n      }\n    },\n    \"./sv/schema\": {\n      \"import\": {\n        \"types\": \"./sv/schema.d.mts\",\n        \"default\": \"./sv/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/schema.d.cts\",\n        \"default\": \"./sv/schema.cjs\"\n      }\n    },\n    \"./sv/base64\": {\n      \"import\": {\n        \"types\": \"./sv/base64.d.mts\",\n        \"default\": \"./sv/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/base64.d.cts\",\n        \"default\": \"./sv/base64.cjs\"\n      }\n    },\n    \"./sv/bic\": {\n      \"import\": {\n        \"types\": \"./sv/bic.d.mts\",\n        \"default\": \"./sv/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/bic.d.cts\",\n        \"default\": \"./sv/bic.cjs\"\n      }\n    },\n    \"./sv/bytes\": {\n      \"import\": {\n        \"types\": \"./sv/bytes.d.mts\",\n        \"default\": \"./sv/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/bytes.d.cts\",\n        \"default\": \"./sv/bytes.cjs\"\n      }\n    },\n    \"./sv/check\": {\n      \"import\": {\n        \"types\": \"./sv/check.d.mts\",\n        \"default\": \"./sv/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/check.d.cts\",\n        \"default\": \"./sv/check.cjs\"\n      }\n    },\n    \"./sv/checkAsync\": {\n      \"import\": {\n        \"types\": \"./sv/checkAsync.d.mts\",\n        \"default\": \"./sv/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/checkAsync.d.cts\",\n        \"default\": \"./sv/checkAsync.cjs\"\n      }\n    },\n    \"./sv/checkItems\": {\n      \"import\": {\n        \"types\": \"./sv/checkItems.d.mts\",\n        \"default\": \"./sv/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/checkItems.d.cts\",\n        \"default\": \"./sv/checkItems.cjs\"\n      }\n    },\n    \"./sv/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./sv/checkItemsAsync.d.mts\",\n        \"default\": \"./sv/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/checkItemsAsync.d.cts\",\n        \"default\": \"./sv/checkItemsAsync.cjs\"\n      }\n    },\n    \"./sv/creditCard\": {\n      \"import\": {\n        \"types\": \"./sv/creditCard.d.mts\",\n        \"default\": \"./sv/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/creditCard.d.cts\",\n        \"default\": \"./sv/creditCard.cjs\"\n      }\n    },\n    \"./sv/cuid2\": {\n      \"import\": {\n        \"types\": \"./sv/cuid2.d.mts\",\n        \"default\": \"./sv/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/cuid2.d.cts\",\n        \"default\": \"./sv/cuid2.cjs\"\n      }\n    },\n    \"./sv/decimal\": {\n      \"import\": {\n        \"types\": \"./sv/decimal.d.mts\",\n        \"default\": \"./sv/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/decimal.d.cts\",\n        \"default\": \"./sv/decimal.cjs\"\n      }\n    },\n    \"./sv/digits\": {\n      \"import\": {\n        \"types\": \"./sv/digits.d.mts\",\n        \"default\": \"./sv/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/digits.d.cts\",\n        \"default\": \"./sv/digits.cjs\"\n      }\n    },\n    \"./sv/domain\": {\n      \"import\": {\n        \"types\": \"./sv/domain.d.mts\",\n        \"default\": \"./sv/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/domain.d.cts\",\n        \"default\": \"./sv/domain.cjs\"\n      }\n    },\n    \"./sv/email\": {\n      \"import\": {\n        \"types\": \"./sv/email.d.mts\",\n        \"default\": \"./sv/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/email.d.cts\",\n        \"default\": \"./sv/email.cjs\"\n      }\n    },\n    \"./sv/emoji\": {\n      \"import\": {\n        \"types\": \"./sv/emoji.d.mts\",\n        \"default\": \"./sv/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/emoji.d.cts\",\n        \"default\": \"./sv/emoji.cjs\"\n      }\n    },\n    \"./sv/empty\": {\n      \"import\": {\n        \"types\": \"./sv/empty.d.mts\",\n        \"default\": \"./sv/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/empty.d.cts\",\n        \"default\": \"./sv/empty.cjs\"\n      }\n    },\n    \"./sv/endsWith\": {\n      \"import\": {\n        \"types\": \"./sv/endsWith.d.mts\",\n        \"default\": \"./sv/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/endsWith.d.cts\",\n        \"default\": \"./sv/endsWith.cjs\"\n      }\n    },\n    \"./sv/entries\": {\n      \"import\": {\n        \"types\": \"./sv/entries.d.mts\",\n        \"default\": \"./sv/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/entries.d.cts\",\n        \"default\": \"./sv/entries.cjs\"\n      }\n    },\n    \"./sv/everyItem\": {\n      \"import\": {\n        \"types\": \"./sv/everyItem.d.mts\",\n        \"default\": \"./sv/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/everyItem.d.cts\",\n        \"default\": \"./sv/everyItem.cjs\"\n      }\n    },\n    \"./sv/excludes\": {\n      \"import\": {\n        \"types\": \"./sv/excludes.d.mts\",\n        \"default\": \"./sv/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/excludes.d.cts\",\n        \"default\": \"./sv/excludes.cjs\"\n      }\n    },\n    \"./sv/finite\": {\n      \"import\": {\n        \"types\": \"./sv/finite.d.mts\",\n        \"default\": \"./sv/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/finite.d.cts\",\n        \"default\": \"./sv/finite.cjs\"\n      }\n    },\n    \"./sv/graphemes\": {\n      \"import\": {\n        \"types\": \"./sv/graphemes.d.mts\",\n        \"default\": \"./sv/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/graphemes.d.cts\",\n        \"default\": \"./sv/graphemes.cjs\"\n      }\n    },\n    \"./sv/gtValue\": {\n      \"import\": {\n        \"types\": \"./sv/gtValue.d.mts\",\n        \"default\": \"./sv/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/gtValue.d.cts\",\n        \"default\": \"./sv/gtValue.cjs\"\n      }\n    },\n    \"./sv/guard\": {\n      \"import\": {\n        \"types\": \"./sv/guard.d.mts\",\n        \"default\": \"./sv/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/guard.d.cts\",\n        \"default\": \"./sv/guard.cjs\"\n      }\n    },\n    \"./sv/hash\": {\n      \"import\": {\n        \"types\": \"./sv/hash.d.mts\",\n        \"default\": \"./sv/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/hash.d.cts\",\n        \"default\": \"./sv/hash.cjs\"\n      }\n    },\n    \"./sv/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./sv/hexadecimal.d.mts\",\n        \"default\": \"./sv/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/hexadecimal.d.cts\",\n        \"default\": \"./sv/hexadecimal.cjs\"\n      }\n    },\n    \"./sv/hexColor\": {\n      \"import\": {\n        \"types\": \"./sv/hexColor.d.mts\",\n        \"default\": \"./sv/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/hexColor.d.cts\",\n        \"default\": \"./sv/hexColor.cjs\"\n      }\n    },\n    \"./sv/imei\": {\n      \"import\": {\n        \"types\": \"./sv/imei.d.mts\",\n        \"default\": \"./sv/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/imei.d.cts\",\n        \"default\": \"./sv/imei.cjs\"\n      }\n    },\n    \"./sv/includes\": {\n      \"import\": {\n        \"types\": \"./sv/includes.d.mts\",\n        \"default\": \"./sv/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/includes.d.cts\",\n        \"default\": \"./sv/includes.cjs\"\n      }\n    },\n    \"./sv/integer\": {\n      \"import\": {\n        \"types\": \"./sv/integer.d.mts\",\n        \"default\": \"./sv/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/integer.d.cts\",\n        \"default\": \"./sv/integer.cjs\"\n      }\n    },\n    \"./sv/ip\": {\n      \"import\": {\n        \"types\": \"./sv/ip.d.mts\",\n        \"default\": \"./sv/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/ip.d.cts\",\n        \"default\": \"./sv/ip.cjs\"\n      }\n    },\n    \"./sv/ipv4\": {\n      \"import\": {\n        \"types\": \"./sv/ipv4.d.mts\",\n        \"default\": \"./sv/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/ipv4.d.cts\",\n        \"default\": \"./sv/ipv4.cjs\"\n      }\n    },\n    \"./sv/ipv6\": {\n      \"import\": {\n        \"types\": \"./sv/ipv6.d.mts\",\n        \"default\": \"./sv/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/ipv6.d.cts\",\n        \"default\": \"./sv/ipv6.cjs\"\n      }\n    },\n    \"./sv/isbn\": {\n      \"import\": {\n        \"types\": \"./sv/isbn.d.mts\",\n        \"default\": \"./sv/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/isbn.d.cts\",\n        \"default\": \"./sv/isbn.cjs\"\n      }\n    },\n    \"./sv/isoDate\": {\n      \"import\": {\n        \"types\": \"./sv/isoDate.d.mts\",\n        \"default\": \"./sv/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/isoDate.d.cts\",\n        \"default\": \"./sv/isoDate.cjs\"\n      }\n    },\n    \"./sv/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./sv/isoDateTime.d.mts\",\n        \"default\": \"./sv/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/isoDateTime.d.cts\",\n        \"default\": \"./sv/isoDateTime.cjs\"\n      }\n    },\n    \"./sv/isoTime\": {\n      \"import\": {\n        \"types\": \"./sv/isoTime.d.mts\",\n        \"default\": \"./sv/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/isoTime.d.cts\",\n        \"default\": \"./sv/isoTime.cjs\"\n      }\n    },\n    \"./sv/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./sv/isoTimeSecond.d.mts\",\n        \"default\": \"./sv/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/isoTimeSecond.d.cts\",\n        \"default\": \"./sv/isoTimeSecond.cjs\"\n      }\n    },\n    \"./sv/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./sv/isoTimestamp.d.mts\",\n        \"default\": \"./sv/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/isoTimestamp.d.cts\",\n        \"default\": \"./sv/isoTimestamp.cjs\"\n      }\n    },\n    \"./sv/isoWeek\": {\n      \"import\": {\n        \"types\": \"./sv/isoWeek.d.mts\",\n        \"default\": \"./sv/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/isoWeek.d.cts\",\n        \"default\": \"./sv/isoWeek.cjs\"\n      }\n    },\n    \"./sv/isrc\": {\n      \"import\": {\n        \"types\": \"./sv/isrc.d.mts\",\n        \"default\": \"./sv/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/isrc.d.cts\",\n        \"default\": \"./sv/isrc.cjs\"\n      }\n    },\n    \"./sv/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./sv/jwsCompact.d.mts\",\n        \"default\": \"./sv/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/jwsCompact.d.cts\",\n        \"default\": \"./sv/jwsCompact.cjs\"\n      }\n    },\n    \"./sv/length\": {\n      \"import\": {\n        \"types\": \"./sv/length.d.mts\",\n        \"default\": \"./sv/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/length.d.cts\",\n        \"default\": \"./sv/length.cjs\"\n      }\n    },\n    \"./sv/ltValue\": {\n      \"import\": {\n        \"types\": \"./sv/ltValue.d.mts\",\n        \"default\": \"./sv/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/ltValue.d.cts\",\n        \"default\": \"./sv/ltValue.cjs\"\n      }\n    },\n    \"./sv/mac\": {\n      \"import\": {\n        \"types\": \"./sv/mac.d.mts\",\n        \"default\": \"./sv/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/mac.d.cts\",\n        \"default\": \"./sv/mac.cjs\"\n      }\n    },\n    \"./sv/mac48\": {\n      \"import\": {\n        \"types\": \"./sv/mac48.d.mts\",\n        \"default\": \"./sv/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/mac48.d.cts\",\n        \"default\": \"./sv/mac48.cjs\"\n      }\n    },\n    \"./sv/mac64\": {\n      \"import\": {\n        \"types\": \"./sv/mac64.d.mts\",\n        \"default\": \"./sv/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/mac64.d.cts\",\n        \"default\": \"./sv/mac64.cjs\"\n      }\n    },\n    \"./sv/maxBytes\": {\n      \"import\": {\n        \"types\": \"./sv/maxBytes.d.mts\",\n        \"default\": \"./sv/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/maxBytes.d.cts\",\n        \"default\": \"./sv/maxBytes.cjs\"\n      }\n    },\n    \"./sv/maxEntries\": {\n      \"import\": {\n        \"types\": \"./sv/maxEntries.d.mts\",\n        \"default\": \"./sv/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/maxEntries.d.cts\",\n        \"default\": \"./sv/maxEntries.cjs\"\n      }\n    },\n    \"./sv/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./sv/maxGraphemes.d.mts\",\n        \"default\": \"./sv/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/maxGraphemes.d.cts\",\n        \"default\": \"./sv/maxGraphemes.cjs\"\n      }\n    },\n    \"./sv/maxLength\": {\n      \"import\": {\n        \"types\": \"./sv/maxLength.d.mts\",\n        \"default\": \"./sv/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/maxLength.d.cts\",\n        \"default\": \"./sv/maxLength.cjs\"\n      }\n    },\n    \"./sv/maxSize\": {\n      \"import\": {\n        \"types\": \"./sv/maxSize.d.mts\",\n        \"default\": \"./sv/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/maxSize.d.cts\",\n        \"default\": \"./sv/maxSize.cjs\"\n      }\n    },\n    \"./sv/maxValue\": {\n      \"import\": {\n        \"types\": \"./sv/maxValue.d.mts\",\n        \"default\": \"./sv/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/maxValue.d.cts\",\n        \"default\": \"./sv/maxValue.cjs\"\n      }\n    },\n    \"./sv/maxWords\": {\n      \"import\": {\n        \"types\": \"./sv/maxWords.d.mts\",\n        \"default\": \"./sv/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/maxWords.d.cts\",\n        \"default\": \"./sv/maxWords.cjs\"\n      }\n    },\n    \"./sv/mimeType\": {\n      \"import\": {\n        \"types\": \"./sv/mimeType.d.mts\",\n        \"default\": \"./sv/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/mimeType.d.cts\",\n        \"default\": \"./sv/mimeType.cjs\"\n      }\n    },\n    \"./sv/minBytes\": {\n      \"import\": {\n        \"types\": \"./sv/minBytes.d.mts\",\n        \"default\": \"./sv/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/minBytes.d.cts\",\n        \"default\": \"./sv/minBytes.cjs\"\n      }\n    },\n    \"./sv/minEntries\": {\n      \"import\": {\n        \"types\": \"./sv/minEntries.d.mts\",\n        \"default\": \"./sv/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/minEntries.d.cts\",\n        \"default\": \"./sv/minEntries.cjs\"\n      }\n    },\n    \"./sv/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./sv/minGraphemes.d.mts\",\n        \"default\": \"./sv/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/minGraphemes.d.cts\",\n        \"default\": \"./sv/minGraphemes.cjs\"\n      }\n    },\n    \"./sv/minLength\": {\n      \"import\": {\n        \"types\": \"./sv/minLength.d.mts\",\n        \"default\": \"./sv/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/minLength.d.cts\",\n        \"default\": \"./sv/minLength.cjs\"\n      }\n    },\n    \"./sv/minSize\": {\n      \"import\": {\n        \"types\": \"./sv/minSize.d.mts\",\n        \"default\": \"./sv/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/minSize.d.cts\",\n        \"default\": \"./sv/minSize.cjs\"\n      }\n    },\n    \"./sv/minValue\": {\n      \"import\": {\n        \"types\": \"./sv/minValue.d.mts\",\n        \"default\": \"./sv/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/minValue.d.cts\",\n        \"default\": \"./sv/minValue.cjs\"\n      }\n    },\n    \"./sv/minWords\": {\n      \"import\": {\n        \"types\": \"./sv/minWords.d.mts\",\n        \"default\": \"./sv/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/minWords.d.cts\",\n        \"default\": \"./sv/minWords.cjs\"\n      }\n    },\n    \"./sv/multipleOf\": {\n      \"import\": {\n        \"types\": \"./sv/multipleOf.d.mts\",\n        \"default\": \"./sv/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/multipleOf.d.cts\",\n        \"default\": \"./sv/multipleOf.cjs\"\n      }\n    },\n    \"./sv/nanoid\": {\n      \"import\": {\n        \"types\": \"./sv/nanoid.d.mts\",\n        \"default\": \"./sv/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/nanoid.d.cts\",\n        \"default\": \"./sv/nanoid.cjs\"\n      }\n    },\n    \"./sv/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./sv/nonEmpty.d.mts\",\n        \"default\": \"./sv/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/nonEmpty.d.cts\",\n        \"default\": \"./sv/nonEmpty.cjs\"\n      }\n    },\n    \"./sv/notBytes\": {\n      \"import\": {\n        \"types\": \"./sv/notBytes.d.mts\",\n        \"default\": \"./sv/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/notBytes.d.cts\",\n        \"default\": \"./sv/notBytes.cjs\"\n      }\n    },\n    \"./sv/notEntries\": {\n      \"import\": {\n        \"types\": \"./sv/notEntries.d.mts\",\n        \"default\": \"./sv/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/notEntries.d.cts\",\n        \"default\": \"./sv/notEntries.cjs\"\n      }\n    },\n    \"./sv/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./sv/notGraphemes.d.mts\",\n        \"default\": \"./sv/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/notGraphemes.d.cts\",\n        \"default\": \"./sv/notGraphemes.cjs\"\n      }\n    },\n    \"./sv/notLength\": {\n      \"import\": {\n        \"types\": \"./sv/notLength.d.mts\",\n        \"default\": \"./sv/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/notLength.d.cts\",\n        \"default\": \"./sv/notLength.cjs\"\n      }\n    },\n    \"./sv/notSize\": {\n      \"import\": {\n        \"types\": \"./sv/notSize.d.mts\",\n        \"default\": \"./sv/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/notSize.d.cts\",\n        \"default\": \"./sv/notSize.cjs\"\n      }\n    },\n    \"./sv/notValue\": {\n      \"import\": {\n        \"types\": \"./sv/notValue.d.mts\",\n        \"default\": \"./sv/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/notValue.d.cts\",\n        \"default\": \"./sv/notValue.cjs\"\n      }\n    },\n    \"./sv/notValues\": {\n      \"import\": {\n        \"types\": \"./sv/notValues.d.mts\",\n        \"default\": \"./sv/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/notValues.d.cts\",\n        \"default\": \"./sv/notValues.cjs\"\n      }\n    },\n    \"./sv/notWords\": {\n      \"import\": {\n        \"types\": \"./sv/notWords.d.mts\",\n        \"default\": \"./sv/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/notWords.d.cts\",\n        \"default\": \"./sv/notWords.cjs\"\n      }\n    },\n    \"./sv/octal\": {\n      \"import\": {\n        \"types\": \"./sv/octal.d.mts\",\n        \"default\": \"./sv/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/octal.d.cts\",\n        \"default\": \"./sv/octal.cjs\"\n      }\n    },\n    \"./sv/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./sv/parseBoolean.d.mts\",\n        \"default\": \"./sv/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/parseBoolean.d.cts\",\n        \"default\": \"./sv/parseBoolean.cjs\"\n      }\n    },\n    \"./sv/parseJson\": {\n      \"import\": {\n        \"types\": \"./sv/parseJson.d.mts\",\n        \"default\": \"./sv/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/parseJson.d.cts\",\n        \"default\": \"./sv/parseJson.cjs\"\n      }\n    },\n    \"./sv/partialCheck\": {\n      \"import\": {\n        \"types\": \"./sv/partialCheck.d.mts\",\n        \"default\": \"./sv/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/partialCheck.d.cts\",\n        \"default\": \"./sv/partialCheck.cjs\"\n      }\n    },\n    \"./sv/rawCheck\": {\n      \"import\": {\n        \"types\": \"./sv/rawCheck.d.mts\",\n        \"default\": \"./sv/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/rawCheck.d.cts\",\n        \"default\": \"./sv/rawCheck.cjs\"\n      }\n    },\n    \"./sv/rawTransform\": {\n      \"import\": {\n        \"types\": \"./sv/rawTransform.d.mts\",\n        \"default\": \"./sv/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/rawTransform.d.cts\",\n        \"default\": \"./sv/rawTransform.cjs\"\n      }\n    },\n    \"./sv/regex\": {\n      \"import\": {\n        \"types\": \"./sv/regex.d.mts\",\n        \"default\": \"./sv/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/regex.d.cts\",\n        \"default\": \"./sv/regex.cjs\"\n      }\n    },\n    \"./sv/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./sv/rfcEmail.d.mts\",\n        \"default\": \"./sv/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/rfcEmail.d.cts\",\n        \"default\": \"./sv/rfcEmail.cjs\"\n      }\n    },\n    \"./sv/safeInteger\": {\n      \"import\": {\n        \"types\": \"./sv/safeInteger.d.mts\",\n        \"default\": \"./sv/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/safeInteger.d.cts\",\n        \"default\": \"./sv/safeInteger.cjs\"\n      }\n    },\n    \"./sv/size\": {\n      \"import\": {\n        \"types\": \"./sv/size.d.mts\",\n        \"default\": \"./sv/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/size.d.cts\",\n        \"default\": \"./sv/size.cjs\"\n      }\n    },\n    \"./sv/slug\": {\n      \"import\": {\n        \"types\": \"./sv/slug.d.mts\",\n        \"default\": \"./sv/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/slug.d.cts\",\n        \"default\": \"./sv/slug.cjs\"\n      }\n    },\n    \"./sv/someItem\": {\n      \"import\": {\n        \"types\": \"./sv/someItem.d.mts\",\n        \"default\": \"./sv/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/someItem.d.cts\",\n        \"default\": \"./sv/someItem.cjs\"\n      }\n    },\n    \"./sv/startsWith\": {\n      \"import\": {\n        \"types\": \"./sv/startsWith.d.mts\",\n        \"default\": \"./sv/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/startsWith.d.cts\",\n        \"default\": \"./sv/startsWith.cjs\"\n      }\n    },\n    \"./sv/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./sv/stringifyJson.d.mts\",\n        \"default\": \"./sv/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/stringifyJson.d.cts\",\n        \"default\": \"./sv/stringifyJson.cjs\"\n      }\n    },\n    \"./sv/toBigint\": {\n      \"import\": {\n        \"types\": \"./sv/toBigint.d.mts\",\n        \"default\": \"./sv/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/toBigint.d.cts\",\n        \"default\": \"./sv/toBigint.cjs\"\n      }\n    },\n    \"./sv/toDate\": {\n      \"import\": {\n        \"types\": \"./sv/toDate.d.mts\",\n        \"default\": \"./sv/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/toDate.d.cts\",\n        \"default\": \"./sv/toDate.cjs\"\n      }\n    },\n    \"./sv/toNumber\": {\n      \"import\": {\n        \"types\": \"./sv/toNumber.d.mts\",\n        \"default\": \"./sv/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/toNumber.d.cts\",\n        \"default\": \"./sv/toNumber.cjs\"\n      }\n    },\n    \"./sv/toString\": {\n      \"import\": {\n        \"types\": \"./sv/toString.d.mts\",\n        \"default\": \"./sv/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/toString.d.cts\",\n        \"default\": \"./sv/toString.cjs\"\n      }\n    },\n    \"./sv/ulid\": {\n      \"import\": {\n        \"types\": \"./sv/ulid.d.mts\",\n        \"default\": \"./sv/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/ulid.d.cts\",\n        \"default\": \"./sv/ulid.cjs\"\n      }\n    },\n    \"./sv/url\": {\n      \"import\": {\n        \"types\": \"./sv/url.d.mts\",\n        \"default\": \"./sv/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/url.d.cts\",\n        \"default\": \"./sv/url.cjs\"\n      }\n    },\n    \"./sv/uuid\": {\n      \"import\": {\n        \"types\": \"./sv/uuid.d.mts\",\n        \"default\": \"./sv/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/uuid.d.cts\",\n        \"default\": \"./sv/uuid.cjs\"\n      }\n    },\n    \"./sv/value\": {\n      \"import\": {\n        \"types\": \"./sv/value.d.mts\",\n        \"default\": \"./sv/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/value.d.cts\",\n        \"default\": \"./sv/value.cjs\"\n      }\n    },\n    \"./sv/values\": {\n      \"import\": {\n        \"types\": \"./sv/values.d.mts\",\n        \"default\": \"./sv/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/values.d.cts\",\n        \"default\": \"./sv/values.cjs\"\n      }\n    },\n    \"./sv/words\": {\n      \"import\": {\n        \"types\": \"./sv/words.d.mts\",\n        \"default\": \"./sv/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./sv/words.d.cts\",\n        \"default\": \"./sv/words.cjs\"\n      }\n    },\n    \"./tr\": {\n      \"import\": {\n        \"types\": \"./tr/index.d.mts\",\n        \"default\": \"./tr/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/index.d.cts\",\n        \"default\": \"./tr/index.cjs\"\n      }\n    },\n    \"./tr/schema\": {\n      \"import\": {\n        \"types\": \"./tr/schema.d.mts\",\n        \"default\": \"./tr/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/schema.d.cts\",\n        \"default\": \"./tr/schema.cjs\"\n      }\n    },\n    \"./tr/base64\": {\n      \"import\": {\n        \"types\": \"./tr/base64.d.mts\",\n        \"default\": \"./tr/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/base64.d.cts\",\n        \"default\": \"./tr/base64.cjs\"\n      }\n    },\n    \"./tr/bic\": {\n      \"import\": {\n        \"types\": \"./tr/bic.d.mts\",\n        \"default\": \"./tr/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/bic.d.cts\",\n        \"default\": \"./tr/bic.cjs\"\n      }\n    },\n    \"./tr/bytes\": {\n      \"import\": {\n        \"types\": \"./tr/bytes.d.mts\",\n        \"default\": \"./tr/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/bytes.d.cts\",\n        \"default\": \"./tr/bytes.cjs\"\n      }\n    },\n    \"./tr/check\": {\n      \"import\": {\n        \"types\": \"./tr/check.d.mts\",\n        \"default\": \"./tr/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/check.d.cts\",\n        \"default\": \"./tr/check.cjs\"\n      }\n    },\n    \"./tr/checkAsync\": {\n      \"import\": {\n        \"types\": \"./tr/checkAsync.d.mts\",\n        \"default\": \"./tr/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/checkAsync.d.cts\",\n        \"default\": \"./tr/checkAsync.cjs\"\n      }\n    },\n    \"./tr/checkItems\": {\n      \"import\": {\n        \"types\": \"./tr/checkItems.d.mts\",\n        \"default\": \"./tr/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/checkItems.d.cts\",\n        \"default\": \"./tr/checkItems.cjs\"\n      }\n    },\n    \"./tr/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./tr/checkItemsAsync.d.mts\",\n        \"default\": \"./tr/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/checkItemsAsync.d.cts\",\n        \"default\": \"./tr/checkItemsAsync.cjs\"\n      }\n    },\n    \"./tr/creditCard\": {\n      \"import\": {\n        \"types\": \"./tr/creditCard.d.mts\",\n        \"default\": \"./tr/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/creditCard.d.cts\",\n        \"default\": \"./tr/creditCard.cjs\"\n      }\n    },\n    \"./tr/cuid2\": {\n      \"import\": {\n        \"types\": \"./tr/cuid2.d.mts\",\n        \"default\": \"./tr/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/cuid2.d.cts\",\n        \"default\": \"./tr/cuid2.cjs\"\n      }\n    },\n    \"./tr/decimal\": {\n      \"import\": {\n        \"types\": \"./tr/decimal.d.mts\",\n        \"default\": \"./tr/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/decimal.d.cts\",\n        \"default\": \"./tr/decimal.cjs\"\n      }\n    },\n    \"./tr/digits\": {\n      \"import\": {\n        \"types\": \"./tr/digits.d.mts\",\n        \"default\": \"./tr/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/digits.d.cts\",\n        \"default\": \"./tr/digits.cjs\"\n      }\n    },\n    \"./tr/domain\": {\n      \"import\": {\n        \"types\": \"./tr/domain.d.mts\",\n        \"default\": \"./tr/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/domain.d.cts\",\n        \"default\": \"./tr/domain.cjs\"\n      }\n    },\n    \"./tr/email\": {\n      \"import\": {\n        \"types\": \"./tr/email.d.mts\",\n        \"default\": \"./tr/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/email.d.cts\",\n        \"default\": \"./tr/email.cjs\"\n      }\n    },\n    \"./tr/emoji\": {\n      \"import\": {\n        \"types\": \"./tr/emoji.d.mts\",\n        \"default\": \"./tr/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/emoji.d.cts\",\n        \"default\": \"./tr/emoji.cjs\"\n      }\n    },\n    \"./tr/empty\": {\n      \"import\": {\n        \"types\": \"./tr/empty.d.mts\",\n        \"default\": \"./tr/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/empty.d.cts\",\n        \"default\": \"./tr/empty.cjs\"\n      }\n    },\n    \"./tr/endsWith\": {\n      \"import\": {\n        \"types\": \"./tr/endsWith.d.mts\",\n        \"default\": \"./tr/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/endsWith.d.cts\",\n        \"default\": \"./tr/endsWith.cjs\"\n      }\n    },\n    \"./tr/entries\": {\n      \"import\": {\n        \"types\": \"./tr/entries.d.mts\",\n        \"default\": \"./tr/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/entries.d.cts\",\n        \"default\": \"./tr/entries.cjs\"\n      }\n    },\n    \"./tr/everyItem\": {\n      \"import\": {\n        \"types\": \"./tr/everyItem.d.mts\",\n        \"default\": \"./tr/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/everyItem.d.cts\",\n        \"default\": \"./tr/everyItem.cjs\"\n      }\n    },\n    \"./tr/excludes\": {\n      \"import\": {\n        \"types\": \"./tr/excludes.d.mts\",\n        \"default\": \"./tr/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/excludes.d.cts\",\n        \"default\": \"./tr/excludes.cjs\"\n      }\n    },\n    \"./tr/finite\": {\n      \"import\": {\n        \"types\": \"./tr/finite.d.mts\",\n        \"default\": \"./tr/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/finite.d.cts\",\n        \"default\": \"./tr/finite.cjs\"\n      }\n    },\n    \"./tr/graphemes\": {\n      \"import\": {\n        \"types\": \"./tr/graphemes.d.mts\",\n        \"default\": \"./tr/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/graphemes.d.cts\",\n        \"default\": \"./tr/graphemes.cjs\"\n      }\n    },\n    \"./tr/gtValue\": {\n      \"import\": {\n        \"types\": \"./tr/gtValue.d.mts\",\n        \"default\": \"./tr/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/gtValue.d.cts\",\n        \"default\": \"./tr/gtValue.cjs\"\n      }\n    },\n    \"./tr/guard\": {\n      \"import\": {\n        \"types\": \"./tr/guard.d.mts\",\n        \"default\": \"./tr/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/guard.d.cts\",\n        \"default\": \"./tr/guard.cjs\"\n      }\n    },\n    \"./tr/hash\": {\n      \"import\": {\n        \"types\": \"./tr/hash.d.mts\",\n        \"default\": \"./tr/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/hash.d.cts\",\n        \"default\": \"./tr/hash.cjs\"\n      }\n    },\n    \"./tr/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./tr/hexadecimal.d.mts\",\n        \"default\": \"./tr/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/hexadecimal.d.cts\",\n        \"default\": \"./tr/hexadecimal.cjs\"\n      }\n    },\n    \"./tr/hexColor\": {\n      \"import\": {\n        \"types\": \"./tr/hexColor.d.mts\",\n        \"default\": \"./tr/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/hexColor.d.cts\",\n        \"default\": \"./tr/hexColor.cjs\"\n      }\n    },\n    \"./tr/imei\": {\n      \"import\": {\n        \"types\": \"./tr/imei.d.mts\",\n        \"default\": \"./tr/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/imei.d.cts\",\n        \"default\": \"./tr/imei.cjs\"\n      }\n    },\n    \"./tr/includes\": {\n      \"import\": {\n        \"types\": \"./tr/includes.d.mts\",\n        \"default\": \"./tr/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/includes.d.cts\",\n        \"default\": \"./tr/includes.cjs\"\n      }\n    },\n    \"./tr/integer\": {\n      \"import\": {\n        \"types\": \"./tr/integer.d.mts\",\n        \"default\": \"./tr/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/integer.d.cts\",\n        \"default\": \"./tr/integer.cjs\"\n      }\n    },\n    \"./tr/ip\": {\n      \"import\": {\n        \"types\": \"./tr/ip.d.mts\",\n        \"default\": \"./tr/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/ip.d.cts\",\n        \"default\": \"./tr/ip.cjs\"\n      }\n    },\n    \"./tr/ipv4\": {\n      \"import\": {\n        \"types\": \"./tr/ipv4.d.mts\",\n        \"default\": \"./tr/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/ipv4.d.cts\",\n        \"default\": \"./tr/ipv4.cjs\"\n      }\n    },\n    \"./tr/ipv6\": {\n      \"import\": {\n        \"types\": \"./tr/ipv6.d.mts\",\n        \"default\": \"./tr/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/ipv6.d.cts\",\n        \"default\": \"./tr/ipv6.cjs\"\n      }\n    },\n    \"./tr/isbn\": {\n      \"import\": {\n        \"types\": \"./tr/isbn.d.mts\",\n        \"default\": \"./tr/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/isbn.d.cts\",\n        \"default\": \"./tr/isbn.cjs\"\n      }\n    },\n    \"./tr/isoDate\": {\n      \"import\": {\n        \"types\": \"./tr/isoDate.d.mts\",\n        \"default\": \"./tr/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/isoDate.d.cts\",\n        \"default\": \"./tr/isoDate.cjs\"\n      }\n    },\n    \"./tr/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./tr/isoDateTime.d.mts\",\n        \"default\": \"./tr/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/isoDateTime.d.cts\",\n        \"default\": \"./tr/isoDateTime.cjs\"\n      }\n    },\n    \"./tr/isoTime\": {\n      \"import\": {\n        \"types\": \"./tr/isoTime.d.mts\",\n        \"default\": \"./tr/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/isoTime.d.cts\",\n        \"default\": \"./tr/isoTime.cjs\"\n      }\n    },\n    \"./tr/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./tr/isoTimeSecond.d.mts\",\n        \"default\": \"./tr/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/isoTimeSecond.d.cts\",\n        \"default\": \"./tr/isoTimeSecond.cjs\"\n      }\n    },\n    \"./tr/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./tr/isoTimestamp.d.mts\",\n        \"default\": \"./tr/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/isoTimestamp.d.cts\",\n        \"default\": \"./tr/isoTimestamp.cjs\"\n      }\n    },\n    \"./tr/isoWeek\": {\n      \"import\": {\n        \"types\": \"./tr/isoWeek.d.mts\",\n        \"default\": \"./tr/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/isoWeek.d.cts\",\n        \"default\": \"./tr/isoWeek.cjs\"\n      }\n    },\n    \"./tr/isrc\": {\n      \"import\": {\n        \"types\": \"./tr/isrc.d.mts\",\n        \"default\": \"./tr/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/isrc.d.cts\",\n        \"default\": \"./tr/isrc.cjs\"\n      }\n    },\n    \"./tr/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./tr/jwsCompact.d.mts\",\n        \"default\": \"./tr/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/jwsCompact.d.cts\",\n        \"default\": \"./tr/jwsCompact.cjs\"\n      }\n    },\n    \"./tr/length\": {\n      \"import\": {\n        \"types\": \"./tr/length.d.mts\",\n        \"default\": \"./tr/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/length.d.cts\",\n        \"default\": \"./tr/length.cjs\"\n      }\n    },\n    \"./tr/ltValue\": {\n      \"import\": {\n        \"types\": \"./tr/ltValue.d.mts\",\n        \"default\": \"./tr/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/ltValue.d.cts\",\n        \"default\": \"./tr/ltValue.cjs\"\n      }\n    },\n    \"./tr/mac\": {\n      \"import\": {\n        \"types\": \"./tr/mac.d.mts\",\n        \"default\": \"./tr/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/mac.d.cts\",\n        \"default\": \"./tr/mac.cjs\"\n      }\n    },\n    \"./tr/mac48\": {\n      \"import\": {\n        \"types\": \"./tr/mac48.d.mts\",\n        \"default\": \"./tr/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/mac48.d.cts\",\n        \"default\": \"./tr/mac48.cjs\"\n      }\n    },\n    \"./tr/mac64\": {\n      \"import\": {\n        \"types\": \"./tr/mac64.d.mts\",\n        \"default\": \"./tr/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/mac64.d.cts\",\n        \"default\": \"./tr/mac64.cjs\"\n      }\n    },\n    \"./tr/maxBytes\": {\n      \"import\": {\n        \"types\": \"./tr/maxBytes.d.mts\",\n        \"default\": \"./tr/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/maxBytes.d.cts\",\n        \"default\": \"./tr/maxBytes.cjs\"\n      }\n    },\n    \"./tr/maxEntries\": {\n      \"import\": {\n        \"types\": \"./tr/maxEntries.d.mts\",\n        \"default\": \"./tr/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/maxEntries.d.cts\",\n        \"default\": \"./tr/maxEntries.cjs\"\n      }\n    },\n    \"./tr/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./tr/maxGraphemes.d.mts\",\n        \"default\": \"./tr/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/maxGraphemes.d.cts\",\n        \"default\": \"./tr/maxGraphemes.cjs\"\n      }\n    },\n    \"./tr/maxLength\": {\n      \"import\": {\n        \"types\": \"./tr/maxLength.d.mts\",\n        \"default\": \"./tr/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/maxLength.d.cts\",\n        \"default\": \"./tr/maxLength.cjs\"\n      }\n    },\n    \"./tr/maxSize\": {\n      \"import\": {\n        \"types\": \"./tr/maxSize.d.mts\",\n        \"default\": \"./tr/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/maxSize.d.cts\",\n        \"default\": \"./tr/maxSize.cjs\"\n      }\n    },\n    \"./tr/maxValue\": {\n      \"import\": {\n        \"types\": \"./tr/maxValue.d.mts\",\n        \"default\": \"./tr/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/maxValue.d.cts\",\n        \"default\": \"./tr/maxValue.cjs\"\n      }\n    },\n    \"./tr/maxWords\": {\n      \"import\": {\n        \"types\": \"./tr/maxWords.d.mts\",\n        \"default\": \"./tr/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/maxWords.d.cts\",\n        \"default\": \"./tr/maxWords.cjs\"\n      }\n    },\n    \"./tr/mimeType\": {\n      \"import\": {\n        \"types\": \"./tr/mimeType.d.mts\",\n        \"default\": \"./tr/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/mimeType.d.cts\",\n        \"default\": \"./tr/mimeType.cjs\"\n      }\n    },\n    \"./tr/minBytes\": {\n      \"import\": {\n        \"types\": \"./tr/minBytes.d.mts\",\n        \"default\": \"./tr/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/minBytes.d.cts\",\n        \"default\": \"./tr/minBytes.cjs\"\n      }\n    },\n    \"./tr/minEntries\": {\n      \"import\": {\n        \"types\": \"./tr/minEntries.d.mts\",\n        \"default\": \"./tr/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/minEntries.d.cts\",\n        \"default\": \"./tr/minEntries.cjs\"\n      }\n    },\n    \"./tr/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./tr/minGraphemes.d.mts\",\n        \"default\": \"./tr/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/minGraphemes.d.cts\",\n        \"default\": \"./tr/minGraphemes.cjs\"\n      }\n    },\n    \"./tr/minLength\": {\n      \"import\": {\n        \"types\": \"./tr/minLength.d.mts\",\n        \"default\": \"./tr/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/minLength.d.cts\",\n        \"default\": \"./tr/minLength.cjs\"\n      }\n    },\n    \"./tr/minSize\": {\n      \"import\": {\n        \"types\": \"./tr/minSize.d.mts\",\n        \"default\": \"./tr/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/minSize.d.cts\",\n        \"default\": \"./tr/minSize.cjs\"\n      }\n    },\n    \"./tr/minValue\": {\n      \"import\": {\n        \"types\": \"./tr/minValue.d.mts\",\n        \"default\": \"./tr/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/minValue.d.cts\",\n        \"default\": \"./tr/minValue.cjs\"\n      }\n    },\n    \"./tr/minWords\": {\n      \"import\": {\n        \"types\": \"./tr/minWords.d.mts\",\n        \"default\": \"./tr/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/minWords.d.cts\",\n        \"default\": \"./tr/minWords.cjs\"\n      }\n    },\n    \"./tr/multipleOf\": {\n      \"import\": {\n        \"types\": \"./tr/multipleOf.d.mts\",\n        \"default\": \"./tr/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/multipleOf.d.cts\",\n        \"default\": \"./tr/multipleOf.cjs\"\n      }\n    },\n    \"./tr/nanoid\": {\n      \"import\": {\n        \"types\": \"./tr/nanoid.d.mts\",\n        \"default\": \"./tr/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/nanoid.d.cts\",\n        \"default\": \"./tr/nanoid.cjs\"\n      }\n    },\n    \"./tr/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./tr/nonEmpty.d.mts\",\n        \"default\": \"./tr/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/nonEmpty.d.cts\",\n        \"default\": \"./tr/nonEmpty.cjs\"\n      }\n    },\n    \"./tr/notBytes\": {\n      \"import\": {\n        \"types\": \"./tr/notBytes.d.mts\",\n        \"default\": \"./tr/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/notBytes.d.cts\",\n        \"default\": \"./tr/notBytes.cjs\"\n      }\n    },\n    \"./tr/notEntries\": {\n      \"import\": {\n        \"types\": \"./tr/notEntries.d.mts\",\n        \"default\": \"./tr/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/notEntries.d.cts\",\n        \"default\": \"./tr/notEntries.cjs\"\n      }\n    },\n    \"./tr/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./tr/notGraphemes.d.mts\",\n        \"default\": \"./tr/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/notGraphemes.d.cts\",\n        \"default\": \"./tr/notGraphemes.cjs\"\n      }\n    },\n    \"./tr/notLength\": {\n      \"import\": {\n        \"types\": \"./tr/notLength.d.mts\",\n        \"default\": \"./tr/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/notLength.d.cts\",\n        \"default\": \"./tr/notLength.cjs\"\n      }\n    },\n    \"./tr/notSize\": {\n      \"import\": {\n        \"types\": \"./tr/notSize.d.mts\",\n        \"default\": \"./tr/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/notSize.d.cts\",\n        \"default\": \"./tr/notSize.cjs\"\n      }\n    },\n    \"./tr/notValue\": {\n      \"import\": {\n        \"types\": \"./tr/notValue.d.mts\",\n        \"default\": \"./tr/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/notValue.d.cts\",\n        \"default\": \"./tr/notValue.cjs\"\n      }\n    },\n    \"./tr/notValues\": {\n      \"import\": {\n        \"types\": \"./tr/notValues.d.mts\",\n        \"default\": \"./tr/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/notValues.d.cts\",\n        \"default\": \"./tr/notValues.cjs\"\n      }\n    },\n    \"./tr/notWords\": {\n      \"import\": {\n        \"types\": \"./tr/notWords.d.mts\",\n        \"default\": \"./tr/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/notWords.d.cts\",\n        \"default\": \"./tr/notWords.cjs\"\n      }\n    },\n    \"./tr/octal\": {\n      \"import\": {\n        \"types\": \"./tr/octal.d.mts\",\n        \"default\": \"./tr/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/octal.d.cts\",\n        \"default\": \"./tr/octal.cjs\"\n      }\n    },\n    \"./tr/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./tr/parseBoolean.d.mts\",\n        \"default\": \"./tr/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/parseBoolean.d.cts\",\n        \"default\": \"./tr/parseBoolean.cjs\"\n      }\n    },\n    \"./tr/parseJson\": {\n      \"import\": {\n        \"types\": \"./tr/parseJson.d.mts\",\n        \"default\": \"./tr/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/parseJson.d.cts\",\n        \"default\": \"./tr/parseJson.cjs\"\n      }\n    },\n    \"./tr/partialCheck\": {\n      \"import\": {\n        \"types\": \"./tr/partialCheck.d.mts\",\n        \"default\": \"./tr/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/partialCheck.d.cts\",\n        \"default\": \"./tr/partialCheck.cjs\"\n      }\n    },\n    \"./tr/rawCheck\": {\n      \"import\": {\n        \"types\": \"./tr/rawCheck.d.mts\",\n        \"default\": \"./tr/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/rawCheck.d.cts\",\n        \"default\": \"./tr/rawCheck.cjs\"\n      }\n    },\n    \"./tr/rawTransform\": {\n      \"import\": {\n        \"types\": \"./tr/rawTransform.d.mts\",\n        \"default\": \"./tr/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/rawTransform.d.cts\",\n        \"default\": \"./tr/rawTransform.cjs\"\n      }\n    },\n    \"./tr/regex\": {\n      \"import\": {\n        \"types\": \"./tr/regex.d.mts\",\n        \"default\": \"./tr/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/regex.d.cts\",\n        \"default\": \"./tr/regex.cjs\"\n      }\n    },\n    \"./tr/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./tr/rfcEmail.d.mts\",\n        \"default\": \"./tr/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/rfcEmail.d.cts\",\n        \"default\": \"./tr/rfcEmail.cjs\"\n      }\n    },\n    \"./tr/safeInteger\": {\n      \"import\": {\n        \"types\": \"./tr/safeInteger.d.mts\",\n        \"default\": \"./tr/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/safeInteger.d.cts\",\n        \"default\": \"./tr/safeInteger.cjs\"\n      }\n    },\n    \"./tr/size\": {\n      \"import\": {\n        \"types\": \"./tr/size.d.mts\",\n        \"default\": \"./tr/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/size.d.cts\",\n        \"default\": \"./tr/size.cjs\"\n      }\n    },\n    \"./tr/slug\": {\n      \"import\": {\n        \"types\": \"./tr/slug.d.mts\",\n        \"default\": \"./tr/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/slug.d.cts\",\n        \"default\": \"./tr/slug.cjs\"\n      }\n    },\n    \"./tr/someItem\": {\n      \"import\": {\n        \"types\": \"./tr/someItem.d.mts\",\n        \"default\": \"./tr/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/someItem.d.cts\",\n        \"default\": \"./tr/someItem.cjs\"\n      }\n    },\n    \"./tr/startsWith\": {\n      \"import\": {\n        \"types\": \"./tr/startsWith.d.mts\",\n        \"default\": \"./tr/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/startsWith.d.cts\",\n        \"default\": \"./tr/startsWith.cjs\"\n      }\n    },\n    \"./tr/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./tr/stringifyJson.d.mts\",\n        \"default\": \"./tr/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/stringifyJson.d.cts\",\n        \"default\": \"./tr/stringifyJson.cjs\"\n      }\n    },\n    \"./tr/toBigint\": {\n      \"import\": {\n        \"types\": \"./tr/toBigint.d.mts\",\n        \"default\": \"./tr/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/toBigint.d.cts\",\n        \"default\": \"./tr/toBigint.cjs\"\n      }\n    },\n    \"./tr/toDate\": {\n      \"import\": {\n        \"types\": \"./tr/toDate.d.mts\",\n        \"default\": \"./tr/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/toDate.d.cts\",\n        \"default\": \"./tr/toDate.cjs\"\n      }\n    },\n    \"./tr/toNumber\": {\n      \"import\": {\n        \"types\": \"./tr/toNumber.d.mts\",\n        \"default\": \"./tr/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/toNumber.d.cts\",\n        \"default\": \"./tr/toNumber.cjs\"\n      }\n    },\n    \"./tr/toString\": {\n      \"import\": {\n        \"types\": \"./tr/toString.d.mts\",\n        \"default\": \"./tr/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/toString.d.cts\",\n        \"default\": \"./tr/toString.cjs\"\n      }\n    },\n    \"./tr/ulid\": {\n      \"import\": {\n        \"types\": \"./tr/ulid.d.mts\",\n        \"default\": \"./tr/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/ulid.d.cts\",\n        \"default\": \"./tr/ulid.cjs\"\n      }\n    },\n    \"./tr/url\": {\n      \"import\": {\n        \"types\": \"./tr/url.d.mts\",\n        \"default\": \"./tr/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/url.d.cts\",\n        \"default\": \"./tr/url.cjs\"\n      }\n    },\n    \"./tr/uuid\": {\n      \"import\": {\n        \"types\": \"./tr/uuid.d.mts\",\n        \"default\": \"./tr/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/uuid.d.cts\",\n        \"default\": \"./tr/uuid.cjs\"\n      }\n    },\n    \"./tr/value\": {\n      \"import\": {\n        \"types\": \"./tr/value.d.mts\",\n        \"default\": \"./tr/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/value.d.cts\",\n        \"default\": \"./tr/value.cjs\"\n      }\n    },\n    \"./tr/values\": {\n      \"import\": {\n        \"types\": \"./tr/values.d.mts\",\n        \"default\": \"./tr/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/values.d.cts\",\n        \"default\": \"./tr/values.cjs\"\n      }\n    },\n    \"./tr/words\": {\n      \"import\": {\n        \"types\": \"./tr/words.d.mts\",\n        \"default\": \"./tr/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./tr/words.d.cts\",\n        \"default\": \"./tr/words.cjs\"\n      }\n    },\n    \"./uk\": {\n      \"import\": {\n        \"types\": \"./uk/index.d.mts\",\n        \"default\": \"./uk/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/index.d.cts\",\n        \"default\": \"./uk/index.cjs\"\n      }\n    },\n    \"./uk/schema\": {\n      \"import\": {\n        \"types\": \"./uk/schema.d.mts\",\n        \"default\": \"./uk/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/schema.d.cts\",\n        \"default\": \"./uk/schema.cjs\"\n      }\n    },\n    \"./uk/base64\": {\n      \"import\": {\n        \"types\": \"./uk/base64.d.mts\",\n        \"default\": \"./uk/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/base64.d.cts\",\n        \"default\": \"./uk/base64.cjs\"\n      }\n    },\n    \"./uk/bic\": {\n      \"import\": {\n        \"types\": \"./uk/bic.d.mts\",\n        \"default\": \"./uk/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/bic.d.cts\",\n        \"default\": \"./uk/bic.cjs\"\n      }\n    },\n    \"./uk/bytes\": {\n      \"import\": {\n        \"types\": \"./uk/bytes.d.mts\",\n        \"default\": \"./uk/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/bytes.d.cts\",\n        \"default\": \"./uk/bytes.cjs\"\n      }\n    },\n    \"./uk/check\": {\n      \"import\": {\n        \"types\": \"./uk/check.d.mts\",\n        \"default\": \"./uk/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/check.d.cts\",\n        \"default\": \"./uk/check.cjs\"\n      }\n    },\n    \"./uk/checkAsync\": {\n      \"import\": {\n        \"types\": \"./uk/checkAsync.d.mts\",\n        \"default\": \"./uk/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/checkAsync.d.cts\",\n        \"default\": \"./uk/checkAsync.cjs\"\n      }\n    },\n    \"./uk/checkItems\": {\n      \"import\": {\n        \"types\": \"./uk/checkItems.d.mts\",\n        \"default\": \"./uk/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/checkItems.d.cts\",\n        \"default\": \"./uk/checkItems.cjs\"\n      }\n    },\n    \"./uk/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./uk/checkItemsAsync.d.mts\",\n        \"default\": \"./uk/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/checkItemsAsync.d.cts\",\n        \"default\": \"./uk/checkItemsAsync.cjs\"\n      }\n    },\n    \"./uk/creditCard\": {\n      \"import\": {\n        \"types\": \"./uk/creditCard.d.mts\",\n        \"default\": \"./uk/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/creditCard.d.cts\",\n        \"default\": \"./uk/creditCard.cjs\"\n      }\n    },\n    \"./uk/cuid2\": {\n      \"import\": {\n        \"types\": \"./uk/cuid2.d.mts\",\n        \"default\": \"./uk/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/cuid2.d.cts\",\n        \"default\": \"./uk/cuid2.cjs\"\n      }\n    },\n    \"./uk/decimal\": {\n      \"import\": {\n        \"types\": \"./uk/decimal.d.mts\",\n        \"default\": \"./uk/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/decimal.d.cts\",\n        \"default\": \"./uk/decimal.cjs\"\n      }\n    },\n    \"./uk/digits\": {\n      \"import\": {\n        \"types\": \"./uk/digits.d.mts\",\n        \"default\": \"./uk/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/digits.d.cts\",\n        \"default\": \"./uk/digits.cjs\"\n      }\n    },\n    \"./uk/domain\": {\n      \"import\": {\n        \"types\": \"./uk/domain.d.mts\",\n        \"default\": \"./uk/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/domain.d.cts\",\n        \"default\": \"./uk/domain.cjs\"\n      }\n    },\n    \"./uk/email\": {\n      \"import\": {\n        \"types\": \"./uk/email.d.mts\",\n        \"default\": \"./uk/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/email.d.cts\",\n        \"default\": \"./uk/email.cjs\"\n      }\n    },\n    \"./uk/emoji\": {\n      \"import\": {\n        \"types\": \"./uk/emoji.d.mts\",\n        \"default\": \"./uk/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/emoji.d.cts\",\n        \"default\": \"./uk/emoji.cjs\"\n      }\n    },\n    \"./uk/empty\": {\n      \"import\": {\n        \"types\": \"./uk/empty.d.mts\",\n        \"default\": \"./uk/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/empty.d.cts\",\n        \"default\": \"./uk/empty.cjs\"\n      }\n    },\n    \"./uk/endsWith\": {\n      \"import\": {\n        \"types\": \"./uk/endsWith.d.mts\",\n        \"default\": \"./uk/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/endsWith.d.cts\",\n        \"default\": \"./uk/endsWith.cjs\"\n      }\n    },\n    \"./uk/entries\": {\n      \"import\": {\n        \"types\": \"./uk/entries.d.mts\",\n        \"default\": \"./uk/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/entries.d.cts\",\n        \"default\": \"./uk/entries.cjs\"\n      }\n    },\n    \"./uk/everyItem\": {\n      \"import\": {\n        \"types\": \"./uk/everyItem.d.mts\",\n        \"default\": \"./uk/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/everyItem.d.cts\",\n        \"default\": \"./uk/everyItem.cjs\"\n      }\n    },\n    \"./uk/excludes\": {\n      \"import\": {\n        \"types\": \"./uk/excludes.d.mts\",\n        \"default\": \"./uk/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/excludes.d.cts\",\n        \"default\": \"./uk/excludes.cjs\"\n      }\n    },\n    \"./uk/finite\": {\n      \"import\": {\n        \"types\": \"./uk/finite.d.mts\",\n        \"default\": \"./uk/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/finite.d.cts\",\n        \"default\": \"./uk/finite.cjs\"\n      }\n    },\n    \"./uk/graphemes\": {\n      \"import\": {\n        \"types\": \"./uk/graphemes.d.mts\",\n        \"default\": \"./uk/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/graphemes.d.cts\",\n        \"default\": \"./uk/graphemes.cjs\"\n      }\n    },\n    \"./uk/gtValue\": {\n      \"import\": {\n        \"types\": \"./uk/gtValue.d.mts\",\n        \"default\": \"./uk/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/gtValue.d.cts\",\n        \"default\": \"./uk/gtValue.cjs\"\n      }\n    },\n    \"./uk/guard\": {\n      \"import\": {\n        \"types\": \"./uk/guard.d.mts\",\n        \"default\": \"./uk/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/guard.d.cts\",\n        \"default\": \"./uk/guard.cjs\"\n      }\n    },\n    \"./uk/hash\": {\n      \"import\": {\n        \"types\": \"./uk/hash.d.mts\",\n        \"default\": \"./uk/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/hash.d.cts\",\n        \"default\": \"./uk/hash.cjs\"\n      }\n    },\n    \"./uk/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./uk/hexadecimal.d.mts\",\n        \"default\": \"./uk/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/hexadecimal.d.cts\",\n        \"default\": \"./uk/hexadecimal.cjs\"\n      }\n    },\n    \"./uk/hexColor\": {\n      \"import\": {\n        \"types\": \"./uk/hexColor.d.mts\",\n        \"default\": \"./uk/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/hexColor.d.cts\",\n        \"default\": \"./uk/hexColor.cjs\"\n      }\n    },\n    \"./uk/imei\": {\n      \"import\": {\n        \"types\": \"./uk/imei.d.mts\",\n        \"default\": \"./uk/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/imei.d.cts\",\n        \"default\": \"./uk/imei.cjs\"\n      }\n    },\n    \"./uk/includes\": {\n      \"import\": {\n        \"types\": \"./uk/includes.d.mts\",\n        \"default\": \"./uk/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/includes.d.cts\",\n        \"default\": \"./uk/includes.cjs\"\n      }\n    },\n    \"./uk/integer\": {\n      \"import\": {\n        \"types\": \"./uk/integer.d.mts\",\n        \"default\": \"./uk/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/integer.d.cts\",\n        \"default\": \"./uk/integer.cjs\"\n      }\n    },\n    \"./uk/ip\": {\n      \"import\": {\n        \"types\": \"./uk/ip.d.mts\",\n        \"default\": \"./uk/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/ip.d.cts\",\n        \"default\": \"./uk/ip.cjs\"\n      }\n    },\n    \"./uk/ipv4\": {\n      \"import\": {\n        \"types\": \"./uk/ipv4.d.mts\",\n        \"default\": \"./uk/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/ipv4.d.cts\",\n        \"default\": \"./uk/ipv4.cjs\"\n      }\n    },\n    \"./uk/ipv6\": {\n      \"import\": {\n        \"types\": \"./uk/ipv6.d.mts\",\n        \"default\": \"./uk/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/ipv6.d.cts\",\n        \"default\": \"./uk/ipv6.cjs\"\n      }\n    },\n    \"./uk/isbn\": {\n      \"import\": {\n        \"types\": \"./uk/isbn.d.mts\",\n        \"default\": \"./uk/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/isbn.d.cts\",\n        \"default\": \"./uk/isbn.cjs\"\n      }\n    },\n    \"./uk/isoDate\": {\n      \"import\": {\n        \"types\": \"./uk/isoDate.d.mts\",\n        \"default\": \"./uk/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/isoDate.d.cts\",\n        \"default\": \"./uk/isoDate.cjs\"\n      }\n    },\n    \"./uk/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./uk/isoDateTime.d.mts\",\n        \"default\": \"./uk/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/isoDateTime.d.cts\",\n        \"default\": \"./uk/isoDateTime.cjs\"\n      }\n    },\n    \"./uk/isoTime\": {\n      \"import\": {\n        \"types\": \"./uk/isoTime.d.mts\",\n        \"default\": \"./uk/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/isoTime.d.cts\",\n        \"default\": \"./uk/isoTime.cjs\"\n      }\n    },\n    \"./uk/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./uk/isoTimeSecond.d.mts\",\n        \"default\": \"./uk/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/isoTimeSecond.d.cts\",\n        \"default\": \"./uk/isoTimeSecond.cjs\"\n      }\n    },\n    \"./uk/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./uk/isoTimestamp.d.mts\",\n        \"default\": \"./uk/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/isoTimestamp.d.cts\",\n        \"default\": \"./uk/isoTimestamp.cjs\"\n      }\n    },\n    \"./uk/isoWeek\": {\n      \"import\": {\n        \"types\": \"./uk/isoWeek.d.mts\",\n        \"default\": \"./uk/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/isoWeek.d.cts\",\n        \"default\": \"./uk/isoWeek.cjs\"\n      }\n    },\n    \"./uk/isrc\": {\n      \"import\": {\n        \"types\": \"./uk/isrc.d.mts\",\n        \"default\": \"./uk/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/isrc.d.cts\",\n        \"default\": \"./uk/isrc.cjs\"\n      }\n    },\n    \"./uk/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./uk/jwsCompact.d.mts\",\n        \"default\": \"./uk/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/jwsCompact.d.cts\",\n        \"default\": \"./uk/jwsCompact.cjs\"\n      }\n    },\n    \"./uk/length\": {\n      \"import\": {\n        \"types\": \"./uk/length.d.mts\",\n        \"default\": \"./uk/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/length.d.cts\",\n        \"default\": \"./uk/length.cjs\"\n      }\n    },\n    \"./uk/ltValue\": {\n      \"import\": {\n        \"types\": \"./uk/ltValue.d.mts\",\n        \"default\": \"./uk/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/ltValue.d.cts\",\n        \"default\": \"./uk/ltValue.cjs\"\n      }\n    },\n    \"./uk/mac\": {\n      \"import\": {\n        \"types\": \"./uk/mac.d.mts\",\n        \"default\": \"./uk/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/mac.d.cts\",\n        \"default\": \"./uk/mac.cjs\"\n      }\n    },\n    \"./uk/mac48\": {\n      \"import\": {\n        \"types\": \"./uk/mac48.d.mts\",\n        \"default\": \"./uk/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/mac48.d.cts\",\n        \"default\": \"./uk/mac48.cjs\"\n      }\n    },\n    \"./uk/mac64\": {\n      \"import\": {\n        \"types\": \"./uk/mac64.d.mts\",\n        \"default\": \"./uk/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/mac64.d.cts\",\n        \"default\": \"./uk/mac64.cjs\"\n      }\n    },\n    \"./uk/maxBytes\": {\n      \"import\": {\n        \"types\": \"./uk/maxBytes.d.mts\",\n        \"default\": \"./uk/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/maxBytes.d.cts\",\n        \"default\": \"./uk/maxBytes.cjs\"\n      }\n    },\n    \"./uk/maxEntries\": {\n      \"import\": {\n        \"types\": \"./uk/maxEntries.d.mts\",\n        \"default\": \"./uk/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/maxEntries.d.cts\",\n        \"default\": \"./uk/maxEntries.cjs\"\n      }\n    },\n    \"./uk/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./uk/maxGraphemes.d.mts\",\n        \"default\": \"./uk/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/maxGraphemes.d.cts\",\n        \"default\": \"./uk/maxGraphemes.cjs\"\n      }\n    },\n    \"./uk/maxLength\": {\n      \"import\": {\n        \"types\": \"./uk/maxLength.d.mts\",\n        \"default\": \"./uk/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/maxLength.d.cts\",\n        \"default\": \"./uk/maxLength.cjs\"\n      }\n    },\n    \"./uk/maxSize\": {\n      \"import\": {\n        \"types\": \"./uk/maxSize.d.mts\",\n        \"default\": \"./uk/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/maxSize.d.cts\",\n        \"default\": \"./uk/maxSize.cjs\"\n      }\n    },\n    \"./uk/maxValue\": {\n      \"import\": {\n        \"types\": \"./uk/maxValue.d.mts\",\n        \"default\": \"./uk/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/maxValue.d.cts\",\n        \"default\": \"./uk/maxValue.cjs\"\n      }\n    },\n    \"./uk/maxWords\": {\n      \"import\": {\n        \"types\": \"./uk/maxWords.d.mts\",\n        \"default\": \"./uk/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/maxWords.d.cts\",\n        \"default\": \"./uk/maxWords.cjs\"\n      }\n    },\n    \"./uk/mimeType\": {\n      \"import\": {\n        \"types\": \"./uk/mimeType.d.mts\",\n        \"default\": \"./uk/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/mimeType.d.cts\",\n        \"default\": \"./uk/mimeType.cjs\"\n      }\n    },\n    \"./uk/minBytes\": {\n      \"import\": {\n        \"types\": \"./uk/minBytes.d.mts\",\n        \"default\": \"./uk/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/minBytes.d.cts\",\n        \"default\": \"./uk/minBytes.cjs\"\n      }\n    },\n    \"./uk/minEntries\": {\n      \"import\": {\n        \"types\": \"./uk/minEntries.d.mts\",\n        \"default\": \"./uk/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/minEntries.d.cts\",\n        \"default\": \"./uk/minEntries.cjs\"\n      }\n    },\n    \"./uk/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./uk/minGraphemes.d.mts\",\n        \"default\": \"./uk/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/minGraphemes.d.cts\",\n        \"default\": \"./uk/minGraphemes.cjs\"\n      }\n    },\n    \"./uk/minLength\": {\n      \"import\": {\n        \"types\": \"./uk/minLength.d.mts\",\n        \"default\": \"./uk/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/minLength.d.cts\",\n        \"default\": \"./uk/minLength.cjs\"\n      }\n    },\n    \"./uk/minSize\": {\n      \"import\": {\n        \"types\": \"./uk/minSize.d.mts\",\n        \"default\": \"./uk/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/minSize.d.cts\",\n        \"default\": \"./uk/minSize.cjs\"\n      }\n    },\n    \"./uk/minValue\": {\n      \"import\": {\n        \"types\": \"./uk/minValue.d.mts\",\n        \"default\": \"./uk/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/minValue.d.cts\",\n        \"default\": \"./uk/minValue.cjs\"\n      }\n    },\n    \"./uk/minWords\": {\n      \"import\": {\n        \"types\": \"./uk/minWords.d.mts\",\n        \"default\": \"./uk/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/minWords.d.cts\",\n        \"default\": \"./uk/minWords.cjs\"\n      }\n    },\n    \"./uk/multipleOf\": {\n      \"import\": {\n        \"types\": \"./uk/multipleOf.d.mts\",\n        \"default\": \"./uk/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/multipleOf.d.cts\",\n        \"default\": \"./uk/multipleOf.cjs\"\n      }\n    },\n    \"./uk/nanoid\": {\n      \"import\": {\n        \"types\": \"./uk/nanoid.d.mts\",\n        \"default\": \"./uk/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/nanoid.d.cts\",\n        \"default\": \"./uk/nanoid.cjs\"\n      }\n    },\n    \"./uk/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./uk/nonEmpty.d.mts\",\n        \"default\": \"./uk/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/nonEmpty.d.cts\",\n        \"default\": \"./uk/nonEmpty.cjs\"\n      }\n    },\n    \"./uk/notBytes\": {\n      \"import\": {\n        \"types\": \"./uk/notBytes.d.mts\",\n        \"default\": \"./uk/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/notBytes.d.cts\",\n        \"default\": \"./uk/notBytes.cjs\"\n      }\n    },\n    \"./uk/notEntries\": {\n      \"import\": {\n        \"types\": \"./uk/notEntries.d.mts\",\n        \"default\": \"./uk/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/notEntries.d.cts\",\n        \"default\": \"./uk/notEntries.cjs\"\n      }\n    },\n    \"./uk/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./uk/notGraphemes.d.mts\",\n        \"default\": \"./uk/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/notGraphemes.d.cts\",\n        \"default\": \"./uk/notGraphemes.cjs\"\n      }\n    },\n    \"./uk/notLength\": {\n      \"import\": {\n        \"types\": \"./uk/notLength.d.mts\",\n        \"default\": \"./uk/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/notLength.d.cts\",\n        \"default\": \"./uk/notLength.cjs\"\n      }\n    },\n    \"./uk/notSize\": {\n      \"import\": {\n        \"types\": \"./uk/notSize.d.mts\",\n        \"default\": \"./uk/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/notSize.d.cts\",\n        \"default\": \"./uk/notSize.cjs\"\n      }\n    },\n    \"./uk/notValue\": {\n      \"import\": {\n        \"types\": \"./uk/notValue.d.mts\",\n        \"default\": \"./uk/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/notValue.d.cts\",\n        \"default\": \"./uk/notValue.cjs\"\n      }\n    },\n    \"./uk/notValues\": {\n      \"import\": {\n        \"types\": \"./uk/notValues.d.mts\",\n        \"default\": \"./uk/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/notValues.d.cts\",\n        \"default\": \"./uk/notValues.cjs\"\n      }\n    },\n    \"./uk/notWords\": {\n      \"import\": {\n        \"types\": \"./uk/notWords.d.mts\",\n        \"default\": \"./uk/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/notWords.d.cts\",\n        \"default\": \"./uk/notWords.cjs\"\n      }\n    },\n    \"./uk/octal\": {\n      \"import\": {\n        \"types\": \"./uk/octal.d.mts\",\n        \"default\": \"./uk/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/octal.d.cts\",\n        \"default\": \"./uk/octal.cjs\"\n      }\n    },\n    \"./uk/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./uk/parseBoolean.d.mts\",\n        \"default\": \"./uk/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/parseBoolean.d.cts\",\n        \"default\": \"./uk/parseBoolean.cjs\"\n      }\n    },\n    \"./uk/parseJson\": {\n      \"import\": {\n        \"types\": \"./uk/parseJson.d.mts\",\n        \"default\": \"./uk/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/parseJson.d.cts\",\n        \"default\": \"./uk/parseJson.cjs\"\n      }\n    },\n    \"./uk/partialCheck\": {\n      \"import\": {\n        \"types\": \"./uk/partialCheck.d.mts\",\n        \"default\": \"./uk/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/partialCheck.d.cts\",\n        \"default\": \"./uk/partialCheck.cjs\"\n      }\n    },\n    \"./uk/rawCheck\": {\n      \"import\": {\n        \"types\": \"./uk/rawCheck.d.mts\",\n        \"default\": \"./uk/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/rawCheck.d.cts\",\n        \"default\": \"./uk/rawCheck.cjs\"\n      }\n    },\n    \"./uk/rawTransform\": {\n      \"import\": {\n        \"types\": \"./uk/rawTransform.d.mts\",\n        \"default\": \"./uk/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/rawTransform.d.cts\",\n        \"default\": \"./uk/rawTransform.cjs\"\n      }\n    },\n    \"./uk/regex\": {\n      \"import\": {\n        \"types\": \"./uk/regex.d.mts\",\n        \"default\": \"./uk/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/regex.d.cts\",\n        \"default\": \"./uk/regex.cjs\"\n      }\n    },\n    \"./uk/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./uk/rfcEmail.d.mts\",\n        \"default\": \"./uk/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/rfcEmail.d.cts\",\n        \"default\": \"./uk/rfcEmail.cjs\"\n      }\n    },\n    \"./uk/safeInteger\": {\n      \"import\": {\n        \"types\": \"./uk/safeInteger.d.mts\",\n        \"default\": \"./uk/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/safeInteger.d.cts\",\n        \"default\": \"./uk/safeInteger.cjs\"\n      }\n    },\n    \"./uk/size\": {\n      \"import\": {\n        \"types\": \"./uk/size.d.mts\",\n        \"default\": \"./uk/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/size.d.cts\",\n        \"default\": \"./uk/size.cjs\"\n      }\n    },\n    \"./uk/slug\": {\n      \"import\": {\n        \"types\": \"./uk/slug.d.mts\",\n        \"default\": \"./uk/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/slug.d.cts\",\n        \"default\": \"./uk/slug.cjs\"\n      }\n    },\n    \"./uk/someItem\": {\n      \"import\": {\n        \"types\": \"./uk/someItem.d.mts\",\n        \"default\": \"./uk/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/someItem.d.cts\",\n        \"default\": \"./uk/someItem.cjs\"\n      }\n    },\n    \"./uk/startsWith\": {\n      \"import\": {\n        \"types\": \"./uk/startsWith.d.mts\",\n        \"default\": \"./uk/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/startsWith.d.cts\",\n        \"default\": \"./uk/startsWith.cjs\"\n      }\n    },\n    \"./uk/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./uk/stringifyJson.d.mts\",\n        \"default\": \"./uk/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/stringifyJson.d.cts\",\n        \"default\": \"./uk/stringifyJson.cjs\"\n      }\n    },\n    \"./uk/toBigint\": {\n      \"import\": {\n        \"types\": \"./uk/toBigint.d.mts\",\n        \"default\": \"./uk/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/toBigint.d.cts\",\n        \"default\": \"./uk/toBigint.cjs\"\n      }\n    },\n    \"./uk/toDate\": {\n      \"import\": {\n        \"types\": \"./uk/toDate.d.mts\",\n        \"default\": \"./uk/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/toDate.d.cts\",\n        \"default\": \"./uk/toDate.cjs\"\n      }\n    },\n    \"./uk/toNumber\": {\n      \"import\": {\n        \"types\": \"./uk/toNumber.d.mts\",\n        \"default\": \"./uk/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/toNumber.d.cts\",\n        \"default\": \"./uk/toNumber.cjs\"\n      }\n    },\n    \"./uk/toString\": {\n      \"import\": {\n        \"types\": \"./uk/toString.d.mts\",\n        \"default\": \"./uk/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/toString.d.cts\",\n        \"default\": \"./uk/toString.cjs\"\n      }\n    },\n    \"./uk/ulid\": {\n      \"import\": {\n        \"types\": \"./uk/ulid.d.mts\",\n        \"default\": \"./uk/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/ulid.d.cts\",\n        \"default\": \"./uk/ulid.cjs\"\n      }\n    },\n    \"./uk/url\": {\n      \"import\": {\n        \"types\": \"./uk/url.d.mts\",\n        \"default\": \"./uk/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/url.d.cts\",\n        \"default\": \"./uk/url.cjs\"\n      }\n    },\n    \"./uk/uuid\": {\n      \"import\": {\n        \"types\": \"./uk/uuid.d.mts\",\n        \"default\": \"./uk/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/uuid.d.cts\",\n        \"default\": \"./uk/uuid.cjs\"\n      }\n    },\n    \"./uk/value\": {\n      \"import\": {\n        \"types\": \"./uk/value.d.mts\",\n        \"default\": \"./uk/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/value.d.cts\",\n        \"default\": \"./uk/value.cjs\"\n      }\n    },\n    \"./uk/values\": {\n      \"import\": {\n        \"types\": \"./uk/values.d.mts\",\n        \"default\": \"./uk/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/values.d.cts\",\n        \"default\": \"./uk/values.cjs\"\n      }\n    },\n    \"./uk/words\": {\n      \"import\": {\n        \"types\": \"./uk/words.d.mts\",\n        \"default\": \"./uk/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./uk/words.d.cts\",\n        \"default\": \"./uk/words.cjs\"\n      }\n    },\n    \"./vi\": {\n      \"import\": {\n        \"types\": \"./vi/index.d.mts\",\n        \"default\": \"./vi/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/index.d.cts\",\n        \"default\": \"./vi/index.cjs\"\n      }\n    },\n    \"./vi/schema\": {\n      \"import\": {\n        \"types\": \"./vi/schema.d.mts\",\n        \"default\": \"./vi/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/schema.d.cts\",\n        \"default\": \"./vi/schema.cjs\"\n      }\n    },\n    \"./vi/base64\": {\n      \"import\": {\n        \"types\": \"./vi/base64.d.mts\",\n        \"default\": \"./vi/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/base64.d.cts\",\n        \"default\": \"./vi/base64.cjs\"\n      }\n    },\n    \"./vi/bic\": {\n      \"import\": {\n        \"types\": \"./vi/bic.d.mts\",\n        \"default\": \"./vi/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/bic.d.cts\",\n        \"default\": \"./vi/bic.cjs\"\n      }\n    },\n    \"./vi/bytes\": {\n      \"import\": {\n        \"types\": \"./vi/bytes.d.mts\",\n        \"default\": \"./vi/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/bytes.d.cts\",\n        \"default\": \"./vi/bytes.cjs\"\n      }\n    },\n    \"./vi/check\": {\n      \"import\": {\n        \"types\": \"./vi/check.d.mts\",\n        \"default\": \"./vi/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/check.d.cts\",\n        \"default\": \"./vi/check.cjs\"\n      }\n    },\n    \"./vi/checkAsync\": {\n      \"import\": {\n        \"types\": \"./vi/checkAsync.d.mts\",\n        \"default\": \"./vi/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/checkAsync.d.cts\",\n        \"default\": \"./vi/checkAsync.cjs\"\n      }\n    },\n    \"./vi/checkItems\": {\n      \"import\": {\n        \"types\": \"./vi/checkItems.d.mts\",\n        \"default\": \"./vi/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/checkItems.d.cts\",\n        \"default\": \"./vi/checkItems.cjs\"\n      }\n    },\n    \"./vi/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./vi/checkItemsAsync.d.mts\",\n        \"default\": \"./vi/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/checkItemsAsync.d.cts\",\n        \"default\": \"./vi/checkItemsAsync.cjs\"\n      }\n    },\n    \"./vi/creditCard\": {\n      \"import\": {\n        \"types\": \"./vi/creditCard.d.mts\",\n        \"default\": \"./vi/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/creditCard.d.cts\",\n        \"default\": \"./vi/creditCard.cjs\"\n      }\n    },\n    \"./vi/cuid2\": {\n      \"import\": {\n        \"types\": \"./vi/cuid2.d.mts\",\n        \"default\": \"./vi/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/cuid2.d.cts\",\n        \"default\": \"./vi/cuid2.cjs\"\n      }\n    },\n    \"./vi/decimal\": {\n      \"import\": {\n        \"types\": \"./vi/decimal.d.mts\",\n        \"default\": \"./vi/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/decimal.d.cts\",\n        \"default\": \"./vi/decimal.cjs\"\n      }\n    },\n    \"./vi/digits\": {\n      \"import\": {\n        \"types\": \"./vi/digits.d.mts\",\n        \"default\": \"./vi/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/digits.d.cts\",\n        \"default\": \"./vi/digits.cjs\"\n      }\n    },\n    \"./vi/domain\": {\n      \"import\": {\n        \"types\": \"./vi/domain.d.mts\",\n        \"default\": \"./vi/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/domain.d.cts\",\n        \"default\": \"./vi/domain.cjs\"\n      }\n    },\n    \"./vi/email\": {\n      \"import\": {\n        \"types\": \"./vi/email.d.mts\",\n        \"default\": \"./vi/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/email.d.cts\",\n        \"default\": \"./vi/email.cjs\"\n      }\n    },\n    \"./vi/emoji\": {\n      \"import\": {\n        \"types\": \"./vi/emoji.d.mts\",\n        \"default\": \"./vi/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/emoji.d.cts\",\n        \"default\": \"./vi/emoji.cjs\"\n      }\n    },\n    \"./vi/empty\": {\n      \"import\": {\n        \"types\": \"./vi/empty.d.mts\",\n        \"default\": \"./vi/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/empty.d.cts\",\n        \"default\": \"./vi/empty.cjs\"\n      }\n    },\n    \"./vi/endsWith\": {\n      \"import\": {\n        \"types\": \"./vi/endsWith.d.mts\",\n        \"default\": \"./vi/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/endsWith.d.cts\",\n        \"default\": \"./vi/endsWith.cjs\"\n      }\n    },\n    \"./vi/entries\": {\n      \"import\": {\n        \"types\": \"./vi/entries.d.mts\",\n        \"default\": \"./vi/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/entries.d.cts\",\n        \"default\": \"./vi/entries.cjs\"\n      }\n    },\n    \"./vi/everyItem\": {\n      \"import\": {\n        \"types\": \"./vi/everyItem.d.mts\",\n        \"default\": \"./vi/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/everyItem.d.cts\",\n        \"default\": \"./vi/everyItem.cjs\"\n      }\n    },\n    \"./vi/excludes\": {\n      \"import\": {\n        \"types\": \"./vi/excludes.d.mts\",\n        \"default\": \"./vi/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/excludes.d.cts\",\n        \"default\": \"./vi/excludes.cjs\"\n      }\n    },\n    \"./vi/finite\": {\n      \"import\": {\n        \"types\": \"./vi/finite.d.mts\",\n        \"default\": \"./vi/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/finite.d.cts\",\n        \"default\": \"./vi/finite.cjs\"\n      }\n    },\n    \"./vi/graphemes\": {\n      \"import\": {\n        \"types\": \"./vi/graphemes.d.mts\",\n        \"default\": \"./vi/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/graphemes.d.cts\",\n        \"default\": \"./vi/graphemes.cjs\"\n      }\n    },\n    \"./vi/gtValue\": {\n      \"import\": {\n        \"types\": \"./vi/gtValue.d.mts\",\n        \"default\": \"./vi/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/gtValue.d.cts\",\n        \"default\": \"./vi/gtValue.cjs\"\n      }\n    },\n    \"./vi/guard\": {\n      \"import\": {\n        \"types\": \"./vi/guard.d.mts\",\n        \"default\": \"./vi/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/guard.d.cts\",\n        \"default\": \"./vi/guard.cjs\"\n      }\n    },\n    \"./vi/hash\": {\n      \"import\": {\n        \"types\": \"./vi/hash.d.mts\",\n        \"default\": \"./vi/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/hash.d.cts\",\n        \"default\": \"./vi/hash.cjs\"\n      }\n    },\n    \"./vi/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./vi/hexadecimal.d.mts\",\n        \"default\": \"./vi/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/hexadecimal.d.cts\",\n        \"default\": \"./vi/hexadecimal.cjs\"\n      }\n    },\n    \"./vi/hexColor\": {\n      \"import\": {\n        \"types\": \"./vi/hexColor.d.mts\",\n        \"default\": \"./vi/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/hexColor.d.cts\",\n        \"default\": \"./vi/hexColor.cjs\"\n      }\n    },\n    \"./vi/imei\": {\n      \"import\": {\n        \"types\": \"./vi/imei.d.mts\",\n        \"default\": \"./vi/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/imei.d.cts\",\n        \"default\": \"./vi/imei.cjs\"\n      }\n    },\n    \"./vi/includes\": {\n      \"import\": {\n        \"types\": \"./vi/includes.d.mts\",\n        \"default\": \"./vi/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/includes.d.cts\",\n        \"default\": \"./vi/includes.cjs\"\n      }\n    },\n    \"./vi/integer\": {\n      \"import\": {\n        \"types\": \"./vi/integer.d.mts\",\n        \"default\": \"./vi/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/integer.d.cts\",\n        \"default\": \"./vi/integer.cjs\"\n      }\n    },\n    \"./vi/ip\": {\n      \"import\": {\n        \"types\": \"./vi/ip.d.mts\",\n        \"default\": \"./vi/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/ip.d.cts\",\n        \"default\": \"./vi/ip.cjs\"\n      }\n    },\n    \"./vi/ipv4\": {\n      \"import\": {\n        \"types\": \"./vi/ipv4.d.mts\",\n        \"default\": \"./vi/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/ipv4.d.cts\",\n        \"default\": \"./vi/ipv4.cjs\"\n      }\n    },\n    \"./vi/ipv6\": {\n      \"import\": {\n        \"types\": \"./vi/ipv6.d.mts\",\n        \"default\": \"./vi/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/ipv6.d.cts\",\n        \"default\": \"./vi/ipv6.cjs\"\n      }\n    },\n    \"./vi/isbn\": {\n      \"import\": {\n        \"types\": \"./vi/isbn.d.mts\",\n        \"default\": \"./vi/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/isbn.d.cts\",\n        \"default\": \"./vi/isbn.cjs\"\n      }\n    },\n    \"./vi/isoDate\": {\n      \"import\": {\n        \"types\": \"./vi/isoDate.d.mts\",\n        \"default\": \"./vi/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/isoDate.d.cts\",\n        \"default\": \"./vi/isoDate.cjs\"\n      }\n    },\n    \"./vi/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./vi/isoDateTime.d.mts\",\n        \"default\": \"./vi/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/isoDateTime.d.cts\",\n        \"default\": \"./vi/isoDateTime.cjs\"\n      }\n    },\n    \"./vi/isoTime\": {\n      \"import\": {\n        \"types\": \"./vi/isoTime.d.mts\",\n        \"default\": \"./vi/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/isoTime.d.cts\",\n        \"default\": \"./vi/isoTime.cjs\"\n      }\n    },\n    \"./vi/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./vi/isoTimeSecond.d.mts\",\n        \"default\": \"./vi/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/isoTimeSecond.d.cts\",\n        \"default\": \"./vi/isoTimeSecond.cjs\"\n      }\n    },\n    \"./vi/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./vi/isoTimestamp.d.mts\",\n        \"default\": \"./vi/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/isoTimestamp.d.cts\",\n        \"default\": \"./vi/isoTimestamp.cjs\"\n      }\n    },\n    \"./vi/isoWeek\": {\n      \"import\": {\n        \"types\": \"./vi/isoWeek.d.mts\",\n        \"default\": \"./vi/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/isoWeek.d.cts\",\n        \"default\": \"./vi/isoWeek.cjs\"\n      }\n    },\n    \"./vi/isrc\": {\n      \"import\": {\n        \"types\": \"./vi/isrc.d.mts\",\n        \"default\": \"./vi/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/isrc.d.cts\",\n        \"default\": \"./vi/isrc.cjs\"\n      }\n    },\n    \"./vi/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./vi/jwsCompact.d.mts\",\n        \"default\": \"./vi/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/jwsCompact.d.cts\",\n        \"default\": \"./vi/jwsCompact.cjs\"\n      }\n    },\n    \"./vi/length\": {\n      \"import\": {\n        \"types\": \"./vi/length.d.mts\",\n        \"default\": \"./vi/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/length.d.cts\",\n        \"default\": \"./vi/length.cjs\"\n      }\n    },\n    \"./vi/ltValue\": {\n      \"import\": {\n        \"types\": \"./vi/ltValue.d.mts\",\n        \"default\": \"./vi/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/ltValue.d.cts\",\n        \"default\": \"./vi/ltValue.cjs\"\n      }\n    },\n    \"./vi/mac\": {\n      \"import\": {\n        \"types\": \"./vi/mac.d.mts\",\n        \"default\": \"./vi/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/mac.d.cts\",\n        \"default\": \"./vi/mac.cjs\"\n      }\n    },\n    \"./vi/mac48\": {\n      \"import\": {\n        \"types\": \"./vi/mac48.d.mts\",\n        \"default\": \"./vi/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/mac48.d.cts\",\n        \"default\": \"./vi/mac48.cjs\"\n      }\n    },\n    \"./vi/mac64\": {\n      \"import\": {\n        \"types\": \"./vi/mac64.d.mts\",\n        \"default\": \"./vi/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/mac64.d.cts\",\n        \"default\": \"./vi/mac64.cjs\"\n      }\n    },\n    \"./vi/maxBytes\": {\n      \"import\": {\n        \"types\": \"./vi/maxBytes.d.mts\",\n        \"default\": \"./vi/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/maxBytes.d.cts\",\n        \"default\": \"./vi/maxBytes.cjs\"\n      }\n    },\n    \"./vi/maxEntries\": {\n      \"import\": {\n        \"types\": \"./vi/maxEntries.d.mts\",\n        \"default\": \"./vi/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/maxEntries.d.cts\",\n        \"default\": \"./vi/maxEntries.cjs\"\n      }\n    },\n    \"./vi/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./vi/maxGraphemes.d.mts\",\n        \"default\": \"./vi/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/maxGraphemes.d.cts\",\n        \"default\": \"./vi/maxGraphemes.cjs\"\n      }\n    },\n    \"./vi/maxLength\": {\n      \"import\": {\n        \"types\": \"./vi/maxLength.d.mts\",\n        \"default\": \"./vi/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/maxLength.d.cts\",\n        \"default\": \"./vi/maxLength.cjs\"\n      }\n    },\n    \"./vi/maxSize\": {\n      \"import\": {\n        \"types\": \"./vi/maxSize.d.mts\",\n        \"default\": \"./vi/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/maxSize.d.cts\",\n        \"default\": \"./vi/maxSize.cjs\"\n      }\n    },\n    \"./vi/maxValue\": {\n      \"import\": {\n        \"types\": \"./vi/maxValue.d.mts\",\n        \"default\": \"./vi/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/maxValue.d.cts\",\n        \"default\": \"./vi/maxValue.cjs\"\n      }\n    },\n    \"./vi/maxWords\": {\n      \"import\": {\n        \"types\": \"./vi/maxWords.d.mts\",\n        \"default\": \"./vi/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/maxWords.d.cts\",\n        \"default\": \"./vi/maxWords.cjs\"\n      }\n    },\n    \"./vi/mimeType\": {\n      \"import\": {\n        \"types\": \"./vi/mimeType.d.mts\",\n        \"default\": \"./vi/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/mimeType.d.cts\",\n        \"default\": \"./vi/mimeType.cjs\"\n      }\n    },\n    \"./vi/minBytes\": {\n      \"import\": {\n        \"types\": \"./vi/minBytes.d.mts\",\n        \"default\": \"./vi/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/minBytes.d.cts\",\n        \"default\": \"./vi/minBytes.cjs\"\n      }\n    },\n    \"./vi/minEntries\": {\n      \"import\": {\n        \"types\": \"./vi/minEntries.d.mts\",\n        \"default\": \"./vi/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/minEntries.d.cts\",\n        \"default\": \"./vi/minEntries.cjs\"\n      }\n    },\n    \"./vi/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./vi/minGraphemes.d.mts\",\n        \"default\": \"./vi/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/minGraphemes.d.cts\",\n        \"default\": \"./vi/minGraphemes.cjs\"\n      }\n    },\n    \"./vi/minLength\": {\n      \"import\": {\n        \"types\": \"./vi/minLength.d.mts\",\n        \"default\": \"./vi/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/minLength.d.cts\",\n        \"default\": \"./vi/minLength.cjs\"\n      }\n    },\n    \"./vi/minSize\": {\n      \"import\": {\n        \"types\": \"./vi/minSize.d.mts\",\n        \"default\": \"./vi/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/minSize.d.cts\",\n        \"default\": \"./vi/minSize.cjs\"\n      }\n    },\n    \"./vi/minValue\": {\n      \"import\": {\n        \"types\": \"./vi/minValue.d.mts\",\n        \"default\": \"./vi/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/minValue.d.cts\",\n        \"default\": \"./vi/minValue.cjs\"\n      }\n    },\n    \"./vi/minWords\": {\n      \"import\": {\n        \"types\": \"./vi/minWords.d.mts\",\n        \"default\": \"./vi/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/minWords.d.cts\",\n        \"default\": \"./vi/minWords.cjs\"\n      }\n    },\n    \"./vi/multipleOf\": {\n      \"import\": {\n        \"types\": \"./vi/multipleOf.d.mts\",\n        \"default\": \"./vi/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/multipleOf.d.cts\",\n        \"default\": \"./vi/multipleOf.cjs\"\n      }\n    },\n    \"./vi/nanoid\": {\n      \"import\": {\n        \"types\": \"./vi/nanoid.d.mts\",\n        \"default\": \"./vi/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/nanoid.d.cts\",\n        \"default\": \"./vi/nanoid.cjs\"\n      }\n    },\n    \"./vi/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./vi/nonEmpty.d.mts\",\n        \"default\": \"./vi/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/nonEmpty.d.cts\",\n        \"default\": \"./vi/nonEmpty.cjs\"\n      }\n    },\n    \"./vi/notBytes\": {\n      \"import\": {\n        \"types\": \"./vi/notBytes.d.mts\",\n        \"default\": \"./vi/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/notBytes.d.cts\",\n        \"default\": \"./vi/notBytes.cjs\"\n      }\n    },\n    \"./vi/notEntries\": {\n      \"import\": {\n        \"types\": \"./vi/notEntries.d.mts\",\n        \"default\": \"./vi/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/notEntries.d.cts\",\n        \"default\": \"./vi/notEntries.cjs\"\n      }\n    },\n    \"./vi/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./vi/notGraphemes.d.mts\",\n        \"default\": \"./vi/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/notGraphemes.d.cts\",\n        \"default\": \"./vi/notGraphemes.cjs\"\n      }\n    },\n    \"./vi/notLength\": {\n      \"import\": {\n        \"types\": \"./vi/notLength.d.mts\",\n        \"default\": \"./vi/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/notLength.d.cts\",\n        \"default\": \"./vi/notLength.cjs\"\n      }\n    },\n    \"./vi/notSize\": {\n      \"import\": {\n        \"types\": \"./vi/notSize.d.mts\",\n        \"default\": \"./vi/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/notSize.d.cts\",\n        \"default\": \"./vi/notSize.cjs\"\n      }\n    },\n    \"./vi/notValue\": {\n      \"import\": {\n        \"types\": \"./vi/notValue.d.mts\",\n        \"default\": \"./vi/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/notValue.d.cts\",\n        \"default\": \"./vi/notValue.cjs\"\n      }\n    },\n    \"./vi/notValues\": {\n      \"import\": {\n        \"types\": \"./vi/notValues.d.mts\",\n        \"default\": \"./vi/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/notValues.d.cts\",\n        \"default\": \"./vi/notValues.cjs\"\n      }\n    },\n    \"./vi/notWords\": {\n      \"import\": {\n        \"types\": \"./vi/notWords.d.mts\",\n        \"default\": \"./vi/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/notWords.d.cts\",\n        \"default\": \"./vi/notWords.cjs\"\n      }\n    },\n    \"./vi/octal\": {\n      \"import\": {\n        \"types\": \"./vi/octal.d.mts\",\n        \"default\": \"./vi/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/octal.d.cts\",\n        \"default\": \"./vi/octal.cjs\"\n      }\n    },\n    \"./vi/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./vi/parseBoolean.d.mts\",\n        \"default\": \"./vi/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/parseBoolean.d.cts\",\n        \"default\": \"./vi/parseBoolean.cjs\"\n      }\n    },\n    \"./vi/parseJson\": {\n      \"import\": {\n        \"types\": \"./vi/parseJson.d.mts\",\n        \"default\": \"./vi/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/parseJson.d.cts\",\n        \"default\": \"./vi/parseJson.cjs\"\n      }\n    },\n    \"./vi/partialCheck\": {\n      \"import\": {\n        \"types\": \"./vi/partialCheck.d.mts\",\n        \"default\": \"./vi/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/partialCheck.d.cts\",\n        \"default\": \"./vi/partialCheck.cjs\"\n      }\n    },\n    \"./vi/rawCheck\": {\n      \"import\": {\n        \"types\": \"./vi/rawCheck.d.mts\",\n        \"default\": \"./vi/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/rawCheck.d.cts\",\n        \"default\": \"./vi/rawCheck.cjs\"\n      }\n    },\n    \"./vi/rawTransform\": {\n      \"import\": {\n        \"types\": \"./vi/rawTransform.d.mts\",\n        \"default\": \"./vi/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/rawTransform.d.cts\",\n        \"default\": \"./vi/rawTransform.cjs\"\n      }\n    },\n    \"./vi/regex\": {\n      \"import\": {\n        \"types\": \"./vi/regex.d.mts\",\n        \"default\": \"./vi/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/regex.d.cts\",\n        \"default\": \"./vi/regex.cjs\"\n      }\n    },\n    \"./vi/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./vi/rfcEmail.d.mts\",\n        \"default\": \"./vi/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/rfcEmail.d.cts\",\n        \"default\": \"./vi/rfcEmail.cjs\"\n      }\n    },\n    \"./vi/safeInteger\": {\n      \"import\": {\n        \"types\": \"./vi/safeInteger.d.mts\",\n        \"default\": \"./vi/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/safeInteger.d.cts\",\n        \"default\": \"./vi/safeInteger.cjs\"\n      }\n    },\n    \"./vi/size\": {\n      \"import\": {\n        \"types\": \"./vi/size.d.mts\",\n        \"default\": \"./vi/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/size.d.cts\",\n        \"default\": \"./vi/size.cjs\"\n      }\n    },\n    \"./vi/slug\": {\n      \"import\": {\n        \"types\": \"./vi/slug.d.mts\",\n        \"default\": \"./vi/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/slug.d.cts\",\n        \"default\": \"./vi/slug.cjs\"\n      }\n    },\n    \"./vi/someItem\": {\n      \"import\": {\n        \"types\": \"./vi/someItem.d.mts\",\n        \"default\": \"./vi/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/someItem.d.cts\",\n        \"default\": \"./vi/someItem.cjs\"\n      }\n    },\n    \"./vi/startsWith\": {\n      \"import\": {\n        \"types\": \"./vi/startsWith.d.mts\",\n        \"default\": \"./vi/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/startsWith.d.cts\",\n        \"default\": \"./vi/startsWith.cjs\"\n      }\n    },\n    \"./vi/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./vi/stringifyJson.d.mts\",\n        \"default\": \"./vi/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/stringifyJson.d.cts\",\n        \"default\": \"./vi/stringifyJson.cjs\"\n      }\n    },\n    \"./vi/toBigint\": {\n      \"import\": {\n        \"types\": \"./vi/toBigint.d.mts\",\n        \"default\": \"./vi/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/toBigint.d.cts\",\n        \"default\": \"./vi/toBigint.cjs\"\n      }\n    },\n    \"./vi/toDate\": {\n      \"import\": {\n        \"types\": \"./vi/toDate.d.mts\",\n        \"default\": \"./vi/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/toDate.d.cts\",\n        \"default\": \"./vi/toDate.cjs\"\n      }\n    },\n    \"./vi/toNumber\": {\n      \"import\": {\n        \"types\": \"./vi/toNumber.d.mts\",\n        \"default\": \"./vi/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/toNumber.d.cts\",\n        \"default\": \"./vi/toNumber.cjs\"\n      }\n    },\n    \"./vi/toString\": {\n      \"import\": {\n        \"types\": \"./vi/toString.d.mts\",\n        \"default\": \"./vi/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/toString.d.cts\",\n        \"default\": \"./vi/toString.cjs\"\n      }\n    },\n    \"./vi/ulid\": {\n      \"import\": {\n        \"types\": \"./vi/ulid.d.mts\",\n        \"default\": \"./vi/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/ulid.d.cts\",\n        \"default\": \"./vi/ulid.cjs\"\n      }\n    },\n    \"./vi/url\": {\n      \"import\": {\n        \"types\": \"./vi/url.d.mts\",\n        \"default\": \"./vi/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/url.d.cts\",\n        \"default\": \"./vi/url.cjs\"\n      }\n    },\n    \"./vi/uuid\": {\n      \"import\": {\n        \"types\": \"./vi/uuid.d.mts\",\n        \"default\": \"./vi/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/uuid.d.cts\",\n        \"default\": \"./vi/uuid.cjs\"\n      }\n    },\n    \"./vi/value\": {\n      \"import\": {\n        \"types\": \"./vi/value.d.mts\",\n        \"default\": \"./vi/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/value.d.cts\",\n        \"default\": \"./vi/value.cjs\"\n      }\n    },\n    \"./vi/values\": {\n      \"import\": {\n        \"types\": \"./vi/values.d.mts\",\n        \"default\": \"./vi/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/values.d.cts\",\n        \"default\": \"./vi/values.cjs\"\n      }\n    },\n    \"./vi/words\": {\n      \"import\": {\n        \"types\": \"./vi/words.d.mts\",\n        \"default\": \"./vi/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./vi/words.d.cts\",\n        \"default\": \"./vi/words.cjs\"\n      }\n    },\n    \"./zh-CN\": {\n      \"import\": {\n        \"types\": \"./zh-CN/index.d.mts\",\n        \"default\": \"./zh-CN/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/index.d.cts\",\n        \"default\": \"./zh-CN/index.cjs\"\n      }\n    },\n    \"./zh-CN/schema\": {\n      \"import\": {\n        \"types\": \"./zh-CN/schema.d.mts\",\n        \"default\": \"./zh-CN/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/schema.d.cts\",\n        \"default\": \"./zh-CN/schema.cjs\"\n      }\n    },\n    \"./zh-CN/base64\": {\n      \"import\": {\n        \"types\": \"./zh-CN/base64.d.mts\",\n        \"default\": \"./zh-CN/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/base64.d.cts\",\n        \"default\": \"./zh-CN/base64.cjs\"\n      }\n    },\n    \"./zh-CN/bic\": {\n      \"import\": {\n        \"types\": \"./zh-CN/bic.d.mts\",\n        \"default\": \"./zh-CN/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/bic.d.cts\",\n        \"default\": \"./zh-CN/bic.cjs\"\n      }\n    },\n    \"./zh-CN/bytes\": {\n      \"import\": {\n        \"types\": \"./zh-CN/bytes.d.mts\",\n        \"default\": \"./zh-CN/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/bytes.d.cts\",\n        \"default\": \"./zh-CN/bytes.cjs\"\n      }\n    },\n    \"./zh-CN/check\": {\n      \"import\": {\n        \"types\": \"./zh-CN/check.d.mts\",\n        \"default\": \"./zh-CN/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/check.d.cts\",\n        \"default\": \"./zh-CN/check.cjs\"\n      }\n    },\n    \"./zh-CN/checkAsync\": {\n      \"import\": {\n        \"types\": \"./zh-CN/checkAsync.d.mts\",\n        \"default\": \"./zh-CN/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/checkAsync.d.cts\",\n        \"default\": \"./zh-CN/checkAsync.cjs\"\n      }\n    },\n    \"./zh-CN/checkItems\": {\n      \"import\": {\n        \"types\": \"./zh-CN/checkItems.d.mts\",\n        \"default\": \"./zh-CN/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/checkItems.d.cts\",\n        \"default\": \"./zh-CN/checkItems.cjs\"\n      }\n    },\n    \"./zh-CN/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./zh-CN/checkItemsAsync.d.mts\",\n        \"default\": \"./zh-CN/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/checkItemsAsync.d.cts\",\n        \"default\": \"./zh-CN/checkItemsAsync.cjs\"\n      }\n    },\n    \"./zh-CN/creditCard\": {\n      \"import\": {\n        \"types\": \"./zh-CN/creditCard.d.mts\",\n        \"default\": \"./zh-CN/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/creditCard.d.cts\",\n        \"default\": \"./zh-CN/creditCard.cjs\"\n      }\n    },\n    \"./zh-CN/cuid2\": {\n      \"import\": {\n        \"types\": \"./zh-CN/cuid2.d.mts\",\n        \"default\": \"./zh-CN/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/cuid2.d.cts\",\n        \"default\": \"./zh-CN/cuid2.cjs\"\n      }\n    },\n    \"./zh-CN/decimal\": {\n      \"import\": {\n        \"types\": \"./zh-CN/decimal.d.mts\",\n        \"default\": \"./zh-CN/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/decimal.d.cts\",\n        \"default\": \"./zh-CN/decimal.cjs\"\n      }\n    },\n    \"./zh-CN/digits\": {\n      \"import\": {\n        \"types\": \"./zh-CN/digits.d.mts\",\n        \"default\": \"./zh-CN/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/digits.d.cts\",\n        \"default\": \"./zh-CN/digits.cjs\"\n      }\n    },\n    \"./zh-CN/domain\": {\n      \"import\": {\n        \"types\": \"./zh-CN/domain.d.mts\",\n        \"default\": \"./zh-CN/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/domain.d.cts\",\n        \"default\": \"./zh-CN/domain.cjs\"\n      }\n    },\n    \"./zh-CN/email\": {\n      \"import\": {\n        \"types\": \"./zh-CN/email.d.mts\",\n        \"default\": \"./zh-CN/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/email.d.cts\",\n        \"default\": \"./zh-CN/email.cjs\"\n      }\n    },\n    \"./zh-CN/emoji\": {\n      \"import\": {\n        \"types\": \"./zh-CN/emoji.d.mts\",\n        \"default\": \"./zh-CN/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/emoji.d.cts\",\n        \"default\": \"./zh-CN/emoji.cjs\"\n      }\n    },\n    \"./zh-CN/empty\": {\n      \"import\": {\n        \"types\": \"./zh-CN/empty.d.mts\",\n        \"default\": \"./zh-CN/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/empty.d.cts\",\n        \"default\": \"./zh-CN/empty.cjs\"\n      }\n    },\n    \"./zh-CN/endsWith\": {\n      \"import\": {\n        \"types\": \"./zh-CN/endsWith.d.mts\",\n        \"default\": \"./zh-CN/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/endsWith.d.cts\",\n        \"default\": \"./zh-CN/endsWith.cjs\"\n      }\n    },\n    \"./zh-CN/entries\": {\n      \"import\": {\n        \"types\": \"./zh-CN/entries.d.mts\",\n        \"default\": \"./zh-CN/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/entries.d.cts\",\n        \"default\": \"./zh-CN/entries.cjs\"\n      }\n    },\n    \"./zh-CN/everyItem\": {\n      \"import\": {\n        \"types\": \"./zh-CN/everyItem.d.mts\",\n        \"default\": \"./zh-CN/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/everyItem.d.cts\",\n        \"default\": \"./zh-CN/everyItem.cjs\"\n      }\n    },\n    \"./zh-CN/excludes\": {\n      \"import\": {\n        \"types\": \"./zh-CN/excludes.d.mts\",\n        \"default\": \"./zh-CN/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/excludes.d.cts\",\n        \"default\": \"./zh-CN/excludes.cjs\"\n      }\n    },\n    \"./zh-CN/finite\": {\n      \"import\": {\n        \"types\": \"./zh-CN/finite.d.mts\",\n        \"default\": \"./zh-CN/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/finite.d.cts\",\n        \"default\": \"./zh-CN/finite.cjs\"\n      }\n    },\n    \"./zh-CN/graphemes\": {\n      \"import\": {\n        \"types\": \"./zh-CN/graphemes.d.mts\",\n        \"default\": \"./zh-CN/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/graphemes.d.cts\",\n        \"default\": \"./zh-CN/graphemes.cjs\"\n      }\n    },\n    \"./zh-CN/gtValue\": {\n      \"import\": {\n        \"types\": \"./zh-CN/gtValue.d.mts\",\n        \"default\": \"./zh-CN/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/gtValue.d.cts\",\n        \"default\": \"./zh-CN/gtValue.cjs\"\n      }\n    },\n    \"./zh-CN/guard\": {\n      \"import\": {\n        \"types\": \"./zh-CN/guard.d.mts\",\n        \"default\": \"./zh-CN/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/guard.d.cts\",\n        \"default\": \"./zh-CN/guard.cjs\"\n      }\n    },\n    \"./zh-CN/hash\": {\n      \"import\": {\n        \"types\": \"./zh-CN/hash.d.mts\",\n        \"default\": \"./zh-CN/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/hash.d.cts\",\n        \"default\": \"./zh-CN/hash.cjs\"\n      }\n    },\n    \"./zh-CN/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./zh-CN/hexadecimal.d.mts\",\n        \"default\": \"./zh-CN/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/hexadecimal.d.cts\",\n        \"default\": \"./zh-CN/hexadecimal.cjs\"\n      }\n    },\n    \"./zh-CN/hexColor\": {\n      \"import\": {\n        \"types\": \"./zh-CN/hexColor.d.mts\",\n        \"default\": \"./zh-CN/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/hexColor.d.cts\",\n        \"default\": \"./zh-CN/hexColor.cjs\"\n      }\n    },\n    \"./zh-CN/imei\": {\n      \"import\": {\n        \"types\": \"./zh-CN/imei.d.mts\",\n        \"default\": \"./zh-CN/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/imei.d.cts\",\n        \"default\": \"./zh-CN/imei.cjs\"\n      }\n    },\n    \"./zh-CN/includes\": {\n      \"import\": {\n        \"types\": \"./zh-CN/includes.d.mts\",\n        \"default\": \"./zh-CN/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/includes.d.cts\",\n        \"default\": \"./zh-CN/includes.cjs\"\n      }\n    },\n    \"./zh-CN/integer\": {\n      \"import\": {\n        \"types\": \"./zh-CN/integer.d.mts\",\n        \"default\": \"./zh-CN/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/integer.d.cts\",\n        \"default\": \"./zh-CN/integer.cjs\"\n      }\n    },\n    \"./zh-CN/ip\": {\n      \"import\": {\n        \"types\": \"./zh-CN/ip.d.mts\",\n        \"default\": \"./zh-CN/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/ip.d.cts\",\n        \"default\": \"./zh-CN/ip.cjs\"\n      }\n    },\n    \"./zh-CN/ipv4\": {\n      \"import\": {\n        \"types\": \"./zh-CN/ipv4.d.mts\",\n        \"default\": \"./zh-CN/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/ipv4.d.cts\",\n        \"default\": \"./zh-CN/ipv4.cjs\"\n      }\n    },\n    \"./zh-CN/ipv6\": {\n      \"import\": {\n        \"types\": \"./zh-CN/ipv6.d.mts\",\n        \"default\": \"./zh-CN/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/ipv6.d.cts\",\n        \"default\": \"./zh-CN/ipv6.cjs\"\n      }\n    },\n    \"./zh-CN/isbn\": {\n      \"import\": {\n        \"types\": \"./zh-CN/isbn.d.mts\",\n        \"default\": \"./zh-CN/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/isbn.d.cts\",\n        \"default\": \"./zh-CN/isbn.cjs\"\n      }\n    },\n    \"./zh-CN/isoDate\": {\n      \"import\": {\n        \"types\": \"./zh-CN/isoDate.d.mts\",\n        \"default\": \"./zh-CN/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/isoDate.d.cts\",\n        \"default\": \"./zh-CN/isoDate.cjs\"\n      }\n    },\n    \"./zh-CN/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./zh-CN/isoDateTime.d.mts\",\n        \"default\": \"./zh-CN/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/isoDateTime.d.cts\",\n        \"default\": \"./zh-CN/isoDateTime.cjs\"\n      }\n    },\n    \"./zh-CN/isoTime\": {\n      \"import\": {\n        \"types\": \"./zh-CN/isoTime.d.mts\",\n        \"default\": \"./zh-CN/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/isoTime.d.cts\",\n        \"default\": \"./zh-CN/isoTime.cjs\"\n      }\n    },\n    \"./zh-CN/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./zh-CN/isoTimeSecond.d.mts\",\n        \"default\": \"./zh-CN/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/isoTimeSecond.d.cts\",\n        \"default\": \"./zh-CN/isoTimeSecond.cjs\"\n      }\n    },\n    \"./zh-CN/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./zh-CN/isoTimestamp.d.mts\",\n        \"default\": \"./zh-CN/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/isoTimestamp.d.cts\",\n        \"default\": \"./zh-CN/isoTimestamp.cjs\"\n      }\n    },\n    \"./zh-CN/isoWeek\": {\n      \"import\": {\n        \"types\": \"./zh-CN/isoWeek.d.mts\",\n        \"default\": \"./zh-CN/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/isoWeek.d.cts\",\n        \"default\": \"./zh-CN/isoWeek.cjs\"\n      }\n    },\n    \"./zh-CN/isrc\": {\n      \"import\": {\n        \"types\": \"./zh-CN/isrc.d.mts\",\n        \"default\": \"./zh-CN/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/isrc.d.cts\",\n        \"default\": \"./zh-CN/isrc.cjs\"\n      }\n    },\n    \"./zh-CN/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./zh-CN/jwsCompact.d.mts\",\n        \"default\": \"./zh-CN/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/jwsCompact.d.cts\",\n        \"default\": \"./zh-CN/jwsCompact.cjs\"\n      }\n    },\n    \"./zh-CN/length\": {\n      \"import\": {\n        \"types\": \"./zh-CN/length.d.mts\",\n        \"default\": \"./zh-CN/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/length.d.cts\",\n        \"default\": \"./zh-CN/length.cjs\"\n      }\n    },\n    \"./zh-CN/ltValue\": {\n      \"import\": {\n        \"types\": \"./zh-CN/ltValue.d.mts\",\n        \"default\": \"./zh-CN/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/ltValue.d.cts\",\n        \"default\": \"./zh-CN/ltValue.cjs\"\n      }\n    },\n    \"./zh-CN/mac\": {\n      \"import\": {\n        \"types\": \"./zh-CN/mac.d.mts\",\n        \"default\": \"./zh-CN/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/mac.d.cts\",\n        \"default\": \"./zh-CN/mac.cjs\"\n      }\n    },\n    \"./zh-CN/mac48\": {\n      \"import\": {\n        \"types\": \"./zh-CN/mac48.d.mts\",\n        \"default\": \"./zh-CN/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/mac48.d.cts\",\n        \"default\": \"./zh-CN/mac48.cjs\"\n      }\n    },\n    \"./zh-CN/mac64\": {\n      \"import\": {\n        \"types\": \"./zh-CN/mac64.d.mts\",\n        \"default\": \"./zh-CN/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/mac64.d.cts\",\n        \"default\": \"./zh-CN/mac64.cjs\"\n      }\n    },\n    \"./zh-CN/maxBytes\": {\n      \"import\": {\n        \"types\": \"./zh-CN/maxBytes.d.mts\",\n        \"default\": \"./zh-CN/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/maxBytes.d.cts\",\n        \"default\": \"./zh-CN/maxBytes.cjs\"\n      }\n    },\n    \"./zh-CN/maxEntries\": {\n      \"import\": {\n        \"types\": \"./zh-CN/maxEntries.d.mts\",\n        \"default\": \"./zh-CN/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/maxEntries.d.cts\",\n        \"default\": \"./zh-CN/maxEntries.cjs\"\n      }\n    },\n    \"./zh-CN/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./zh-CN/maxGraphemes.d.mts\",\n        \"default\": \"./zh-CN/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/maxGraphemes.d.cts\",\n        \"default\": \"./zh-CN/maxGraphemes.cjs\"\n      }\n    },\n    \"./zh-CN/maxLength\": {\n      \"import\": {\n        \"types\": \"./zh-CN/maxLength.d.mts\",\n        \"default\": \"./zh-CN/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/maxLength.d.cts\",\n        \"default\": \"./zh-CN/maxLength.cjs\"\n      }\n    },\n    \"./zh-CN/maxSize\": {\n      \"import\": {\n        \"types\": \"./zh-CN/maxSize.d.mts\",\n        \"default\": \"./zh-CN/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/maxSize.d.cts\",\n        \"default\": \"./zh-CN/maxSize.cjs\"\n      }\n    },\n    \"./zh-CN/maxValue\": {\n      \"import\": {\n        \"types\": \"./zh-CN/maxValue.d.mts\",\n        \"default\": \"./zh-CN/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/maxValue.d.cts\",\n        \"default\": \"./zh-CN/maxValue.cjs\"\n      }\n    },\n    \"./zh-CN/maxWords\": {\n      \"import\": {\n        \"types\": \"./zh-CN/maxWords.d.mts\",\n        \"default\": \"./zh-CN/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/maxWords.d.cts\",\n        \"default\": \"./zh-CN/maxWords.cjs\"\n      }\n    },\n    \"./zh-CN/mimeType\": {\n      \"import\": {\n        \"types\": \"./zh-CN/mimeType.d.mts\",\n        \"default\": \"./zh-CN/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/mimeType.d.cts\",\n        \"default\": \"./zh-CN/mimeType.cjs\"\n      }\n    },\n    \"./zh-CN/minBytes\": {\n      \"import\": {\n        \"types\": \"./zh-CN/minBytes.d.mts\",\n        \"default\": \"./zh-CN/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/minBytes.d.cts\",\n        \"default\": \"./zh-CN/minBytes.cjs\"\n      }\n    },\n    \"./zh-CN/minEntries\": {\n      \"import\": {\n        \"types\": \"./zh-CN/minEntries.d.mts\",\n        \"default\": \"./zh-CN/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/minEntries.d.cts\",\n        \"default\": \"./zh-CN/minEntries.cjs\"\n      }\n    },\n    \"./zh-CN/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./zh-CN/minGraphemes.d.mts\",\n        \"default\": \"./zh-CN/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/minGraphemes.d.cts\",\n        \"default\": \"./zh-CN/minGraphemes.cjs\"\n      }\n    },\n    \"./zh-CN/minLength\": {\n      \"import\": {\n        \"types\": \"./zh-CN/minLength.d.mts\",\n        \"default\": \"./zh-CN/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/minLength.d.cts\",\n        \"default\": \"./zh-CN/minLength.cjs\"\n      }\n    },\n    \"./zh-CN/minSize\": {\n      \"import\": {\n        \"types\": \"./zh-CN/minSize.d.mts\",\n        \"default\": \"./zh-CN/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/minSize.d.cts\",\n        \"default\": \"./zh-CN/minSize.cjs\"\n      }\n    },\n    \"./zh-CN/minValue\": {\n      \"import\": {\n        \"types\": \"./zh-CN/minValue.d.mts\",\n        \"default\": \"./zh-CN/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/minValue.d.cts\",\n        \"default\": \"./zh-CN/minValue.cjs\"\n      }\n    },\n    \"./zh-CN/minWords\": {\n      \"import\": {\n        \"types\": \"./zh-CN/minWords.d.mts\",\n        \"default\": \"./zh-CN/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/minWords.d.cts\",\n        \"default\": \"./zh-CN/minWords.cjs\"\n      }\n    },\n    \"./zh-CN/multipleOf\": {\n      \"import\": {\n        \"types\": \"./zh-CN/multipleOf.d.mts\",\n        \"default\": \"./zh-CN/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/multipleOf.d.cts\",\n        \"default\": \"./zh-CN/multipleOf.cjs\"\n      }\n    },\n    \"./zh-CN/nanoid\": {\n      \"import\": {\n        \"types\": \"./zh-CN/nanoid.d.mts\",\n        \"default\": \"./zh-CN/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/nanoid.d.cts\",\n        \"default\": \"./zh-CN/nanoid.cjs\"\n      }\n    },\n    \"./zh-CN/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./zh-CN/nonEmpty.d.mts\",\n        \"default\": \"./zh-CN/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/nonEmpty.d.cts\",\n        \"default\": \"./zh-CN/nonEmpty.cjs\"\n      }\n    },\n    \"./zh-CN/notBytes\": {\n      \"import\": {\n        \"types\": \"./zh-CN/notBytes.d.mts\",\n        \"default\": \"./zh-CN/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/notBytes.d.cts\",\n        \"default\": \"./zh-CN/notBytes.cjs\"\n      }\n    },\n    \"./zh-CN/notEntries\": {\n      \"import\": {\n        \"types\": \"./zh-CN/notEntries.d.mts\",\n        \"default\": \"./zh-CN/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/notEntries.d.cts\",\n        \"default\": \"./zh-CN/notEntries.cjs\"\n      }\n    },\n    \"./zh-CN/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./zh-CN/notGraphemes.d.mts\",\n        \"default\": \"./zh-CN/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/notGraphemes.d.cts\",\n        \"default\": \"./zh-CN/notGraphemes.cjs\"\n      }\n    },\n    \"./zh-CN/notLength\": {\n      \"import\": {\n        \"types\": \"./zh-CN/notLength.d.mts\",\n        \"default\": \"./zh-CN/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/notLength.d.cts\",\n        \"default\": \"./zh-CN/notLength.cjs\"\n      }\n    },\n    \"./zh-CN/notSize\": {\n      \"import\": {\n        \"types\": \"./zh-CN/notSize.d.mts\",\n        \"default\": \"./zh-CN/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/notSize.d.cts\",\n        \"default\": \"./zh-CN/notSize.cjs\"\n      }\n    },\n    \"./zh-CN/notValue\": {\n      \"import\": {\n        \"types\": \"./zh-CN/notValue.d.mts\",\n        \"default\": \"./zh-CN/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/notValue.d.cts\",\n        \"default\": \"./zh-CN/notValue.cjs\"\n      }\n    },\n    \"./zh-CN/notValues\": {\n      \"import\": {\n        \"types\": \"./zh-CN/notValues.d.mts\",\n        \"default\": \"./zh-CN/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/notValues.d.cts\",\n        \"default\": \"./zh-CN/notValues.cjs\"\n      }\n    },\n    \"./zh-CN/notWords\": {\n      \"import\": {\n        \"types\": \"./zh-CN/notWords.d.mts\",\n        \"default\": \"./zh-CN/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/notWords.d.cts\",\n        \"default\": \"./zh-CN/notWords.cjs\"\n      }\n    },\n    \"./zh-CN/octal\": {\n      \"import\": {\n        \"types\": \"./zh-CN/octal.d.mts\",\n        \"default\": \"./zh-CN/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/octal.d.cts\",\n        \"default\": \"./zh-CN/octal.cjs\"\n      }\n    },\n    \"./zh-CN/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./zh-CN/parseBoolean.d.mts\",\n        \"default\": \"./zh-CN/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/parseBoolean.d.cts\",\n        \"default\": \"./zh-CN/parseBoolean.cjs\"\n      }\n    },\n    \"./zh-CN/parseJson\": {\n      \"import\": {\n        \"types\": \"./zh-CN/parseJson.d.mts\",\n        \"default\": \"./zh-CN/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/parseJson.d.cts\",\n        \"default\": \"./zh-CN/parseJson.cjs\"\n      }\n    },\n    \"./zh-CN/partialCheck\": {\n      \"import\": {\n        \"types\": \"./zh-CN/partialCheck.d.mts\",\n        \"default\": \"./zh-CN/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/partialCheck.d.cts\",\n        \"default\": \"./zh-CN/partialCheck.cjs\"\n      }\n    },\n    \"./zh-CN/rawCheck\": {\n      \"import\": {\n        \"types\": \"./zh-CN/rawCheck.d.mts\",\n        \"default\": \"./zh-CN/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/rawCheck.d.cts\",\n        \"default\": \"./zh-CN/rawCheck.cjs\"\n      }\n    },\n    \"./zh-CN/rawTransform\": {\n      \"import\": {\n        \"types\": \"./zh-CN/rawTransform.d.mts\",\n        \"default\": \"./zh-CN/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/rawTransform.d.cts\",\n        \"default\": \"./zh-CN/rawTransform.cjs\"\n      }\n    },\n    \"./zh-CN/regex\": {\n      \"import\": {\n        \"types\": \"./zh-CN/regex.d.mts\",\n        \"default\": \"./zh-CN/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/regex.d.cts\",\n        \"default\": \"./zh-CN/regex.cjs\"\n      }\n    },\n    \"./zh-CN/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./zh-CN/rfcEmail.d.mts\",\n        \"default\": \"./zh-CN/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/rfcEmail.d.cts\",\n        \"default\": \"./zh-CN/rfcEmail.cjs\"\n      }\n    },\n    \"./zh-CN/safeInteger\": {\n      \"import\": {\n        \"types\": \"./zh-CN/safeInteger.d.mts\",\n        \"default\": \"./zh-CN/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/safeInteger.d.cts\",\n        \"default\": \"./zh-CN/safeInteger.cjs\"\n      }\n    },\n    \"./zh-CN/size\": {\n      \"import\": {\n        \"types\": \"./zh-CN/size.d.mts\",\n        \"default\": \"./zh-CN/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/size.d.cts\",\n        \"default\": \"./zh-CN/size.cjs\"\n      }\n    },\n    \"./zh-CN/slug\": {\n      \"import\": {\n        \"types\": \"./zh-CN/slug.d.mts\",\n        \"default\": \"./zh-CN/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/slug.d.cts\",\n        \"default\": \"./zh-CN/slug.cjs\"\n      }\n    },\n    \"./zh-CN/someItem\": {\n      \"import\": {\n        \"types\": \"./zh-CN/someItem.d.mts\",\n        \"default\": \"./zh-CN/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/someItem.d.cts\",\n        \"default\": \"./zh-CN/someItem.cjs\"\n      }\n    },\n    \"./zh-CN/startsWith\": {\n      \"import\": {\n        \"types\": \"./zh-CN/startsWith.d.mts\",\n        \"default\": \"./zh-CN/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/startsWith.d.cts\",\n        \"default\": \"./zh-CN/startsWith.cjs\"\n      }\n    },\n    \"./zh-CN/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./zh-CN/stringifyJson.d.mts\",\n        \"default\": \"./zh-CN/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/stringifyJson.d.cts\",\n        \"default\": \"./zh-CN/stringifyJson.cjs\"\n      }\n    },\n    \"./zh-CN/toBigint\": {\n      \"import\": {\n        \"types\": \"./zh-CN/toBigint.d.mts\",\n        \"default\": \"./zh-CN/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/toBigint.d.cts\",\n        \"default\": \"./zh-CN/toBigint.cjs\"\n      }\n    },\n    \"./zh-CN/toDate\": {\n      \"import\": {\n        \"types\": \"./zh-CN/toDate.d.mts\",\n        \"default\": \"./zh-CN/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/toDate.d.cts\",\n        \"default\": \"./zh-CN/toDate.cjs\"\n      }\n    },\n    \"./zh-CN/toNumber\": {\n      \"import\": {\n        \"types\": \"./zh-CN/toNumber.d.mts\",\n        \"default\": \"./zh-CN/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/toNumber.d.cts\",\n        \"default\": \"./zh-CN/toNumber.cjs\"\n      }\n    },\n    \"./zh-CN/toString\": {\n      \"import\": {\n        \"types\": \"./zh-CN/toString.d.mts\",\n        \"default\": \"./zh-CN/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/toString.d.cts\",\n        \"default\": \"./zh-CN/toString.cjs\"\n      }\n    },\n    \"./zh-CN/ulid\": {\n      \"import\": {\n        \"types\": \"./zh-CN/ulid.d.mts\",\n        \"default\": \"./zh-CN/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/ulid.d.cts\",\n        \"default\": \"./zh-CN/ulid.cjs\"\n      }\n    },\n    \"./zh-CN/url\": {\n      \"import\": {\n        \"types\": \"./zh-CN/url.d.mts\",\n        \"default\": \"./zh-CN/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/url.d.cts\",\n        \"default\": \"./zh-CN/url.cjs\"\n      }\n    },\n    \"./zh-CN/uuid\": {\n      \"import\": {\n        \"types\": \"./zh-CN/uuid.d.mts\",\n        \"default\": \"./zh-CN/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/uuid.d.cts\",\n        \"default\": \"./zh-CN/uuid.cjs\"\n      }\n    },\n    \"./zh-CN/value\": {\n      \"import\": {\n        \"types\": \"./zh-CN/value.d.mts\",\n        \"default\": \"./zh-CN/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/value.d.cts\",\n        \"default\": \"./zh-CN/value.cjs\"\n      }\n    },\n    \"./zh-CN/values\": {\n      \"import\": {\n        \"types\": \"./zh-CN/values.d.mts\",\n        \"default\": \"./zh-CN/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/values.d.cts\",\n        \"default\": \"./zh-CN/values.cjs\"\n      }\n    },\n    \"./zh-CN/words\": {\n      \"import\": {\n        \"types\": \"./zh-CN/words.d.mts\",\n        \"default\": \"./zh-CN/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-CN/words.d.cts\",\n        \"default\": \"./zh-CN/words.cjs\"\n      }\n    },\n    \"./zh-TW\": {\n      \"import\": {\n        \"types\": \"./zh-TW/index.d.mts\",\n        \"default\": \"./zh-TW/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/index.d.cts\",\n        \"default\": \"./zh-TW/index.cjs\"\n      }\n    },\n    \"./zh-TW/schema\": {\n      \"import\": {\n        \"types\": \"./zh-TW/schema.d.mts\",\n        \"default\": \"./zh-TW/schema.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/schema.d.cts\",\n        \"default\": \"./zh-TW/schema.cjs\"\n      }\n    },\n    \"./zh-TW/base64\": {\n      \"import\": {\n        \"types\": \"./zh-TW/base64.d.mts\",\n        \"default\": \"./zh-TW/base64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/base64.d.cts\",\n        \"default\": \"./zh-TW/base64.cjs\"\n      }\n    },\n    \"./zh-TW/bic\": {\n      \"import\": {\n        \"types\": \"./zh-TW/bic.d.mts\",\n        \"default\": \"./zh-TW/bic.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/bic.d.cts\",\n        \"default\": \"./zh-TW/bic.cjs\"\n      }\n    },\n    \"./zh-TW/bytes\": {\n      \"import\": {\n        \"types\": \"./zh-TW/bytes.d.mts\",\n        \"default\": \"./zh-TW/bytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/bytes.d.cts\",\n        \"default\": \"./zh-TW/bytes.cjs\"\n      }\n    },\n    \"./zh-TW/check\": {\n      \"import\": {\n        \"types\": \"./zh-TW/check.d.mts\",\n        \"default\": \"./zh-TW/check.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/check.d.cts\",\n        \"default\": \"./zh-TW/check.cjs\"\n      }\n    },\n    \"./zh-TW/checkAsync\": {\n      \"import\": {\n        \"types\": \"./zh-TW/checkAsync.d.mts\",\n        \"default\": \"./zh-TW/checkAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/checkAsync.d.cts\",\n        \"default\": \"./zh-TW/checkAsync.cjs\"\n      }\n    },\n    \"./zh-TW/checkItems\": {\n      \"import\": {\n        \"types\": \"./zh-TW/checkItems.d.mts\",\n        \"default\": \"./zh-TW/checkItems.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/checkItems.d.cts\",\n        \"default\": \"./zh-TW/checkItems.cjs\"\n      }\n    },\n    \"./zh-TW/checkItemsAsync\": {\n      \"import\": {\n        \"types\": \"./zh-TW/checkItemsAsync.d.mts\",\n        \"default\": \"./zh-TW/checkItemsAsync.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/checkItemsAsync.d.cts\",\n        \"default\": \"./zh-TW/checkItemsAsync.cjs\"\n      }\n    },\n    \"./zh-TW/creditCard\": {\n      \"import\": {\n        \"types\": \"./zh-TW/creditCard.d.mts\",\n        \"default\": \"./zh-TW/creditCard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/creditCard.d.cts\",\n        \"default\": \"./zh-TW/creditCard.cjs\"\n      }\n    },\n    \"./zh-TW/cuid2\": {\n      \"import\": {\n        \"types\": \"./zh-TW/cuid2.d.mts\",\n        \"default\": \"./zh-TW/cuid2.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/cuid2.d.cts\",\n        \"default\": \"./zh-TW/cuid2.cjs\"\n      }\n    },\n    \"./zh-TW/decimal\": {\n      \"import\": {\n        \"types\": \"./zh-TW/decimal.d.mts\",\n        \"default\": \"./zh-TW/decimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/decimal.d.cts\",\n        \"default\": \"./zh-TW/decimal.cjs\"\n      }\n    },\n    \"./zh-TW/digits\": {\n      \"import\": {\n        \"types\": \"./zh-TW/digits.d.mts\",\n        \"default\": \"./zh-TW/digits.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/digits.d.cts\",\n        \"default\": \"./zh-TW/digits.cjs\"\n      }\n    },\n    \"./zh-TW/domain\": {\n      \"import\": {\n        \"types\": \"./zh-TW/domain.d.mts\",\n        \"default\": \"./zh-TW/domain.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/domain.d.cts\",\n        \"default\": \"./zh-TW/domain.cjs\"\n      }\n    },\n    \"./zh-TW/email\": {\n      \"import\": {\n        \"types\": \"./zh-TW/email.d.mts\",\n        \"default\": \"./zh-TW/email.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/email.d.cts\",\n        \"default\": \"./zh-TW/email.cjs\"\n      }\n    },\n    \"./zh-TW/emoji\": {\n      \"import\": {\n        \"types\": \"./zh-TW/emoji.d.mts\",\n        \"default\": \"./zh-TW/emoji.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/emoji.d.cts\",\n        \"default\": \"./zh-TW/emoji.cjs\"\n      }\n    },\n    \"./zh-TW/empty\": {\n      \"import\": {\n        \"types\": \"./zh-TW/empty.d.mts\",\n        \"default\": \"./zh-TW/empty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/empty.d.cts\",\n        \"default\": \"./zh-TW/empty.cjs\"\n      }\n    },\n    \"./zh-TW/endsWith\": {\n      \"import\": {\n        \"types\": \"./zh-TW/endsWith.d.mts\",\n        \"default\": \"./zh-TW/endsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/endsWith.d.cts\",\n        \"default\": \"./zh-TW/endsWith.cjs\"\n      }\n    },\n    \"./zh-TW/entries\": {\n      \"import\": {\n        \"types\": \"./zh-TW/entries.d.mts\",\n        \"default\": \"./zh-TW/entries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/entries.d.cts\",\n        \"default\": \"./zh-TW/entries.cjs\"\n      }\n    },\n    \"./zh-TW/everyItem\": {\n      \"import\": {\n        \"types\": \"./zh-TW/everyItem.d.mts\",\n        \"default\": \"./zh-TW/everyItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/everyItem.d.cts\",\n        \"default\": \"./zh-TW/everyItem.cjs\"\n      }\n    },\n    \"./zh-TW/excludes\": {\n      \"import\": {\n        \"types\": \"./zh-TW/excludes.d.mts\",\n        \"default\": \"./zh-TW/excludes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/excludes.d.cts\",\n        \"default\": \"./zh-TW/excludes.cjs\"\n      }\n    },\n    \"./zh-TW/finite\": {\n      \"import\": {\n        \"types\": \"./zh-TW/finite.d.mts\",\n        \"default\": \"./zh-TW/finite.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/finite.d.cts\",\n        \"default\": \"./zh-TW/finite.cjs\"\n      }\n    },\n    \"./zh-TW/graphemes\": {\n      \"import\": {\n        \"types\": \"./zh-TW/graphemes.d.mts\",\n        \"default\": \"./zh-TW/graphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/graphemes.d.cts\",\n        \"default\": \"./zh-TW/graphemes.cjs\"\n      }\n    },\n    \"./zh-TW/gtValue\": {\n      \"import\": {\n        \"types\": \"./zh-TW/gtValue.d.mts\",\n        \"default\": \"./zh-TW/gtValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/gtValue.d.cts\",\n        \"default\": \"./zh-TW/gtValue.cjs\"\n      }\n    },\n    \"./zh-TW/guard\": {\n      \"import\": {\n        \"types\": \"./zh-TW/guard.d.mts\",\n        \"default\": \"./zh-TW/guard.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/guard.d.cts\",\n        \"default\": \"./zh-TW/guard.cjs\"\n      }\n    },\n    \"./zh-TW/hash\": {\n      \"import\": {\n        \"types\": \"./zh-TW/hash.d.mts\",\n        \"default\": \"./zh-TW/hash.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/hash.d.cts\",\n        \"default\": \"./zh-TW/hash.cjs\"\n      }\n    },\n    \"./zh-TW/hexadecimal\": {\n      \"import\": {\n        \"types\": \"./zh-TW/hexadecimal.d.mts\",\n        \"default\": \"./zh-TW/hexadecimal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/hexadecimal.d.cts\",\n        \"default\": \"./zh-TW/hexadecimal.cjs\"\n      }\n    },\n    \"./zh-TW/hexColor\": {\n      \"import\": {\n        \"types\": \"./zh-TW/hexColor.d.mts\",\n        \"default\": \"./zh-TW/hexColor.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/hexColor.d.cts\",\n        \"default\": \"./zh-TW/hexColor.cjs\"\n      }\n    },\n    \"./zh-TW/imei\": {\n      \"import\": {\n        \"types\": \"./zh-TW/imei.d.mts\",\n        \"default\": \"./zh-TW/imei.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/imei.d.cts\",\n        \"default\": \"./zh-TW/imei.cjs\"\n      }\n    },\n    \"./zh-TW/includes\": {\n      \"import\": {\n        \"types\": \"./zh-TW/includes.d.mts\",\n        \"default\": \"./zh-TW/includes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/includes.d.cts\",\n        \"default\": \"./zh-TW/includes.cjs\"\n      }\n    },\n    \"./zh-TW/integer\": {\n      \"import\": {\n        \"types\": \"./zh-TW/integer.d.mts\",\n        \"default\": \"./zh-TW/integer.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/integer.d.cts\",\n        \"default\": \"./zh-TW/integer.cjs\"\n      }\n    },\n    \"./zh-TW/ip\": {\n      \"import\": {\n        \"types\": \"./zh-TW/ip.d.mts\",\n        \"default\": \"./zh-TW/ip.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/ip.d.cts\",\n        \"default\": \"./zh-TW/ip.cjs\"\n      }\n    },\n    \"./zh-TW/ipv4\": {\n      \"import\": {\n        \"types\": \"./zh-TW/ipv4.d.mts\",\n        \"default\": \"./zh-TW/ipv4.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/ipv4.d.cts\",\n        \"default\": \"./zh-TW/ipv4.cjs\"\n      }\n    },\n    \"./zh-TW/ipv6\": {\n      \"import\": {\n        \"types\": \"./zh-TW/ipv6.d.mts\",\n        \"default\": \"./zh-TW/ipv6.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/ipv6.d.cts\",\n        \"default\": \"./zh-TW/ipv6.cjs\"\n      }\n    },\n    \"./zh-TW/isbn\": {\n      \"import\": {\n        \"types\": \"./zh-TW/isbn.d.mts\",\n        \"default\": \"./zh-TW/isbn.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/isbn.d.cts\",\n        \"default\": \"./zh-TW/isbn.cjs\"\n      }\n    },\n    \"./zh-TW/isoDate\": {\n      \"import\": {\n        \"types\": \"./zh-TW/isoDate.d.mts\",\n        \"default\": \"./zh-TW/isoDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/isoDate.d.cts\",\n        \"default\": \"./zh-TW/isoDate.cjs\"\n      }\n    },\n    \"./zh-TW/isoDateTime\": {\n      \"import\": {\n        \"types\": \"./zh-TW/isoDateTime.d.mts\",\n        \"default\": \"./zh-TW/isoDateTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/isoDateTime.d.cts\",\n        \"default\": \"./zh-TW/isoDateTime.cjs\"\n      }\n    },\n    \"./zh-TW/isoTime\": {\n      \"import\": {\n        \"types\": \"./zh-TW/isoTime.d.mts\",\n        \"default\": \"./zh-TW/isoTime.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/isoTime.d.cts\",\n        \"default\": \"./zh-TW/isoTime.cjs\"\n      }\n    },\n    \"./zh-TW/isoTimeSecond\": {\n      \"import\": {\n        \"types\": \"./zh-TW/isoTimeSecond.d.mts\",\n        \"default\": \"./zh-TW/isoTimeSecond.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/isoTimeSecond.d.cts\",\n        \"default\": \"./zh-TW/isoTimeSecond.cjs\"\n      }\n    },\n    \"./zh-TW/isoTimestamp\": {\n      \"import\": {\n        \"types\": \"./zh-TW/isoTimestamp.d.mts\",\n        \"default\": \"./zh-TW/isoTimestamp.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/isoTimestamp.d.cts\",\n        \"default\": \"./zh-TW/isoTimestamp.cjs\"\n      }\n    },\n    \"./zh-TW/isoWeek\": {\n      \"import\": {\n        \"types\": \"./zh-TW/isoWeek.d.mts\",\n        \"default\": \"./zh-TW/isoWeek.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/isoWeek.d.cts\",\n        \"default\": \"./zh-TW/isoWeek.cjs\"\n      }\n    },\n    \"./zh-TW/isrc\": {\n      \"import\": {\n        \"types\": \"./zh-TW/isrc.d.mts\",\n        \"default\": \"./zh-TW/isrc.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/isrc.d.cts\",\n        \"default\": \"./zh-TW/isrc.cjs\"\n      }\n    },\n    \"./zh-TW/jwsCompact\": {\n      \"import\": {\n        \"types\": \"./zh-TW/jwsCompact.d.mts\",\n        \"default\": \"./zh-TW/jwsCompact.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/jwsCompact.d.cts\",\n        \"default\": \"./zh-TW/jwsCompact.cjs\"\n      }\n    },\n    \"./zh-TW/length\": {\n      \"import\": {\n        \"types\": \"./zh-TW/length.d.mts\",\n        \"default\": \"./zh-TW/length.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/length.d.cts\",\n        \"default\": \"./zh-TW/length.cjs\"\n      }\n    },\n    \"./zh-TW/ltValue\": {\n      \"import\": {\n        \"types\": \"./zh-TW/ltValue.d.mts\",\n        \"default\": \"./zh-TW/ltValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/ltValue.d.cts\",\n        \"default\": \"./zh-TW/ltValue.cjs\"\n      }\n    },\n    \"./zh-TW/mac\": {\n      \"import\": {\n        \"types\": \"./zh-TW/mac.d.mts\",\n        \"default\": \"./zh-TW/mac.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/mac.d.cts\",\n        \"default\": \"./zh-TW/mac.cjs\"\n      }\n    },\n    \"./zh-TW/mac48\": {\n      \"import\": {\n        \"types\": \"./zh-TW/mac48.d.mts\",\n        \"default\": \"./zh-TW/mac48.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/mac48.d.cts\",\n        \"default\": \"./zh-TW/mac48.cjs\"\n      }\n    },\n    \"./zh-TW/mac64\": {\n      \"import\": {\n        \"types\": \"./zh-TW/mac64.d.mts\",\n        \"default\": \"./zh-TW/mac64.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/mac64.d.cts\",\n        \"default\": \"./zh-TW/mac64.cjs\"\n      }\n    },\n    \"./zh-TW/maxBytes\": {\n      \"import\": {\n        \"types\": \"./zh-TW/maxBytes.d.mts\",\n        \"default\": \"./zh-TW/maxBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/maxBytes.d.cts\",\n        \"default\": \"./zh-TW/maxBytes.cjs\"\n      }\n    },\n    \"./zh-TW/maxEntries\": {\n      \"import\": {\n        \"types\": \"./zh-TW/maxEntries.d.mts\",\n        \"default\": \"./zh-TW/maxEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/maxEntries.d.cts\",\n        \"default\": \"./zh-TW/maxEntries.cjs\"\n      }\n    },\n    \"./zh-TW/maxGraphemes\": {\n      \"import\": {\n        \"types\": \"./zh-TW/maxGraphemes.d.mts\",\n        \"default\": \"./zh-TW/maxGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/maxGraphemes.d.cts\",\n        \"default\": \"./zh-TW/maxGraphemes.cjs\"\n      }\n    },\n    \"./zh-TW/maxLength\": {\n      \"import\": {\n        \"types\": \"./zh-TW/maxLength.d.mts\",\n        \"default\": \"./zh-TW/maxLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/maxLength.d.cts\",\n        \"default\": \"./zh-TW/maxLength.cjs\"\n      }\n    },\n    \"./zh-TW/maxSize\": {\n      \"import\": {\n        \"types\": \"./zh-TW/maxSize.d.mts\",\n        \"default\": \"./zh-TW/maxSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/maxSize.d.cts\",\n        \"default\": \"./zh-TW/maxSize.cjs\"\n      }\n    },\n    \"./zh-TW/maxValue\": {\n      \"import\": {\n        \"types\": \"./zh-TW/maxValue.d.mts\",\n        \"default\": \"./zh-TW/maxValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/maxValue.d.cts\",\n        \"default\": \"./zh-TW/maxValue.cjs\"\n      }\n    },\n    \"./zh-TW/maxWords\": {\n      \"import\": {\n        \"types\": \"./zh-TW/maxWords.d.mts\",\n        \"default\": \"./zh-TW/maxWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/maxWords.d.cts\",\n        \"default\": \"./zh-TW/maxWords.cjs\"\n      }\n    },\n    \"./zh-TW/mimeType\": {\n      \"import\": {\n        \"types\": \"./zh-TW/mimeType.d.mts\",\n        \"default\": \"./zh-TW/mimeType.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/mimeType.d.cts\",\n        \"default\": \"./zh-TW/mimeType.cjs\"\n      }\n    },\n    \"./zh-TW/minBytes\": {\n      \"import\": {\n        \"types\": \"./zh-TW/minBytes.d.mts\",\n        \"default\": \"./zh-TW/minBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/minBytes.d.cts\",\n        \"default\": \"./zh-TW/minBytes.cjs\"\n      }\n    },\n    \"./zh-TW/minEntries\": {\n      \"import\": {\n        \"types\": \"./zh-TW/minEntries.d.mts\",\n        \"default\": \"./zh-TW/minEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/minEntries.d.cts\",\n        \"default\": \"./zh-TW/minEntries.cjs\"\n      }\n    },\n    \"./zh-TW/minGraphemes\": {\n      \"import\": {\n        \"types\": \"./zh-TW/minGraphemes.d.mts\",\n        \"default\": \"./zh-TW/minGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/minGraphemes.d.cts\",\n        \"default\": \"./zh-TW/minGraphemes.cjs\"\n      }\n    },\n    \"./zh-TW/minLength\": {\n      \"import\": {\n        \"types\": \"./zh-TW/minLength.d.mts\",\n        \"default\": \"./zh-TW/minLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/minLength.d.cts\",\n        \"default\": \"./zh-TW/minLength.cjs\"\n      }\n    },\n    \"./zh-TW/minSize\": {\n      \"import\": {\n        \"types\": \"./zh-TW/minSize.d.mts\",\n        \"default\": \"./zh-TW/minSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/minSize.d.cts\",\n        \"default\": \"./zh-TW/minSize.cjs\"\n      }\n    },\n    \"./zh-TW/minValue\": {\n      \"import\": {\n        \"types\": \"./zh-TW/minValue.d.mts\",\n        \"default\": \"./zh-TW/minValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/minValue.d.cts\",\n        \"default\": \"./zh-TW/minValue.cjs\"\n      }\n    },\n    \"./zh-TW/minWords\": {\n      \"import\": {\n        \"types\": \"./zh-TW/minWords.d.mts\",\n        \"default\": \"./zh-TW/minWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/minWords.d.cts\",\n        \"default\": \"./zh-TW/minWords.cjs\"\n      }\n    },\n    \"./zh-TW/multipleOf\": {\n      \"import\": {\n        \"types\": \"./zh-TW/multipleOf.d.mts\",\n        \"default\": \"./zh-TW/multipleOf.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/multipleOf.d.cts\",\n        \"default\": \"./zh-TW/multipleOf.cjs\"\n      }\n    },\n    \"./zh-TW/nanoid\": {\n      \"import\": {\n        \"types\": \"./zh-TW/nanoid.d.mts\",\n        \"default\": \"./zh-TW/nanoid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/nanoid.d.cts\",\n        \"default\": \"./zh-TW/nanoid.cjs\"\n      }\n    },\n    \"./zh-TW/nonEmpty\": {\n      \"import\": {\n        \"types\": \"./zh-TW/nonEmpty.d.mts\",\n        \"default\": \"./zh-TW/nonEmpty.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/nonEmpty.d.cts\",\n        \"default\": \"./zh-TW/nonEmpty.cjs\"\n      }\n    },\n    \"./zh-TW/notBytes\": {\n      \"import\": {\n        \"types\": \"./zh-TW/notBytes.d.mts\",\n        \"default\": \"./zh-TW/notBytes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/notBytes.d.cts\",\n        \"default\": \"./zh-TW/notBytes.cjs\"\n      }\n    },\n    \"./zh-TW/notEntries\": {\n      \"import\": {\n        \"types\": \"./zh-TW/notEntries.d.mts\",\n        \"default\": \"./zh-TW/notEntries.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/notEntries.d.cts\",\n        \"default\": \"./zh-TW/notEntries.cjs\"\n      }\n    },\n    \"./zh-TW/notGraphemes\": {\n      \"import\": {\n        \"types\": \"./zh-TW/notGraphemes.d.mts\",\n        \"default\": \"./zh-TW/notGraphemes.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/notGraphemes.d.cts\",\n        \"default\": \"./zh-TW/notGraphemes.cjs\"\n      }\n    },\n    \"./zh-TW/notLength\": {\n      \"import\": {\n        \"types\": \"./zh-TW/notLength.d.mts\",\n        \"default\": \"./zh-TW/notLength.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/notLength.d.cts\",\n        \"default\": \"./zh-TW/notLength.cjs\"\n      }\n    },\n    \"./zh-TW/notSize\": {\n      \"import\": {\n        \"types\": \"./zh-TW/notSize.d.mts\",\n        \"default\": \"./zh-TW/notSize.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/notSize.d.cts\",\n        \"default\": \"./zh-TW/notSize.cjs\"\n      }\n    },\n    \"./zh-TW/notValue\": {\n      \"import\": {\n        \"types\": \"./zh-TW/notValue.d.mts\",\n        \"default\": \"./zh-TW/notValue.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/notValue.d.cts\",\n        \"default\": \"./zh-TW/notValue.cjs\"\n      }\n    },\n    \"./zh-TW/notValues\": {\n      \"import\": {\n        \"types\": \"./zh-TW/notValues.d.mts\",\n        \"default\": \"./zh-TW/notValues.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/notValues.d.cts\",\n        \"default\": \"./zh-TW/notValues.cjs\"\n      }\n    },\n    \"./zh-TW/notWords\": {\n      \"import\": {\n        \"types\": \"./zh-TW/notWords.d.mts\",\n        \"default\": \"./zh-TW/notWords.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/notWords.d.cts\",\n        \"default\": \"./zh-TW/notWords.cjs\"\n      }\n    },\n    \"./zh-TW/octal\": {\n      \"import\": {\n        \"types\": \"./zh-TW/octal.d.mts\",\n        \"default\": \"./zh-TW/octal.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/octal.d.cts\",\n        \"default\": \"./zh-TW/octal.cjs\"\n      }\n    },\n    \"./zh-TW/parseBoolean\": {\n      \"import\": {\n        \"types\": \"./zh-TW/parseBoolean.d.mts\",\n        \"default\": \"./zh-TW/parseBoolean.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/parseBoolean.d.cts\",\n        \"default\": \"./zh-TW/parseBoolean.cjs\"\n      }\n    },\n    \"./zh-TW/parseJson\": {\n      \"import\": {\n        \"types\": \"./zh-TW/parseJson.d.mts\",\n        \"default\": \"./zh-TW/parseJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/parseJson.d.cts\",\n        \"default\": \"./zh-TW/parseJson.cjs\"\n      }\n    },\n    \"./zh-TW/partialCheck\": {\n      \"import\": {\n        \"types\": \"./zh-TW/partialCheck.d.mts\",\n        \"default\": \"./zh-TW/partialCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/partialCheck.d.cts\",\n        \"default\": \"./zh-TW/partialCheck.cjs\"\n      }\n    },\n    \"./zh-TW/rawCheck\": {\n      \"import\": {\n        \"types\": \"./zh-TW/rawCheck.d.mts\",\n        \"default\": \"./zh-TW/rawCheck.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/rawCheck.d.cts\",\n        \"default\": \"./zh-TW/rawCheck.cjs\"\n      }\n    },\n    \"./zh-TW/rawTransform\": {\n      \"import\": {\n        \"types\": \"./zh-TW/rawTransform.d.mts\",\n        \"default\": \"./zh-TW/rawTransform.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/rawTransform.d.cts\",\n        \"default\": \"./zh-TW/rawTransform.cjs\"\n      }\n    },\n    \"./zh-TW/regex\": {\n      \"import\": {\n        \"types\": \"./zh-TW/regex.d.mts\",\n        \"default\": \"./zh-TW/regex.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/regex.d.cts\",\n        \"default\": \"./zh-TW/regex.cjs\"\n      }\n    },\n    \"./zh-TW/rfcEmail\": {\n      \"import\": {\n        \"types\": \"./zh-TW/rfcEmail.d.mts\",\n        \"default\": \"./zh-TW/rfcEmail.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/rfcEmail.d.cts\",\n        \"default\": \"./zh-TW/rfcEmail.cjs\"\n      }\n    },\n    \"./zh-TW/safeInteger\": {\n      \"import\": {\n        \"types\": \"./zh-TW/safeInteger.d.mts\",\n        \"default\": \"./zh-TW/safeInteger.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/safeInteger.d.cts\",\n        \"default\": \"./zh-TW/safeInteger.cjs\"\n      }\n    },\n    \"./zh-TW/size\": {\n      \"import\": {\n        \"types\": \"./zh-TW/size.d.mts\",\n        \"default\": \"./zh-TW/size.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/size.d.cts\",\n        \"default\": \"./zh-TW/size.cjs\"\n      }\n    },\n    \"./zh-TW/slug\": {\n      \"import\": {\n        \"types\": \"./zh-TW/slug.d.mts\",\n        \"default\": \"./zh-TW/slug.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/slug.d.cts\",\n        \"default\": \"./zh-TW/slug.cjs\"\n      }\n    },\n    \"./zh-TW/someItem\": {\n      \"import\": {\n        \"types\": \"./zh-TW/someItem.d.mts\",\n        \"default\": \"./zh-TW/someItem.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/someItem.d.cts\",\n        \"default\": \"./zh-TW/someItem.cjs\"\n      }\n    },\n    \"./zh-TW/startsWith\": {\n      \"import\": {\n        \"types\": \"./zh-TW/startsWith.d.mts\",\n        \"default\": \"./zh-TW/startsWith.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/startsWith.d.cts\",\n        \"default\": \"./zh-TW/startsWith.cjs\"\n      }\n    },\n    \"./zh-TW/stringifyJson\": {\n      \"import\": {\n        \"types\": \"./zh-TW/stringifyJson.d.mts\",\n        \"default\": \"./zh-TW/stringifyJson.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/stringifyJson.d.cts\",\n        \"default\": \"./zh-TW/stringifyJson.cjs\"\n      }\n    },\n    \"./zh-TW/toBigint\": {\n      \"import\": {\n        \"types\": \"./zh-TW/toBigint.d.mts\",\n        \"default\": \"./zh-TW/toBigint.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/toBigint.d.cts\",\n        \"default\": \"./zh-TW/toBigint.cjs\"\n      }\n    },\n    \"./zh-TW/toDate\": {\n      \"import\": {\n        \"types\": \"./zh-TW/toDate.d.mts\",\n        \"default\": \"./zh-TW/toDate.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/toDate.d.cts\",\n        \"default\": \"./zh-TW/toDate.cjs\"\n      }\n    },\n    \"./zh-TW/toNumber\": {\n      \"import\": {\n        \"types\": \"./zh-TW/toNumber.d.mts\",\n        \"default\": \"./zh-TW/toNumber.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/toNumber.d.cts\",\n        \"default\": \"./zh-TW/toNumber.cjs\"\n      }\n    },\n    \"./zh-TW/toString\": {\n      \"import\": {\n        \"types\": \"./zh-TW/toString.d.mts\",\n        \"default\": \"./zh-TW/toString.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/toString.d.cts\",\n        \"default\": \"./zh-TW/toString.cjs\"\n      }\n    },\n    \"./zh-TW/ulid\": {\n      \"import\": {\n        \"types\": \"./zh-TW/ulid.d.mts\",\n        \"default\": \"./zh-TW/ulid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/ulid.d.cts\",\n        \"default\": \"./zh-TW/ulid.cjs\"\n      }\n    },\n    \"./zh-TW/url\": {\n      \"import\": {\n        \"types\": \"./zh-TW/url.d.mts\",\n        \"default\": \"./zh-TW/url.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/url.d.cts\",\n        \"default\": \"./zh-TW/url.cjs\"\n      }\n    },\n    \"./zh-TW/uuid\": {\n      \"import\": {\n        \"types\": \"./zh-TW/uuid.d.mts\",\n        \"default\": \"./zh-TW/uuid.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/uuid.d.cts\",\n        \"default\": \"./zh-TW/uuid.cjs\"\n      }\n    },\n    \"./zh-TW/value\": {\n      \"import\": {\n        \"types\": \"./zh-TW/value.d.mts\",\n        \"default\": \"./zh-TW/value.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/value.d.cts\",\n        \"default\": \"./zh-TW/value.cjs\"\n      }\n    },\n    \"./zh-TW/values\": {\n      \"import\": {\n        \"types\": \"./zh-TW/values.d.mts\",\n        \"default\": \"./zh-TW/values.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/values.d.cts\",\n        \"default\": \"./zh-TW/values.cjs\"\n      }\n    },\n    \"./zh-TW/words\": {\n      \"import\": {\n        \"types\": \"./zh-TW/words.d.mts\",\n        \"default\": \"./zh-TW/words.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./zh-TW/words.d.cts\",\n        \"default\": \"./zh-TW/words.cjs\"\n      }\n    }\n  }\n}\n"
  },
  {
    "path": "packages/i18n/scripts/build-jsr.ts",
    "content": "import fs from 'node:fs';\nimport path from 'node:path';\nimport jsr from '../jsr.json';\nimport package_ from '../package.json';\nimport ar from '../src/ar';\nimport az from '../src/az';\nimport ca from '../src/ca';\nimport cs from '../src/cs';\nimport de from '../src/de';\nimport el from '../src/el';\nimport es from '../src/es';\nimport fa from '../src/fa';\nimport fi from '../src/fi';\nimport fr from '../src/fr';\nimport hu from '../src/hu';\nimport id from '../src/id';\nimport it from '../src/it';\nimport ja from '../src/ja';\nimport ko from '../src/ko';\nimport kr from '../src/kr';\nimport mn from '../src/mn';\nimport nb from '../src/nb';\nimport nl from '../src/nl';\nimport pl from '../src/pl';\nimport pt from '../src/pt';\nimport ro from '../src/ro';\nimport ru from '../src/ru';\nimport sk from '../src/sk';\nimport sl from '../src/sl';\nimport sv from '../src/sv';\nimport tr from '../src/tr';\nimport uk from '../src/uk';\nimport vi from '../src/vi';\nimport zhCN from '../src/zh-CN';\nimport zhTW from '../src/zh-TW';\n\n// Create languages array\n// Note: The language file `en` does not need to be added as the default\n// messages of Valibot are already in English\nconst languages = [\n  ar,\n  az,\n  ca,\n  cs,\n  de,\n  el,\n  es,\n  fa,\n  fi,\n  fr,\n  hu,\n  id,\n  it,\n  ja,\n  ko,\n  kr,\n  mn,\n  nb,\n  nl,\n  pl,\n  pt,\n  ro,\n  ru,\n  sk,\n  sl,\n  sv,\n  tr,\n  uk,\n  vi,\n  zhCN,\n  zhTW,\n];\n\n// Create root imports variable\nconst rootImports: string[] = [];\n\n// Create exclude array\nconst exclude: string[] = [\n  'scripts',\n  'src',\n  'CHANGELOG.md',\n  'package.json',\n  'tsconfig.json',\n  '!index.ts',\n];\n\n// Create exports object with index file\nconst exports: Record<string, string> = {\n  '.': './index.ts',\n};\n\n// Clean root directory\nfor (const file of package_.files) {\n  fs.rmSync(file, { recursive: true, force: true });\n}\n\n// Create language specific submodules\nfor (const language of languages) {\n  // Create language directory\n  fs.mkdirSync(language.code);\n\n  // Add language to exclude\n  exclude.push(`!${language.code}`);\n\n  // Add index file to exports\n  exports[`./${language.code}`] = `./${language.code}/index.ts`;\n\n  // Add index imports to root index files\n  rootImports.push(`import \"./${language.code}/index.ts\";`);\n\n  // Create language imports variable\n  const languageImports: string[] = [];\n\n  // Add schema file to exports\n  exports[`./${language.code}/schema`] = `./${language.code}/schema.ts`;\n\n  // Add schema import to language index file\n  languageImports.push(`import \"./schema.ts\";`);\n\n  // Write schema.ts file\n  fs.writeFileSync(\n    path.join(language.code, 'schema.ts'),\n    `\nimport { setSchemaMessage } from \"jsr:@valibot/valibot@1.3.0\";\n\nsetSchemaMessage(\n  ${language.schema.toString()},\n  \"${language.code}\"\n);\n    `.trim()\n  );\n\n  // Create submodules for specific messages\n  for (const [reference, message] of Object.entries(language.specific)) {\n    // Add file to exports\n    exports[`./${language.code}/${reference}`] =\n      `./${language.code}/${reference}.ts`;\n\n    // Add import to language index file\n    languageImports.push(`import \"./${reference}.ts\";`);\n\n    // Write ${reference}.ts file\n    fs.writeFileSync(\n      path.join(language.code, `${reference}.ts`),\n      `\nimport { setSpecificMessage, ${reference} } from \"jsr:@valibot/valibot@1.3.0\";\n\nsetSpecificMessage(\n  ${reference},\n  ${message.toString()},\n  \"${language.code}\"\n);\n    `.trim()\n    );\n  }\n\n  // Write language index.ts file\n  fs.writeFileSync(\n    path.join(language.code, 'index.ts'),\n    languageImports.join('\\n')\n  );\n}\n\n// Write root index.ts file\nfs.writeFileSync('index.ts', rootImports.join('\\n'));\n\n// Write root jsr.json file\nfs.writeFileSync(\n  'jsr.json',\n  JSON.stringify({ ...jsr, exclude, exports }, null, 2)\n);\n"
  },
  {
    "path": "packages/i18n/scripts/build-npm.ts",
    "content": "import fs from 'node:fs';\nimport path from 'node:path';\nimport package_ from '../package.json';\nimport ar from '../src/ar';\nimport az from '../src/az';\nimport ca from '../src/ca';\nimport cs from '../src/cs';\nimport de from '../src/de';\nimport el from '../src/el';\nimport es from '../src/es';\nimport fa from '../src/fa';\nimport fi from '../src/fi';\nimport fr from '../src/fr';\nimport hu from '../src/hu';\nimport id from '../src/id';\nimport it from '../src/it';\nimport ja from '../src/ja';\nimport ko from '../src/ko';\nimport kr from '../src/kr';\nimport mn from '../src/mn';\nimport nb from '../src/nb';\nimport nl from '../src/nl';\nimport pl from '../src/pl';\nimport pt from '../src/pt';\nimport ro from '../src/ro';\nimport ru from '../src/ru';\nimport sk from '../src/sk';\nimport sl from '../src/sl';\nimport sv from '../src/sv';\nimport tr from '../src/tr';\nimport uk from '../src/uk';\nimport vi from '../src/vi';\nimport zhCN from '../src/zh-CN';\nimport zhTW from '../src/zh-TW';\n\n// Create languages array\n// Note: The language file `en` does not need to be added as the default\n// messages of Valibot are already in English\nconst languages = [\n  ar,\n  az,\n  ca,\n  cs,\n  de,\n  el,\n  es,\n  fa,\n  fi,\n  fr,\n  hu,\n  id,\n  it,\n  ja,\n  ko,\n  kr,\n  mn,\n  nb,\n  nl,\n  pl,\n  pt,\n  ro,\n  ru,\n  sk,\n  sl,\n  sv,\n  tr,\n  uk,\n  vi,\n  zhCN,\n  zhTW,\n];\n\n// Create root import variables\nconst rootModuleImports: string[] = [];\nconst rootCommonImports: string[] = ['\"use strict\";'];\n\n// Create files array\nconst files: string[] = [\n  'index.ts',\n  'index.mjs',\n  'index.cjs',\n  'index.d.mts',\n  'index.d.cts',\n];\n\n/**\n * Exports type.\n */\ntype Exports = Record<\n  string,\n  {\n    import: {\n      types: string;\n      default: string;\n    };\n    require: {\n      types: string;\n      default: string;\n    };\n  }\n>;\n\n// Create exports object with index files\nconst exports: Exports = {\n  '.': {\n    import: {\n      types: './index.d.mts',\n      default: './index.mjs',\n    },\n    require: {\n      types: './index.d.cts',\n      default: './index.cjs',\n    },\n  },\n};\n\n// Clean root directory\nfor (const file of package_.files) {\n  fs.rmSync(file, { recursive: true, force: true });\n}\n\n// Create language specific submodules\nfor (const language of languages) {\n  // Create language directory\n  fs.mkdirSync(language.code);\n\n  // Add language to files\n  files.push(language.code);\n\n  // Add index files to exports\n  exports[`./${language.code}`] = {\n    import: {\n      types: `./${language.code}/index.d.mts`,\n      default: `./${language.code}/index.mjs`,\n    },\n    require: {\n      types: `./${language.code}/index.d.cts`,\n      default: `./${language.code}/index.cjs`,\n    },\n  };\n\n  // Add index imports to root index files\n  rootModuleImports.push(`import \"@valibot/i18n/${language.code}\";`);\n  rootCommonImports.push(\n    `var import_${language.code} = require(\"@valibot/i18n/${language.code}\");`\n  );\n\n  // Create language import variables\n  const languageModuleImports: string[] = [];\n  const languageCommonImports: string[] = ['\"use strict\";'];\n\n  // Add schema files to exports\n  exports[`./${language.code}/schema`] = {\n    import: {\n      types: `./${language.code}/schema.d.mts`,\n      default: `./${language.code}/schema.mjs`,\n    },\n    require: {\n      types: `./${language.code}/schema.d.cts`,\n      default: `./${language.code}/schema.cjs`,\n    },\n  };\n\n  // Add schema import to language index file\n  languageModuleImports.push(`import \"@valibot/i18n/${language.code}/schema\";`);\n  languageCommonImports.push(\n    `var import_schema = require(\"@valibot/i18n/${language.code}/schema\");`\n  );\n\n  // Write schema.mjs file\n  fs.writeFileSync(\n    path.join(language.code, 'schema.mjs'),\n    `\nimport { setSchemaMessage } from \"valibot\";\nsetSchemaMessage(\n  ${language.schema.toString()},\n  \"${language.code}\"\n);\n    `.trim()\n  );\n\n  // Write schema.cjs file\n  fs.writeFileSync(\n    path.join(language.code, 'schema.cjs'),\n    `\n\"use strict\";\nvar import_valibot = require(\"valibot\");\n(0, import_valibot.setSchemaMessage)(\n  ${language.schema.toString()},\n  \"${language.code}\"\n);\n    `.trim()\n  );\n\n  // Write schema.d.mts file\n  fs.writeFileSync(path.join(language.code, 'schema.d.mts'), 'export { }');\n\n  // Write schema.d.cts file\n  fs.writeFileSync(path.join(language.code, 'schema.d.cts'), 'export { }');\n\n  // Create submodules for specific messages\n  for (const [reference, message] of Object.entries(language.specific)) {\n    // Add files to exports\n    exports[`./${language.code}/${reference}`] = {\n      import: {\n        types: `./${language.code}/${reference}.d.mts`,\n        default: `./${language.code}/${reference}.mjs`,\n      },\n      require: {\n        types: `./${language.code}/${reference}.d.cts`,\n        default: `./${language.code}/${reference}.cjs`,\n      },\n    };\n\n    // Add import to language index file\n    languageModuleImports.push(\n      `import \"@valibot/i18n/${language.code}/${reference}\";`\n    );\n    languageCommonImports.push(\n      `var import_${reference} = require(\"@valibot/i18n/${language.code}/${reference}\");`\n    );\n\n    // Write ${reference}.mjs file\n    fs.writeFileSync(\n      path.join(language.code, `${reference}.mjs`),\n      `\nimport { setSpecificMessage, ${reference} } from \"valibot\";\nsetSpecificMessage(\n  ${reference},\n  ${message.toString()},\n  \"${language.code}\"\n);\n    `.trim()\n    );\n\n    // Write ${reference}.cjs file\n    fs.writeFileSync(\n      path.join(language.code, `${reference}.cjs`),\n      `\n\"use strict\";\nvar import_valibot = require(\"valibot\");\n(0, import_valibot.setSpecificMessage)(\n  import_valibot.${reference},\n  ${message.toString()},\n  \"${language.code}\"\n);\n    `.trim()\n    );\n\n    // Write ${reference}.d.mts file\n    fs.writeFileSync(\n      path.join(language.code, `${reference}.d.mts`),\n      'export { }'\n    );\n\n    // Write ${reference}.d.cts file\n    fs.writeFileSync(\n      path.join(language.code, `${reference}.d.cts`),\n      'export { }'\n    );\n  }\n\n  // Write language index.mjs file\n  fs.writeFileSync(\n    path.join(language.code, 'index.mjs'),\n    languageModuleImports.join('\\n')\n  );\n\n  // Write language index.cjs file\n  fs.writeFileSync(\n    path.join(language.code, 'index.cjs'),\n    languageCommonImports.join('\\n')\n  );\n\n  // Write language index.d.mts file\n  fs.writeFileSync(path.join(language.code, 'index.d.mts'), 'export { }');\n\n  // Write language index.d.cts file\n  fs.writeFileSync(path.join(language.code, 'index.d.cts'), 'export { }');\n}\n\n// Write root index.mjs file\nfs.writeFileSync('index.mjs', rootModuleImports.join('\\n'));\n\n// Write root index.cjs file\nfs.writeFileSync('index.cjs', rootCommonImports.join('\\n'));\n\n// Write root index.d.mts file\nfs.writeFileSync('index.d.mts', 'export { }');\n\n// Write root index.d.cts file\nfs.writeFileSync('index.d.cts', 'export { }');\n\n// Write root package.json file\nfs.writeFileSync(\n  'package.json',\n  JSON.stringify({ ...package_, files, exports }, null, 2)\n);\n\n// Write root .gitignore file\nfs.writeFileSync('.gitignore', files.join('\\n'));\n"
  },
  {
    "path": "packages/i18n/src/ar.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'ar',\n  schema:             (issue) => `نوع غير صالح: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n  specific: {\n    base64:           (issue) => `معرّف Base64 غير صالح: القيمة المُدخلة ${issue.received}`,\n    bic:              (issue) => `BIC غير صالح: القيمة المُدخلة ${issue.received}`,\n    bytes:            (issue) => `حجم بايت غير صالح: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    check:            (issue) => `مُدخل غير صالح: القيمة المُدخلة ${issue.received}`,\n    checkAsync:       (issue) => `مُدخل غير صالح: القيمة المُدخلة ${issue.received}`,\n    checkItems:       (issue) => `عناصر غير صالحة: قيمة الإدخال ${issue.received}`,\n    checkItemsAsync:  (issue) => `عناصر غير صالحة: قيمة الإدخال ${issue.received}`,\n    creditCard:       (issue) => `بطاقة إئتمان غير صالحة: القيمة المُدخلة ${issue.received}`,\n    cuid2:            (issue) => `قيمة Cuid2 غير صالحة: القيمة المُدخلة ${issue.received}`,\n    decimal:          (issue) => `رقم عُشَري غير صالح: القيمة المُدخلة ${issue.received}`,\n    digits:           (issue) => `أرقام غير صالحة: القيمة المُدخلة ${issue.received}`,\n    domain:           (issue) => `نطاق غير صالح: القيمة المُدخلة ${issue.received}`,\n    email:            (issue) => `بريد الكتروني غير صالح: القيمة المُدخلة ${issue.received}`,\n    emoji:            (issue) => `رمز تعبيري غير صالح: القيمة المُدخلة ${issue.received}`,\n    empty:            (issue) => `الطول غير صالح: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    endsWith:         (issue) => `نهاية غير صالحة: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    entries:          (issue) => `عدد الإدخالات غير صالح: القيمة المتوقعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    everyItem:        (issue) => `عنصر غير صالح: القيمة المُدخلة ${issue.received}`,\n    excludes:         (issue) => `محتوى غير صالح: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    finite:           (issue) => `عدد محدود غير صالح: القيمة المُدخلة ${issue.received}`,\n    graphemes:        (issue) => `عدد الرموز غير صالح: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    gtValue:          (issue) => `قيمة غير صالحة: القيمة المتوقعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    guard:            (issue) => `إدخال غير صالح: القيمة المُدخلة ${issue.received}`,\n    hash:             (issue) => `رقم تجزئة غير صحيح: القيمة المُدخلة ${issue.received}`,\n    hexadecimal:      (issue) => `رقم سداسي عشري غير صالح: القيمة المُدخلة ${issue.received}`,\n    hexColor:         (issue) => `رمز لون غير صالح: القيمة المُدخلة ${issue.received}`,\n    imei:             (issue) => `رقم IMEI غير صالح: القيمة المُدخلة ${issue.received}`,\n    includes:         (issue) => `محتوى غير صالح: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    integer:          (issue) => `رقم غير صالح: القيمة المُدخلة ${issue.received}`,\n    ip:               (issue) => `عنوان IP غير صالح: القيمة المُدخلة ${issue.received}`,\n    ipv4:             (issue) => `عنوان IPv4 غير صالح: القيمة المُدخلة ${issue.received}`,\n    ipv6:             (issue) => `عنوان IPv6 غير صالح: القيمة المُدخلة ${issue.received}`,\n    isbn:             (issue) => `ISBN غير صالح: القيمة المُدخلة ${issue.received}`,\n    isoDate:          (issue) => `تاريخ غير صالح: القيمة المُدخلة ${issue.received}`,\n    isoDateTime:      (issue) => `التاريخ والوقت غير صالحان: القيمة المُدخلة ${issue.received}`,\n    isoTime:          (issue) => `صيغة وقت غير صالحة: القيمة المُدخلة ${issue.received}`,\n    isoTimeSecond:    (issue) => `قيمة وقت بالثواني غير صالحة: القيمة المُدخلة ${issue.received}`,\n    isoTimestamp:     (issue) => `الطابع الزمني غير صالح: القيمة المُدخلة ${issue.received}`,\n    isoWeek:          (issue) => `أسبوع غير صالح: القيمة المُدخلة ${issue.received}`,\n    isrc:             (issue) => `ISRC غير صالح: القيمة المُدخلة ${issue.received}`,\n    jwsCompact:       (issue) => `ترميز JWS المضغوط غير صالح: القيمة المُدخلة ${issue.received}`,\n    length:           (issue) => `الطول غير صالح: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    ltValue:          (issue) => `قيمة غير صالحة: القيمة المتوقعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    mac:              (issue) => `عنوان MAC غير صالح: القيمة المُدخلة ${issue.received}`,\n    mac48:            (issue) => `عنوان 48-بت MAC غير صالح: القيمة المُدخلة ${issue.received}`,\n    mac64:            (issue) => `عنوان 64-بت MAC غير صالح: القيمة المُدخلة ${issue.received}`,\n    maxBytes:         (issue) => `حجم بايت غير صالح: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    maxEntries:       (issue) => `عدد الإدخالات غير صالح: القيمة المتوقعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    maxGraphemes:     (issue) => `عدد الرموز غير صالح: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    maxLength:        (issue) => `الطول غير صالح: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    maxSize:          (issue) => `حجم غير صالح: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    maxValue:         (issue) => `قيمة غير صالحة: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    maxWords:         (issue) => `عدد الكلمات غير صالح: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    mimeType:         (issue) => `نوع MIME غير صالح: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    minBytes:         (issue) => `حجم بايت غير صالح: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    minEntries:       (issue) => `عدد الإدخالات غير صالح: القيمة المتوقعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    minGraphemes:     (issue) => `عدد الرموز غير صالح: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    minLength:        (issue) => `طول غير صالح: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    minSize:          (issue) => `حجم غير صالح: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    minValue:         (issue) => `قيمة غير صالحة: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    minWords:         (issue) => `عدد الكلمات غير صالح: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    multipleOf:       (issue) => `متعدد غير صالح: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    nanoid:           (issue) => `معرّف Nano ID غير صالح: القيمة المُدخلة ${issue.received}`,\n    nonEmpty:         (issue) => `الطول غير صالح: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    notBytes:         (issue) => `حجم بايت غير صالح: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    notEntries:       (issue) => `عدد الإدخالات غير صالح: القيمة المتوقعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    notGraphemes:     (issue) => `عدد الرموز غير صالح: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    notLength:        (issue) => `طول غير صالح: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    notSize:          (issue) => `حجم غير صالح: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    notValue:         (issue) => `قيمة غير صالحة: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    notValues:        (issue) => `قيمة غير صالحة: القيمة المتوقعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    notWords:         (issue) => `عدد الكلمات غير صالح: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    octal:            (issue) => `رقم ثماني غير صالح: القيمة المُدخلة ${issue.received}`,\n    parseBoolean:     (issue) => `قيمة منطقية غير صالحة: القيمة المُدخلة ${issue.received}`,\n    parseJson:        (issue) => `JSON غير صالح: القيمة المُدخلة ${issue.received}`,\n    partialCheck:     (issue) => `مُدخل غير صالح: القيمة المُدخلة ${issue.received}`,\n    rawCheck:         (issue) => `إدخال غير صالح: القيمة المُدخلة ${issue.received}`,\n    rawTransform:     (issue) => `إدخال غير صالح: القيمة المُدخلة ${issue.received}`,\n    regex:            (issue) => `صيغة غير صالحة: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    rfcEmail:         (issue) => `بريد إلكتروني غير صالح: القيمة المُدخلة ${issue.received}`,\n    safeInteger:      (issue) => `رقم كامل آمن غير صالح: القيمة المُدخلة ${issue.received}`,\n    size:             (issue) => `حجم غير صالح: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    slug:             (issue) => `معرّف slug غير صالح: القيمة المُدخلة ${issue.received}`,\n    someItem:         (issue) => `عنصر غير صالح: القيمة المُدخلة ${issue.received}`,\n    startsWith:       (issue) => `بداية غير صالحة: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    stringifyJson:    (issue) => `JSON غير صالح: القيمة المُدخلة ${issue.received}`,\n    toBigint:         (issue) => `BigInt غير صالح: القيمة المُدخلة ${issue.received}`,\n    toDate:           (issue) => `تاريخ غير صالح: القيمة المُدخلة ${issue.received}`,\n    toNumber:         (issue) => `رقم غير صالح: القيمة المُدخلة ${issue.received}`,\n    toString:         (issue) => `نص غير صالح: القيمة المُدخلة ${issue.received}`,\n    ulid:             (issue) => `معرّف ULID غير صالح: القيمة المُدخلة ${issue.received}`,\n    url:              (issue) => `رابط غير صالح: القيمة المُدخلة ${issue.received}`,\n    uuid:             (issue) => `معرّف UUID غير صالح: القيمة المُدخلة ${issue.received}`,\n    value:            (issue) => `قيمة غير صالحة: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    values:           (issue) => `قيمة غير صالحة: القيمة المتوقعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n    words:            (issue) => `عدد الكلمات غير صالح: القيمة المتوقّعة ${issue.expected} لكن القيمة المُدخلة ${issue.received}`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/az.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'az',\n  schema:             (issue) => `Yanlış tip: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n  specific: {\n    base64:           (issue) => `Yanlış Base64: Alınan ${issue.received}`,\n    bic:              (issue) => `Yanlış BIC: Alınan ${issue.received}`,\n    bytes:            (issue) => `Yanlış bayt: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    check:            (issue) => `Yanlış giriş: Alınan ${issue.received}`,\n    checkAsync:       (issue) => `Yanlış giriş: Alınan ${issue.received}`,\n    checkItems:       (issue) => `Yanlış element: Alınan ${issue.received}`,\n    checkItemsAsync:  (issue) => `Yanlış element: Alınan ${issue.received}`,\n    creditCard:       (issue) => `Yanlış kredit kartı: Alınan ${issue.received}`,\n    cuid2:            (issue) => `Yanlış Cuid2: Alınan ${issue.received}`,\n    decimal:          (issue) => `Yanlış onluq ədəd: Alınan ${issue.received}`,\n    digits:           (issue) => `Yanlış rəqəmlər: Alınan ${issue.received}`,\n    domain:           (issue) => `Yanlış domen: Alınan ${issue.received}`,\n    email:            (issue) => `Yanlış e-poçt: Alınan ${issue.received}`,\n    emoji:            (issue) => `Yanlış emoji: Alınan ${issue.received}`,\n    empty:            (issue) => `Yanlış uzunluq: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    endsWith:         (issue) => `Yanlış sonluq: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    entries:          (issue) => `Yanlış giriş sayı: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    everyItem:        (issue) => `Yanlış element: Alınan ${issue.received}`,\n    excludes:         (issue) => `Yanlış məzmun: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    finite:           (issue) => `Yanlış sonlu ədəd: Alınan ${issue.received}`,\n    graphemes:        (issue) => `Yanlış qrafem: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    gtValue:          (issue) => `Yanlış dəyər: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    guard:            (issue) => `Yanlış giriş: Alınan ${issue.received}`,\n    hash:             (issue) => `Yanlış hash: Alınan ${issue.received}`,\n    hexadecimal:      (issue) => `Yanlış onaltılıq: Alınan ${issue.received}`,\n    hexColor:         (issue) => `Yanlış hex rəng: Alınan ${issue.received}`,\n    imei:             (issue) => `Yanlış IMEI: Alınan ${issue.received}`,\n    includes:         (issue) => `Yanlış məzmun: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    integer:          (issue) => `Yanlış tam ədəd: Alınan ${issue.received}`,\n    ip:               (issue) => `Yanlış IP: Alınan ${issue.received}`,\n    ipv4:             (issue) => `Yanlış IPv4: Alınan ${issue.received}`,\n    ipv6:             (issue) => `Yanlış IPv6: Alınan ${issue.received}`,\n    isbn:             (issue) => `Yanlış ISBN: Alınan ${issue.received}`,\n    isoDate:          (issue) => `Yanlış tarix: Alınan ${issue.received}`,\n    isoDateTime:      (issue) => `Yanlış tarix-vaxt: Alınan ${issue.received}`,\n    isoTime:          (issue) => `Yanlış vaxt: Alınan ${issue.received}`,\n    isoTimeSecond:    (issue) => `Yanlış saniyəli vaxt: Alınan ${issue.received}`,\n    isoTimestamp:     (issue) => `Yanlış zaman möhürü: Alınan ${issue.received}`,\n    isoWeek:          (issue) => `Yanlış həftə: Alınan ${issue.received}`,\n    isrc:             (issue) => `Yanlış ISRC: Alınan ${issue.received}`,\n    jwsCompact:       (issue) => `Yanlış kompakt JWS: Alınan ${issue.received}`,\n    length:           (issue) => `Yanlış uzunluq: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    ltValue:          (issue) => `Yanlış dəyər: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    mac:              (issue) => `Yanlış MAC: Alınan ${issue.received}`,\n    mac48:            (issue) => `Yanlış 48-bit MAC: Alınan ${issue.received}`,\n    mac64:            (issue) => `Yanlış 64-bit MAC: Alınan ${issue.received}`,\n    maxBytes:         (issue) => `Yanlış bayt: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    maxEntries:       (issue) => `Yanlış giriş sayı: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    maxGraphemes:     (issue) => `Yanlış qrafem: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    maxLength:        (issue) => `Yanlış uzunluq: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    maxSize:          (issue) => `Yanlış ölçü: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    maxValue:         (issue) => `Yanlış dəyər: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    maxWords:         (issue) => `Yanlış söz sayı: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    mimeType:         (issue) => `Yanlış MIME tipi: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    minBytes:         (issue) => `Yanlış bayt: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    minEntries:       (issue) => `Yanlış giriş sayı: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    minGraphemes:     (issue) => `Yanlış qrafem: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    minLength:        (issue) => `Yanlış uzunluq: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    minSize:          (issue) => `Yanlış ölçü: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    minValue:         (issue) => `Yanlış dəyər: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    minWords:         (issue) => `Yanlış söz sayı: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    multipleOf:       (issue) => `Yanlış qat: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    nanoid:           (issue) => `Yanlış Nano ID: Alınan ${issue.received}`,\n    nonEmpty:         (issue) => `Yanlış uzunluq: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    notBytes:         (issue) => `Yanlış bayt: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    notEntries:       (issue) => `Yanlış giriş sayı: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    notGraphemes:     (issue) => `Yanlış qrafem: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    notLength:        (issue) => `Yanlış uzunluq: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    notSize:          (issue) => `Yanlış ölçü: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    notValue:         (issue) => `Yanlış dəyər: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    notValues:        (issue) => `Yanlış dəyər: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    notWords:         (issue) => `Yanlış söz sayı: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    octal:            (issue) => `Yanlış səkkizlik: Alınan ${issue.received}`,\n    parseBoolean:     (issue) => `Yanlış boolean: Alınan ${issue.received}`,\n    parseJson:        (issue) => `Yanlış JSON: Alınan ${issue.received}`,\n    partialCheck:     (issue) => `Yanlış giriş: Alınan ${issue.received}`,\n    rawCheck:         (issue) => `Yanlış giriş: Alınan ${issue.received}`,\n    rawTransform:     (issue) => `Yanlış giriş: Alınan ${issue.received}`,\n    regex:            (issue) => `Yanlış format: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    rfcEmail:         (issue) => `Yanlış e-poçt: Alınan ${issue.received}`,\n    safeInteger:      (issue) => `Yanlış təhlükəsiz tam ədəd: Alınan ${issue.received}`,\n    size:             (issue) => `Yanlış ölçü: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    slug:             (issue) => `Yanlış slug: Alınan ${issue.received}`,\n    someItem:         (issue) => `Yanlış element: Alınan ${issue.received}`,\n    startsWith:       (issue) => `Yanlış başlanğıc: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    stringifyJson:    (issue) => `Yanlış JSON: Alınan ${issue.received}`,\n    toBigint:         (issue) => `Yanlış bigint: Alınan ${issue.received}`,\n    toDate:           (issue) => `Yanlış tarix: Alınan ${issue.received}`,\n    toNumber:         (issue) => `Yanlış ədəd: Alınan ${issue.received}`,\n    toString:         (issue) => `Yanlış sətir: Alınan ${issue.received}`,\n    ulid:             (issue) => `Yanlış ULID: Alınan ${issue.received}`,\n    url:              (issue) => `Yanlış URL: Alınan ${issue.received}`,\n    uuid:             (issue) => `Yanlış UUID: Alınan ${issue.received}`,\n    value:            (issue) => `Yanlış dəyər: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    values:           (issue) => `Yanlış dəyər: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n    words:            (issue) => `Yanlış söz sayı: Gözlənilən ${issue.expected} lakin alınan ${issue.received}`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/ca.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'ca',\n  schema:             (issue) => `Tipus invàlid: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n  specific: {\n    base64:           (issue) => `Base64 invàlid: S'ha rebut ${issue.received}`,\n    bic:              (issue) => `BIC invàlid: S'ha rebut ${issue.received}`,\n    bytes:            (issue) => `Bytes invàlids: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    check:            (issue) => `Valor invàlid: S'ha rebut ${issue.received}`,\n    checkAsync:       (issue) => `Valor invàlid: S'ha rebut ${issue.received}`,\n    checkItems:       (issue) => `Element invàlids: S'ha rebut ${issue.received}`,\n    checkItemsAsync:  (issue) => `Element invàlids: S'ha rebut ${issue.received}`,\n    creditCard:       (issue) => `Targeta de crèdit invàlida: S'ha rebut ${issue.received}`,\n    cuid2:            (issue) => `Cuid2 invàlid: S'ha rebut ${issue.received}`,\n    decimal:          (issue) => `Decimal invàlid: S'ha rebut ${issue.received}`,\n    digits:           (issue) => `Dígits invàlids: S'ha rebut ${issue.received}`,\n    domain:           (issue) => `Domini invàlid: S'ha rebut ${issue.received}`,\n    email:            (issue) => `Correu electrònic invàlid: S'ha rebut ${issue.received}`,\n    emoji:            (issue) => `Emoji invàlid: S'ha rebut ${issue.received}`,\n    empty:            (issue) => `Llargada invàlida: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    endsWith:         (issue) => `Final invàlid: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    entries:          (issue) => `Entrades invàlides: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    everyItem:        (issue) => `Element invàlid: S'ha rebut ${issue.received}`,\n    excludes:         (issue) => `Contingut invàlid: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    finite:           (issue) => `Finit invàlid: S'ha rebut ${issue.received}`,\n    graphemes:        (issue) => `Gràfems invàlids: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    gtValue:          (issue) => `Valor invàlid: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    guard:            (issue) => `Entrada invàlida: S'ha rebut ${issue.received}`,\n    hash:             (issue) => `Hash invàlid: S'ha rebut ${issue.received}`,\n    hexadecimal:      (issue) => `Hexadecimal invàlid: S'ha rebut ${issue.received}`,\n    hexColor:         (issue) => `Color hexadecimal invàlid: S'ha rebut ${issue.received}`,\n    imei:             (issue) => `IMEI invàlid: S'ha rebut ${issue.received}`,\n    includes:         (issue) => `Contingut invàlid: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    integer:          (issue) => `Enter invàlid: S'ha rebut ${issue.received}`,\n    ip:               (issue) => `IP invàlida: S'ha rebut ${issue.received}`,\n    ipv4:             (issue) => `IPv4 invàlid: S'ha rebut ${issue.received}`,\n    ipv6:             (issue) => `IPv6 invàlid: S'ha rebut ${issue.received}`,\n    isbn:             (issue) => `ISBN invàlid: S'ha rebut ${issue.received}`,\n    isoDate:          (issue) => `Data invàlida: S'ha rebut ${issue.received}`,\n    isoDateTime:      (issue) => `Data-hora invàlida: S'ha rebut ${issue.received}`,\n    isoTime:          (issue) => `Hora invàlida: S'ha rebut ${issue.received}`,\n    isoTimeSecond:    (issue) => `Segon de temps invàlid: S'ha rebut ${issue.received}`,\n    isoTimestamp:     (issue) => `Timestamp invàlid: S'ha rebut ${issue.received}`,\n    isoWeek:          (issue) => `Setmana invàlida: S'ha rebut ${issue.received}`,\n    isrc:             (issue) => `ISRC invàlid: S'ha rebut ${issue.received}`,\n    jwsCompact:       (issue) => `JWS compacte invàlid: S'ha rebut ${issue.received}`,\n    length:           (issue) => `Llargada invàlida: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    ltValue:          (issue) => `Valor invàlid: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    mac:              (issue) => `MAC invàlida: S'ha rebut ${issue.received}`,\n    mac48:            (issue) => `MAC de 48 bits invàlida: S'ha rebut ${issue.received}`,\n    mac64:            (issue) => `MAC de 64 bits invàlida: S'ha rebut ${issue.received}`,\n    maxBytes:         (issue) => `Quantitat de bytes invàlida: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    maxEntries:       (issue) => `Entrades invàlides: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    maxGraphemes:     (issue) => `Gràfems invàlids: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    maxLength:        (issue) => `Llargada invàlida: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    maxSize:          (issue) => `Mida invàlida: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    maxValue:         (issue) => `Valor invàlid: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    maxWords:         (issue) => `Paraules invàlides: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    mimeType:         (issue) => `Tipus de MIME invàlid: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    minBytes:         (issue) => `Quantitat de bytes invàlida: S'esperava mínim ${issue.expected} però s'ha rebut ${issue.received}`,\n    minEntries:       (issue) => `Entrades invàlides: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    minGraphemes:     (issue) => `Gràfems invàlids: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    minLength:        (issue) => `Llargada invàlida: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    minSize:          (issue) => `Mida invàlida: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    minValue:         (issue) => `Valor invàlid: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    minWords:         (issue) => `Paraules invàlides: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    multipleOf:       (issue) => `Múltiple invàlid: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    nanoid:           (issue) => `Nano ID invàlid: S'ha rebut ${issue.received}`,\n    nonEmpty:         (issue) => `Llargada invàlida: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    notBytes:         (issue) => `Bytes invàlids: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    notEntries:       (issue) => `Entrades invàlides: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    notGraphemes:     (issue) => `Gràfems invàlids: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    notLength:        (issue) => `Llargada invàlida: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    notSize:          (issue) => `Mida invàlida: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    notValue:         (issue) => `Valor invàlid: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    notValues:        (issue) => `Valor invàlid: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    notWords:         (issue) => `Paraules invàlides: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    octal:            (issue) => `Octal invàlid: S'ha rebut ${issue.received}`,\n    parseBoolean:     (issue) => `Booleà invàlid: S'ha rebut ${issue.received}`,\n    parseJson:        (issue) => `JSON invàlid: S'ha rebut ${issue.received}`,\n    partialCheck:     (issue) => `Valor invàlid: S'ha rebut ${issue.received}`,\n    rawCheck:         (issue) => `Entrada invàlida: S'ha rebut ${issue.received}`,\n    rawTransform:     (issue) => `Entrada invàlida: S'ha rebut ${issue.received}`,\n    regex:            (issue) => `Format invàlid: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    rfcEmail:         (issue) => `Correu electrònic invàlid: S'ha rebut ${issue.received}`,\n    safeInteger:      (issue) => `Enter segur invàlid: S'ha rebut ${issue.received}`,\n    size:             (issue) => `Mida invàlida: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    slug:             (issue) => `Slug invàlid: S'ha rebut ${issue.received}`,\n    someItem:         (issue) => `Element invàlid: S'ha rebut ${issue.received}`,\n    startsWith:       (issue) => `Inici invàlid: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    stringifyJson:    (issue) => `JSON invàlid: S'ha rebut ${issue.received}`,\n    toBigint:         (issue) => `BigInt invàlid: S'ha rebut ${issue.received}`,\n    toDate:           (issue) => `Data invàlida: S'ha rebut ${issue.received}`,\n    toNumber:         (issue) => `Número invàlid: S'ha rebut ${issue.received}`,\n    toString:         (issue) => `Cadena invàlida: S'ha rebut ${issue.received}`,\n    ulid:             (issue) => `ULID invàlid: S'ha rebut ${issue.received}`,\n    url:              (issue) => `URL invàlida: S'ha rebut ${issue.received}`,\n    uuid:             (issue) => `UUID invàlid: S'ha rebut ${issue.received}`,\n    value:            (issue) => `Valor invàlid: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    values:           (issue) => `Valor invàlid: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n    words:            (issue) => `Paraules invàlides: S'esperava ${issue.expected} però s'ha rebut ${issue.received}`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/cs.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'cs',\n  schema:             (issue) => `Neplatný typ: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n  specific: {\n    base64:           (issue) => `Neplatný Base64: Obdrženo ${issue.received}`,\n    bic:              (issue) => `Neplatný BIC: Obdrženo ${issue.received}`,\n    bytes:            (issue) => `Neplatné bajty: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    check:            (issue) => `Neplatný vstup: Obdrženo ${issue.received}`,\n    checkAsync:       (issue) => `Neplatný vstup: Obdrženo ${issue.received}`,\n    checkItems:       (issue) => `Neplatná položka: Obdrženo ${issue.received}`,\n    checkItemsAsync:  (issue) => `Neplatná položka: Obdrženo ${issue.received}`,\n    creditCard:       (issue) => `Neplatná hodnota kreditní karty: Obdrženo ${issue.received}`,\n    cuid2:            (issue) => `Neplatné Cuid2: Obdrženo ${issue.received}`,\n    decimal:          (issue) => `Neplatné desetinné číslo: Obdrženo ${issue.received}`,\n    digits:           (issue) => `Neplatné číslice: Obdrženo ${issue.received}`,\n    domain:           (issue) => `Neplatná doména: Obdrženo ${issue.received}`,\n    email:            (issue) => `Neplatný email: Obdrženo ${issue.received}`,\n    emoji:            (issue) => `Neplatné emoji: Obdrženo ${issue.received}`,\n    empty:            (issue) => `Neplatná délka: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    endsWith:         (issue) => `Neplatný konec: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    entries:          (issue) => `Neplatný počet položek: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    everyItem:        (issue) => `Neplatná položka: Obdrženo ${issue.received}`,\n    excludes:         (issue) => `Neplatný obsah: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    finite:           (issue) => `Neplatné konečné číslo: Obdrženo ${issue.received}`,\n    graphemes:        (issue) => `Překročena maximální délka grafémů: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    gtValue:          (issue) => `Neplatná hodnota: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    guard:            (issue) => `Neplatný vstup: Obdrženo ${issue.received}`,\n    hash:             (issue) => `Neplatný hash: Obdrženo ${issue.received}`,\n    hexadecimal:      (issue) => `Neplatné hexadecimální číslo: Obdrženo ${issue.received}`,\n    hexColor:         (issue) => `Neplatná hexadecimální barva: Obdrženo ${issue.received}`,\n    imei:             (issue) => `Neplatné IMEI: Obdrženo ${issue.received}`,\n    includes:         (issue) => `Neplatný obsah: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    integer:          (issue) => `Neplatné celé číslo: Obdrženo ${issue.received}`,\n    ip:               (issue) => `Neplatná IP adresa: Obdrženo ${issue.received}`,\n    ipv4:             (issue) => `Neplatná IPv4 adresa: Obdrženo ${issue.received}`,\n    ipv6:             (issue) => `Neplatná IPv6 adresa: Obdrženo ${issue.received}`,\n    isbn:             (issue) => `Neplatné ISBN: Obdrženo ${issue.received}`,\n    isoDate:          (issue) => `Neplatné datum: Obdrženo ${issue.received}`,\n    isoDateTime:      (issue) => `Neplatné datum a čas: Obdrženo ${issue.received}`,\n    isoTime:          (issue) => `Neplatný čas: Očekáváno \"hh:mm\", ale obdrženo ${issue.received}`,\n    isoTimeSecond:    (issue) => `Neplatný čas: Očekáváno \"hh:mm:ss\", ale obdrženo ${issue.received}`,\n    isoTimestamp:     (issue) => `Neplatný časový údaj: Očekáván ISO 8601 formát, ale obdrženo ${issue.received}`,\n    isoWeek:          (issue) => `Neplatný týden: Obdrženo ${issue.received}`,\n    isrc:             (issue) => `Neplatné ISRC: Obdrženo ${issue.received}`,\n    jwsCompact:       (issue) => `Neplatné kompaktní JWS: Obdrženo ${issue.received}`,\n    length:           (issue) => `Neplatná délka: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    ltValue:          (issue) => `Neplatná hodnota: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    mac:              (issue) => `Neplatná MAC adresa: Obdrženo ${issue.received}`,\n    mac48:            (issue) => `Neplatná 48-bitová MAC adresa: Obdrženo ${issue.received}`,\n    mac64:            (issue) => `Neplatná 64-bitová MAC adresa: Obdrženo ${issue.received}`,\n    maxBytes:         (issue) => `Překročena maximální hodnota v bajtech (bytes): Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    maxEntries:       (issue) => `Neplatný počet položek: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    maxGraphemes:     (issue) => `Překročena maximální délka grafémů: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    maxLength:        (issue) => `Překročena maximální délka: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    maxSize:          (issue) => `Překročena maximální velikost: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    maxValue:         (issue) => `Překročena maximální hodnota: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    maxWords:         (issue) => `Překročena maximální délka slov: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    mimeType:         (issue) => `Neplatný MIME typ: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    minBytes:         (issue) => `Nedostatečná minimální délka bajtů (bytes): Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    minEntries:       (issue) => `Neplatný počet položek: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    minGraphemes:     (issue) => `Nedostatečná minimální délka grafémů: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    minLength:        (issue) => `Nedostatečná minimální délka: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    minSize:          (issue) => `Nedostatečná minimální velikost: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    minValue:         (issue) => `Nedostatečná minimální hodnota: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    minWords:         (issue) => `Nedostatečná minimální délka slov: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    multipleOf:       (issue) => `Neplatný násobek: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    nanoid:           (issue) => `Neplatné Nano ID: Obdrženo ${issue.received}`,\n    nonEmpty:         (issue) => `Nedostatečná délka: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    notBytes:         (issue) => `Nedostatečná minimální délka bajtů (bytes): Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    notEntries:       (issue) => `Neplatný počet položek: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    notGraphemes:     (issue) => `Nedostatečná minimální délka grafémů: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    notLength:        (issue) => `Nedostatečná délka: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    notSize:          (issue) => `Nedostatečná minimální velikost: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    notValue:         (issue) => `Nedostatečná minimální hodnota: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    notValues:        (issue) => `Neplatná hodnota: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    notWords:         (issue) => `Nedostatečná minimální délka slov: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    octal:            (issue) => `Neplatné osmičkové číslo: Obdrženo ${issue.received}`,\n    parseBoolean:     (issue) => `Neplatná logická hodnota: Obdrženo ${issue.received}`,\n    parseJson:        (issue) => `Neplatný JSON: Obdrženo ${issue.received}`,\n    partialCheck:     (issue) => `Neplatný vstup: Obdrženo ${issue.received}`,\n    rawCheck:         (issue) => `Neplatný vstup: Obdrženo ${issue.received}`,\n    rawTransform:     (issue) => `Neplatný vstup: Obdrženo ${issue.received}`,\n    regex:            (issue) => `Neplatný formát: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    rfcEmail:         (issue) => `Neplatný email: Obdrženo ${issue.received}`,\n    safeInteger:      (issue) => `Neplatné bezpečné celé číslo: Obdrženo ${issue.received}`,\n    size:             (issue) => `Neplatná velikost: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    slug:             (issue) => `Neplatný slug: Obdrženo ${issue.received}`,\n    someItem:         (issue) => `Neplatná položka: Obdrženo ${issue.received}`,\n    startsWith:       (issue) => `Neplatný začátek: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    stringifyJson:    (issue) => `Neplatný JSON: Obdrženo ${issue.received}`,\n    toBigint:         (issue) => `Neplatný bigint: Obdrženo ${issue.received}`,\n    toDate:           (issue) => `Neplatné datum: Obdrženo ${issue.received}`,\n    toNumber:         (issue) => `Neplatné číslo: Obdrženo ${issue.received}`,\n    toString:         (issue) => `Neplatný řetězec: Obdrženo ${issue.received}`,\n    ulid:             (issue) => `Neplatné ULID: Obdrženo ${issue.received}`,\n    url:              (issue) => `Neplatná URL: Obdrženo ${issue.received}`,\n    uuid:             (issue) => `Neplatné UUID: Obdrženo ${issue.received}`,\n    value:            (issue) => `Neplatná hodnota: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    values:           (issue) => `Neplatná hodnota: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n    words:            (issue) => `Překročena maximální délka slov: Očekáváno ${issue.expected}, ale obdrženo ${issue.received}`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/de.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'de',\n  schema:             (issue) => `Ungültiger Typ: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n  specific: {\n    base64:           (issue) => `Ungültiges Base64: ${issue.received} erhalten`,\n    bic:              (issue) => `Ungültiger BIC: ${issue.received} erhalten`,\n    bytes:            (issue) => `Ungültige Bytes: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    check:            (issue) => `Ungültige Eingabe: ${issue.received} erhalten`,\n    checkAsync:       (issue) => `Ungültige Eingabe: ${issue.received} erhalten`,\n    checkItems:       (issue) => `Ungültiges Element: ${issue.received} erhalten`,\n    checkItemsAsync:  (issue) => `Ungültiges Element: ${issue.received} erhalten`,\n    creditCard:       (issue) => `Ungültige Kreditkarte: ${issue.received} erhalten`,\n    cuid2:            (issue) => `Ungültige Cuid2: ${issue.received} erhalten`,\n    decimal:          (issue) => `Ungültige Dezimale: ${issue.received} erhalten`,\n    digits:           (issue) => `Ungültige Ziffern: ${issue.received} erhalten`,\n    domain:           (issue) => `Ungültige Domain: ${issue.received} erhalten`,\n    email:            (issue) => `Ungültige E-Mail: ${issue.received} erhalten`,\n    emoji:            (issue) => `Ungültiges Emoji: ${issue.received} erhalten`,\n    empty:            (issue) => `Ungültige Länge: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    endsWith:         (issue) => `Ungültiges Ende: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    entries:          (issue) => `Ungültige Einträge: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    everyItem:        (issue) => `Ungültiges Element: ${issue.received} erhalten`,\n    excludes:         (issue) => `Ungültiger Inhalt: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    finite:           (issue) => `Ungültiges Endliche: ${issue.received} erhalten`,\n    graphemes:        (issue) => `Ungültige Grapheme: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    gtValue:          (issue) => `Ungültiger Wert: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    guard:            (issue) => `Ungültige Eingabe: ${issue.received} erhalten`,\n    hash:             (issue) => `Ungültiger Hash: ${issue.received} erhalten`,\n    hexadecimal:      (issue) => `Ungültige Hexadezimale: ${issue.received} erhalten`,\n    hexColor:         (issue) => `Ungültige Hex-Farbe: ${issue.received} erhalten`,\n    imei:             (issue) => `Ungültige IMEI: ${issue.received} erhalten`,\n    includes:         (issue) => `Ungültiger Inhalt: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    integer:          (issue) => `Ungültige Ganzzahl: ${issue.received} erhalten`,\n    ip:               (issue) => `Ungültige IP: ${issue.received} erhalten`,\n    ipv4:             (issue) => `Ungültige IPv4: ${issue.received} erhalten`,\n    ipv6:             (issue) => `Ungültige IPv6: ${issue.received} erhalten`,\n    isbn:             (issue) => `Ungültige ISBN: ${issue.received} erhalten`,\n    isoDate:          (issue) => `Ungültiges Datum: ${issue.received} erhalten`,\n    isoDateTime:      (issue) => `Ungültige Datums-Zeit: ${issue.received} erhalten`,\n    isoTime:          (issue) => `Ungültige Zeit: ${issue.received} erhalten`,\n    isoTimeSecond:    (issue) => `Ungültige Zeitsekunde: ${issue.received} erhalten`,\n    isoTimestamp:     (issue) => `Ungültiger Zeitstempel: ${issue.received} erhalten`,\n    isoWeek:          (issue) => `Ungültige Woche: ${issue.received} erhalten`,\n    isrc:             (issue) => `Ungültige ISRC: ${issue.received} erhalten`,\n    jwsCompact:       (issue) => `Ungültiges kompaktes JWS: ${issue.received} erhalten`,\n    length:           (issue) => `Ungültige Länge: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    ltValue:          (issue) => `Ungültiger Wert: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    mac:              (issue) => `Ungültige MAC: ${issue.received} erhalten`,\n    mac48:            (issue) => `Ungültige 48-bit MAC: ${issue.received} erhalten`,\n    mac64:            (issue) => `Ungültige 64-bit MAC: ${issue.received} erhalten`,\n    maxBytes:         (issue) => `Ungültige Bytes: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    maxEntries:       (issue) => `Ungültige Einträge: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    maxGraphemes:     (issue) => `Ungültige Grapheme: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    maxLength:        (issue) => `Ungültige Länge: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    maxSize:          (issue) => `Ungültige Größe: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    maxValue:         (issue) => `Ungültiger Wert: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    maxWords:         (issue) => `Ungültige Wörter: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    mimeType:         (issue) => `Ungültiger MIME-Typ: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    minBytes:         (issue) => `Ungültige Bytes: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    minEntries:       (issue) => `Ungültige Einträge: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    minGraphemes:     (issue) => `Ungültige Grapheme: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    minLength:        (issue) => `Ungültige Länge: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    minSize:          (issue) => `Ungültige Größe: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    minValue:         (issue) => `Ungültiger Wert: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    minWords:         (issue) => `Ungültige Wörter: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    multipleOf:       (issue) => `Ungültiges Vielfaches: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    nanoid:           (issue) => `Ungültige Nano-ID: ${issue.received} erhalten`,\n    nonEmpty:         (issue) => `Ungültige Länge: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    notBytes:         (issue) => `Ungültige Bytes: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    notEntries:       (issue) => `Ungültige Einträge: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    notGraphemes:     (issue) => `Ungültige Grapheme: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    notLength:        (issue) => `Ungültige Länge: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    notSize:          (issue) => `Ungültige Größe: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    notValue:         (issue) => `Ungültiger Wert: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    notValues:        (issue) => `Ungültiger Wert: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    notWords:         (issue) => `Ungültige Wörter: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    octal:            (issue) => `Ungültiges Octal: ${issue.received} erhalten`,\n    parseBoolean:     (issue) => `Ungültiger boolescher Wert: ${issue.received} erhalten`,\n    parseJson:        (issue) => `Ungültiges JSON: ${issue.received} erhalten`,\n    partialCheck:     (issue) => `Ungültige Eingabe: ${issue.received} erhalten`,\n    rawCheck:         (issue) => `Ungültige Eingabe: ${issue.received} erhalten`,\n    rawTransform:     (issue) => `Ungültige Eingabe: ${issue.received} erhalten`,\n    regex:            (issue) => `Ungültiges Format: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    rfcEmail:         (issue) => `Ungültige E-Mail: ${issue.received} erhalten`,\n    safeInteger:      (issue) => `Ungültige sichere Ganzzahl: ${issue.received} erhalten`,\n    size:             (issue) => `Ungültige Größe: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    slug:             (issue) => `Ungültiger Slug: ${issue.received} erhalten`,\n    someItem:         (issue) => `Ungültiges Element: ${issue.received} erhalten`,\n    startsWith:       (issue) => `Ungültiger Start: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    stringifyJson:    (issue) => `Ungültiges JSON: ${issue.received} erhalten`,\n    toBigint:         (issue) => `Ungültiger BigInt: ${issue.received} erhalten`,\n    toDate:           (issue) => `Ungültiges Datum: ${issue.received} erhalten`,\n    toNumber:         (issue) => `Ungültige Zahl: ${issue.received} erhalten`,\n    toString:         (issue) => `Ungültige Zeichenkette: ${issue.received} erhalten`,\n    ulid:             (issue) => `Ungültige ULID: ${issue.received} erhalten`,\n    url:              (issue) => `Ungültige URL: ${issue.received} erhalten`,\n    uuid:             (issue) => `Ungültige UUID: ${issue.received} erhalten`,\n    value:            (issue) => `Ungültiger Wert: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    values:           (issue) => `Ungültiger Wert: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n    words:            (issue) => `Ungültige Wörter: ${issue.expected} erwartet aber ${issue.received} erhalten`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/el.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'el',\n  schema:             (issue) => `Λάθος τύπος: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n  specific: {\n    base64:           (issue) => `Λάθος Base64: Ήρθε ${issue.received}`,\n    bic:              (issue) => `Λάθος BIC: Ήρθε ${issue.received}`,\n    bytes:            (issue) => `Λάθος bytes: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    check:            (issue) => `Λάθος είσοδος: Ήρθε ${issue.received}`,\n    checkAsync:       (issue) => `Λάθος είσοδος: Ήρθε ${issue.received}`,\n    checkItems:       (issue) => `Λάθος στοιχείο: Ήρθε ${issue.received}`,\n    checkItemsAsync:  (issue) => `Λάθος στοιχείο: Ήρθε ${issue.received}`,\n    creditCard:       (issue) => `Λάθος πιστωτική κάρτα: Ήρθε ${issue.received}`,\n    cuid2:            (issue) => `Λάθος Cuid2: Ήρθε ${issue.received}`,\n    decimal:          (issue) => `Λάθος δεκαδικός: Ήρθε ${issue.received}`,\n    digits:           (issue) => `Λάθος ψηφία: Ήρθε ${issue.received}`,\n    domain:           (issue) => `Λάθος τομέας: Ήρθε ${issue.received}`,\n    email:            (issue) => `Λάθος email: Ήρθε ${issue.received}`,\n    emoji:            (issue) => `Λάθος emoji: Ήρθε ${issue.received}`,\n    empty:            (issue) => `Λάθος μέγεθος: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    endsWith:         (issue) => `Λάθος τέλος: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    entries:          (issue) => `Λάθος καταχωρήσεις: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    everyItem:        (issue) => `Λάθος στοιχείο: Ήρθε ${issue.received}`,\n    excludes:         (issue) => `Λάθος περιεχόμενο: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    finite:           (issue) => `Μη πεπερασμένη τιμή: Ήρθε ${issue.received}`,\n    graphemes:        (issue) => `Λάθος γραφήματα: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    gtValue:          (issue) => `Λάθος τιμή: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    guard:            (issue) => `Λάθος είσοδος: Ήρθε ${issue.received}`,\n    hash:             (issue) => `Λάθος σύνοψη: Ήρθε ${issue.received}`,\n    hexadecimal:      (issue) => `Λάθος δεκαεξαδικός: Ήρθε ${issue.received}`,\n    hexColor:         (issue) => `Λάθος hex χρώμα: Ήρθε ${issue.received}`,\n    imei:             (issue) => `Λάθος IMEI: Ήρθε ${issue.received}`,\n    includes:         (issue) => `Λάθος περιεχόμενο: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    integer:          (issue) => `Λάθος ακέραιος: Ήρθε ${issue.received}`,\n    ip:               (issue) => `Λάθος IP: Ήρθε ${issue.received}`,\n    ipv4:             (issue) => `Λάθος IPv4: Ήρθε ${issue.received}`,\n    ipv6:             (issue) => `Λάθος IPv6: Ήρθε ${issue.received}`,\n    isbn:             (issue) => `Λάθος ISBN: Ήρθε ${issue.received}`,\n    isoDate:          (issue) => `Λάθος ημερομηνία: Ήρθε ${issue.received}`,\n    isoDateTime:      (issue) => `Λάθος ημερομηνία-ώρα: Ήρθε ${issue.received}`,\n    isoTime:          (issue) => `Λάθος ώρα: Ήρθε ${issue.received}`,\n    isoTimeSecond:    (issue) => `Λάθος ώρα με δευτερόλεπτα: Ήρθε ${issue.received}`,\n    isoTimestamp:     (issue) => `Λάθος χρονοσήμανση: Ήρθε ${issue.received}`,\n    isoWeek:          (issue) => `Λάθος εβδομάδα: Ήρθε ${issue.received}`,\n    isrc:             (issue) => `Λάθος ISRC: Ήρθε ${issue.received}`,\n    jwsCompact:       (issue) => `Λάθος συμπαγές JWS: Ήρθε ${issue.received}`,\n    length:           (issue) => `Λάθος μήκος: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    ltValue:          (issue) => `Λάθος τιμή: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    mac:              (issue) => `Λάθος MAC: Ήρθε ${issue.received}`,\n    mac48:            (issue) => `Λάθος 48-bit MAC: Ήρθε ${issue.received}`,\n    mac64:            (issue) => `Λάθος 64-bit MAC: Ήρθε ${issue.received}`,\n    maxBytes:         (issue) => `Λάθος bytes: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    maxEntries:       (issue) => `Λάθος καταχωρήσεις: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    maxGraphemes:     (issue) => `Λάθος γραφήματα: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    maxLength:        (issue) => `Λάθος μήκος: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    maxSize:          (issue) => `Λάθος μέγεθος: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    maxValue:         (issue) => `Λάθος τιμή: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    maxWords:         (issue) => `Λάθος λέξεις: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    mimeType:         (issue) => `Λάθος τύπος MIME: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    minBytes:         (issue) => `Λάθος bytes: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    minEntries:       (issue) => `Λάθος καταχωρήσεις: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    minGraphemes:     (issue) => `Λάθος γραφήματα: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    minLength:        (issue) => `Λάθος μήκος: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    minSize:          (issue) => `Λάθος μέγεθος: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    minValue:         (issue) => `Λάθος τιμή: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    minWords:         (issue) => `Λάθος λέξεις: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    multipleOf:       (issue) => `Λάθος πολλαπλάσιο: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    nanoid:           (issue) => `Λάθος Nano ID: Ήρθε ${issue.received}`,\n    nonEmpty:         (issue) => `Λάθος μήκος: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    notBytes:         (issue) => `Λάθος bytes: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    notEntries:       (issue) => `Λάθος καταχωρήσεις: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    notGraphemes:     (issue) => `Λάθος γραφήματα: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    notLength:        (issue) => `Λάθος μήκος: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    notSize:          (issue) => `Λάθος μέγεθος: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    notValue:         (issue) => `Λάθος τιμή: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    notValues:        (issue) => `Λάθος τιμές: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    notWords:         (issue) => `Λάθος λέξεις: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    octal:            (issue) => `Λάθος οκταδικός: Ήρθε ${issue.received}`,\n    parseBoolean:     (issue) => `Λάθος λογική τιμή: Ήρθε ${issue.received}`,\n    parseJson:        (issue) => `Λάθος JSON: Ήρθε ${issue.received}`,\n    partialCheck:     (issue) => `Λάθος είσοδος: Ήρθε ${issue.received}`,\n    rawCheck:         (issue) => `Λάθος είσοδος: Ήρθε ${issue.received}`,\n    rawTransform:     (issue) => `Λάθος είσοδος: Ήρθε ${issue.received}`,\n    regex:            (issue) => `Λάθος μορφή: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    rfcEmail:         (issue) => `Λάθος email: Ήρθε ${issue.received}`,\n    safeInteger:      (issue) => `Λάθος ασφαλής ακέραιος: Ήρθε ${issue.received}`,\n    size:             (issue) => `Λάθος μέγεθος: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    slug:             (issue) => `Λάθος αναγνωριστικό: Ήρθε ${issue.received}`,\n    someItem:         (issue) => `Λάθος στοιχείο: Ήρθε ${issue.received}`,\n    startsWith:       (issue) => `Λάθος αρχή: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    stringifyJson:    (issue) => `Λάθος JSON: Ήρθε ${issue.received}`,\n    toBigint:         (issue) => `Λάθος BigInt: Ήρθε ${issue.received}`,\n    toDate:           (issue) => `Λάθος ημερομηνία: Ήρθε ${issue.received}`,\n    toNumber:         (issue) => `Λάθος αριθμός: Ήρθε ${issue.received}`,\n    toString:         (issue) => `Λάθος συμβολοσειρά: Ήρθε ${issue.received}`,\n    ulid:             (issue) => `Λάθος ULID: Ήρθε ${issue.received}`,\n    url:              (issue) => `Λάθος URL: Ήρθε ${issue.received}`,\n    uuid:             (issue) => `Λάθος UUID: Ήρθε ${issue.received}`,\n    value:            (issue) => `Λάθος τιμή: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    values:           (issue) => `Λάθος τιμή: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n    words:            (issue) => `Λάθος λέξεις: Αναμενόταν ${issue.expected} αλλά ήρθε ${issue.received}`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/en.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'en',\n  schema:             (issue) => `Invalid type: Expected ${issue.expected} but received ${issue.received}`,\n  specific: {\n    base64:           (issue) => `Invalid Base64: Received ${issue.received}`,\n    bic:              (issue) => `Invalid BIC: Received ${issue.received}`,\n    bytes:            (issue) => `Invalid bytes: Expected ${issue.expected} but received ${issue.received}`,\n    check:            (issue) => `Invalid input: Received ${issue.received}`,\n    checkAsync:       (issue) => `Invalid input: Received ${issue.received}`,\n    checkItems:       (issue) => `Invalid item: Received ${issue.received}`,\n    checkItemsAsync:  (issue) => `Invalid item: Received ${issue.received}`,\n    creditCard:       (issue) => `Invalid credit card: Received ${issue.received}`,\n    cuid2:            (issue) => `Invalid Cuid2: Received ${issue.received}`,\n    decimal:          (issue) => `Invalid decimal: Received ${issue.received}`,\n    digits:           (issue) => `Invalid digits: Received ${issue.received}`,\n    domain:           (issue) => `Invalid domain: Received ${issue.received}`,\n    email:            (issue) => `Invalid email: Received ${issue.received}`,\n    emoji:            (issue) => `Invalid emoji: Received ${issue.received}`,\n    empty:            (issue) => `Invalid length: Expected ${issue.expected} but received ${issue.received}`,\n    endsWith:         (issue) => `Invalid end: Expected ${issue.expected} but received ${issue.received}`,\n    entries:          (issue) => `Invalid entries: Expected ${issue.expected} but received ${issue.received}`,\n    everyItem:        (issue) => `Invalid item: Received ${issue.received}`,\n    excludes:         (issue) => `Invalid content: Expected ${issue.expected} but received ${issue.received}`,\n    finite:           (issue) => `Invalid finite: Received ${issue.received}`,\n    graphemes:        (issue) => `Invalid graphemes: Expected ${issue.expected} but received ${issue.received}`,\n    gtValue:          (issue) => `Invalid value: Expected ${issue.expected} but received ${issue.received}`,\n    guard:            (issue) => `Invalid input: Received ${issue.received}`,\n    hash:             (issue) => `Invalid hash: Received ${issue.received}`,\n    hexadecimal:      (issue) => `Invalid hexadecimal: Received ${issue.received}`,\n    hexColor:         (issue) => `Invalid hex color: Received ${issue.received}`,\n    imei:             (issue) => `Invalid IMEI: Received ${issue.received}`,\n    includes:         (issue) => `Invalid content: Expected ${issue.expected} but received ${issue.received}`,\n    integer:          (issue) => `Invalid integer: Received ${issue.received}`,\n    ip:               (issue) => `Invalid IP: Received ${issue.received}`,\n    ipv4:             (issue) => `Invalid IPv4: Received ${issue.received}`,\n    ipv6:             (issue) => `Invalid IPv6: Received ${issue.received}`,\n    isbn:             (issue) => `Invalid ISBN: Received ${issue.received}`,\n    isoDate:          (issue) => `Invalid date: Received ${issue.received}`,\n    isoDateTime:      (issue) => `Invalid date-time: Received ${issue.received}`,\n    isoTime:          (issue) => `Invalid time: Received ${issue.received}`,\n    isoTimeSecond:    (issue) => `Invalid time second: Received ${issue.received}`,\n    isoTimestamp:     (issue) => `Invalid timestamp: Received ${issue.received}`,\n    isoWeek:          (issue) => `Invalid week: Received ${issue.received}`,\n    isrc:             (issue) => `Invalid ISRC: Received ${issue.received}`,\n    jwsCompact:       (issue) => `Invalid JWS compact: Received ${issue.received}`,\n    length:           (issue) => `Invalid length: Expected ${issue.expected} but received ${issue.received}`,\n    ltValue:          (issue) => `Invalid value: Expected ${issue.expected} but received ${issue.received}`,\n    mac:              (issue) => `Invalid MAC: Received ${issue.received}`,\n    mac48:            (issue) => `Invalid 48-bit MAC: Received ${issue.received}`,\n    mac64:            (issue) => `Invalid 64-bit MAC: Received ${issue.received}`,\n    maxBytes:         (issue) => `Invalid bytes: Expected ${issue.expected} but received ${issue.received}`,\n    maxEntries:       (issue) => `Invalid entries: Expected ${issue.expected} but received ${issue.received}`,\n    maxGraphemes:     (issue) => `Invalid graphemes: Expected ${issue.expected} but received ${issue.received}`,\n    maxLength:        (issue) => `Invalid length: Expected ${issue.expected} but received ${issue.received}`,\n    maxSize:          (issue) => `Invalid size: Expected ${issue.expected} but received ${issue.received}`,\n    maxValue:         (issue) => `Invalid value: Expected ${issue.expected} but received ${issue.received}`,\n    maxWords:         (issue) => `Invalid words: Expected ${issue.expected} but received ${issue.received}`,\n    mimeType:         (issue) => `Invalid MIME type: Expected ${issue.expected} but received ${issue.received}`,\n    minBytes:         (issue) => `Invalid bytes: Expected ${issue.expected} but received ${issue.received}`,\n    minEntries:       (issue) => `Invalid entries: Expected ${issue.expected} but received ${issue.received}`,\n    minGraphemes:     (issue) => `Invalid graphemes: Expected ${issue.expected} but received ${issue.received}`,\n    minLength:        (issue) => `Invalid length: Expected ${issue.expected} but received ${issue.received}`,\n    minSize:          (issue) => `Invalid size: Expected ${issue.expected} but received ${issue.received}`,\n    minValue:         (issue) => `Invalid value: Expected ${issue.expected} but received ${issue.received}`,\n    minWords:         (issue) => `Invalid words: Expected ${issue.expected} but received ${issue.received}`,\n    multipleOf:       (issue) => `Invalid multiple: Expected ${issue.expected} but received ${issue.received}`,\n    nanoid:           (issue) => `Invalid Nano ID: Received ${issue.received}`,\n    nonEmpty:         (issue) => `Invalid length: Expected ${issue.expected} but received ${issue.received}`,\n    notBytes:         (issue) => `Invalid bytes: Expected ${issue.expected} but received ${issue.received}`,\n    notEntries:       (issue) => `Invalid entries: Expected ${issue.expected} but received ${issue.received}`,\n    notGraphemes:     (issue) => `Invalid graphemes: Expected ${issue.expected} but received ${issue.received}`,\n    notLength:        (issue) => `Invalid length: Expected ${issue.expected} but received ${issue.received}`,\n    notSize:          (issue) => `Invalid size: Expected ${issue.expected} but received ${issue.received}`,\n    notValue:         (issue) => `Invalid value: Expected ${issue.expected} but received ${issue.received}`,\n    notValues:        (issue) => `Invalid value: Expected ${issue.expected} but received ${issue.received}`,\n    notWords:         (issue) => `Invalid words: Expected ${issue.expected} but received ${issue.received}`,\n    octal:            (issue) => `Invalid octal: Received ${issue.received}`,\n    parseBoolean:     (issue) => `Invalid boolean: Received ${issue.received}`,\n    parseJson:        (issue) => `Invalid JSON: Received ${issue.received}`,\n    partialCheck:     (issue) => `Invalid input: Received ${issue.received}`,\n    rawCheck:         (issue) => `Invalid input: Received ${issue.received}`,\n    rawTransform:     (issue) => `Invalid input: Received ${issue.received}`,\n    regex:            (issue) => `Invalid format: Expected ${issue.expected} but received ${issue.received}`,\n    rfcEmail:         (issue) => `Invalid email: Received ${issue.received}`,\n    safeInteger:      (issue) => `Invalid safe integer: Received ${issue.received}`,\n    size:             (issue) => `Invalid size: Expected ${issue.expected} but received ${issue.received}`,\n    slug:             (issue) => `Invalid slug: Received ${issue.received}`,\n    someItem:         (issue) => `Invalid item: Received ${issue.received}`,\n    startsWith:       (issue) => `Invalid start: Expected ${issue.expected} but received ${issue.received}`,\n    stringifyJson:    (issue) => `Invalid JSON: Received ${issue.received}`,\n    toBigint:         (issue) => `Invalid bigint: Received ${issue.received}`,\n    toDate:           (issue) => `Invalid date: Received ${issue.received}`,\n    toNumber:         (issue) => `Invalid number: Received ${issue.received}`,\n    toString:         (issue) => `Invalid string: Received ${issue.received}`,\n    ulid:             (issue) => `Invalid ULID: Received ${issue.received}`,\n    url:              (issue) => `Invalid URL: Received ${issue.received}`,\n    uuid:             (issue) => `Invalid UUID: Received ${issue.received}`,\n    value:            (issue) => `Invalid value: Expected ${issue.expected} but received ${issue.received}`,\n    values:           (issue) => `Invalid value: Expected ${issue.expected} but received ${issue.received}`,\n    words:            (issue) => `Invalid words: Expected ${issue.expected} but received ${issue.received}`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/es.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'es',\n  schema:             (issue) => `Tipo inválido: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n  specific: {\n    base64:           (issue) => `Base64 inválido: Se recibió ${issue.received}`,\n    bic:              (issue) => `BIC inválido: Se recibió ${issue.received}`,\n    bytes:            (issue) => `Bytes inválidos: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    check:            (issue) => `Valor inválido: Se recibió ${issue.received}`,\n    checkAsync:       (issue) => `Valor inválido: Se recibió ${issue.received}`,\n    checkItems:       (issue) => `Artículo inválidos: Se recibió ${issue.received}`,\n    checkItemsAsync:  (issue) => `Artículo inválidos: Se recibió ${issue.received}`,\n    creditCard:       (issue) => `Tarjeta de crédito inválida: Se recibió ${issue.received}`,\n    cuid2:            (issue) => `Cuid2 inválido: Se recibió ${issue.received}`,\n    decimal:          (issue) => `Decimal inválido: Se recibió ${issue.received}`,\n    digits:           (issue) => `Dígitos inválidos: Se recibió ${issue.received}`,\n    domain:           (issue) => `Dominio inválido: Se recibió ${issue.received}`,\n    email:            (issue) => `Correo electrónico inválido: Se recibió ${issue.received}`,\n    emoji:            (issue) => `Emoji inválido: Se recibió ${issue.received}`,\n    empty:            (issue) => `Longitud inválida: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    endsWith:         (issue) => `Final inválido: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    entries:          (issue) => `Entradas inválidas: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    everyItem:        (issue) => `Artículo inválido: Se recibió ${issue.received}`,\n    excludes:         (issue) => `Contenido inválido: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    finite:           (issue) => `Finito inválido: Se recibió ${issue.received}`,\n    graphemes:        (issue) => `Grafemas inválidos: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    gtValue:          (issue) => `Valor inválido: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    guard:            (issue) => `Entrada inválida: Se recibió ${issue.received}`,\n    hash:             (issue) => `Hash inválido: Se recibió ${issue.received}`,\n    hexadecimal:      (issue) => `Hexadecimal inválido: Se recibió ${issue.received}`,\n    hexColor:         (issue) => `Color hexadecimal inválido: Se recibió ${issue.received}`,\n    imei:             (issue) => `IMEI inválido: Se recibió ${issue.received}`,\n    includes:         (issue) => `Contenido inválido: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    integer:          (issue) => `Entero inválido: Se recibió ${issue.received}`,\n    ip:               (issue) => `IP inválida: Se recibió ${issue.received}`,\n    ipv4:             (issue) => `IPv4 inválido: Se recibió ${issue.received}`,\n    ipv6:             (issue) => `IPv6 inválido: Se recibió ${issue.received}`,\n    isbn:             (issue) => `ISBN inválido: Se recibió ${issue.received}`,\n    isoDate:          (issue) => `Fecha inválida: Se recibió ${issue.received}`,\n    isoDateTime:      (issue) => `Fecha-hora inválida: Se recibió ${issue.received}`,\n    isoTime:          (issue) => `Hora inválida: Se recibió ${issue.received}`,\n    isoTimeSecond:    (issue) => `Segundo de tiempo inválido: Se recibió ${issue.received}`,\n    isoTimestamp:     (issue) => `Marca de tiempo inválida: Se recibió ${issue.received}`,\n    isoWeek:          (issue) => `Semana inválida: Se recibió ${issue.received}`,\n    isrc:             (issue) => `ISRC inválido: Se recibió ${issue.received}`,\n    jwsCompact:       (issue) => `JWS compacto inválido: Se recibió ${issue.received}`,\n    length:           (issue) => `Longitud inválida: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    ltValue:          (issue) => `Valor inválido: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    mac:              (issue) => `MAC inválida: Se recibió ${issue.received}`,\n    mac48:            (issue) => `MAC de 48 bits inválida: Se recibió ${issue.received}`,\n    mac64:            (issue) => `MAC de 64 bits inválida: Se recibió ${issue.received}`,\n    maxBytes:         (issue) => `Cantidad de bytes inválidos: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    maxEntries:       (issue) => `Entradas inválidas: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    maxGraphemes:     (issue) => `Grafemas inválidos: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    maxLength:        (issue) => `Longitud inválida: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    maxSize:          (issue) => `Tamaño inválido: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    maxValue:         (issue) => `Valor inválido: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    maxWords:         (issue) => `Palabras inválidas: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    mimeType:         (issue) => `Tipo de MIME inválido: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    minBytes:         (issue) => `Cantidad de bytes inválidos: Se esperaba mínimo ${issue.expected} pero se recibió ${issue.received}`,\n    minEntries:       (issue) => `Entradas inválidas: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    minGraphemes:     (issue) => `Grafemas inválidos: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    minLength:        (issue) => `Longitud inválida: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    minSize:          (issue) => `Tamaño inválido: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    minValue:         (issue) => `Valor inválido: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    minWords:         (issue) => `Palabras inválidas: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    multipleOf:       (issue) => `Múltiplo inválido: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    nanoid:           (issue) => `ID Nano inválido: Se recibió ${issue.received}`,\n    nonEmpty:         (issue) => `Longitud inválida: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    notBytes:         (issue) => `Bytes inválidos: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    notEntries:       (issue) => `Entradas inválidas: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    notGraphemes:     (issue) => `Grafemas inválidos: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    notLength:        (issue) => `Longitud inválida: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    notSize:          (issue) => `Tamaño inválido: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    notValue:         (issue) => `Valor inválido: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    notValues:        (issue) => `Valor inválido: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    notWords:         (issue) => `Palabras inválidas: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    octal:            (issue) => `Octal inválido: Se recibió ${issue.received}`,\n    parseBoolean:     (issue) => `Booleano inválido: Se recibió ${issue.received}`,\n    parseJson:        (issue) => `JSON inválido: Se recibió ${issue.received}`,\n    partialCheck:     (issue) => `Valor inválido: Se recibió ${issue.received}`,\n    rawCheck:         (issue) => `Entrada inválida: Se recibió ${issue.received}`,\n    rawTransform:     (issue) => `Entrada inválida: Se recibió ${issue.received}`,\n    regex:            (issue) => `Formato inválido: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    rfcEmail:         (issue) => `Correo electrónico inválido: Se recibió ${issue.received}`,\n    safeInteger:      (issue) => `Entero seguro inválido: Se recibió ${issue.received}`,\n    size:             (issue) => `Tamaño inválido: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    slug:             (issue) => `Slug inválido: Se recibió ${issue.received}`,\n    someItem:         (issue) => `Artículo inválido: Se recibió ${issue.received}`,\n    startsWith:       (issue) => `Inicio inválido: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    stringifyJson:    (issue) => `JSON inválido: Se recibió ${issue.received}`,\n    toBigint:         (issue) => `BigInt inválido: Se recibió ${issue.received}`,\n    toDate:           (issue) => `Fecha inválida: Se recibió ${issue.received}`,\n    toNumber:         (issue) => `Número inválido: Se recibió ${issue.received}`,\n    toString:         (issue) => `Cadena inválida: Se recibió ${issue.received}`,\n    ulid:             (issue) => `ULID inválido: Se recibió ${issue.received}`,\n    url:              (issue) => `URL inválida: Se recibió ${issue.received}`,\n    uuid:             (issue) => `UUID inválido: Se recibió ${issue.received}`,\n    value:            (issue) => `Valor inválido: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    values:           (issue) => `Valor inválido: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n    words:            (issue) => `Palabras inválidas: Se esperaba ${issue.expected} pero se recibió ${issue.received}`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/fa.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'fa',\n  schema:             (issue) => `نوع نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n  specific: {\n    base64:           (issue) => `Base64 نامعتبر: ${issue.received} دریافت شد`,\n    bic:              (issue) => `BIC نامعتبر: ${issue.received} دریافت شد`,\n    bytes:            (issue) => `بایت‌های نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    check:            (issue) => `ورودی نامعتبر: ${issue.received} دریافت شد`,\n    checkAsync:       (issue) => `ورودی نامعتبر: ${issue.received} دریافت شد`,\n    checkItems:       (issue) => `آیتم نامعتبر: ${issue.received} دریافت شد`,\n    checkItemsAsync:  (issue) => `آیتم نامعتبر: ${issue.received} دریافت شد`,\n    creditCard:       (issue) => `کارت اعتباری نامعتبر: ${issue.received} دریافت شد`,\n    cuid2:            (issue) => `Cuid2 نامعتبر: ${issue.received} دریافت شد`,\n    decimal:          (issue) => `اعشار نامعتبر: ${issue.received} دریافت شد`,\n    digits:           (issue) => `ارقام نامعتبر: ${issue.received} دریافت شد`,\n    domain:           (issue) => `دامنه نامعتبر: ${issue.received} دریافت شد`,\n    email:            (issue) => `ایمیل نامعتبر: ${issue.received} دریافت شد`,\n    emoji:            (issue) => `ایموجی نامعتبر: ${issue.received} دریافت شد`,\n    empty:            (issue) => `طول نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    endsWith:         (issue) => `پایان نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    entries:          (issue) => `تعداد ورودی نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    everyItem:        (issue) => `آیتم نامعتبر: ${issue.received} دریافت شد`,\n    excludes:         (issue) => `محتوای نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    finite:           (issue) => `عدد متناهی نامعتبر: ${issue.received} دریافت شد`,\n    graphemes:        (issue) => `گرافم‌های نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    gtValue:          (issue) => `مقدار نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    guard:            (issue) => `ورودی نامعتبر: ${issue.received} دریافت شد`,\n    hash:             (issue) => `هش نامعتبر: ${issue.received} دریافت شد`,\n    hexadecimal:      (issue) => `هگزادسیمال نامعتبر: ${issue.received} دریافت شد`,\n    hexColor:         (issue) => `رنگ هگزادسیمال نامعتبر: ${issue.received} دریافت شد`,\n    imei:             (issue) => `IMEI نامعتبر: ${issue.received} دریافت شد`,\n    includes:         (issue) => `محتوای نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    integer:          (issue) => `عدد صحیح نامعتبر: ${issue.received} دریافت شد`,\n    ip:               (issue) => `ip نامعتبر: ${issue.received} دریافت شد`,\n    ipv4:             (issue) => `IPv4 نامعتبر: ${issue.received} دریافت شد`,\n    ipv6:             (issue) => `IPv6 نامعتبر: ${issue.received} دریافت شد`,\n    isbn:             (issue) => `ISBN نامعتبر: ${issue.received} دریافت شد`,\n    isoDate:          (issue) => `تاریخ ISO نامعتبر: ${issue.received} دریافت شد`,\n    isoDateTime:      (issue) => `تاریخ‌ و زمان ISO نامعتبر: ${issue.received} دریافت شد`,\n    isoTime:          (issue) => `زمان ISO نامعتبر: ${issue.received} دریافت شد`,\n    isoTimeSecond:    (issue) => `ثانیه ISO نامعتبر: ${issue.received} دریافت شد`,\n    isoTimestamp:     (issue) => `تایم‌استمپ ISO نامعتبر: ${issue.received} دریافت شد`,\n    isoWeek:          (issue) => `هفته ISO نامعتبر: ${issue.received} دریافت شد`,\n    isrc:             (issue) => `ISRC نامعتبر: ${issue.received} دریافت شد`,\n    jwsCompact:       (issue) => `JWS فشرده نامعتبر: ${issue.received} دریافت شد`,\n    length:           (issue) => `طول نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    ltValue:          (issue) => `مقدار نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    mac:              (issue) => `MAC نامعتبر: ${issue.received} دریافت شد`,\n    mac48:            (issue) => `MAC 48 بیتی نامعتبر: ${issue.received} دریافت شد`,\n    mac64:            (issue) => `MAC 64 بیتی نامعتبر: ${issue.received} دریافت شد`,\n    maxBytes:         (issue) => `بایت‌های نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    maxEntries:       (issue) => `تعداد ورودی نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    maxGraphemes:     (issue) => `گرافم‌های نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    maxLength:        (issue) => `طول نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    maxSize:          (issue) => `اندازه نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    maxValue:         (issue) => `مقدار نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    maxWords:         (issue) => `کلمات نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    mimeType:         (issue) => `MIME type نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    minBytes:         (issue) => `بایت‌های نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    minEntries:       (issue) => `تعداد ورودی نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    minGraphemes:     (issue) => `گرافم‌های نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    minLength:        (issue) => `طول نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    minSize:          (issue) => `اندازه نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    minValue:         (issue) => `مقدار نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    minWords:         (issue) => `کلمات نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    multipleOf:       (issue) => `ضریب نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    nanoid:           (issue) => `Nano ID نامعتبر: ${issue.received} دریافت شد`,\n    nonEmpty:         (issue) => `طول نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    notBytes:         (issue) => `بایت‌های نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    notEntries:       (issue) => `تعداد ورودی نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    notGraphemes:     (issue) => `گرافم‌های نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    notLength:        (issue) => `طول نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    notSize:          (issue) => `اندازه نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    notValue:         (issue) => `مقدار نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    notValues:        (issue) => `مقدار نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    notWords:         (issue) => `کلمات نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    octal:            (issue) => `هشت‌دویی نامعتبر: ${issue.received} دریافت شد`,\n    parseBoolean:     (issue) => `مقدار بولی نامعتبر: ${issue.received} دریافت شد`,\n    parseJson:        (issue) => `JSON نامعتبر: ${issue.received} دریافت شد`,\n    partialCheck:     (issue) => `ورودی نامعتبر: ${issue.received} دریافت شد`,\n    rawCheck:         (issue) => `ورودی نامعتبر: ${issue.received} دریافت شد`,\n    rawTransform:     (issue) => `ورودی نامعتبر: ${issue.received} دریافت شد`,\n    regex:            (issue) => `قالب نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    rfcEmail:         (issue) => `ایمیل نامعتبر: ${issue.received} دریافت شد`,\n    safeInteger:      (issue) => `عدد صحیح امن نامعتبر: ${issue.received} دریافت شد`,\n    size:             (issue) => `اندازه نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    slug:             (issue) => `اسلاگ نامعتبر: ${issue.received} دریافت شد`,\n    someItem:         (issue) => `آیتم نامعتبر: ${issue.received} دریافت شد`,\n    startsWith:       (issue) => `شروع نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    stringifyJson:    (issue) => `JSON نامعتبر: ${issue.received} دریافت شد`,\n    toBigint:         (issue) => `BigInt نامعتبر: ${issue.received} دریافت شد`,\n    toDate:           (issue) => `تاریخ نامعتبر: ${issue.received} دریافت شد`,\n    toNumber:         (issue) => `عدد نامعتبر: ${issue.received} دریافت شد`,\n    toString:         (issue) => `رشته نامعتبر: ${issue.received} دریافت شد`,\n    ulid:             (issue) => `ULID نامعتبر: ${issue.received} دریافت شد`,\n    url:              (issue) => `URL نامعتبر: ${issue.received} دریافت شد`,\n    uuid:             (issue) => `UUID نامعتبر: ${issue.received} دریافت شد`,\n    value:            (issue) => `مقدار نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    values:           (issue) => `مقدار نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n    words:            (issue) => `کلمات نامعتبر: ${issue.expected} انتظار می‌رفت اما ${issue.received} دریافت شد`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/fi.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'fi',\n  schema:             (issue) => `Virheellinen tyyppi: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n  specific: {\n    base64:           (issue) => `Virheellinen Base64: saatiin ${issue.received}`,\n    bic:              (issue) => `Virheellinen BIC: saatiin ${issue.received}`,\n    bytes:            (issue) => `Virheelliset tavut: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    check:            (issue) => `Virheellinen syöte: saatiin ${issue.received}`,\n    checkAsync:       (issue) => `Virheellinen syöte: saatiin ${issue.received}`,\n    checkItems:       (issue) => `Virheellinen alkio: saatiin ${issue.received}`,\n    checkItemsAsync:  (issue) => `Virheellinen alkio: saatiin ${issue.received}`,\n    creditCard:       (issue) => `Virheellinen luottokortti: saatiin ${issue.received}`,\n    cuid2:            (issue) => `Virheellinen Cuid2: saatiin ${issue.received}`,\n    decimal:          (issue) => `Virheellinen desimaaliluku: saatiin ${issue.received}`,\n    digits:           (issue) => `Virheellinen numero: saatiin ${issue.received}`,\n    domain:           (issue) => `Virheellinen verkkotunnus: saatiin ${issue.received}`,\n    email:            (issue) => `Virheellinen sähköposti: saatiin ${issue.received}`,\n    emoji:            (issue) => `Virheellinen emoji: saatiin ${issue.received}`,\n    empty:            (issue) => `Virheellinen pituus: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    endsWith:         (issue) => `Virheellinen loppu: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    entries:          (issue) => `Virheelliset merkinnät: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    everyItem:        (issue) => `Virheellinen alkio: saatiin ${issue.received}`,\n    excludes:         (issue) => `Virheellinen sisältö: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    finite:           (issue) => `Virheellinen äärellinen luku: saatiin ${issue.received}`,\n    graphemes:        (issue) => `Virheellinen määrä grafeemeja: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    gtValue:          (issue) => `Virheellinen arvo: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    guard:            (issue) => `Virheellinen syöte: saatiin ${issue.received}`,\n    hash:             (issue) => `Virheellinen hash: saatiin ${issue.received}`,\n    hexColor:         (issue) => `Virheellinen heksaväri: saatiin ${issue.received}`,\n    hexadecimal:      (issue) => `Virheellinen heksadesimaali: saatiin ${issue.received}`,\n    imei:             (issue) => `Virheellinen IMEI: saatiin ${issue.received}`,\n    includes:         (issue) => `Virheellinen sisältö: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    integer:          (issue) => `Virheellinen kokonaisluku: saatiin ${issue.received}`,\n    ip:               (issue) => `Virheellinen IP-osoite: saatiin ${issue.received}`,\n    ipv4:             (issue) => `Virheellinen IPv4: saatiin ${issue.received}`,\n    ipv6:             (issue) => `Virheellinen IPv6: saatiin ${issue.received}`,\n    isbn:             (issue) => `Virheellinen ISBN: saatiin ${issue.received}`,\n    isoDate:          (issue) => `Virheellinen päivämäärä: saatiin ${issue.received}`,\n    isoDateTime:      (issue) => `Virheellinen ISO-päivämäärä ja -aika: saatiin ${issue.received}`,\n    isoTime:          (issue) => `Virheellinen aika: saatiin ${issue.received}`,\n    isoTimeSecond:    (issue) => `Virheellinen aika sekunneissa: saatiin ${issue.received}`,\n    isoTimestamp:     (issue) => `Virheellinen aikaleima: saatiin ${issue.received}`,\n    isoWeek:          (issue) => `Virheellinen viikko: saatiin ${issue.received}`,\n    isrc:             (issue) => `Virheellinen ISRC: saatiin ${issue.received}`,\n    jwsCompact:       (issue) => `Virheellinen JWS Compact: saatiin ${issue.received}`,\n    length:           (issue) => `Virheellinen pituus: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    ltValue:          (issue) => `Virheellinen arvo: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    mac:              (issue) => `Virheellinen MAC: saatiin ${issue.received}`,\n    mac48:            (issue) => `Virheellinen 48-bit MAC: saatiin ${issue.received}`,\n    mac64:            (issue) => `Virheellinen 64-bit MAC: saatiin ${issue.received}`,\n    maxBytes:         (issue) => `Virheellinen määrä tavuja: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    maxEntries:       (issue) => `Virheelliset merkinnät: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    maxGraphemes:     (issue) => `Virheellinen määrä grafeemeja: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    maxLength:        (issue) => `Virheellinen pituus: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    maxSize:          (issue) => `Virheellinen koko: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    maxValue:         (issue) => `Virheellinen arvo: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    maxWords:         (issue) => `Virheellinen sanamäärä: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    mimeType:         (issue) => `Virheellinen MIME-tyyppi: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    minBytes:         (issue) => `Virheellinen määrä tavuja: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    minEntries:       (issue) => `Virheelliset merkinnät: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    minGraphemes:     (issue) => `Virheellinen määrä grafeemeja: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    minLength:        (issue) => `Virheellinen pituus: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    minSize:          (issue) => `Virheellinen koko: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    minValue:         (issue) => `Virheellinen arvo: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    minWords:         (issue) => `Virheellinen sanamäärä: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    multipleOf:       (issue) => `Virheellinen monikerta: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    nanoid:           (issue) => `Virheellinen Nano ID: saatiin ${issue.received}`,\n    nonEmpty:         (issue) => `Virheellinen pituus: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    notBytes:         (issue) => `Virheellinen määrä tavuja: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    notEntries:       (issue) => `Virheelliset merkinnät: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    notGraphemes:     (issue) => `Virheellinen määrä grafeemeja: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    notLength:        (issue) => `Virheellinen pituus: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    notSize:          (issue) => `Virheellinen koko: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    notValue:         (issue) => `Virheellinen arvo: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    notValues:        (issue) => `Virheellinen arvo: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    notWords:         (issue) => `Virheelliset sanat: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    octal:            (issue) => `Virheellinen oktaaliluku: saatiin ${issue.received}`,\n    parseBoolean:     (issue) => `Virheellinen totuusarvo: saatiin ${issue.received}`,\n    parseJson:        (issue) => `Virheellinen JSON: saatiin ${issue.received}`,\n    partialCheck:     (issue) => `Virheellinen syöte: saatiin ${issue.received}`,\n    rawCheck:         (issue) => `Virheellinen syöte: saatiin ${issue.received}`,\n    rawTransform:     (issue) => `Virheellinen syöte: saatiin ${issue.received}`,\n    regex:            (issue) => `Virheellinen muoto: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    rfcEmail:         (issue) => `Virheellinen sähköposti: saatiin ${issue.received}`,\n    safeInteger:      (issue) => `Virheellinen turvallinen kokonaisluku: saatiin ${issue.received}`,\n    size:             (issue) => `Virheellinen koko: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    slug:             (issue) => `Virheellinen slug: saatiin ${issue.received}`,\n    someItem:         (issue) => `Virheellinen alkio: saatiin ${issue.received}`,\n    startsWith:       (issue) => `Virheellinen alku: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    stringifyJson:    (issue) => `Virheellinen JSON: saatiin ${issue.received}`,\n    toBigint:         (issue) => `Virheellinen BigInt: saatiin ${issue.received}`,\n    toDate:           (issue) => `Virheellinen päivämäärä: saatiin ${issue.received}`,\n    toNumber:         (issue) => `Virheellinen luku: saatiin ${issue.received}`,\n    toString:         (issue) => `Virheellinen merkkijono: saatiin ${issue.received}`,\n    ulid:             (issue) => `Virheellinen ULID: saatiin ${issue.received}`,\n    url:              (issue) => `Virheellinen URL: saatiin ${issue.received}`,\n    uuid:             (issue) => `Virheellinen UUID: saatiin ${issue.received}`,\n    value:            (issue) => `Virheellinen arvo: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    values:           (issue) => `Virheellinen arvo: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n    words:            (issue) => `Virheelliset sanat: odotettiin ${issue.expected}, mutta saatiin ${issue.received}`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/fr.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'fr',\n  schema:             (issue) => `Typage invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n  specific: {\n    base64:           (issue) => `Base64 invalide: reçu ${issue.received}`,\n    bic:              (issue) => `BIC invalide: reçu ${issue.received}`,\n    bytes:            (issue) => `Octet invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    check:            (issue) => `Valeur invalide: reçu ${issue.received}`,\n    checkAsync:       (issue) => `Valeur invalide: reçu ${issue.received}`,\n    checkItems:       (issue) => `Élément invalide: reçu ${issue.received}`,\n    checkItemsAsync:  (issue) => `Élément invalide: reçu ${issue.received}`,\n    creditCard:       (issue) => `Carte de crédit invalide: reçu ${issue.received}`,\n    cuid2:            (issue) => `Cuid2 invalide: reçu ${issue.received}`,\n    decimal:          (issue) => `Décimale invalide: reçu ${issue.received}`,\n    digits:           (issue) => `Chiffres invalide: reçu ${issue.received}`,\n    domain:           (issue) => `Domaine invalide: reçu ${issue.received}`,\n    email:            (issue) => `Email invalide: reçu ${issue.received}`,\n    emoji:            (issue) => `Émoji invalide: reçu ${issue.received}`,\n    empty:            (issue) => `Longueur invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    endsWith:         (issue) => `Fin invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    entries:          (issue) => `Entrées invalides: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    everyItem:        (issue) => `Élément invalide: reçu ${issue.received}`,\n    excludes:         (issue) => `Contenu invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    finite:           (issue) => `Entier invalide: reçu ${issue.received}`,\n    graphemes:        (issue) => `Graphèmes invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    gtValue:          (issue) => `Valeur invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    guard:            (issue) => `Entrée invalide: reçu ${issue.received}`,\n    hash:             (issue) => `Hash invalide: reçu ${issue.received}`,\n    hexadecimal:      (issue) => `Hexadécimal invalide: reçu ${issue.received}`,\n    hexColor:         (issue) => `Couleur hexa invalide: reçu ${issue.received}`,\n    imei:             (issue) => `IMEI invalide: reçu ${issue.received}`,\n    includes:         (issue) => `Contenu invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    integer:          (issue) => `Entier invalide: reçu ${issue.received}`,\n    ip:               (issue) => `IP invalide: reçu ${issue.received}`,\n    ipv4:             (issue) => `IPv4 invalide: reçu ${issue.received}`,\n    ipv6:             (issue) => `IPv6 invalide: reçu ${issue.received}`,\n    isbn:             (issue) => `ISBN invalide: reçu ${issue.received}`,\n    isoDate:          (issue) => `Date invalide: reçu ${issue.received}`,\n    isoDateTime:      (issue) => `Date et heure invalide: reçu ${issue.received}`,\n    isoTime:          (issue) => `Temps invalide: reçu ${issue.received}`,\n    isoTimeSecond:    (issue) => `Temps invalide (secondes): reçu ${issue.received}`,\n    isoTimestamp:     (issue) => `Timestamp invalide: reçu ${issue.received}`,\n    isoWeek:          (issue) => `Semaine invalide: reçu ${issue.received}`,\n    isrc:             (issue) => `ISRC invalide: reçu ${issue.received}`,\n    jwsCompact:       (issue) => `JWS compact invalide: reçu ${issue.received}`,\n    length:           (issue) => `Longueur invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    ltValue:          (issue) => `Valeur invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    mac:              (issue) => `MAC invalide: reçu ${issue.received}`,\n    mac48:            (issue) => `MAC 48-bit invalide: reçu ${issue.received}`,\n    mac64:            (issue) => `MAC 64-bit invalide: reçu ${issue.received}`,\n    maxBytes:         (issue) => `Octet invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    maxEntries:       (issue) => `Entrées invalides: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    maxGraphemes:     (issue) => `Graphèmes invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    maxLength:        (issue) => `Longueur invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    maxSize:          (issue) => `Taille invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    maxValue:         (issue) => `Valeur invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    maxWords:         (issue) => `Mots invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    mimeType:         (issue) => `Type MIME invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    minBytes:         (issue) => `Octet invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    minEntries:       (issue) => `Entrées invalides: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    minGraphemes:     (issue) => `Graphèmes invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    minLength:        (issue) => `Longueur invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    minSize:          (issue) => `Taille invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    minValue:         (issue) => `Valeur invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    minWords:         (issue) => `Mots invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    multipleOf:       (issue) => `Multiple invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    nanoid:           (issue) => `Nano ID invalide: reçu ${issue.received}`,\n    nonEmpty:         (issue) => `Longueur invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    notBytes:         (issue) => `Octet invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    notEntries:       (issue) => `Entrées invalides: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    notGraphemes:     (issue) => `Graphèmes invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    notLength:        (issue) => `Longueur invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    notSize:          (issue) => `Taille invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    notValue:         (issue) => `Valeur invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    notValues:        (issue) => `Valeur invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    notWords:         (issue) => `Mots invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    octal:            (issue) => `Octet invalide: reçu ${issue.received}`,\n    parseBoolean:     (issue) => `Booléen invalide: reçu ${issue.received}`,\n    parseJson:        (issue) => `JSON invalide: reçu ${issue.received}`,\n    partialCheck:     (issue) => `Valeur invalide: reçu ${issue.received}`,\n    rawCheck:         (issue) => `Entrée invalide: reçu ${issue.received}`,\n    rawTransform:     (issue) => `Entrée invalide: reçu ${issue.received}`,\n    regex:            (issue) => `Format invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    rfcEmail:         (issue) => `Email invalide: reçu ${issue.received}`,\n    safeInteger:      (issue) => `Entier sûr invalide: reçu ${issue.received}`,\n    size:             (issue) => `Taille invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    slug:             (issue) => `Slug invalide: reçu ${issue.received}`,\n    someItem:         (issue) => `Élément invalide: reçu ${issue.received}`,\n    startsWith:       (issue) => `Début invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    stringifyJson:    (issue) => `JSON invalide: reçu ${issue.received}`,\n    toBigint:         (issue) => `BigInt invalide: reçu ${issue.received}`,\n    toDate:           (issue) => `Date invalide: reçu ${issue.received}`,\n    toNumber:         (issue) => `Nombre invalide: reçu ${issue.received}`,\n    toString:         (issue) => `Chaîne invalide: reçu ${issue.received}`,\n    ulid:             (issue) => `ULID invalide: reçu ${issue.received}`,\n    url:              (issue) => `URL invalide: reçu ${issue.received}`,\n    uuid:             (issue) => `UUID invalide: reçu ${issue.received}`,\n    value:            (issue) => `Valeur invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    values:           (issue) => `Valeur invalide: attendu ${issue.expected}, mais reçu ${issue.received}`,\n    words:            (issue) => `Mots invalide: reçu ${issue.received}`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/hu.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'hu',\n  schema:             (issue) => `Érvénytelen típus: ${issue.expected} várt, de ${issue.received} kapott`,\n  specific: {\n    base64:           (issue) => `Érvénytelen Base64: ${issue.received} kapott`,\n    bic:              (issue) => `Érvénytelen BIC: ${issue.received} kapott`,\n    bytes:            (issue) => `Érvénytelen bájtok: ${issue.expected} várt, de ${issue.received} kapott`,\n    check:            (issue) => `Érvénytelen bemenet: ${issue.received} kapott`,\n    checkAsync:       (issue) => `Érvénytelen bemenet: ${issue.received} kapott`,\n    checkItems:       (issue) => `Érvénytelen elem: ${issue.received} kapott`,\n    checkItemsAsync:  (issue) => `Érvénytelen elem: ${issue.received} kapott`,\n    creditCard:       (issue) => `Érvénytelen kártya szám: ${issue.received} kapott`,\n    cuid2:            (issue) => `Érvénytelen Cuid2: ${issue.received} kapott`,\n    decimal:          (issue) => `Érvénytelen decimális: ${issue.received} kapott`,\n    digits:           (issue) => `Érvénytelen számjegyek: ${issue.received} kapott`,\n    domain:           (issue) => `Érvénytelen tartománynév: ${issue.received} kapott`,\n    email:            (issue) => `Érvénytelen email: ${issue.received} kapott`,\n    emoji:            (issue) => `Érvénytelen emoji: ${issue.received} kapott`,\n    empty:            (issue) => `Érvénytelen hosszúság: ${issue.expected} várt, de ${issue.received} kapott`,\n    endsWith:         (issue) => `Érvénytelen vég: ${issue.expected} várt, de ${issue.received} kapott`,\n    entries:          (issue) => `Érvénytelen bejegyzésszám: ${issue.expected} várt, de ${issue.received} kapott`,\n    everyItem:        (issue) => `Érvénytelen elem: ${issue.received} kapott`,\n    excludes:         (issue) => `Érvénytelen tartalom: ${issue.expected} várt, de ${issue.received} kapott`,\n    finite:           (issue) => `Érvénytelen véges: ${issue.received} kapott`,\n    graphemes:        (issue) => `Érvénytelen gráfémák: ${issue.expected} várt, de ${issue.received} kapott`,\n    gtValue:          (issue) => `Érvénytelen érték: ${issue.expected} várt, de ${issue.received} kapott`,\n    guard:            (issue) => `Érvénytelen bemenet: ${issue.received} kapott`,\n    hash:             (issue) => `Érvénytelen hash: ${issue.received} kapott`,\n    hexadecimal:      (issue) => `Érvénytelen hexadecimális: ${issue.received} kapott`,\n    hexColor:         (issue) => `Érvénytelen hex szín: ${issue.received} kapott`,\n    imei:             (issue) => `Érvénytelen IMEI: ${issue.received} kapott`,\n    includes:         (issue) => `Érvénytelen tartalom: ${issue.expected} várt, de ${issue.received} kapott`,\n    integer:          (issue) => `Érvénytelen egész szám: ${issue.received} kapott`,\n    ip:               (issue) => `Érvénytelen IP: ${issue.received} kapott`,\n    ipv4:             (issue) => `Érvénytelen IPv4: ${issue.received} kapott`,\n    ipv6:             (issue) => `Érvénytelen IPv6: ${issue.received} kapott`,\n    isbn:             (issue) => `Érvénytelen ISBN: ${issue.received} kapott`,\n    isoDate:          (issue) => `Érvénytelen dátum: ${issue.received} kapott`,\n    isoDateTime:      (issue) => `Érvénytelen dátum idő: ${issue.received} kapott`,\n    isoTime:          (issue) => `Érvénytelen idő: ${issue.received} kapott`,\n    isoTimeSecond:    (issue) => `Érvénytelen idő másodperc: ${issue.received} kapott`,\n    isoTimestamp:     (issue) => `Érvénytelen időbélyeg: ${issue.received} kapott`,\n    isoWeek:          (issue) => `Érvénytelen hét: ${issue.received} kapott`,\n    isrc:             (issue) => `Érvénytelen ISRC: ${issue.received} kapott`,\n    jwsCompact:       (issue) => `Érvénytelen tömör JWS: ${issue.received} kapott`,\n    length:           (issue) => `Érvénytelen hosszúság: ${issue.expected} várt, de ${issue.received} kapott`,\n    ltValue:          (issue) => `Érvénytelen érték: ${issue.expected} várt, de ${issue.received} kapott`,\n    mac:              (issue) => `Érvénytelen MAC: ${issue.received} kapott`,\n    mac48:            (issue) => `Érvénytelen 48 bites MAC: ${issue.received} kapott`,\n    mac64:            (issue) => `Érvénytelen 64 bites MAC: ${issue.received} kapott`,\n    maxBytes:         (issue) => `Érvénytelen bájtok: ${issue.expected} várt, de ${issue.received} kapott`,\n    maxEntries:       (issue) => `Érvénytelen bejegyzésszám: ${issue.expected} várt, de ${issue.received} kapott`,\n    maxGraphemes:     (issue) => `Érvénytelen gráfémák: ${issue.expected} várt, de ${issue.received} kapott`,\n    maxLength:        (issue) => `Érvénytelen hosszúság: ${issue.expected} várt, de ${issue.received} kapott`,\n    maxSize:          (issue) => `Érvénytelen méret: ${issue.expected} várt, de ${issue.received} kapott`,\n    maxValue:         (issue) => `Érvénytelen érték: ${issue.expected} várt, de ${issue.received} kapott`,\n    maxWords:         (issue) => `Érvénytelen szavak: ${issue.expected} várt, de ${issue.received} kapott`,\n    mimeType:         (issue) => `Érvénytelen MIME típus: ${issue.expected} várt, de ${issue.received} kapott`,\n    minBytes:         (issue) => `Érvénytelen bájtok: ${issue.expected} várt, de ${issue.received} kapott`,\n    minEntries:       (issue) => `Érvénytelen bejegyzésszám: ${issue.expected} várt, de ${issue.received} kapott`,\n    minGraphemes:     (issue) => `Érvénytelen gráfémák: ${issue.expected} várt, de ${issue.received} kapott`,\n    minLength:        (issue) => `Érvénytelen hosszúság: ${issue.expected} várt, de ${issue.received} kapott`,\n    minSize:          (issue) => `Érvénytelen méret: ${issue.expected} várt, de ${issue.received} kapott`,\n    minValue:         (issue) => `Érvénytelen érték: ${issue.expected} várt, de ${issue.received} kapott`,\n    minWords:         (issue) => `Érvénytelen szavak: ${issue.expected} várt, de ${issue.received} kapott`,\n    multipleOf:       (issue) => `Érvénytelen többszörös: ${issue.expected} várt, de ${issue.received} kapott`,\n    nanoid:           (issue) => `Érvénytelen Nano ID: ${issue.received} kapott`,\n    nonEmpty:         (issue) => `Érvénytelen hosszúság: ${issue.expected} várt, de ${issue.received} kapott`,\n    notBytes:         (issue) => `Érvénytelen bájtok: ${issue.expected} várt, de ${issue.received} kapott`,\n    notEntries:       (issue) => `Érvénytelen bejegyzésszám: ${issue.expected} várt, de ${issue.received} kapott`,\n    notGraphemes:     (issue) => `Érvénytelen gráfémák: ${issue.expected} várt, de ${issue.received} kapott`,\n    notLength:        (issue) => `Érvénytelen hosszúság: ${issue.expected} várt, de ${issue.received} kapott`,\n    notSize:          (issue) => `Érvénytelen méret: ${issue.expected} várt, de ${issue.received} kapott`,\n    notValue:         (issue) => `Érvénytelen érték: ${issue.expected} várt, de ${issue.received} kapott`,\n    notValues:        (issue) => `Érvénytelen érték: ${issue.expected} várt, de ${issue.received} kapott`,\n    notWords:         (issue) => `Érvénytelen szavak: ${issue.expected} várt, de ${issue.received} kapott`,\n    octal:            (issue) => `Érvénytelen nyolcas: ${issue.received} kapott`,\n    parseBoolean:     (issue) => `Érvénytelen logikai érték: ${issue.received} kapott`,\n    parseJson:        (issue) => `Érvénytelen JSON: ${issue.received} kapott`,\n    partialCheck:     (issue) => `Érvénytelen bemenet: ${issue.received} kapott`,\n    rawCheck:         (issue) => `Érvénytelen bemenet: ${issue.received} kapott`,\n    rawTransform:     (issue) => `Érvénytelen bemenet: ${issue.received} kapott`,\n    regex:            (issue) => `Érvénytelen formátum: ${issue.expected} várt, de ${issue.received} kapott`,\n    rfcEmail:         (issue) => `Érvénytelen email: ${issue.received} kapott`,\n    safeInteger:      (issue) => `Érvénytelen biztonságos egész szám: ${issue.received} kapott`,\n    size:             (issue) => `Érvénytelen méret: ${issue.expected} várt, de ${issue.received} kapott`,\n    slug:             (issue) => `Érvénytelen slug: ${issue.received} kapott`,\n    someItem:         (issue) => `Érvénytelen elem: ${issue.received} kapott`,\n    startsWith:       (issue) => `Érvénytelen kezdet: ${issue.expected} várt, de ${issue.received} kapott`,\n    stringifyJson:    (issue) => `Érvénytelen JSON: ${issue.received} kapott`,\n    toBigint:         (issue) => `Érvénytelen BigInt: ${issue.received} kapott`,\n    toDate:           (issue) => `Érvénytelen dátum: ${issue.received} kapott`,\n    toNumber:         (issue) => `Érvénytelen szám: ${issue.received} kapott`,\n    toString:         (issue) => `Érvénytelen karakterlánc: ${issue.received} kapott`,\n    ulid:             (issue) => `Érvénytelen ULID: ${issue.received} kapott`,\n    url:              (issue) => `Érvénytelen URL: ${issue.received} kapott`,\n    uuid:             (issue) => `Érvénytelen UUID: ${issue.received} kapott`,\n    value:            (issue) => `Érvénytelen érték: ${issue.expected} várt, de ${issue.received} kapott`,\n    values:           (issue) => `Érvénytelen érték: ${issue.expected} várt, de ${issue.received} kapott`,\n    words:            (issue) => `Érvénytelen szavak: ${issue.expected} várt, de ${issue.received} kapott`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/id.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'id',\n  schema:             (issue) => `Tipe tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n  specific: {\n    base64:           (issue) => `Base64 tidak valid: Menerima ${issue.received}`,\n    bic:              (issue) => `BIC tidak valid: Menerima ${issue.received}`,\n    bytes:            (issue) => `Byte tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    check:            (issue) => `Input tidak valid: Menerima ${issue.received}`,\n    checkAsync:       (issue) => `Input tidak valid: Menerima ${issue.received}`,\n    checkItems:       (issue) => `Item tidak valid: Menerima ${issue.received}`,\n    checkItemsAsync:  (issue) => `Item tidak valid: Menerima ${issue.received}`,\n    creditCard:       (issue) => `Kartu kredit tidak valid: Menerima ${issue.received}`,\n    cuid2:            (issue) => `Cuid2 tidak valid: Menerima ${issue.received}`,\n    decimal:          (issue) => `Desimal tidak valid: Menerima ${issue.received}`,\n    digits:           (issue) => `Digit tidak valid: Menerima ${issue.received}`,\n    domain:           (issue) => `Domain tidak valid: Menerima ${issue.received}`,\n    email:            (issue) => `Email tidak valid: Menerima ${issue.received}`,\n    emoji:            (issue) => `Emoji tidak valid: Menerima ${issue.received}`,\n    empty:            (issue) => `Panjang tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    endsWith:         (issue) => `Akhiran tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    entries:          (issue) => `Entri tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    everyItem:        (issue) => `Item tidak valid: Menerima ${issue.received}`,\n    excludes:         (issue) => `Konten tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    finite:           (issue) => `Finite tidak valid: Menerima ${issue.received}`,\n    graphemes:        (issue) => `Grafem tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    gtValue:          (issue) => `Nilai tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    guard:            (issue) => `Input tidak valid: Menerima ${issue.received}`,\n    hash:             (issue) => `Hash tidak valid: Menerima ${issue.received}`,\n    hexadecimal:      (issue) => `Heksadesimal tidak valid: Menerima ${issue.received}`,\n    hexColor:         (issue) => `Warna hex tidak valid: Menerima ${issue.received}`,\n    imei:             (issue) => `IMEI tidak valid: Menerima ${issue.received}`,\n    includes:         (issue) => `Konten tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    integer:          (issue) => `Bukan integer: Menerima ${issue.received}`,\n    ip:               (issue) => `IP tidak valid: Menerima ${issue.received}`,\n    ipv4:             (issue) => `IPv4 tidak valid: Menerima ${issue.received}`,\n    ipv6:             (issue) => `IPv6 tidak valid: Menerima ${issue.received}`,\n    isbn:             (issue) => `ISBN tidak valid: Menerima ${issue.received}`,\n    isoDate:          (issue) => `Tanggal tidak valid: Menerima ${issue.received}`,\n    isoDateTime:      (issue) => `Tanggal-waktu tidak valid: Menerima ${issue.received}`,\n    isoTime:          (issue) => `Waktu tidak valid: Menerima ${issue.received}`,\n    isoTimeSecond:    (issue) => `Detik waktu tidak valid: Menerima ${issue.received}`,\n    isoTimestamp:     (issue) => `Timestamp tidak valid: Menerima ${issue.received}`,\n    isoWeek:          (issue) => `Minggu tidak valid: Menerima ${issue.received}`,\n    isrc:             (issue) => `ISRC tidak valid: Menerima ${issue.received}`,\n    jwsCompact:       (issue) => `JWS ringkas tidak valid: Menerima ${issue.received}`,\n    length:           (issue) => `Panjang tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    ltValue:          (issue) => `Nilai tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    mac:              (issue) => `MAC tidak valid: Menerima ${issue.received}`,\n    mac48:            (issue) => `MAC 48-bit tidak valid: Menerima ${issue.received}`,\n    mac64:            (issue) => `MAC 64-bit tidak valid: Menerima ${issue.received}`,\n    maxBytes:         (issue) => `Byte maksimum tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    maxEntries:       (issue) => `Entri tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    maxGraphemes:     (issue) => `Grafem maksimum tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    maxLength:        (issue) => `Panjang maksimum tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    maxSize:          (issue) => `Ukuran maksimum tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    maxValue:         (issue) => `Nilai maksimum tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    maxWords:         (issue) => `Kata maksimum tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    mimeType:         (issue) => `Tipe MIME tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    minBytes:         (issue) => `Byte minimum tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    minEntries:       (issue) => `Entri tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    minGraphemes:     (issue) => `Grafem minimum tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    minLength:        (issue) => `Panjang minimum tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    minSize:          (issue) => `Ukuran minimum tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    minValue:         (issue) => `Nilai minimum tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    minWords:         (issue) => `Kata minimum tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    multipleOf:       (issue) => `Kelipatan tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    nanoid:           (issue) => `Nano ID tidak valid: Menerima ${issue.received}`,\n    nonEmpty:         (issue) => `Panjang tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    notBytes:         (issue) => `Byte tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    notEntries:       (issue) => `Entri tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    notGraphemes:     (issue) => `Grafem tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    notLength:        (issue) => `Panjang tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    notSize:          (issue) => `Ukuran tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    notValue:         (issue) => `Nilai tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    notValues:        (issue) => `Nilai tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    notWords:         (issue) => `Kata tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    octal:            (issue) => `Oktal tidak valid: Menerima ${issue.received}`,\n    parseBoolean:     (issue) => `Boolean tidak valid: Menerima ${issue.received}`,\n    parseJson:        (issue) => `JSON tidak valid: Menerima ${issue.received}`,\n    partialCheck:     (issue) => `Input tidak valid: Menerima ${issue.received}`,\n    rawCheck:         (issue) => `Input tidak valid: Menerima ${issue.received}`,\n    rawTransform:     (issue) => `Input tidak valid: Menerima ${issue.received}`,\n    regex:            (issue) => `Format tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    rfcEmail:         (issue) => `Email tidak valid: Menerima ${issue.received}`,\n    safeInteger:      (issue) => `Safe integer tidak valid: Menerima ${issue.received}`,\n    size:             (issue) => `Ukuran tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    slug:             (issue) => `Slug tidak valid: Menerima ${issue.received}`,\n    someItem:         (issue) => `Item tidak valid: Menerima ${issue.received}`,\n    startsWith:       (issue) => `Awalan tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    stringifyJson:    (issue) => `JSON tidak valid: Menerima ${issue.received}`,\n    toBigint:         (issue) => `BigInt tidak valid: Menerima ${issue.received}`,\n    toDate:           (issue) => `Tanggal tidak valid: Menerima ${issue.received}`,\n    toNumber:         (issue) => `Angka tidak valid: Menerima ${issue.received}`,\n    toString:         (issue) => `String tidak valid: Menerima ${issue.received}`,\n    ulid:             (issue) => `ULID tidak valid: Menerima ${issue.received}`,\n    url:              (issue) => `URL tidak valid: Menerima ${issue.received}`,\n    uuid:             (issue) => `UUID tidak valid: Menerima ${issue.received}`,\n    value:            (issue) => `Nilai tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    values:           (issue) => `Nilai tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n    words:            (issue) => `Kata tidak valid: Seharusnya ${issue.expected} tetapi menerima ${issue.received}`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/it.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'it',\n  schema:             (issue) => `Tipo non valido: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n  specific: {\n    base64:           (issue) => `Base64 non valido: Ricevuto ${issue.received}`,\n    bic:              (issue) => `BIC non valido: Ricevuto ${issue.received}`,\n    bytes:            (issue) => `Byte non validi: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    check:            (issue) => `Input non valido: Ricevuto ${issue.received}`,\n    checkAsync:       (issue) => `Input non valido: Ricevuto ${issue.received}`,\n    checkItems:       (issue) => `Elemento non valido: Input ${issue.received}`,\n    checkItemsAsync:  (issue) => `Elemento non valido: Input ${issue.received}`,\n    creditCard:       (issue) => `Carta di credito non valida: Ricevuto ${issue.received}`,\n    cuid2:            (issue) => `Cuid2 non valido: Ricevuto ${issue.received}`,\n    decimal:          (issue) => `Decimale non valido: Ricevuto ${issue.received}`,\n    digits:           (issue) => `Cifre non valide: Ricevuto ${issue.received}`,\n    domain:           (issue) => `Dominio non valido: Ricevuto ${issue.received}`,\n    email:            (issue) => `Email non valida: Ricevuto ${issue.received}`,\n    emoji:            (issue) => `Emoji non valido: Ricevuto ${issue.received}`,\n    empty:            (issue) => `Lunghezza non valida: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    endsWith:         (issue) => `Finale non valido: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    entries:          (issue) => `Voci non valide: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    everyItem:        (issue) => `Elemento non valido: Ricevuto ${issue.received}`,\n    excludes:         (issue) => `Contenuto non valido: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    finite:           (issue) => `Finito non valido: Ricevuto ${issue.received}`,\n    graphemes:        (issue) => `Grafi non validi: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    gtValue:          (issue) => `Valore non valido: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    guard:            (issue) => `Input non valido: Ricevuto ${issue.received}`,\n    hash:             (issue) => `Hash non valido: Ricevuto ${issue.received}`,\n    hexadecimal:      (issue) => `Esadecimale non valido: Ricevuto ${issue.received}`,\n    hexColor:         (issue) => `Colore esadecimale non valido: Ricevuto ${issue.received}`,\n    imei:             (issue) => `IMEI non valido: Ricevuto ${issue.received}`,\n    includes:         (issue) => `Contenuto non valido: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    integer:          (issue) => `Intero non valido: Ricevuto ${issue.received}`,\n    ip:               (issue) => `IP non valido: Ricevuto ${issue.received}`,\n    ipv4:             (issue) => `IPv4 non valido: Ricevuto ${issue.received}`,\n    ipv6:             (issue) => `IPv6 non valido: Ricevuto ${issue.received}`,\n    isbn:             (issue) => `ISBN non valido: Ricevuto ${issue.received}`,\n    isoDate:          (issue) => `Data non valida: Ricevuto ${issue.received}`,\n    isoDateTime:      (issue) => `Data e ora non validi: Ricevuto ${issue.received}`,\n    isoTime:          (issue) => `Ora non valida: Ricevuto ${issue.received}`,\n    isoTimeSecond:    (issue) => `Secondo dell'ora non valido: Ricevuto ${issue.received}`,\n    isoTimestamp:     (issue) => `Timestamp non valido: Ricevuto ${issue.received}`,\n    isoWeek:          (issue) => `Settimana non valida: Ricevuto ${issue.received}`,\n    isrc:             (issue) => `ISRC non valido: Ricevuto ${issue.received}`,\n    jwsCompact:       (issue) => `JWS compatto non valido: Ricevuto ${issue.received}`,\n    length:           (issue) => `Lunghezza non valida: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    ltValue:          (issue) => `Valore non valido: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    mac:              (issue) => `MAC non valido: Ricevuto ${issue.received}`,\n    mac48:            (issue) => `MAC a 48 bit non valido: Ricevuto ${issue.received}`,\n    mac64:            (issue) => `MAC a 64 bit non valido: Ricevuto ${issue.received}`,\n    maxBytes:         (issue) => `Byte non validi: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    maxEntries:       (issue) => `Voci non valide: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    maxGraphemes:     (issue) => `Grafi non validi: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    maxLength:        (issue) => `Lunghezza non valida: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    maxSize:          (issue) => `Dimensione non valida: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    maxValue:         (issue) => `Valore non valido: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    maxWords:         (issue) => `Parole non valide: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    mimeType:         (issue) => `Tipo MIME non valido: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    minBytes:         (issue) => `Byte non validi: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    minEntries:       (issue) => `Voci non valide: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    minGraphemes:     (issue) => `Grafi non validi: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    minLength:        (issue) => `Lunghezza non valida: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    minSize:          (issue) => `Dimensione non valida: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    minValue:         (issue) => `Valore non valido: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    minWords:         (issue) => `Parole non valide: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    multipleOf:       (issue) => `Multiplo non valido: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    nanoid:           (issue) => `Nano ID non valido: Ricevuto ${issue.received}`,\n    nonEmpty:         (issue) => `Lunghezza non valida: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    notBytes:         (issue) => `Byte non validi: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    notEntries:       (issue) => `Voci non valide: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    notGraphemes:     (issue) => `Grafi non validi: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    notLength:        (issue) => `Lunghezza non valida: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    notSize:          (issue) => `Dimensione non valida: previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    notValue:         (issue) => `Valore non valido: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    notValues:        (issue) => `Valore non valido: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    notWords:         (issue) => `Parole non valide: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    octal:            (issue) => `Ottale non valido: Ricevuto ${issue.received}`,\n    parseBoolean:     (issue) => `Booleano non valido: Ricevuto ${issue.received}`,\n    parseJson:        (issue) => `JSON non valido: Ricevuto ${issue.received}`,\n    partialCheck:     (issue) => `Input non valido: Ricevuto ${issue.received}`,\n    rawCheck:         (issue) => `Input non valido: Ricevuto ${issue.received}`,\n    rawTransform:     (issue) => `Input non valido: Ricevuto ${issue.received}`,\n    regex:            (issue) => `Formato non valido: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    rfcEmail:         (issue) => `Email non valida: Ricevuto ${issue.received}`,\n    safeInteger:      (issue) => `Intero sicuro non valido: Ricevuto ${issue.received}`,\n    size:             (issue) => `Dimensione non valida: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    slug:             (issue) => `Slug non valido: Ricevuto ${issue.received}`,\n    someItem:         (issue) => `Elemento non valido: Ricevuto ${issue.received}`,\n    startsWith:       (issue) => `Inizio non valido: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    stringifyJson:    (issue) => `JSON non valido: Ricevuto ${issue.received}`,\n    toBigint:         (issue) => `BigInt non valido: Ricevuto ${issue.received}`,\n    toDate:           (issue) => `Data non valida: Ricevuto ${issue.received}`,\n    toNumber:         (issue) => `Numero non valido: Ricevuto ${issue.received}`,\n    toString:         (issue) => `Stringa non valida: Ricevuto ${issue.received}`,\n    ulid:             (issue) => `ULID non valido: Ricevuto ${issue.received}`,\n    url:              (issue) => `URL non valido: Ricevuto ${issue.received}`,\n    uuid:             (issue) => `UUID non valido: Ricevuto ${issue.received}`,\n    value:            (issue) => `Valore non valido: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    values:           (issue) => `Valore non valido: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n    words:            (issue) => `Parole non valide: Previsto ${issue.expected} ma ricevuto ${issue.received}`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/ja.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'ja',\n  schema:             (issue) => `無効な型: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n  specific: {\n    base64:           (issue) => `無効なBase64: ${issue.received} を受け取りました`,\n    bic:              (issue) => `無効なBIC: ${issue.received} を受け取りました`,\n    bytes:            (issue) => `無効なバイト数: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    check:            (issue) => `無効な入力: ${issue.received} を受け取りました`,\n    checkAsync:       (issue) => `無効な入力: ${issue.received} を受け取りました`,\n    checkItems:       (issue) => `無効な項目: ${issue.received} を受け取りました`,\n    checkItemsAsync:  (issue) => `無効な項目: ${issue.received} を受け取りました`,\n    creditCard:       (issue) => `無効なクレジットカード: ${issue.received} を受け取りました`,\n    cuid2:            (issue) => `無効なCuid2: ${issue.received} を受け取りました`,\n    decimal:          (issue) => `無効な10進数: ${issue.received} を受け取りました`,\n    digits:           (issue) => `無効な数字: ${issue.received} を受け取りました`,\n    domain:           (issue) => `無効なドメイン: ${issue.received} を受け取りました`,\n    email:            (issue) => `無効なメールアドレス: ${issue.received} を受け取りました`,\n    emoji:            (issue) => `無効な絵文字: ${issue.received} を受け取りました`,\n    empty:            (issue) => `無効な長さ: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    endsWith:         (issue) => `無効な末尾: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    entries:          (issue) => `無効な項目数: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    everyItem:        (issue) => `無効な項目: ${issue.received} を受け取りました`,\n    excludes:         (issue) => `無効な内容: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    finite:           (issue) => `無効な有限数: ${issue.received} を受け取りました`,\n    graphemes:        (issue) => `無効な書記素数: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    gtValue:          (issue) => `無効な値: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    guard:            (issue) => `無効な入力: ${issue.received} を受け取りました`,\n    hash:             (issue) => `無効なハッシュ値: ${issue.received} を受け取りました`,\n    hexadecimal:      (issue) => `無効な16進数: ${issue.received} を受け取りました`,\n    hexColor:         (issue) => `無効な16進数カラーコード: ${issue.received} を受け取りました`,\n    imei:             (issue) => `無効なIMEI: ${issue.received} を受け取りました`,\n    includes:         (issue) => `無効な内容: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    integer:          (issue) => `無効な整数: ${issue.received} を受け取りました`,\n    ip:               (issue) => `無効なIP: ${issue.received} を受け取りました`,\n    ipv4:             (issue) => `無効なIPv4: ${issue.received} を受け取りました`,\n    ipv6:             (issue) => `無効なIPv6: ${issue.received} を受け取りました`,\n    isbn:             (issue) => `無効なISBN: ${issue.received} を受け取りました`,\n    isoDate:          (issue) => `無効な日付: ${issue.received} を受け取りました`,\n    isoDateTime:      (issue) => `無効な日時: ${issue.received} を受け取りました`,\n    isoTime:          (issue) => `無効な時刻: ${issue.received} を受け取りました`,\n    isoTimeSecond:    (issue) => `無効な時刻: ${issue.received} を受け取りました`,\n    isoTimestamp:     (issue) => `無効なタイムスタンプ: ${issue.received} を受け取りました`,\n    isoWeek:          (issue) => `無効な週番号: ${issue.received} を受け取りました`,\n    isrc:             (issue) => `無効なISRC: ${issue.received} を受け取りました`,\n    jwsCompact:       (issue) => `無効なコンパクトJWS: ${issue.received} を受け取りました`,\n    length:           (issue) => `無効な長さ: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    ltValue:          (issue) => `無効な値: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    mac:              (issue) => `無効なMACアドレス: ${issue.received} を受け取りました`,\n    mac48:            (issue) => `無効な48-bit MACアドレス: ${issue.received} を受け取りました`,\n    mac64:            (issue) => `無効な64-bit MACアドレス: ${issue.received} を受け取りました`,\n    maxBytes:         (issue) => `無効なバイト数: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    maxEntries:       (issue) => `無効な項目数: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    maxGraphemes:     (issue) => `無効な書記素数: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    maxLength:        (issue) => `無効な長さ: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    maxSize:          (issue) => `無効なサイズ: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    maxValue:         (issue) => `無効な値: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    maxWords:         (issue) => `無効な単語数: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    mimeType:         (issue) => `無効なMIME type: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    minBytes:         (issue) => `無効なバイト数: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    minEntries:       (issue) => `無効な項目数: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    minGraphemes:     (issue) => `無効な書記素数: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    minLength:        (issue) => `無効な長さ: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    minSize:          (issue) => `無効なサイズ: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    minValue:         (issue) => `無効な値: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    minWords:         (issue) => `無効な単語数: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    multipleOf:       (issue) => `無効な倍数: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    nanoid:           (issue) => `無効なNano ID: ${issue.received} を受け取りました`,\n    nonEmpty:         (issue) => `無効な長さ: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    notBytes:         (issue) => `無効なバイト数: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    notEntries:       (issue) => `無効な項目数: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    notGraphemes:     (issue) => `無効な書記素数: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    notLength:        (issue) => `無効な長さ: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    notSize:          (issue) => `無効なサイズ: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    notValue:         (issue) => `無効な値: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    notValues:        (issue) => `無効な値: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    notWords:         (issue) => `無効な単語数: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    octal:            (issue) => `無効な8進数: ${issue.received} を受け取りました`,\n    parseBoolean:     (issue) => `無効な真偽値: ${issue.received} を受け取りました`,\n    parseJson:        (issue) => `無効なJSON: ${issue.received} を受け取りました`,\n    partialCheck:     (issue) => `無効な入力: ${issue.received} を受け取りました`,\n    rawCheck:         (issue) => `無効な入力: ${issue.received} を受け取りました`,\n    rawTransform:     (issue) => `無効な入力: ${issue.received} を受け取りました`,\n    regex:            (issue) => `無効なフォーマット: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    rfcEmail:         (issue) => `無効なメールアドレス: ${issue.received} を受け取りました`,\n    safeInteger:      (issue) => `無効な安全な整数: ${issue.received} を受け取りました`,\n    size:             (issue) => `無効なサイズ: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    slug:             (issue) => `無効なスラッグ: ${issue.received} を受け取りました`,\n    someItem:         (issue) => `無効な項目: ${issue.received} を受け取りました`,\n    startsWith:       (issue) => `無効な先頭: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    stringifyJson:    (issue) => `無効なJSON: ${issue.received} を受け取りました`,\n    toBigint:         (issue) => `無効なBigInt: ${issue.received} を受け取りました`,\n    toDate:           (issue) => `無効な日付: ${issue.received} を受け取りました`,\n    toNumber:         (issue) => `無効な数値: ${issue.received} を受け取りました`,\n    toString:         (issue) => `無効な文字列: ${issue.received} を受け取りました`,\n    ulid:             (issue) => `無効なULID: ${issue.received} を受け取りました`,\n    url:              (issue) => `無効なURL: ${issue.received} を受け取りました`,\n    uuid:             (issue) => `無効なUUID: ${issue.received} を受け取りました`,\n    value:            (issue) => `無効な値: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    values:           (issue) => `無効な値: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n    words:            (issue) => `無効な単語数: ${issue.expected} を期待しましたが、 ${issue.received} を受け取りました`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/ko.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'ko',\n  schema:             (issue) => `유효하지 않은 타입: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n  specific: {\n    base64:           (issue) => `유효하지 않은 Base64: ${issue.received} 을(를) 받았습니다`,\n    bic:              (issue) => `유효하지 않은 사업자 식별코드(BIC): ${issue.received} 을(를) 받았습니다`,\n    bytes:            (issue) => `유효하지 않은 바이트: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    check:            (issue) => `유효하지 않은 입력: ${issue.received} 을(를) 받았습니다`,\n    checkAsync:       (issue) => `유효하지 않은 입력: ${issue.received} 을(를) 받았습니다`,\n    checkItems:       (issue) => `유효하지 않은 항목: ${issue.received} 을(를) 받았습니다`,\n    checkItemsAsync:  (issue) => `유효하지 않은 항목: ${issue.received} 을(를) 받았습니다`,\n    creditCard:       (issue) => `유효하지 않은 신용카드: ${issue.received} 을(를) 받았습니다`,\n    cuid2:            (issue) => `유효하지 않은 Cuid2: ${issue.received} 을(를) 받았습니다`,\n    decimal:          (issue) => `유효하지 않은 소수: ${issue.received} 을(를) 받았습니다`,\n    digits:           (issue) => `유효하지 않은 숫자: ${issue.received} 을(를) 받았습니다`,\n    domain:           (issue) => `유효하지 않은 도메인: ${issue.received} 을(를) 받았습니다`,\n    email:            (issue) => `유효하지 않은 이메일: ${issue.received} 을(를) 받았습니다`,\n    emoji:            (issue) => `유효하지 않은 이모지: ${issue.received} 을(를) 받았습니다`,\n    empty:            (issue) => `유효하지 않은 비어있음: ${issue.received} 을(를) 받았습니다`,\n    endsWith:         (issue) => `유효하지 않은 끝: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    entries:          (issue) => `유효하지 않은 항목 수: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    everyItem:        (issue) => `유효하지 않은 항목: ${issue.received} 을(를) 받았습니다`,\n    excludes:         (issue) => `유효하지 않은 제외: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    finite:           (issue) => `유한하지 않은 값: ${issue.received} 을(를) 받았습니다`,\n    graphemes:        (issue) => `유효하지 않은 문자 그래프: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    gtValue:          (issue) => `유효하지 않은 값: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    guard:            (issue) => `유효하지 않은 입력: ${issue.received} 을(를) 받았습니다`,\n    hash:             (issue) => `유효하지 않은 해시: ${issue.received} 을(를) 받았습니다`,\n    hexadecimal:      (issue) => `유효하지 않은 16진수: ${issue.received} 을(를) 받았습니다`,\n    hexColor:         (issue) => `유효하지 않은 16진수 색상: ${issue.received} 을(를) 받았습니다`,\n    imei:             (issue) => `유효하지 않은 IMEI: ${issue.received} 을(를) 받았습니다`,\n    includes:         (issue) => `유효하지 않은 포함: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    integer:          (issue) => `유효하지 않은 정수: ${issue.received} 을(를) 받았습니다`,\n    ip:               (issue) => `유효하지 않은 IP: ${issue.received} 을(를) 받았습니다`,\n    ipv4:             (issue) => `유효하지 않은 IPv4: ${issue.received} 을(를) 받았습니다`,\n    ipv6:             (issue) => `유효하지 않은 IPv6: ${issue.received} 을(를) 받았습니다`,\n    isbn:             (issue) => `유효하지 않은 ISBN: ${issue.received} 을(를) 받았습니다`,\n    isoDate:          (issue) => `유효하지 않은 ISO 날짜: ${issue.received} 을(를) 받았습니다`,\n    isoDateTime:      (issue) => `유효하지 않은 ISO 날짜-시간: ${issue.received} 을(를) 받았습니다`,\n    isoTime:          (issue) => `유효하지 않은 ISO 시간: ${issue.received} 을(를) 받았습니다`,\n    isoTimeSecond:    (issue) => `유효하지 않은 ISO 초: ${issue.received} 을(를) 받았습니다`,\n    isoTimestamp:     (issue) => `유효하지 않은 ISO 타임스탬프: ${issue.received} 을(를) 받았습니다`,\n    isoWeek:          (issue) => `유효하지 않은 ISO 주: ${issue.received} 을(를) 받았습니다`,\n    isrc:             (issue) => `유효하지 않은 ISRC: ${issue.received} 을(를) 받았습니다`,\n    jwsCompact:       (issue) => `유효하지 않은 JWS 압축 직렬화: ${issue.received} 을(를) 받았습니다`,\n    length:           (issue) => `유효하지 않은 길이: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    ltValue:          (issue) => `유효하지 않은 값: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    mac:              (issue) => `유효하지 않은 MAC: ${issue.received} 을(를) 받았습니다`,\n    mac48:            (issue) => `유효하지 않은 MAC-48: ${issue.received} 을(를) 받았습니다`,\n    mac64:            (issue) => `유효하지 않은 MAC-64: ${issue.received} 을(를) 받았습니다`,\n    maxBytes:         (issue) => `바이트가 너무 큽니다: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    maxEntries:       (issue) => `유효하지 않은 항목 수: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    maxGraphemes:     (issue) => `문자 그래프가 너무 큽니다: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    maxLength:        (issue) => `길이가 너무 깁니다: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    maxSize:          (issue) => `크기가 너무 큽니다: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    maxValue:         (issue) => `값이 너무 큽니다: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    maxWords:         (issue) => `단어가 너무 많습니다: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    mimeType:         (issue) => `유효하지 않은 MIME 타입: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    minBytes:         (issue) => `바이트가 너무 작습니다: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    minEntries:       (issue) => `유효하지 않은 항목 수: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    minGraphemes:     (issue) => `문자 그래프가 너무 작습니다: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    minLength:        (issue) => `길이가 너무 짧습니다: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    minSize:          (issue) => `크기가 너무 작습니다: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    minValue:         (issue) => `값이 너무 작습니다: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    minWords:         (issue) => `단어가 너무 적습니다: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    multipleOf:       (issue) => `유효하지 않은 배수: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    nanoid:           (issue) => `유효하지 않은 Nano ID: ${issue.received} 을(를) 받았습니다`,\n    nonEmpty:         (issue) => `값이 비어 있습니다: ${issue.received} 을(를) 받았습니다`,\n    notBytes:         (issue) => `허용되지 않는 바이트 길이: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    notEntries:       (issue) => `유효하지 않은 항목 수: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    notGraphemes:     (issue) => `허용되지 않는 문자 그래프 수: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    notLength:        (issue) => `허용되지 않는 길이: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    notSize:          (issue) => `허용되지 않는 크기: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    notValue:         (issue) => `허용되지 않는 값: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    notValues:        (issue) => `유효하지 않은 값: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    notWords:         (issue) => `허용되지 않는 단어 수: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    octal:            (issue) => `유효하지 않은 8진수: ${issue.received} 을(를) 받았습니다`,\n    parseBoolean:     (issue) => `유효하지 않은 불리언 값: ${issue.received} 을(를) 받았습니다`,\n    parseJson:        (issue) => `유효하지 않은 JSON: ${issue.received} 을(를) 받았습니다`,\n    partialCheck:     (issue) => `부분적으로 유효하지 않은 입력: ${issue.received} 을(를) 받았습니다`,\n    rawCheck:         (issue) => `유효하지 않은 입력: ${issue.received} 을(를) 받았습니다`,\n    rawTransform:     (issue) => `유효하지 않은 입력: ${issue.received} 을(를) 받았습니다`,\n    regex:            (issue) => `정규식에 맞지 않습니다: ${issue.received} 을(를) 받았습니다`,\n    rfcEmail:         (issue) => `유효하지 않은 이메일: ${issue.received} 을(를) 받았습니다`,\n    safeInteger:      (issue) => `유효하지 않은 안전한 정수: ${issue.received} 을(를) 받았습니다`,\n    size:             (issue) => `유효하지 않은 크기: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    slug:             (issue) => `유효하지 않은 슬러그: ${issue.received} 을(를) 받았습니다`,\n    someItem:         (issue) => `유효하지 않은 항목: ${issue.received} 을(를) 받았습니다`,\n    startsWith:       (issue) => `유효하지 않은 시작: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    stringifyJson:    (issue) => `유효하지 않은 JSON: ${issue.received} 을(를) 받았습니다`,\n    toBigint:         (issue) => `유효하지 않은 BigInt: ${issue.received} 을(를) 받았습니다`,\n    toDate:           (issue) => `유효하지 않은 날짜: ${issue.received} 을(를) 받았습니다`,\n    toNumber:         (issue) => `유효하지 않은 숫자: ${issue.received} 을(를) 받았습니다`,\n    toString:         (issue) => `유효하지 않은 문자열: ${issue.received} 을(를) 받았습니다`,\n    ulid:             (issue) => `유효하지 않은 ULID: ${issue.received} 을(를) 받았습니다`,\n    url:              (issue) => `유효하지 않은 URL: ${issue.received} 을(를) 받았습니다`,\n    uuid:             (issue) => `유효하지 않은 UUID: ${issue.received} 을(를) 받았습니다`,\n    value:            (issue) => `유효하지 않은 값: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    values:           (issue) => `유효하지 않은 값: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n    words:            (issue) => `유효하지 않은 단어: ${issue.expected} 을(를) 예상했으나 ${issue.received} 을(를) 받았습니다`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/kr.ts",
    "content": "import ko from './ko';\nimport type { Language } from './types';\n\n/**\n * @deprecated Use 'ko.ts' instead. The correct ISO 639-1 code for Korean is 'ko'.\n * This alias will be removed in a future major release.\n */\n\nconst language: Language = { ...ko, code: 'kr' };\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/mn.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'mn',\n  schema:             (issue) => `Буруу төрөл: ${issue.expected} төрлийг хүлээсэн ч ${issue.received} төрлийн утга ирсэн байна`,\n  specific: {\n    base64:           (issue) => `Буруу Base64: ${issue.received} ирлээ`,\n    bic:              (issue) => `Буруу BIC: ${issue.received} ирлээ`,\n    bytes:            (issue) => `Буруу байт: ${issue.expected} хүлээсэн ч ${issue.received} ирлээ`,\n    check:            (issue) => `Буруу утга: ${issue.received} ирлээ`,\n    checkAsync:       (issue) => `Буруу утга: ${issue.received} ирлээ`,\n    checkItems:       (issue) => `Буруу элемент: ${issue.received} ирлээ`,\n    checkItemsAsync:  (issue) => `Буруу элемент: ${issue.received} ирлээ`,\n    creditCard:       (issue) => `Буруу картын дугаар: ${issue.received} ирлээ`,\n    cuid2:            (issue) => `Буруу Cuid2: ${issue.received} ирлээ`,\n    decimal:          (issue) => `Буруу аравтын тоо: ${issue.received} ирлээ`,\n    digits:           (issue) => `Буруу цифр: ${issue.received} ирлээ`,\n    domain:           (issue) => `Буруу домэйн: ${issue.received} ирлээ`,\n    email:            (issue) => `Буруу имэйл: ${issue.received} ирлээ`,\n    emoji:            (issue) => `Буруу эможи: ${issue.received} ирлээ`,\n    empty:            (issue) => `Буруу урт: ${issue.expected} хүлээсэн ч ${issue.received} ирлээ`,\n    endsWith:         (issue) => `Буруу төгсгөл: ${issue.expected} хүлээсэн ч ${issue.received} ирлээ`,\n    entries:          (issue) => `Буруу элементийн тоо: ${issue.expected} хүлээсэн ч ${issue.received} ирлээ`,\n    everyItem:        (issue) => `Буруу элемент: ${issue.received} ирлээ`,\n    excludes:         (issue) => `Буруу агуулга: ${issue.expected} хүлээсэн ч ${issue.received} ирлээ`,\n    finite:           (issue) => `Буруу хязгаарлагдмал тоо: ${issue.received} ирлээ`,\n    graphemes:        (issue) => `Буруу тэмдэгт: ${issue.expected} хүлээсэн ч ${issue.received} ирлээ`,\n    gtValue:          (issue) => `Буруу утга: ${issue.expected}-ээс их байх ёстой ч ${issue.received} ирлээ`,\n    guard:            (issue) => `Буруу утга: ${issue.received} ирлээ`,\n    hash:             (issue) => `Буруу хэш: ${issue.received} ирлээ`,\n    hexColor:         (issue) => `Буруу hex өнгө: ${issue.received} ирлээ`,\n    hexadecimal:      (issue) => `Буруу 16-тын тоо: ${issue.received} ирлээ`,\n    imei:             (issue) => `Буруу IMEI: ${issue.received} ирлээ`,\n    includes:         (issue) => `Буруу агуулга: ${issue.expected} хүлээсэн ч ${issue.received} ирлээ`,\n    integer:          (issue) => `Буруу бүхэл тоо: ${issue.received} ирлээ`,\n    ip:               (issue) => `Буруу IP: ${issue.received} ирлээ`,\n    ipv4:             (issue) => `Буруу IPv4: ${issue.received} ирлээ`,\n    ipv6:             (issue) => `Буруу IPv6: ${issue.received} ирлээ`,\n    isbn:             (issue) => `Буруу ISBN: ${issue.received} ирлээ`,\n    isoDate:          (issue) => `Буруу огноо: ${issue.received} ирлээ`,\n    isoDateTime:      (issue) => `Буруу огноо-цаг: ${issue.received} ирлээ`,\n    isoTime:          (issue) => `Буруу цаг: ${issue.received} ирлээ`,\n    isoTimeSecond:    (issue) => `Буруу цаг: ${issue.received} ирлээ`,\n    isoTimestamp:     (issue) => `Буруу ISO timestamp: ${issue.received} ирлээ`,\n    isoWeek:          (issue) => `Буруу долоо хоног: ${issue.received} ирлээ`,\n    isrc:             (issue) => `Буруу ISRC: ${issue.received} ирлээ`,\n    jwsCompact:       (issue) => `Буруу JWS compact: ${issue.received} ирлээ`,\n    length:           (issue) => `Буруу урт: ${issue.expected} хүлээсэн ч ${issue.received} ирлээ`,\n    ltValue:          (issue) => `Буруу утга: ${issue.expected}-ээс бага байх ёстой ч ${issue.received} ирлээ`,\n    mac:              (issue) => `Буруу MAC: ${issue.received} ирлээ`,\n    mac48:            (issue) => `Буруу 48-bit MAC: ${issue.received} ирлээ`,\n    mac64:            (issue) => `Буруу 64-bit MAC: ${issue.received} ирлээ`,\n    maxBytes:         (issue) => `Буруу байт хэмжээ: ${issue.expected} хэтрэхгүй байх ёстой ч ${issue.received} ирлээ`,\n    maxEntries:       (issue) => `Буруу элементийн тоо: ${issue.expected} хэтрэхгүй байх ёстой ч ${issue.received} ирлээ`,\n    maxGraphemes:     (issue) => `Буруу тэмдэгтийн тоо: ${issue.expected} хэтрэхгүй байх ёстой ч ${issue.received} ирлээ`,\n    maxLength:        (issue) => `Буруу урт: ${issue.expected} хэтрэхгүй байх ёстой ч ${issue.received} ирлээ`,\n    maxSize:          (issue) => `Буруу хэмжээ: ${issue.expected} хэтрэхгүй байх ёстой ч ${issue.received} ирлээ`,\n    maxValue:         (issue) => `Буруу утга: ${issue.expected} хэтрэхгүй байх ёстой ч ${issue.received} ирлээ`,\n    maxWords:         (issue) => `Буруу үгийн тоо: ${issue.expected} хэтрэхгүй байх ёстой ч ${issue.received} ирлээ`,\n    mimeType:         (issue) => `Буруу MIME төрөл: ${issue.expected} хүлээсэн ч ${issue.received} ирлээ`,\n    minBytes:         (issue) => `Буруу байт хэмжээ: ${issue.expected}-с багагүй байх ёстой ч ${issue.received} ирлээ`,\n    minEntries:       (issue) => `Буруу элементийн тоо: ${issue.expected}-с багагүй байх ёстой ч ${issue.received} ирлээ`,\n    minGraphemes:     (issue) => `Буруу тэмдэгтийн тоо: ${issue.expected}-с багагүй байх ёстой ч ${issue.received} ирлээ`,\n    minLength:        (issue) => `Буруу урт: ${issue.expected}-с багагүй байх ёстой ч ${issue.received} ирлээ`,\n    minSize:          (issue) => `Буруу хэмжээ: ${issue.expected}-с багагүй байх ёстой ч ${issue.received} ирлээ`,\n    minValue:         (issue) => `Буруу утга: ${issue.expected}-с багагүй байх ёстой ч ${issue.received} ирлээ`,\n    minWords:         (issue) => `Буруу үгийн тоо: ${issue.expected}-с багагүй байх ёстой ч ${issue.received} ирлээ`,\n    multipleOf:       (issue) => `Буруу үржвэр: ${issue.expected} хүлээсэн ч ${issue.received} ирлээ`,\n    nanoid:           (issue) => `Буруу Nano ID: ${issue.received} ирлээ`,\n    nonEmpty:         (issue) => `Буруу урт: ${issue.expected} хүлээсэн ч ${issue.received} ирлээ`,\n    notBytes:         (issue) => `Буруу байт хэмжээ: ${issue.expected} хүлээсэн ч ${issue.received} ирлээ`,\n    notEntries:       (issue) => `Буруу элементийн тоо: ${issue.expected} хүлээсэн ч ${issue.received} ирлээ`,\n    notGraphemes:     (issue) => `Буруу тэмдэгтийн тоо: ${issue.expected} хүлээсэн ч ${issue.received} ирлээ`,\n    notLength:        (issue) => `Буруу урт: ${issue.expected} хүлээсэн ч ${issue.received} ирлээ`,\n    notSize:          (issue) => `Буруу хэмжээ: ${issue.expected} хүлээсэн ч ${issue.received} ирлээ`,\n    notValue:         (issue) => `Буруу утга: ${issue.expected} хүлээсэн ч ${issue.received} ирлээ`,\n    notValues:        (issue) => `Буруу утга: ${issue.expected} хүлээсэн ч ${issue.received} ирлээ`,\n    notWords:         (issue) => `Буруу үгс: ${issue.expected} хүлээсэн ч ${issue.received} ирлээ`,\n    octal:            (issue) => `Буруу наймтын тоо: ${issue.received} ирлээ`,\n    parseBoolean:     (issue) => `Буруу boolean: ${issue.received} ирлээ`,\n    parseJson:        (issue) => `Буруу JSON: ${issue.received} ирлээ`,\n    partialCheck:     (issue) => `Буруу утга: ${issue.received} ирлээ`,\n    rawCheck:         (issue) => `Буруу утга: ${issue.received} ирлээ`,\n    rawTransform:     (issue) => `Буруу утга: ${issue.received} ирлээ`,\n    regex:            (issue) => `Буруу формат: ${issue.expected} хүлээсэн ч ${issue.received} ирлээ`,\n    rfcEmail:         (issue) => `Буруу имэйл: ${issue.received} ирлээ`,\n    safeInteger:      (issue) => `Буруу аюулгүй бүхэл тоо: ${issue.received} ирлээ`,\n    size:             (issue) => `Буруу хэмжээ: ${issue.expected} хүлээсэн ч ${issue.received} ирлээ`,\n    slug:             (issue) => `Буруу slug: ${issue.received} ирлээ`,\n    someItem:         (issue) => `Буруу элемент: ${issue.received} ирлээ`,\n    startsWith:       (issue) => `Буруу эхлэл: ${issue.expected} хүлээсэн ч ${issue.received} ирлээ`,\n    stringifyJson:    (issue) => `Буруу JSON: ${issue.received} ирлээ`,\n    toBigint:         (issue) => `Буруу bigint: ${issue.received} ирлээ`,\n    toDate:           (issue) => `Буруу огноо: ${issue.received} ирлээ`,\n    toNumber:         (issue) => `Буруу тоо: ${issue.received} ирлээ`,\n    toString:         (issue) => `Буруу тэмдэгт мөр: ${issue.received} ирлээ`,\n    ulid:             (issue) => `Буруу ULID: ${issue.received} ирлээ`,\n    url:              (issue) => `Буруу URL: ${issue.received} ирлээ`,\n    uuid:             (issue) => `Буруу UUID: ${issue.received} ирлээ`,\n    value:            (issue) => `Буруу утга: ${issue.expected} хүлээсэн ч ${issue.received} ирлээ`,\n    values:           (issue) => `Буруу утга: ${issue.expected} хүлээсэн ч ${issue.received} ирлээ`,\n    words:            (issue) => `Буруу үгс: ${issue.expected} хүлээсэн ч ${issue.received} ирлээ`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/nb.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'nb',\n  schema:             (issue) => `Ugyldig type: Forventet ${issue.expected}, men mottok ${issue.received}`,\n  specific: {\n    base64:           (issue) => `Ugyldig Base64: Mottok ${issue.received}`,\n    bic:              (issue) => `Ugyldig BIC: Mottok ${issue.received}`,\n    bytes:            (issue) => `Ugyldige bytes: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    check:            (issue) => `Ugyldig inndata: Mottok ${issue.received}`,\n    checkAsync:       (issue) => `Ugyldig inndata: Mottok ${issue.received}`,\n    checkItems:       (issue) => `Ugyldig element: Mottok ${issue.received}`,\n    checkItemsAsync:  (issue) => `Ugyldig element: Mottok ${issue.received}`,\n    creditCard:       (issue) => `Ugyldig kredittkort: Mottok ${issue.received}`,\n    cuid2:            (issue) => `Ugyldig Cuid2: Mottok ${issue.received}`,\n    decimal:          (issue) => `Ugyldig desimal: Mottok ${issue.received}`,\n    digits:           (issue) => `Ugyldig siffer: Mottok ${issue.received}`,\n    domain:           (issue) => `Ugyldig domene: Mottok ${issue.received}`,\n    email:            (issue) => `Ugyldig e-post: Mottok ${issue.received}`,\n    emoji:            (issue) => `Ugyldig emoji: Mottok ${issue.received}`,\n    empty:            (issue) => `Ugyldig lengde: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    endsWith:         (issue) => `Ugyldig slutt: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    entries:          (issue) => `Ugyldige oppføringer: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    everyItem:        (issue) => `Ugyldig element: Mottok ${issue.received}`,\n    excludes:         (issue) => `Ugyldig innhold: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    finite:           (issue) => `Ugyldig endelig: Mottok ${issue.received}`,\n    graphemes:        (issue) => `Ugyldig grafem: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    gtValue:          (issue) => `Ugyldig verdi: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    guard:            (issue) => `Ugyldig inndata: Mottok ${issue.received}`,\n    hash:             (issue) => `Ugyldig hash: Mottok ${issue.received}`,\n    hexadecimal:      (issue) => `Ugyldig heksadesimal: Mottok ${issue.received}`,\n    hexColor:         (issue) => `Ugyldig heksadesimal farge: Mottok ${issue.received}`,\n    imei:             (issue) => `Ugyldig IMEI: Mottok ${issue.received}`,\n    includes:         (issue) => `Ugyldig innhold: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    integer:          (issue) => `Ugyldig heltall: Mottok ${issue.received}`,\n    ip:               (issue) => `Ugyldig IP: Mottok ${issue.received}`,\n    ipv4:             (issue) => `Ugyldig IPv4: Mottok ${issue.received}`,\n    ipv6:             (issue) => `Ugyldig IPv6: Mottok ${issue.received}`,\n    isbn:             (issue) => `Ugyldig ISBN: Mottok ${issue.received}`,\n    isoDate:          (issue) => `Ugyldig dato: Mottok ${issue.received}`,\n    isoDateTime:      (issue) => `Ugyldig dato-klokkeslett: Mottok ${issue.received}`,\n    isoTime:          (issue) => `Ugyldig tid: Mottok ${issue.received}`,\n    isoTimeSecond:    (issue) => `Ugyldig tidssekund: Mottok ${issue.received}`,\n    isoTimestamp:     (issue) => `Ugyldig tidsstempel: Mottok ${issue.received}`,\n    isoWeek:          (issue) => `Ugyldig uke: Mottok ${issue.received}`,\n    isrc:             (issue) => `Ugyldig ISRC: Mottok ${issue.received}`,\n    jwsCompact:       (issue) => `Ugyldig kompakt JWS: Mottok ${issue.received}`,\n    length:           (issue) => `Ugyldig lengde: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    ltValue:          (issue) => `Ugyldig verdi: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    mac:              (issue) => `Ugyldig MAC: Mottok ${issue.received}`,\n    mac48:            (issue) => `Ugyldig 48-bit MAC: Mottok ${issue.received}`,\n    mac64:            (issue) => `Ugyldig 64-bit MAC: Mottok ${issue.received}`,\n    maxBytes:         (issue) => `Ugyldige bytes: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    maxEntries:       (issue) => `Ugyldige oppføringer: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    maxGraphemes:     (issue) => `Ugyldig grafem: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    maxLength:        (issue) => `Ugyldig lengde: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    maxSize:          (issue) => `Ugyldig størrelse: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    maxValue:         (issue) => `Ugyldig verdi: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    maxWords:         (issue) => `Ugyldig ord: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    mimeType:         (issue) => `Ugyldig MIME-type: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    minBytes:         (issue) => `Ugyldige bytes: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    minEntries:       (issue) => `Ugyldige oppføringer: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    minGraphemes:     (issue) => `Ugyldig grafem: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    minLength:        (issue) => `Ugyldig lengde: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    minSize:          (issue) => `Ugyldig størrelse: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    minValue:         (issue) => `Ugyldig verdi: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    minWords:         (issue) => `Ugyldig ord: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    multipleOf:       (issue) => `Ugyldig multiplum: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    nanoid:           (issue) => `Ugyldig Nano ID: Mottok ${issue.received}`,\n    nonEmpty:         (issue) => `Ugyldig lengde: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    notBytes:         (issue) => `Ugyldige bytes: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    notEntries:       (issue) => `Ugyldige oppføringer: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    notGraphemes:     (issue) => `Ugyldig grafem: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    notLength:        (issue) => `Ugyldig lengde: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    notSize:          (issue) => `Ugyldig størrelse: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    notValue:         (issue) => `Ugyldig verdi: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    notValues:        (issue) => `Ugyldig verdi: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    notWords:         (issue) => `Ugyldig ord: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    octal:            (issue) => `Ugyldig oktal: Mottok ${issue.received}`,\n    parseBoolean:     (issue) => `Ugyldig boolsk verdi: Mottok ${issue.received}`,\n    parseJson:        (issue) => `Ugyldig JSON: Mottok ${issue.received}`,\n    partialCheck:     (issue) => `Ugyldig inndata: Mottok ${issue.received}`,\n    rawCheck:         (issue) => `Ugyldig inndata: Mottok ${issue.received}`,\n    rawTransform:     (issue) => `Ugyldig inndata: Mottok ${issue.received}`,\n    regex:            (issue) => `Ugyldig format: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    rfcEmail:         (issue) => `Ugyldig e-post: Mottok ${issue.received}`,\n    safeInteger:      (issue) => `Ugyldig sikkert heltall: Mottok ${issue.received}`,\n    size:             (issue) => `Ugyldig størrelse: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    slug:             (issue) => `Ugyldig slug: Mottok ${issue.received}`,\n    someItem:         (issue) => `Ugyldig element: Mottok ${issue.received}`,\n    startsWith:       (issue) => `Ugyldig start: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    stringifyJson:    (issue) => `Ugyldig JSON: Mottok ${issue.received}`,\n    toBigint:         (issue) => `Ugyldig BigInt: Mottok ${issue.received}`,\n    toDate:           (issue) => `Ugyldig dato: Mottok ${issue.received}`,\n    toNumber:         (issue) => `Ugyldig tall: Mottok ${issue.received}`,\n    toString:         (issue) => `Ugyldig streng: Mottok ${issue.received}`,\n    ulid:             (issue) => `Ugyldig ULID: Mottok ${issue.received}`,\n    url:              (issue) => `Ugyldig URL: Mottok ${issue.received}`,\n    uuid:             (issue) => `Ugyldig UUID: Mottok ${issue.received}`,\n    value:            (issue) => `Ugyldig verdi: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    values:           (issue) => `Ugyldig verdi: Forventet ${issue.expected}, men mottok ${issue.received}`,\n    words:            (issue) => `Ugyldig ord: Forventet ${issue.expected}, men mottok ${issue.received}`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/nl.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'nl',\n  schema:             (issue) => `Ongeldig type: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n  specific: {\n    base64:           (issue) => `Ongeldige Base64: ${issue.received} ontvangen`,\n    bic:              (issue) => `Ongeldige BIC: ${issue.received} ontvangen`,\n    bytes:            (issue) => `Ongeldige bytes: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    check:            (issue) => `Ongeldige invoer: ${issue.received} ontvangen`,\n    checkAsync:       (issue) => `Ongeldige invoer: ${issue.received} ontvangen`,\n    checkItems:       (issue) => `Ongeldige item: ${issue.received} ontvangen`,\n    checkItemsAsync:  (issue) => `Ongeldige item: ${issue.received} ontvangen`,\n    creditCard:       (issue) => `Ongeldige creditcard: ${issue.received} ontvangen`,\n    cuid2:            (issue) => `Ongeldige Cuid2: ${issue.received} ontvangen`,\n    decimal:          (issue) => `Ongeldige decimaal: ${issue.received} ontvangen`,\n    digits:           (issue) => `Ongeldige cijfers: ${issue.received} ontvangen`,\n    domain:           (issue) => `Ongeldig domein: ${issue.received} ontvangen`,\n    email:            (issue) => `Ongeldige e-mail: ${issue.received} ontvangen`,\n    emoji:            (issue) => `Ongeldige emoji: ${issue.received} ontvangen`,\n    empty:            (issue) => `Ongeldige lengte: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    endsWith:         (issue) => `Ongeldig einde: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    entries:          (issue) => `Ongeldig aantal items: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    everyItem:        (issue) => `Ongeldig item: ${issue.received} ontvangen`,\n    excludes:         (issue) => `Ongeldige inhoud: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    finite:           (issue) => `Ongeldige eindige: ${issue.received} ontvangen`,\n    graphemes:        (issue) => `Ongeldige grafemen: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    gtValue:          (issue) => `Ongeldige waarde: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    guard:            (issue) => `Ongeldige invoer: ${issue.received} ontvangen`,\n    hash:             (issue) => `Ongeldige hash: ${issue.received} ontvangen`,\n    hexadecimal:      (issue) => `Ongeldige hexadecimaal: ${issue.received} ontvangen`,\n    hexColor:         (issue) => `Ongeldige hex kleur: ${issue.received} ontvangen`,\n    imei:             (issue) => `Ongeldige IMEI: ${issue.received} ontvangen`,\n    includes:         (issue) => `Ongeldige inhoud: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    integer:          (issue) => `Ongeldig geheel getal: ${issue.received} ontvangen`,\n    ip:               (issue) => `Ongeldige IP: ${issue.received} ontvangen`,\n    ipv4:             (issue) => `Ongeldig IPv4: ${issue.received} ontvangen`,\n    ipv6:             (issue) => `Ongeldig IPv6: ${issue.received} ontvangen`,\n    isbn:             (issue) => `Ongeldige ISBN: ${issue.received} ontvangen`,\n    isoDate:          (issue) => `Ongeldige datum: ${issue.received} ontvangen`,\n    isoDateTime:      (issue) => `Ongeldige datum-tijd: ${issue.received} ontvangen`,\n    isoTime:          (issue) => `Ongeldige tijd: ${issue.received} ontvangen`,\n    isoTimeSecond:    (issue) => `Ongeldige tijd in seconden: ${issue.received} ontvangen`,\n    isoTimestamp:     (issue) => `Ongeldige tijdstempel: ${issue.received} ontvangen`,\n    isoWeek:          (issue) => `Ongeldige week: ${issue.received} ontvangen`,\n    isrc:             (issue) => `Ongeldige ISRC: ${issue.received} ontvangen`,\n    jwsCompact:       (issue) => `Ongeldige compacte JWS: ${issue.received} ontvangen`,\n    length:           (issue) => `Ongeldige lengte: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    ltValue:          (issue) => `Ongeldige waarde: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    mac:              (issue) => `Ongeldige MAC: ${issue.received} ontvangen`,\n    mac48:            (issue) => `Ongeldige 48-bit MAC: ${issue.received} ontvangen`,\n    mac64:            (issue) => `Ongeldige 64-bit MAC: ${issue.received} ontvangen`,\n    maxBytes:         (issue) => `Ongeldige bytes: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    maxEntries:       (issue) => `Ongeldig aantal items: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    maxGraphemes:     (issue) => `Ongeldige grafemen: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    maxLength:        (issue) => `Ongeldige lengte: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    maxSize:          (issue) => `Ongeldige grootte: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    maxValue:         (issue) => `Ongeldige waarde: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    maxWords:         (issue) => `Ongeldige woorden: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    mimeType:         (issue) => `Ongeldig MIME-type: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    minBytes:         (issue) => `Ongeldige bytes: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    minEntries:       (issue) => `Ongeldig aantal items: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    minGraphemes:     (issue) => `Ongeldige grafemen: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    minLength:        (issue) => `Ongeldige lengte: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    minSize:          (issue) => `Ongeldige grootte: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    minValue:         (issue) => `Ongeldige waarde: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    minWords:         (issue) => `Ongeldige woorden: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    multipleOf:       (issue) => `Ongeldige meervoudige: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    nanoid:           (issue) => `Ongeldige Nano ID: ${issue.received} ontvangen`,\n    nonEmpty:         (issue) => `Ongeldige lengte: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    notBytes:         (issue) => `Ongeldige bytes: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    notEntries:       (issue) => `Ongeldig aantal items: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    notGraphemes:     (issue) => `Ongeldige grafemen: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    notLength:        (issue) => `Ongeldige lengte: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    notSize:          (issue) => `Ongeldige grootte: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    notValue:         (issue) => `Ongeldige waarde: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    notValues:        (issue) => `Ongeldige waarde: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    notWords:         (issue) => `Ongeldige woorden: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    octal:            (issue) => `Ongeldige octaal: ${issue.received} ontvangen`,\n    parseBoolean:     (issue) => `Ongeldige booleaanse waarde: ${issue.received} ontvangen`,\n    parseJson:        (issue) => `Ongeldige JSON: ${issue.received} ontvangen`,\n    partialCheck:     (issue) => `Ongeldige invoer: ${issue.received} ontvangen`,\n    rawCheck:         (issue) => `Ongeldige invoer: ${issue.received} ontvangen`,\n    rawTransform:     (issue) => `Ongeldige invoer: ${issue.received} ontvangen`,\n    regex:            (issue) => `Ongeldig formaat: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    rfcEmail:         (issue) => `Ongeldige e-mail: ${issue.received} ontvangen`,\n    safeInteger:      (issue) => `Ongeldig veilig geheel getal: ${issue.received} ontvangen`,\n    size:             (issue) => `Ongeldige grootte: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    slug:             (issue) => `Ongeldige slug: ${issue.received} ontvangen`,\n    someItem:         (issue) => `Ongeldig item: ${issue.received} ontvangen`,\n    startsWith:       (issue) => `Ongeldig begin: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    stringifyJson:    (issue) => `Ongeldige JSON: ${issue.received} ontvangen`,\n    toBigint:         (issue) => `Ongeldige BigInt: ${issue.received} ontvangen`,\n    toDate:           (issue) => `Ongeldige datum: ${issue.received} ontvangen`,\n    toNumber:         (issue) => `Ongeldig getal: ${issue.received} ontvangen`,\n    toString:         (issue) => `Ongeldige tekenreeks: ${issue.received} ontvangen`,\n    ulid:             (issue) => `Ongeldige ULID: ${issue.received} ontvangen`,\n    url:              (issue) => `Ongeldige URL: ${issue.received} ontvangen`,\n    uuid:             (issue) => `Ongeldige UUID: ${issue.received} ontvangen`,\n    value:            (issue) => `Ongeldige waarde: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    values:           (issue) => `Ongeldige waarde: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n    words:            (issue) => `Ongeldige woorden: ${issue.expected} verwacht, maar ${issue.received} ontvangen`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/pl.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'pl',\n  schema:             (issue) => `Nieprawidłowy typ: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n  specific: {\n    base64:           (issue) => `Nieprawidłowe Base64: Otrzymano ${issue.received}`,\n    bic:              (issue) => `Nieprawidłowy BIC: Otrzymano ${issue.received}`,\n    bytes:            (issue) => `Nieprawidłowe bajty: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    check:            (issue) => `Nieprawidłowe dane: Otrzymano ${issue.received}`,\n    checkAsync:       (issue) => `Nieprawidłowe dane: Otrzymano ${issue.received}`,\n    checkItems:       (issue) => `Nieprawidłowy element: Otrzymano ${issue.received}`,\n    checkItemsAsync:  (issue) => `Nieprawidłowy element: Otrzymano ${issue.received}`,\n    creditCard:       (issue) => `Nieprawidłowy numer karty kredytowej: Otrzymano ${issue.received}`,\n    cuid2:            (issue) => `Nieprawidłowy Cuid2: Otrzymano ${issue.received}`,\n    decimal:          (issue) => `Nieprawidłowa wartość dziesiętna: Otrzymano ${issue.received}`,\n    digits:           (issue) => `Nieprawidłowa liczba: Otrzymano ${issue.received}`,\n    domain:           (issue) => `Nieprawidłowa domena: Otrzymano ${issue.received}`,\n    email:            (issue) => `Nieprawidłowy email: Otrzymano ${issue.received}`,\n    emoji:            (issue) => `Nieprawidłowa emoji: Otrzymano ${issue.received}`,\n    empty:            (issue) => `Nieprawidłowa długość: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    endsWith:         (issue) => `Nieprawidłowa końcówka: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    entries:          (issue) => `Nieprawidłowa liczba wpisów: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    everyItem:        (issue) => `Nieprawidłowy element: Otrzymano ${issue.received}`,\n    excludes:         (issue) => `Nieprawidłowa zawartość: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    finite:           (issue) => `Nieprawidłowa wartość skończona: Otrzymano ${issue.received}`,\n    graphemes:        (issue) => `Nieprawidłowe grafemy: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    gtValue:          (issue) => `Nieprawidłowa wartość: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    guard:            (issue) => `Nieprawidłowe dane: Otrzymano ${issue.received}`,\n    hash:             (issue) => `Nieprawidłowy hash: Otrzymano ${issue.received}`,\n    hexadecimal:      (issue) => `Nieprawidłowa wartość szesnastkowa: Otrzymano ${issue.received}`,\n    hexColor:         (issue) => `Nieprawidłowy kolor hex: Otrzymano ${issue.received}`,\n    imei:             (issue) => `Nieprawidłowy IMEI: Otrzymano ${issue.received}`,\n    includes:         (issue) => `Nieprawidłowa zawartość: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    integer:          (issue) => `Nieprawidłowa liczba całkowita: Otrzymano ${issue.received}`,\n    ip:               (issue) => `Nieprawidłowy adres IP: Otrzymano ${issue.received}`,\n    ipv4:             (issue) => `Nieprawidłowy adres IPv4: Otrzymano ${issue.received}`,\n    ipv6:             (issue) => `Nieprawidłowy adres IPv6: Otrzymano ${issue.received}`,\n    isbn:             (issue) => `Nieprawidłowy ISBN: Otrzymano ${issue.received}`,\n    isoDate:          (issue) => `Nieprawidłowa data: Otrzymano ${issue.received}`,\n    isoDateTime:      (issue) => `Nieprawidłowa data i czas: Otrzymano ${issue.received}`,\n    isoTime:          (issue) => `Nieprawidłowy czas: Otrzymano ${issue.received}`,\n    isoTimeSecond:    (issue) => `Nieprawidłowa wartość sekundy czasu: Otrzymano ${issue.received}`,\n    isoTimestamp:     (issue) => `Nieprawidłowy znacznik czasu: Otrzymano ${issue.received}`,\n    isoWeek:          (issue) => `Nieprawidłowy tydzień: Otrzymano ${issue.received}`,\n    isrc:             (issue) => `Nieprawidłowy ISRC: Otrzymano ${issue.received}`,\n    jwsCompact:       (issue) => `Nieprawidłowy kompaktowy JWS: Otrzymano ${issue.received}`,\n    length:           (issue) => `Nieprawidłowa długość: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    ltValue:          (issue) => `Nieprawidłowa wartość: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    mac:              (issue) => `Nieprawidłowy adres MAC: Otrzymano ${issue.received}`,\n    mac48:            (issue) => `Nieprawidłowy 48-bitowy adres MAC: Otrzymano ${issue.received}`,\n    mac64:            (issue) => `Nieprawidłowy 64-bitowy adres MAC: Otrzymano ${issue.received}`,\n    maxBytes:         (issue) => `Nieprawidłowe bajty: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    maxEntries:       (issue) => `Nieprawidłowa liczba wpisów: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    maxGraphemes:     (issue) => `Nieprawidłowe grafemy: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    maxLength:        (issue) => `Nieprawidłowa długość: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    maxSize:          (issue) => `Nieprawidłowy rozmiar: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    maxValue:         (issue) => `Nieprawidłowa wartość: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    maxWords:         (issue) => `Nieprawidłowe słowa: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    mimeType:         (issue) => `Nieprawidłowy typ MIME: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    minBytes:         (issue) => `Nieprawidłowe bajty: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    minEntries:       (issue) => `Nieprawidłowa liczba wpisów: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    minGraphemes:     (issue) => `Nieprawidłowe grafemy: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    minLength:        (issue) => `Nieprawidłowa długość: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    minSize:          (issue) => `Nieprawidłowy rozmiar: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    minValue:         (issue) => `Nieprawidłowa wartość: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    minWords:         (issue) => `Nieprawidłowe słowa: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    multipleOf:       (issue) => `Nieprawidłowa wielokrotność: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    nanoid:           (issue) => `Nieprawidłowy identyfikator Nano ID: Otrzymano ${issue.received}`,\n    nonEmpty:         (issue) => `Nieprawidłowa długość: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    notBytes:         (issue) => `Nieprawidłowe bajty: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    notEntries:       (issue) => `Nieprawidłowa liczba wpisów: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    notGraphemes:     (issue) => `Nieprawidłowe grafemy: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    notLength:        (issue) => `Nieprawidłowa długość: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    notSize:          (issue) => `Nieprawidłowy rozmiar: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    notValue:         (issue) => `Nieprawidłowa wartość: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    notValues:        (issue) => `Nieprawidłowa wartość: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    notWords:         (issue) => `Nieprawidłowe słowa: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    octal:            (issue) => `Nieprawidłowa wartość ósemkowa: Otrzymano ${issue.received}`,\n    parseBoolean:     (issue) => `Nieprawidłowa wartość logiczna: Otrzymano ${issue.received}`,\n    parseJson:        (issue) => `Nieprawidłowy JSON: Otrzymano ${issue.received}`,\n    partialCheck:     (issue) => `Nieprawidłowe dane: Otrzymano ${issue.received}`,\n    rawCheck:         (issue) => `Nieprawidłowe dane: Otrzymano ${issue.received}`,\n    rawTransform:     (issue) => `Nieprawidłowe dane: Otrzymano ${issue.received}`,\n    regex:            (issue) => `Nieprawidłowy format: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    rfcEmail:         (issue) => `Nieprawidłowy email: Otrzymano ${issue.received}`,\n    safeInteger:      (issue) => `Nieprawidłowa bezpieczna liczba całkowita: Otrzymano ${issue.received}`,\n    size:             (issue) => `Nieprawidłowy rozmiar: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    slug:             (issue) => `Nieprawidłowy slug: Otrzymano ${issue.received}`,\n    someItem:         (issue) => `Nieprawidłowy element: Otrzymano ${issue.received}`,\n    startsWith:       (issue) => `Nieprawidłowy początek: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    stringifyJson:    (issue) => `Nieprawidłowy JSON: Otrzymano ${issue.received}`,\n    toBigint:         (issue) => `Nieprawidłowy BigInt: Otrzymano ${issue.received}`,\n    toDate:           (issue) => `Nieprawidłowa data: Otrzymano ${issue.received}`,\n    toNumber:         (issue) => `Nieprawidłowa liczba: Otrzymano ${issue.received}`,\n    toString:         (issue) => `Nieprawidłowy ciąg znaków: Otrzymano ${issue.received}`,\n    ulid:             (issue) => `Nieprawidłowy ULID: Otrzymano ${issue.received}`,\n    url:              (issue) => `Nieprawidłowy URL: Otrzymano ${issue.received}`,\n    uuid:             (issue) => `Nieprawidłowy UUID: Otrzymano ${issue.received}`,\n    value:            (issue) => `Nieprawidłowa wartość: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    values:           (issue) => `Nieprawidłowa wartość: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n    words:            (issue) => `Nieprawidłowe słowa: Oczekiwano ${issue.expected}, ale otrzymano ${issue.received}`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/pt.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'pt',\n  schema:             (issue) => `Tipo inválido: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n  specific: {\n    base64:           (issue) => `Base64 inválido: Recebido ${issue.received}`,\n    bic:              (issue) => `BIC inválido: Recebido ${issue.received}`,\n    bytes:            (issue) => `Bytes inválidos: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    check:            (issue) => `Entrada inválida: Recebido ${issue.received}`,\n    checkAsync:       (issue) => `Entrada inválida: Recebido ${issue.received}`,\n    checkItems:       (issue) => `Item inválido: Recebido ${issue.received}`,\n    checkItemsAsync:  (issue) => `Item inválido: Recebido ${issue.received}`,\n    creditCard:       (issue) => `Cartão de crédito inválido: Recebido ${issue.received}`,\n    cuid2:            (issue) => `Cuid2 inválido: Recebido ${issue.received}`,\n    decimal:          (issue) => `Decimal inválido: Recebido ${issue.received}`,\n    digits:           (issue) => `Dígitos inválidos: Recebido ${issue.received}`,\n    domain:           (issue) => `Domínio inválido: Recebido ${issue.received}`,\n    email:            (issue) => `Email inválido: Recebido ${issue.received}`,\n    emoji:            (issue) => `Emoji inválido: Recebido ${issue.received}`,\n    empty:            (issue) => `Tamanho inválido: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    endsWith:         (issue) => `Fim inválido: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    entries:          (issue) => `Entradas inválidas: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    everyItem:        (issue) => `Item inválido: Recebido ${issue.received}`,\n    excludes:         (issue) => `Conteúdo inválido: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    finite:           (issue) => `Finito inválido: Recebido ${issue.received}`,\n    graphemes:        (issue) => `Grafemas inválidos: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    gtValue:          (issue) => `Valor inválido: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    guard:            (issue) => `Entrada inválida: Recebido ${issue.received}`,\n    hash:             (issue) => `Hash inválido: Recebido ${issue.received}`,\n    hexadecimal:      (issue) => `Hexadecimal inválido: Recebido ${issue.received}`,\n    hexColor:         (issue) => `Cor hexadecimal inválida: Recebido ${issue.received}`,\n    imei:             (issue) => `IMEI inválido: Recebido ${issue.received}`,\n    includes:         (issue) => `Conteúdo inválido: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    integer:          (issue) => `Inteiro inválido: Recebido ${issue.received}`,\n    ip:               (issue) => `IP inválido: Recebido ${issue.received}`,\n    ipv4:             (issue) => `IPv4 inválido: Recebido ${issue.received}`,\n    ipv6:             (issue) => `IPv6 inválido: Recebido ${issue.received}`,\n    isbn:             (issue) => `ISBN inválido: Recebido ${issue.received}`,\n    isoDate:          (issue) => `Data inválida: Recebido ${issue.received}`,\n    isoDateTime:      (issue) => `Data e hora inválidas: Recebido ${issue.received}`,\n    isoTime:          (issue) => `Hora inválida: Recebido ${issue.received}`,\n    isoTimeSecond:    (issue) => `Segundo inválido: Recebido ${issue.received}`,\n    isoTimestamp:     (issue) => `Timestamp inválido: Recebido ${issue.received}`,\n    isoWeek:          (issue) => `Semana inválida: Recebido ${issue.received}`,\n    isrc:             (issue) => `ISRC inválido: Recebido ${issue.received}`,\n    jwsCompact:       (issue) => `JWS compacto inválido: Recebido ${issue.received}`,\n    length:           (issue) => `Tamanho inválido: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    ltValue:          (issue) => `Valor inválido: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    mac:              (issue) => `MAC inválido: Recebido ${issue.received}`,\n    mac48:            (issue) => `MAC de 48-bits inválido: Recebido ${issue.received}`,\n    mac64:            (issue) => `MAC de 64-bits inválido: Recebido ${issue.received}`,\n    maxBytes:         (issue) => `Bytes inválidos: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    maxEntries:       (issue) => `Entradas inválidas: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    maxGraphemes:     (issue) => `Grafemas inválidos: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    maxLength:        (issue) => `Tamanho inválido: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    maxSize:          (issue) => `Tamanho inválido: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    maxValue:         (issue) => `Valor máximo inválido: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    maxWords:         (issue) => `Palavras inválidas: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    mimeType:         (issue) => `Tipo MIME inválido: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    minBytes:         (issue) => `Bytes mínimos inválidos: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    minEntries:       (issue) => `Entradas inválidas: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    minGraphemes:     (issue) => `Grafemas inválidos: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    minLength:        (issue) => `Tamanho inválido: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    minSize:          (issue) => `Tamanho inválido: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    minValue:         (issue) => `Valor inválido: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    minWords:         (issue) => `Palavras inválidas: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    multipleOf:       (issue) => `Múltiplo inválido: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    nanoid:           (issue) => `ID Nano inválido: Recebido ${issue.received}`,\n    nonEmpty:         (issue) => `Tamanho inválido: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    notBytes:         (issue) => `Bytes inválidos: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    notEntries:       (issue) => `Entradas inválidas: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    notGraphemes:     (issue) => `Grafemas inválidos: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    notLength:        (issue) => `Tamanho inválido: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    notSize:          (issue) => `Tamanho inválido: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    notValue:         (issue) => `Valor inválido: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    notValues:        (issue) => `Valor inválido: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    notWords:         (issue) => `Palavras inválidas: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    octal:            (issue) => `Octal inválido: Recebido ${issue.received}`,\n    parseBoolean:     (issue) => `Booleano inválido: Recebido ${issue.received}`,\n    parseJson:        (issue) => `JSON inválido: Recebido ${issue.received}`,\n    partialCheck:     (issue) => `Valor inválido: Recebido ${issue.received}`,\n    rawCheck:         (issue) => `Entrada inválida: Recebido ${issue.received}`,\n    rawTransform:     (issue) => `Entrada inválida: Recebido ${issue.received}`,\n    regex:            (issue) => `Formato inválido: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    rfcEmail:         (issue) => `Email inválido: Recebido ${issue.received}`,\n    safeInteger:      (issue) => `Inteiro seguro inválido: Recebido ${issue.received}`,\n    size:             (issue) => `Tamanho inválido: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    slug:             (issue) => `Slug inválido: Recebido ${issue.received}`,\n    someItem:         (issue) => `Item inválido: Recebido ${issue.received}`,\n    startsWith:       (issue) => `Início inválido: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    stringifyJson:    (issue) => `JSON inválido: Recebido ${issue.received}`,\n    toBigint:         (issue) => `BigInt inválido: Recebido ${issue.received}`,\n    toDate:           (issue) => `Data inválida: Recebido ${issue.received}`,\n    toNumber:         (issue) => `Número inválido: Recebido ${issue.received}`,\n    toString:         (issue) => `String inválida: Recebido ${issue.received}`,\n    ulid:             (issue) => `ULID inválido: Recebido ${issue.received}`,\n    url:              (issue) => `URL inválido: Recebido ${issue.received}`,\n    uuid:             (issue) => `UUID inválido: Recebido ${issue.received}`,\n    value:            (issue) => `Valor inválido: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    values:           (issue) => `Valor inválido: Esperado ${issue.expected}, porém foi recebido ${issue.received}`,\n    words:            (issue) => `Palavras inválidas: Recebido ${issue.received}`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/ro.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'ro',\n  schema:             (issue) => `Tip incorect: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n  specific: {\n    base64:           (issue) => `Base64 incorect: S-a introdus ${issue.received}`,\n    bic:              (issue) => `BIC incorect: S-a introdus ${issue.received}`,\n    bytes:            (issue) => `Bytes incorect: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    check:            (issue) => `Intrare incorectă: S-a introdus ${issue.received}`,\n    checkAsync:       (issue) => `Intrare incorectă: S-a introdus ${issue.received}`,\n    checkItems:       (issue) => `Element incorect: S-a introdus ${issue.received}`,\n    checkItemsAsync:  (issue) => `Element incorect: S-a introdus ${issue.received}`,\n    creditCard:       (issue) => `Card de credit incorect: S-a introdus ${issue.received}`,\n    cuid2:            (issue) => `Cuid2 incorect: S-a introdus ${issue.received}`,\n    decimal:          (issue) => `Zecimal incorect: S-a introdus ${issue.received}`,\n    digits:           (issue) => `Cifre incorecte: S-a introdus ${issue.received}`,\n    domain:           (issue) => `Domeniu incorect: S-a introdus ${issue.received}`,\n    email:            (issue) => `Email incorect: S-a introdus ${issue.received}`,\n    emoji:            (issue) => `Emoji incorect: S-a introdus ${issue.received}`,\n    empty:            (issue) => `Lungime incorectă: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    endsWith:         (issue) => `Sfârșit incorect: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    entries:          (issue) => `Număr de intrări incorect: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    everyItem:        (issue) => `Element incorect: S-a introdus ${issue.received}`,\n    excludes:         (issue) => `Conținut incorect: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    finite:           (issue) => `Finit incorect: S-a introdus ${issue.received}`,\n    graphemes:        (issue) => `Grafeme incorecte: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    gtValue:          (issue) => `Valoare incorectă: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    guard:            (issue) => `Intrare incorectă: S-a introdus ${issue.received}`,\n    hash:             (issue) => `Hash incorect: S-a introdus ${issue.received}`,\n    hexadecimal:      (issue) => `Hexazecimal incorect: S-a introdus ${issue.received}`,\n    hexColor:         (issue) => `Culoare hex incorectă: S-a introdus ${issue.received}`,\n    imei:             (issue) => `IMEI incorect: S-a introdus ${issue.received}`,\n    includes:         (issue) => `Conținut incorect: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    integer:          (issue) => `Număr întreg incorect: S-a introdus ${issue.received}`,\n    ip:               (issue) => `IP incorect: S-a introdus ${issue.received}`,\n    ipv4:             (issue) => `IPv4 incorect: S-a introdus ${issue.received}`,\n    ipv6:             (issue) => `IPv6 incorect: S-a introdus ${issue.received}`,\n    isbn:             (issue) => `ISBN incorect: S-a introdus ${issue.received}`,\n    isoDate:          (issue) => `Dată incorectă: S-a introdus ${issue.received}`,\n    isoDateTime:      (issue) => `Dată-timp incorect: S-a introdus ${issue.received}`,\n    isoTime:          (issue) => `Timp incorect: S-a introdus ${issue.received}`,\n    isoTimeSecond:    (issue) => `Secundă-timp incorect: S-a introdus ${issue.received}`,\n    isoTimestamp:     (issue) => `Timestamp incorect: S-a introdus ${issue.received}`,\n    isoWeek:          (issue) => `Săptămână incorectă: S-a introdus ${issue.received}`,\n    isrc:             (issue) => `ISRC incorect: S-a introdus ${issue.received}`,\n    jwsCompact:       (issue) => `JWS compact incorect: S-a introdus ${issue.received}`,\n    length:           (issue) => `Lungime incorectă: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    ltValue:          (issue) => `Valoare incorectă: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    mac:              (issue) => `MAC incorect: S-a introdus ${issue.received}`,\n    mac48:            (issue) => `48-bit MAC incorect: S-a introdus ${issue.received}`,\n    mac64:            (issue) => `64-bit MAC incorect: S-a introdus ${issue.received}`,\n    maxBytes:         (issue) => `Număr de bytes incorect: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    maxEntries:       (issue) => `Număr de intrări incorect: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    maxGraphemes:     (issue) => `Număr de grafeme incorect: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    maxLength:        (issue) => `Lungime incorectă: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    maxSize:          (issue) => `Dimensiune incorectă: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    maxValue:         (issue) => `Valoare incorectă: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    maxWords:         (issue) => `Număr maxim de cuvinte incorect: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    mimeType:         (issue) => `Tip MIME incorect: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    minBytes:         (issue) => `Număr minim de bytes incorect: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    minEntries:       (issue) => `Număr de intrări incorect: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    minGraphemes:     (issue) => `Număr minim de grafeme incorect: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    minLength:        (issue) => `Lungime minimă incorectă: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    minSize:          (issue) => `Dimensiune minimă incorectă: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    minValue:         (issue) => `Valoare minimă incorectă: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    minWords:         (issue) => `Număr minim de cuvinte incorect: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    multipleOf:       (issue) => `Multiplu incorect: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    nanoid:           (issue) => `Nano ID incorect: S-a introdus ${issue.received}`,\n    nonEmpty:         (issue) => `Lungime incorectă: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    notBytes:         (issue) => `Bytes incorect: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    notEntries:       (issue) => `Număr de intrări incorect: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    notGraphemes:     (issue) => `Grafeme incorecte: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    notLength:        (issue) => `Lungime incorectă: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    notSize:          (issue) => `Dimensiune incorectă: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    notValue:         (issue) => `Valoare incorectă: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    notValues:        (issue) => `Valoare incorectă: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    notWords:         (issue) => `Cuvinte incorecte: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    octal:            (issue) => `Octal incorect: S-a introdus ${issue.received}`,\n    parseBoolean:     (issue) => `Boolean incorect: S-a introdus ${issue.received}`,\n    parseJson:        (issue) => `JSON incorect: S-a introdus ${issue.received}`,\n    partialCheck:     (issue) => `Intrare incorectă: S-a introdus ${issue.received}`,\n    rawCheck:         (issue) => `Intrare incorectă: S-a introdus ${issue.received}`,\n    rawTransform:     (issue) => `Intrare incorectă: S-a introdus ${issue.received}`,\n    regex:            (issue) => `Format incorect: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    rfcEmail:         (issue) => `Email incorect: S-a introdus ${issue.received}`,\n    safeInteger:      (issue) => `Întreg sigur incorect: S-a introdus ${issue.received}`,\n    size:             (issue) => `Dimensiune incorectă: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    slug:             (issue) => `Slug incorect: S-a introdus ${issue.received}`,\n    someItem:         (issue) => `Element incorect: S-a introdus ${issue.received}`,\n    startsWith:       (issue) => `Început incorect: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    stringifyJson:    (issue) => `JSON incorect: S-a introdus ${issue.received}`,\n    toBigint:         (issue) => `BigInt incorect: S-a introdus ${issue.received}`,\n    toDate:           (issue) => `Dată incorectă: S-a introdus ${issue.received}`,\n    toNumber:         (issue) => `Număr incorect: S-a introdus ${issue.received}`,\n    toString:         (issue) => `Șir incorect: S-a introdus ${issue.received}`,\n    ulid:             (issue) => `ULID incorect: S-a introdus ${issue.received}`,\n    url:              (issue) => `URL incorect: S-a introdus ${issue.received}`,\n    uuid:             (issue) => `UUID incorect: S-a introdus ${issue.received}`,\n    value:            (issue) => `Valoare incorectă: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    values:           (issue) => `Valoare incorectă: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n    words:            (issue) => `Cuvinte incorecte: Specificat era ${issue.expected} dar s-a introdus ${issue.received}`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/ru.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'ru',\n  schema:             (issue) => `Неправильный тип: ожидалось ${issue.expected}, получено ${issue.received}`,\n  specific: {\n    base64:           (issue) => `Неправильный Base64: получено ${issue.received}`,\n    bic:              (issue) => `Неправильный BIC: получено ${issue.received}`,\n    bytes:            (issue) => `Неправильное количество байтов: ожидалось ${issue.expected}, получено ${issue.received}`,\n    check:            (issue) => `Неправильные данные: получено ${issue.received}`,\n    checkAsync:       (issue) => `Неправильные данные: получено ${issue.received}`,\n    checkItems:       (issue) => `Неправильный элемент: получено ${issue.received}`,\n    checkItemsAsync:  (issue) => `Неправильный элемент: получено ${issue.received}`,\n    creditCard:       (issue) => `Неправильный номер кредитной карты: получено ${issue.received}`,\n    cuid2:            (issue) => `Неправильный Cuid2: получено ${issue.received}`,\n    decimal:          (issue) => `Неправильное десятичное значение: получено ${issue.received}`,\n    digits:           (issue) => `Неправильное число: получено ${issue.received}`,\n    domain:           (issue) => `Неправильный домен: получено ${issue.received}`,\n    email:            (issue) => `Неправильный email: получено ${issue.received}`,\n    emoji:            (issue) => `Неправильный эмодзи: получено ${issue.received}`,\n    empty:            (issue) => `Неправильная длина: ожидалось ${issue.expected}, получено ${issue.received}`,\n    endsWith:         (issue) => `Неправильный конец: ожидалось ${issue.expected}, получено ${issue.received}`,\n    entries:          (issue) => `Неправильное количество записей: ожидалось ${issue.expected}, получено ${issue.received}`,\n    everyItem:        (issue) => `Неправильный элемент: получено ${issue.received}`,\n    excludes:         (issue) => `Неправильное вхождение: ожидалось ${issue.expected}, получено ${issue.received}`,\n    finite:           (issue) => `Неправильное конечное число: получено ${issue.received}`,\n    graphemes:        (issue) => `Неправильное количество графем: ожидалось ${issue.expected}, получено ${issue.received}`,\n    gtValue:          (issue) => `Неправильное значение: ожидалось ${issue.expected}, получено ${issue.received}`,\n    guard:            (issue) => `Неправильные данные: получено ${issue.received}`,\n    hash:             (issue) => `Неправильный хеш: получено ${issue.received}`,\n    hexadecimal:      (issue) => `Неправильное шестнадцатеричное значение: получено ${issue.received}`,\n    hexColor:         (issue) => `Неправильный шестнадцатеричный цвет: получено ${issue.received}`,\n    imei:             (issue) => `Неправильный IMEI: получено ${issue.received}`,\n    includes:         (issue) => `Неправильное вхождение: ожидалось ${issue.expected}, получено ${issue.received}`,\n    integer:          (issue) => `Неправильное целое число: получено ${issue.received}`,\n    ip:               (issue) => `Неправильный IP: получено ${issue.received}`,\n    ipv4:             (issue) => `Неправильный IPv4: получено ${issue.received}`,\n    ipv6:             (issue) => `Неправильный IPv6: получено ${issue.received}`,\n    isbn:             (issue) => `Неправильный ISBN: получено ${issue.received}`,\n    isoDate:          (issue) => `Неправильная дата: получено ${issue.received}`,\n    isoDateTime:      (issue) => `Неправильные дата и время: получено ${issue.received}`,\n    isoTime:          (issue) => `Неправильное время: получено ${issue.received}`,\n    isoTimeSecond:    (issue) => `Неправильное время с секундами: получено ${issue.received}`,\n    isoTimestamp:     (issue) => `Неправильная метка времени: получено ${issue.received}`,\n    isoWeek:          (issue) => `Неправильная неделя: получено ${issue.received}`,\n    isrc:             (issue) => `Неправильный ISRC: получено ${issue.received}`,\n    jwsCompact:       (issue) => `Неправильный компактный JWS: получено ${issue.received}`,\n    length:           (issue) => `Неправильная длина: ожидалось ${issue.expected}, получено ${issue.received}`,\n    ltValue:          (issue) => `Неправильное значение: ожидалось ${issue.expected}, получено ${issue.received}`,\n    mac:              (issue) => `Неправильный MAC: получено ${issue.received}`,\n    mac48:            (issue) => `Неправильный 48-битный MAC: получено ${issue.received}`,\n    mac64:            (issue) => `Неправильный 64-битный MAC: получено ${issue.received}`,\n    maxBytes:         (issue) => `Неправильное количество байтов: ожидалось ${issue.expected}, получено ${issue.received}`,\n    maxEntries:       (issue) => `Неправильное количество записей: ожидалось ${issue.expected}, получено ${issue.received}`,\n    maxGraphemes:     (issue) => `Неправильное количество графем: ожидалось ${issue.expected}, получено ${issue.received}`,\n    maxLength:        (issue) => `Неправильная длина: ожидалось ${issue.expected}, получено ${issue.received}`,\n    maxSize:          (issue) => `Неправильный размер: ожидалось ${issue.expected}, получено ${issue.received}`,\n    maxValue:         (issue) => `Неправильное значение: ожидалось ${issue.expected}, получено ${issue.received}`,\n    maxWords:         (issue) => `Неправильное количество слов: ожидалось ${issue.expected}, получено ${issue.received}`,\n    mimeType:         (issue) => `Неправильный MIME тип: ожидалось ${issue.expected}, получено ${issue.received}`,\n    minBytes:         (issue) => `Неправильное количество байтов: ожидалось ${issue.expected}, получено ${issue.received}`,\n    minEntries:       (issue) => `Неправильное количество записей: ожидалось ${issue.expected}, получено ${issue.received}`,\n    minGraphemes:     (issue) => `Неправильное количество графем: ожидалось ${issue.expected}, получено ${issue.received}`,\n    minLength:        (issue) => `Неправильная длина: ожидалось ${issue.expected}, получено ${issue.received}`,\n    minSize:          (issue) => `Неправильный размер: ожидалось ${issue.expected}, получено ${issue.received}`,\n    minValue:         (issue) => `Неправильное значение: ожидалось ${issue.expected}, получено ${issue.received}`,\n    minWords:         (issue) => `Неправильное количество слов: ожидалось ${issue.expected}, получено ${issue.received}`,\n    multipleOf:       (issue) => `Неправильное кратное число: ожидалось ${issue.expected}, получено ${issue.received}`,\n    nanoid:           (issue) => `Неправильный Nano ID: получено ${issue.received}`,\n    nonEmpty:         (issue) => `Неправильная длина: ожидалось ${issue.expected}, получено ${issue.received}`,\n    notBytes:         (issue) => `Неправильное количество байтов: ожидалось ${issue.expected}, получено ${issue.received}`,\n    notEntries:       (issue) => `Неправильное количество записей: ожидалось ${issue.expected}, получено ${issue.received}`,\n    notGraphemes:     (issue) => `Неправильное количество графем: ожидалось ${issue.expected}, получено ${issue.received}`,\n    notLength:        (issue) => `Неправильная длина: ожидалось ${issue.expected}, получено ${issue.received}`,\n    notSize:          (issue) => `Неправильный размер: ожидалось ${issue.expected}, получено ${issue.received}`,\n    notValue:         (issue) => `Неправильное значение: ожидалось ${issue.expected}, получено ${issue.received}`,\n    notValues:        (issue) => `Неправильное значение: ожидалось ${issue.expected}, получено ${issue.received}`,\n    notWords:         (issue) => `Неправильное количество слов: ожидалось ${issue.expected}, получено ${issue.received}`,\n    octal:            (issue) => `Неправильный восьмеричное значение: получено ${issue.received}`,\n    parseBoolean:     (issue) => `Неправильное логическое значение: получено ${issue.received}`,\n    parseJson:        (issue) => `Неправильный JSON: получено ${issue.received}`,\n    partialCheck:     (issue) => `Неправильные данные: получено ${issue.received}`,\n    rawCheck:         (issue) => `Неправильные данные: получено ${issue.received}`,\n    rawTransform:     (issue) => `Неправильные данные: получено ${issue.received}`,\n    regex:            (issue) => `Неправильный формат: ожидалось ${issue.expected}, получено ${issue.received}`,\n    rfcEmail:         (issue) => `Неправильный email: получено ${issue.received}`,\n    safeInteger:      (issue) => `Неправильное безопасное целое число: получено ${issue.received}`,\n    size:             (issue) => `Неправильный размер: ожидалось ${issue.expected}, получено ${issue.received}`,\n    slug:             (issue) => `Неправильный slug: получено ${issue.received}`,\n    someItem:         (issue) => `Неправильный элемент: получено ${issue.received}`,\n    startsWith:       (issue) => `Неправильное начало: ожидалось ${issue.expected}, получено ${issue.received}`,\n    stringifyJson:    (issue) => `Неправильный JSON: получено ${issue.received}`,\n    toBigint:         (issue) => `Неправильный BigInt: получено ${issue.received}`,\n    toDate:           (issue) => `Неправильная дата: получено ${issue.received}`,\n    toNumber:         (issue) => `Неправильное число: получено ${issue.received}`,\n    toString:         (issue) => `Неправильная строка: получено ${issue.received}`,\n    ulid:             (issue) => `Неправильный ULID: получено ${issue.received}`,\n    url:              (issue) => `Неправильный URL: получено ${issue.received}`,\n    uuid:             (issue) => `Неправильный UUID: получено ${issue.received}`,\n    value:            (issue) => `Неправильное значение: ожидалось ${issue.expected}, получено ${issue.received}`,\n    values:           (issue) => `Неправильное значение: ожидалось ${issue.expected}, получено ${issue.received}`,\n    words:            (issue) => `Неправильное количество слов: ожидалось ${issue.expected}, получено ${issue.received}`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/sk.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'sk',\n  schema:             (issue) => `Neplatný typ: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n  specific: {\n    base64:           (issue) => `Neplatný Base64: Prijaté ${issue.received}`,\n    bic:              (issue) => `Neplatný BIC: Prijaté ${issue.received}`,\n    bytes:            (issue) => `Neplatné bajty: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    check:            (issue) => `Neplatný vstup: Prijaté ${issue.received}`,\n    checkAsync:       (issue) => `Neplatný vstup: Prijaté ${issue.received}`,\n    checkItems:       (issue) => `Neplatná položka: Prijaté ${issue.received}`,\n    checkItemsAsync:  (issue) => `Neplatná položka: Prijaté ${issue.received}`,\n    creditCard:       (issue) => `Neplatná kreditná karta: Prijaté ${issue.received}`,\n    cuid2:            (issue) => `Neplatné Cuid2: Prijaté ${issue.received}`,\n    decimal:          (issue) => `Neplatné desatinné číslo: Prijaté ${issue.received}`,\n    digits:           (issue) => `Neplatné číslice: Prijaté ${issue.received}`,\n    domain:           (issue) => `Neplatná doména: Prijaté ${issue.received}`,\n    email:            (issue) => `Neplatný email: Prijaté ${issue.received}`,\n    emoji:            (issue) => `Neplatné emoji: Prijaté ${issue.received}`,\n    empty:            (issue) => `Neplatná dĺžka: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    endsWith:         (issue) => `Neplatný koniec: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    entries:          (issue) => `Neplatný počet položiek: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    everyItem:        (issue) => `Neplatná položka: Prijaté ${issue.received}`,\n    excludes:         (issue) => `Neplatný obsah: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    finite:           (issue) => `Neplatná konečná hodnota: Prijaté ${issue.received}`,\n    graphemes:        (issue) => `Neplatné grafémy: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    gtValue:          (issue) => `Neplatná hodnota: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    guard:            (issue) => `Neplatný vstup: Prijaté ${issue.received}`,\n    hash:             (issue) => `Neplatný hash: Prijaté ${issue.received}`,\n    hexColor:         (issue) => `Neplatná hexadecimálna farba: Prijaté ${issue.received}`,\n    hexadecimal:      (issue) => `Neplatné hexadecimálne číslo: Prijaté ${issue.received}`,\n    imei:             (issue) => `Neplatné IMEI: Prijaté ${issue.received}`,\n    includes:         (issue) => `Neplatný obsah: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    integer:          (issue) => `Neplatné celé číslo: Prijaté ${issue.received}`,\n    ip:               (issue) => `Neplatná IP adresa: Prijaté ${issue.received}`,\n    ipv4:             (issue) => `Neplatná IPv4 adresa: Prijaté ${issue.received}`,\n    ipv6:             (issue) => `Neplatná IPv6 adresa: Prijaté ${issue.received}`,\n    isbn:             (issue) => `Neplatné ISBN: Prijaté ${issue.received}`,\n    isoDate:          (issue) => `Neplatný dátum: Prijaté ${issue.received}`,\n    isoDateTime:      (issue) => `Neplatný dátum a čas: Prijaté ${issue.received}`,\n    isoTime:          (issue) => `Neplatný čas: Prijaté ${issue.received}`,\n    isoTimeSecond:    (issue) => `Neplatný čas: Prijaté ${issue.received}`,\n    isoTimestamp:     (issue) => `Neplatná časová značka: Prijaté ${issue.received}`,\n    isoWeek:          (issue) => `Neplatný týždeň: Prijaté ${issue.received}`,\n    isrc:             (issue) => `Neplatné ISRC: Prijaté ${issue.received}`,\n    jwsCompact:       (issue) => `Neplatné kompaktné JWS: Prijaté ${issue.received}`,\n    length:           (issue) => `Neplatná dĺžka: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    ltValue:          (issue) => `Neplatná hodnota: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    mac:              (issue) => `Neplatná MAC adresa: Prijaté ${issue.received}`,\n    mac48:            (issue) => `Neplatná 48-bitová MAC adresa: Prijaté ${issue.received}`,\n    mac64:            (issue) => `Neplatná 64-bitová MAC adresa: Prijaté ${issue.received}`,\n    maxBytes:         (issue) => `Prekročený maximálny počet bajtov: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    maxEntries:       (issue) => `Prekročený maximálny počet položiek: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    maxGraphemes:     (issue) => `Prekročená maximálna dĺžka znakov: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    maxLength:        (issue) => `Prekročená maximálna dĺžka: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    maxSize:          (issue) => `Prekročená maximálna veľkosť: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    maxValue:         (issue) => `Prekročená maximálna hodnota: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    maxWords:         (issue) => `Prekročený maximálny počet slov: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    mimeType:         (issue) => `Neplatný MIME typ: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    minBytes:         (issue) => `Nedostatočný počet bajtov: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    minEntries:       (issue) => `Nedostatočný počet položiek: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    minGraphemes:     (issue) => `Nedostatočná minimálna dĺžka grafémov: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    minLength:        (issue) => `Nedostatočná minimálna dĺžka: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    minSize:          (issue) => `Nedostatočná minimálna veľkosť: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    minValue:         (issue) => `Nedostatočná minimálna hodnota: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    minWords:         (issue) => `Nedostatočný počet slov: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    multipleOf:       (issue) => `Neplatný násobok: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    nanoid:           (issue) => `Neplatné Nano ID: Prijaté ${issue.received}`,\n    nonEmpty:         (issue) => `Nedostatočná dĺžka: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    notBytes:         (issue) => `Neplatný počet bajtov: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    notEntries:       (issue) => `Neplatný počet položiek: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    notGraphemes:     (issue) => `Neplatná dĺžka grafémov: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    notLength:        (issue) => `Neplatná dĺžka: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    notSize:          (issue) => `Neplatná veľkosť: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    notValue:         (issue) => `Neplatná hodnota: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    notValues:        (issue) => `Neplatná hodnota: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    notWords:         (issue) => `Neplatný počet slov: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    octal:            (issue) => `Neplatné osmičkové číslo: Prijaté ${issue.received}`,\n    parseBoolean:     (issue) => `Neplatná logická hodnota: Prijaté ${issue.received}`,\n    parseJson:        (issue) => `Neplatný JSON: Prijaté ${issue.received}`,\n    partialCheck:     (issue) => `Neplatný vstup: Prijaté ${issue.received}`,\n    rawCheck:         (issue) => `Neplatný vstup: Prijaté ${issue.received}`,\n    rawTransform:     (issue) => `Neplatný vstup: Prijaté ${issue.received}`,\n    regex:            (issue) => `Neplatný formát: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    rfcEmail:         (issue) => `Neplatný email: Prijaté ${issue.received}`,\n    safeInteger:      (issue) => `Neplatné bezpečné celé číslo: Prijaté ${issue.received}`,\n    size:             (issue) => `Neplatná veľkosť: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    slug:             (issue) => `Neplatný slug: Prijaté ${issue.received}`,\n    someItem:         (issue) => `Neplatná položka: Prijaté ${issue.received}`,\n    startsWith:       (issue) => `Neplatný začiatok: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    stringifyJson:    (issue) => `Neplatný JSON: Prijaté ${issue.received}`,\n    toBigint:         (issue) => `Neplatný bigint: Prijaté ${issue.received}`,\n    toDate:           (issue) => `Neplatný dátum: Prijaté ${issue.received}`,\n    toNumber:         (issue) => `Neplatné číslo: Prijaté ${issue.received}`,\n    toString:         (issue) => `Neplatný reťazec: Prijaté ${issue.received}`,\n    ulid:             (issue) => `Neplatné ULID: Prijaté ${issue.received}`,\n    url:              (issue) => `Neplatná URL: Prijaté ${issue.received}`,\n    uuid:             (issue) => `Neplatné UUID: Prijaté ${issue.received}`,\n    value:            (issue) => `Neplatná hodnota: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    values:           (issue) => `Neplatná hodnota: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n    words:            (issue) => `Neplatný počet slov: Očakávané ${issue.expected}, ale prijaté ${issue.received}`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/sl.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'sl',\n  schema:             (issue) => `Neveljaven tip: Pričakovan ${issue.expected}, vendar prejet ${issue.received}`,\n  specific: {\n    base64:           (issue) => `Neveljaven Base64: Prejet ${issue.received}`,\n    bic:              (issue) => `Neveljavna BIC koda: Prejeta ${issue.received}`,\n    bytes:            (issue) => `Neveljavni bajti: Pričakovani ${issue.expected}, vendar prejeti ${issue.received}`,\n    check:            (issue) => `Neveljaven input: Prejet ${issue.received}`,\n    checkAsync:       (issue) => `Neveljaven input: Prejet ${issue.received}`,\n    checkItems:       (issue) => `Neveljaven element: Prejet ${issue.received}`,\n    checkItemsAsync:  (issue) => `Neveljaven element: Prejet ${issue.received}`,\n    creditCard:       (issue) => `Neveljavna kreditna kartica: Prejeta ${issue.received}`,\n    cuid2:            (issue) => `Neveljaven Cuid2: Prejet ${issue.received}`,\n    decimal:          (issue) => `Neveljaven decimal: Prejet ${issue.received}`,\n    digits:           (issue) => `Neveljavna številka: Prejeta ${issue.received}`,\n    domain:           (issue) => `Neveljavna domena: Prejet ${issue.received}`,\n    email:            (issue) => `Neveljaven e-poštni naslov: Prejet ${issue.received}`,\n    emoji:            (issue) => `Neveljaven emoji: Prejet ${issue.received}`,\n    empty:            (issue) => `Neveljaven dolžina: Pričakovana ${issue.expected}, vendar prejeta ${issue.received}`,\n    endsWith:         (issue) => `Neveljaven konec: Pričakovan ${issue.expected}, vendar prejet ${issue.received}`,\n    entries:          (issue) => `Neveljavno število vnosov: Pričakovan ${issue.expected}, vendar prejet ${issue.received}`,\n    everyItem:        (issue) => `Neveljaven element: Prejet ${issue.received}`,\n    excludes:         (issue) => `Neveljavna vsebina: Pričakovana ${issue.expected}, vendar prejeta ${issue.received}`,\n    finite:           (issue) => `Neveljavno končno število: Prejeto ${issue.received}`,\n    graphemes:        (issue) => `Neveljavni grafemi: Pričakovani ${issue.expected}, vendar prejeti ${issue.received}`,\n    gtValue:          (issue) => `Neveljavna vrednost: Pričakovan ${issue.expected}, vendar prejet ${issue.received}`,\n    guard:            (issue) => `Neveljaven vnos: Prejet ${issue.received}`,\n    hash:             (issue) => `Neveljaven hash: Prejet ${issue.received}`,\n    hexadecimal:      (issue) => `Neveljavna šestnajstiška številka: Prejeta ${issue.received}`,\n    hexColor:         (issue) => `Neveljavna šestnajstiška barva: Prejeta ${issue.received}`,\n    imei:             (issue) => `Neveljaven IMEI: Prejet ${issue.received}`,\n    includes:         (issue) => `Neveljaven content: Pričakovan ${issue.expected}, vendar prejet ${issue.received}`,\n    integer:          (issue) => `Neveljavno celo število: Prejeto ${issue.received}`,\n    ip:               (issue) => `Neveljaven IP: Prejet ${issue.received}`,\n    ipv4:             (issue) => `Neveljaven IPv4: Prejet ${issue.received}`,\n    ipv6:             (issue) => `Neveljaven IPv6: Prejet ${issue.received}`,\n    isbn:             (issue) => `Neveljaven ISBN: Prejet ${issue.received}`,\n    isoDate:          (issue) => `Neveljaven datum: Prejet ${issue.received}`,\n    isoDateTime:      (issue) => `Neveljaven datum in čas: Prejet ${issue.received}`,\n    isoTime:          (issue) => `Neveljaven čas: Prejet ${issue.received}`,\n    isoTimeSecond:    (issue) => `Neveljaven iso čas v sekundah: Prejet ${issue.received}`,\n    isoTimestamp:     (issue) => `Neveljaven časovni žig iso: Prejet ${issue.received}`,\n    isoWeek:          (issue) => `Neveljaven format za teden: Prejet ${issue.received}`,\n    isrc:             (issue) => `Neveljaven ISRC: Prejet ${issue.received}`,\n    jwsCompact:       (issue) => `Neveljaven kompaktni JWS: Prejet ${issue.received}`,\n    length:           (issue) => `Neveljaven dolžina: Pričakovana ${issue.expected}, vendar prejeta ${issue.received}`,\n    ltValue:          (issue) => `Neveljavna vrednost: Pričakovan ${issue.expected}, vendar prejet ${issue.received}`,\n    mac:              (issue) => `Neveljaven MAC: Prejet ${issue.received}`,\n    mac48:            (issue) => `Neveljaven 48-bit MAC: Prejet ${issue.received}`,\n    mac64:            (issue) => `Neveljaven 64-bit MAC: Prejet ${issue.received}`,\n    maxBytes:         (issue) => `Neveljaven bajti: Pričakovani ${issue.expected}, vendar prejeti ${issue.received}`,\n    maxEntries:       (issue) => `Neveljavno število vnosov: Pričakovan ${issue.expected}, vendar prejet ${issue.received}`,\n    maxGraphemes:     (issue) => `Neveljaven grafemi: Pričakovani ${issue.expected}, vendar prejeti ${issue.received}`,\n    maxLength:        (issue) => `Neveljaven dolžina: Pričakovana ${issue.expected}, vendar prejeta ${issue.received}`,\n    maxSize:          (issue) => `Neveljaven velikost: Pričakovana ${issue.expected}, vendar prejeta ${issue.received}`,\n    maxValue:         (issue) => `Neveljaven vrednost: Pričakovana ${issue.expected}, vendar prejeta ${issue.received}`,\n    maxWords:         (issue) => `Neveljaven besede: Pričakovani ${issue.expected}, vendar prejeti ${issue.received}`,\n    mimeType:         (issue) => `Neveljaven MIME type: Pričakovan ${issue.expected}, vendar prejet ${issue.received}`,\n    minBytes:         (issue) => `Neveljaven bajt: Pričakovan ${issue.expected}, vendar prejet ${issue.received}`,\n    minEntries:       (issue) => `Neveljavno število vnosov: Pričakovan ${issue.expected}, vendar prejet ${issue.received}`,\n    minGraphemes:     (issue) => `Neveljaven grafemi: Pričakovan ${issue.expected}, vendar prejet ${issue.received}`,\n    minLength:        (issue) => `Neveljaven dolžina: Pričakovana ${issue.expected}, vendar prejeta ${issue.received}`,\n    minSize:          (issue) => `Neveljavna velikost: Pričakovana ${issue.expected}, vendar prejeta ${issue.received}`,\n    minValue:         (issue) => `Neveljavna vrednost: Pričakovana ${issue.expected}, vendar prejeta ${issue.received}`,\n    minWords:         (issue) => `Neveljavna besede: Pričakovana ${issue.expected}, vendar prejeta ${issue.received}`,\n    multipleOf:       (issue) => `Neveljaven večkratnik: Pričakovan ${issue.expected}, vendar prejet ${issue.received}`,\n    nanoid:           (issue) => `Neveljaven Nano ID: Prejet ${issue.received}`,\n    nonEmpty:         (issue) => `Neveljaven dolžina: Pričakovana ${issue.expected}, vendar prejeta ${issue.received}`,\n    notBytes:         (issue) => `Neveljavni bajti: Pričakovan ${issue.expected}, vendar prejet ${issue.received}`,\n    notEntries:       (issue) => `Neveljavno število vnosov: Pričakovan ${issue.expected}, vendar prejet ${issue.received}`,\n    notGraphemes:     (issue) => `Neveljavni grafemi: Pričakovan ${issue.expected}, vendar prejet ${issue.received}`,\n    notLength:        (issue) => `Neveljavna dolžina: Pričakovan ${issue.expected}, vendar prejet ${issue.received}`,\n    notSize:          (issue) => `Neveljaven si: Pričakovan ${issue.expected}, vendar prejet ${issue.received}`,\n    notValue:         (issue) => `Neveljavna vrednost: Pričakovana ${issue.expected}, vendar prejeta ${issue.received}`,\n    notValues:        (issue) => `Neveljavna vrednost: Pričakovan ${issue.expected}, vendar prejet ${issue.received}`,\n    notWords:         (issue) => `Neveljavna besede: Pričakovana ${issue.expected}, vendar prejeta ${issue.received}`,\n    octal:            (issue) => `Neveljavno osmiško število: Prejet ${issue.received}`,\n    parseBoolean:     (issue) => `Neveljavna logična vrednost: Prejet ${issue.received}`,\n    parseJson:        (issue) => `Neveljaven JSON: Prejet ${issue.received}`,\n    partialCheck:     (issue) => `Neveljaven input: Prejet ${issue.received}`,\n    rawCheck:         (issue) => `Neveljaven vnos: Prejet ${issue.received}`,\n    rawTransform:     (issue) => `Neveljaven vnos: Prejet ${issue.received}`,\n    regex:            (issue) => `Neveljaven format: Pričakovan ${issue.expected}, vendar prejet ${issue.received}`,\n    rfcEmail:         (issue) => `Neveljaven e-poštni naslov: Prejet ${issue.received}`,\n    safeInteger:      (issue) => `Neveljavno varno celo število: Prejeto ${issue.received}`,\n    size:             (issue) => `Neveljaven velikost: Pričakovan ${issue.expected}, vendar prejet ${issue.received}`,\n    slug:             (issue) => `Neveljaven slug: Prejet ${issue.received}`,\n    someItem:         (issue) => `Neveljaven element: Prejet ${issue.received}`,\n    startsWith:       (issue) => `Neveljaven začetek: Pričakovan ${issue.expected}, vendar prejet ${issue.received}`,\n    stringifyJson:    (issue) => `Neveljaven JSON: Prejet ${issue.received}`,\n    toBigint:         (issue) => `Neveljaven BigInt: Prejet ${issue.received}`,\n    toDate:           (issue) => `Neveljaven datum: Prejet ${issue.received}`,\n    toNumber:         (issue) => `Neveljavno število: Prejet ${issue.received}`,\n    toString:         (issue) => `Neveljaven niz: Prejet ${issue.received}`,\n    ulid:             (issue) => `Neveljaven ULID: Prejet ${issue.received}`,\n    url:              (issue) => `Neveljaven URL: Prejet ${issue.received}`,\n    uuid:             (issue) => `Neveljaven UUID: Prejet ${issue.received}`,\n    value:            (issue) => `Neveljaven value: Pričakovan ${issue.expected}, vendar prejet ${issue.received}`,\n    values:           (issue) => `Neveljavna vrednost: Pričakovan ${issue.expected}, vendar prejet ${issue.received}`,\n    words:            (issue) => `Neveljavne besede: Pričakovane ${issue.expected}, vendar prejete ${issue.received}`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/sv.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'sv',\n  schema:             (issue) => `Ogiltig typ: Förväntade ${issue.expected}, men fick ${issue.received}`,\n  specific: {\n    base64:           (issue) => `Ogiltig Base64: Fick ${issue.received}`,\n    bic:              (issue) => `Ogiltigt BIC: Fick ${issue.received}`,\n    bytes:            (issue) => `Ogiltiga bytes: Förväntade ${issue.expected}, men fick ${issue.received}`, \n    check:            (issue) => `Ogiltig indata: Fick ${issue.received}`,\n    checkAsync:       (issue) => `Ogiltig indata: Fick ${issue.received}`,\n    checkItems:       (issue) => `Ogiltigt element: Fick ${issue.received}`,\n    checkItemsAsync:  (issue) => `Ogiltigt element: Fick ${issue.received}`,\n    creditCard:       (issue) => `Ogiltigt kreditkort: Fick ${issue.received}`,\n    cuid2:            (issue) => `Ogiltigt Cuid2: Fick ${issue.received}`,\n    decimal:          (issue) => `Ogiltig decimal: Fick ${issue.received}`,\n    digits:           (issue) => `Ogiltigt nummer: Fick ${issue.received}`,\n    domain:           (issue) => `Ogiltig domän: Fick ${issue.received}`,\n    email:            (issue) => `Ogiltig email: Fick ${issue.received}`,\n    emoji:            (issue) => `Ogiltig emoji: Fick ${issue.received}`,\n    empty:            (issue) => `Ogiltig längd: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    endsWith:         (issue) => `Ogiltigt slut: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    entries:          (issue) => `Ogiltigt antal poster: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    everyItem:        (issue) => `Ogiltigt element: Fick ${issue.received}`,\n    excludes:         (issue) => `Ogiltigt innehåll: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    finite:           (issue) => `Ogiltig ändlig: Fick ${issue.received}`,\n    graphemes:        (issue) => `Ogiltigt grafem: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    gtValue:          (issue) => `Ogiltigt värde: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    guard:            (issue) => `Ogiltig indata: Fick ${issue.received}`,\n    hash:             (issue) => `Ogiltig hash: Fick ${issue.received}`,\n    hexadecimal:      (issue) => `Ogiltig hexadecimal: Fick ${issue.received}`,\n    hexColor:         (issue) => `Ogiltig hexadecimal färg: Fick ${issue.received}`,\n    imei:             (issue) => `Ogiltigt IMEI: Fick ${issue.received}`,\n    includes:         (issue) => `Ogiltigt innehåll: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    integer:          (issue) => `Ogiltigt heltal: Fick ${issue.received}`,\n    ip:               (issue) => `Ogiltig IP: Fick ${issue.received}`,\n    ipv4:             (issue) => `Ogiltig IPv4: Fick ${issue.received}`,\n    ipv6:             (issue) => `Ogiltig IPv6: Fick ${issue.received}`,\n    isbn:             (issue) => `Ogiltig ISBN: Fick ${issue.received}`,\n    isoDate:          (issue) => `Ogiltigt datum: Fick ${issue.received}`,\n    isoDateTime:      (issue) => `Ogiltig datum-tid: Fick ${issue.received}`, \n    isoTime:          (issue) => `Ogiltig tid: Fick ${issue.received}`,\n    isoTimeSecond:    (issue) => `Ogiltig sekund: Fick ${issue.received}`,\n    isoTimestamp:     (issue) => `Ogiltig tidsstämpel: Fick ${issue.received}`,\n    isoWeek:          (issue) => `Ogiltig vecka: Fick ${issue.received}`,\n    isrc:             (issue) => `Ogiltig ISRC: Fick ${issue.received}`,\n    jwsCompact:       (issue) => `Ogiltig kompakt JWS: Fick ${issue.received}`,\n    length:           (issue) => `Ogiltig längd: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    ltValue:          (issue) => `Ogiltigt värde: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    mac:              (issue) => `Ogiltig MAC: Fick ${issue.received}`,\n    mac48:            (issue) => `Ogiltig 48-bit MAC: Fick ${issue.received}`,\n    mac64:            (issue) => `Ogiltig 64-bit MAC: Fick ${issue.received}`,\n    maxBytes:         (issue) => `Ogiltiga bytes: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    maxEntries:       (issue) => `Ogiltigt antal poster: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    maxGraphemes:     (issue) => `Ogiltigt grafem: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    maxLength:        (issue) => `Ogiltig längd: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    maxSize:          (issue) => `Ogiltig storlek: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    maxValue:         (issue) => `Ogiltigt värde: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    maxWords:         (issue) => `Ogiltigt ord: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    mimeType:         (issue) => `Ogiltig MIME typ: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    minBytes:         (issue) => `Ogiltiga bytes: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    minEntries:       (issue) => `Ogiltigt antal poster: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    minGraphemes:     (issue) => `Ogiltigt grafem: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    minLength:        (issue) => `Ogiltig längd: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    minSize:          (issue) => `Ogiltig storlek: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    minValue:         (issue) => `Ogiltigt värde: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    minWords:         (issue) => `Ogiltigt ord: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    multipleOf:       (issue) => `Ogiltig multipel: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    nanoid:           (issue) => `Ogiltigt Nano ID: Fick ${issue.received}`,\n    nonEmpty:         (issue) => `Ogiltig längd: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    notBytes:         (issue) => `Ogiltiga bytes: Förväntade ${issue.expected}, men fick ${issue.received}`, \n    notEntries:       (issue) => `Ogiltigt antal poster: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    notGraphemes:     (issue) => `Ogiltigt grafem: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    notLength:        (issue) => `Ogiltig längd: Förväntade ${issue.expected}, men fick ${issue.received}`, \n    notSize:          (issue) => `Ogiltig storlek: Förväntade ${issue.expected}, men fick ${issue.received}`, \n    notValue:         (issue) => `Ogiltigt värde: Förväntade ${issue.expected}, men fick ${issue.received}`, \n    notValues:        (issue) => `Ogiltigt värde: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    notWords:         (issue) => `Ogiltigt ord: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    octal:            (issue) => `Ogiltig oktal: Fick ${issue.received}`,\n    parseBoolean:     (issue) => `Ogiltigt booleskt värde: Fick ${issue.received}`,\n    parseJson:        (issue) => `Ogiltig JSON: Fick ${issue.received}`,\n    partialCheck:     (issue) => `Ogiltig indata: Fick ${issue.received}`,\n    rawCheck:         (issue) => `Ogiltig indata: Fick ${issue.received}`,\n    rawTransform:     (issue) => `Ogiltig indata: Fick ${issue.received}`,\n    regex:            (issue) => `Ogiltigt format: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    rfcEmail:         (issue) => `Ogiltig e-post: Fick ${issue.received}`,\n    safeInteger:      (issue) => `Ogiltigt säkert heltal: Fick ${issue.received}`, \n    size:             (issue) => `Ogiltig storlek: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    slug:             (issue) => `Ogiltig slug: Fick ${issue.received}`,\n    someItem:         (issue) => `Ogiltigt element: Fick ${issue.received}`,\n    startsWith:       (issue) => `Ogiltig start: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    stringifyJson:    (issue) => `Ogiltig JSON: Fick ${issue.received}`,\n    toBigint:         (issue) => `Ogiltig BigInt: Fick ${issue.received}`,\n    toDate:           (issue) => `Ogiltigt datum: Fick ${issue.received}`,\n    toNumber:         (issue) => `Ogiltigt nummer: Fick ${issue.received}`,\n    toString:         (issue) => `Ogiltig sträng: Fick ${issue.received}`,\n    ulid:             (issue) => `Ogiltigt ULID: Fick ${issue.received}`,\n    url:              (issue) => `Ogiltig URL: Fick ${issue.received}`,\n    uuid:             (issue) => `Ogiltigt UUID: Fick ${issue.received}`,\n    value:            (issue) => `Ogiltigt värde: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    values:           (issue) => `Ogiltigt värde: Förväntade ${issue.expected}, men fick ${issue.received}`,\n    words:            (issue) => `Ogiltigt ord: Förväntade ${issue.expected}, men fick ${issue.received}`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/tr.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'tr',\n  schema:             (issue) => `Geçersiz tip: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n  specific: {\n    base64:           (issue) => `Geçersiz Base64: ${issue.received} alındı`,\n    bic:              (issue) => `Geçersiz BIC: ${issue.received} alındı`,\n    bytes:            (issue) => `Geçersiz bayt: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    check:            (issue) => `Geçersiz girdi: ${issue.received} alındı`,\n    checkAsync:       (issue) => `Geçersiz girdi: ${issue.received} alındı`,\n    checkItems:       (issue) => `Geçersiz öğe: ${issue.received} alındı`,\n    checkItemsAsync:  (issue) => `Geçersiz öğe: ${issue.received} alındı`,\n    creditCard:       (issue) => `Geçersiz kredi kartı: ${issue.received} alındı`,\n    cuid2:            (issue) => `Geçersiz Cuid2: ${issue.received} alındı`,\n    decimal:          (issue) => `Geçersiz kesirli sayı: ${issue.received} alındı`,\n    digits:           (issue) => `Geçersiz rakam: ${issue.received} alındı`,\n    domain:           (issue) => `Geçersiz alan adı: ${issue.received} alındı`,\n    email:            (issue) => `Geçersiz e-posta: ${issue.received} alındı`,\n    emoji:            (issue) => `Geçersiz emoji: ${issue.received} alındı`,\n    empty:            (issue) => `Geçersiz uzunluk: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    endsWith:         (issue) => `Geçersiz bitiş: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    entries:          (issue) => `Geçersiz giriş sayısı: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    everyItem:        (issue) => `Geçersiz öğe: ${issue.received} alındı`,\n    excludes:         (issue) => `Geçersiz içerik: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    finite:           (issue) => `Geçersiz sonlu sayı: ${issue.received} alındı`,\n    graphemes:        (issue) => `Geçersiz grafem: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    gtValue:          (issue) => `Geçersiz değer: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    guard:            (issue) => `Geçersiz girdi: ${issue.received} alındı`,\n    hash:             (issue) => `Geçersiz hash: ${issue.received} alındı`,\n    hexadecimal:      (issue) => `Geçersiz onaltı tabanlı sayı: ${issue.received} alındı`,\n    hexColor:         (issue) => `Geçersiz hex renk kodu: ${issue.received} alındı`,\n    imei:             (issue) => `Geçersiz IMEI: ${issue.received} alındı`,\n    includes:         (issue) => `Geçersiz içerik: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    integer:          (issue) => `Geçersiz tamsayı: ${issue.received} alındı`,\n    ip:               (issue) => `Geçersiz IP: ${issue.received} alındı`,\n    ipv4:             (issue) => `Geçersiz IPv4: ${issue.received} alındı`,\n    ipv6:             (issue) => `Geçersiz IPv6: ${issue.received} alındı`,\n    isbn:             (issue) => `Geçersiz ISBN: ${issue.received} alındı`,\n    isoDate:          (issue) => `Geçersiz tarih: ${issue.received} alındı`,\n    isoDateTime:      (issue) => `Geçersiz tarih-saat: ${issue.received} alındı`,\n    isoTime:          (issue) => `Geçersiz saat: ${issue.received} alındı`,\n    isoTimeSecond:    (issue) => `Geçersiz saat saniye: ${issue.received} alındı`,\n    isoTimestamp:     (issue) => `Geçersiz zaman bilgisi: ${issue.received} alındı`,\n    isoWeek:          (issue) => `Geçersiz hafta: ${issue.received} alındı`,\n    isrc:             (issue) => `Geçersiz ISRC: ${issue.received} alındı`,\n    jwsCompact:       (issue) => `Geçersiz kompakt JWS: ${issue.received} alındı`,\n    length:           (issue) => `Geçersiz uzunluk: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    ltValue:          (issue) => `Geçersiz değer: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    mac:              (issue) => `Geçersiz MAC: ${issue.received} alındı`,\n    mac48:            (issue) => `Geçersiz 48-bit MAC: ${issue.received} alındı`,\n    mac64:            (issue) => `Geçersiz 64-bit MAC: ${issue.received} alındı`,\n    maxBytes:         (issue) => `Geçersiz bayt: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    maxEntries:       (issue) => `Geçersiz giriş sayısı: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    maxGraphemes:     (issue) => `Geçersiz grafem: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    maxLength:        (issue) => `Geçersiz uzunluk: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    maxSize:          (issue) => `Geçersiz boyut: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    maxValue:         (issue) => `Geçersiz değer: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    maxWords:         (issue) => `Geçersiz kelime: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    mimeType:         (issue) => `Geçersiz MIME tipi: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    minBytes:         (issue) => `Geçersiz bayt: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    minEntries:       (issue) => `Geçersiz giriş sayısı: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    minGraphemes:     (issue) => `Geçersiz grafem: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    minLength:        (issue) => `Geçersiz uzunluk: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    minSize:          (issue) => `Geçersiz boyut: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    minValue:         (issue) => `Geçersiz değer: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    minWords:         (issue) => `Geçersiz kelime: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    multipleOf:       (issue) => `Geçersiz katsayı: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    nanoid:           (issue) => `Geçersiz Nano ID: ${issue.received} alındı`,\n    nonEmpty:         (issue) => `Geçersiz uzunluk: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    notBytes:         (issue) => `Geçersiz bayt: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    notEntries:       (issue) => `Geçersiz giriş sayısı: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    notGraphemes:     (issue) => `Geçersiz grafem: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    notLength:        (issue) => `Geçersiz uzunluk: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    notSize:          (issue) => `Geçersiz boyut: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    notValue:         (issue) => `Geçersiz değer: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    notValues:        (issue) => `Geçersiz değer: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    notWords:         (issue) => `Geçersiz kelime: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    octal:            (issue) => `Geçersiz sekiz tabanlı sayı: ${issue.received} alındı`,\n    parseBoolean:     (issue) => `Geçersiz boole değeri: ${issue.received} alındı`,\n    parseJson:        (issue) => `Geçersiz JSON: ${issue.received} alındı`,\n    partialCheck:     (issue) => `Geçersiz girdi: ${issue.received} alındı`,\n    rawCheck:         (issue) => `Geçersiz girdi: ${issue.received} alındı`,\n    rawTransform:     (issue) => `Geçersiz girdi: ${issue.received} alındı`,\n    regex:            (issue) => `Geçersiz format: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    rfcEmail:         (issue) => `Geçersiz e-posta: ${issue.received} alındı`,\n    safeInteger:      (issue) => `Geçersiz güvenli tamsayı: ${issue.received} alındı`,\n    size:             (issue) => `Geçersiz boyut: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    slug:             (issue) => `Geçersiz slug: ${issue.received} alındı`,\n    someItem:         (issue) => `Geçersiz öğe: ${issue.received} alındı`,\n    startsWith:       (issue) => `Geçersiz başlangıç: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    stringifyJson:    (issue) => `Geçersiz JSON: ${issue.received} alındı`,\n    toBigint:         (issue) => `Geçersiz BigInt: ${issue.received} alındı`,\n    toDate:           (issue) => `Geçersiz tarih: ${issue.received} alındı`,\n    toNumber:         (issue) => `Geçersiz sayı: ${issue.received} alındı`,\n    toString:         (issue) => `Geçersiz dize: ${issue.received} alındı`,\n    ulid:             (issue) => `Geçersiz ULID: ${issue.received} alındı`,\n    url:              (issue) => `Geçersiz URL: ${issue.received} alındı`,\n    uuid:             (issue) => `Geçersiz UUID: ${issue.received} alındı`,\n    value:            (issue) => `Geçersiz değer: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    values:           (issue) => `Geçersiz değer: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n    words:            (issue) => `Geçersiz kelime: ${issue.expected} bekleniyordu ancak ${issue.received} alındı`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/types.ts",
    "content": "import type { BaseIssue, ErrorMessage } from 'valibot';\n\nexport type Language = {\n  code:\n    | 'ar'\n    | 'az'\n    | 'ca'\n    | 'cs'\n    | 'de'\n    | 'el'\n    | 'en'\n    | 'es'\n    | 'fa'\n    | 'fi'\n    | 'fr'\n    | 'hu'\n    | 'id'\n    | 'it'\n    | 'ja'\n    | 'ko'\n    | 'kr'\n    | 'mn'\n    | 'nb'\n    | 'nl'\n    | 'pl'\n    | 'pt'\n    | 'ro'\n    | 'ru'\n    | 'sk'\n    | 'sl'\n    | 'sv'\n    | 'tr'\n    | 'uk'\n    | 'vi'\n    | 'zh-CN'\n    | 'zh-TW';\n  schema: ErrorMessage<BaseIssue<unknown>>;\n  specific: {\n    base64: ErrorMessage<BaseIssue<unknown>>;\n    bic: ErrorMessage<BaseIssue<unknown>>;\n    bytes: ErrorMessage<BaseIssue<unknown>>;\n    check: ErrorMessage<BaseIssue<unknown>>;\n    checkAsync: ErrorMessage<BaseIssue<unknown>>;\n    checkItems: ErrorMessage<BaseIssue<unknown>>;\n    checkItemsAsync: ErrorMessage<BaseIssue<unknown>>;\n    creditCard: ErrorMessage<BaseIssue<unknown>>;\n    cuid2: ErrorMessage<BaseIssue<unknown>>;\n    decimal: ErrorMessage<BaseIssue<unknown>>;\n    digits: ErrorMessage<BaseIssue<unknown>>;\n    domain: ErrorMessage<BaseIssue<unknown>>;\n    email: ErrorMessage<BaseIssue<unknown>>;\n    emoji: ErrorMessage<BaseIssue<unknown>>;\n    empty: ErrorMessage<BaseIssue<unknown>>;\n    endsWith: ErrorMessage<BaseIssue<unknown>>;\n    entries: ErrorMessage<BaseIssue<unknown>>;\n    everyItem: ErrorMessage<BaseIssue<unknown>>;\n    excludes: ErrorMessage<BaseIssue<unknown>>;\n    finite: ErrorMessage<BaseIssue<unknown>>;\n    graphemes: ErrorMessage<BaseIssue<unknown>>;\n    gtValue: ErrorMessage<BaseIssue<unknown>>;\n    guard: ErrorMessage<BaseIssue<unknown>>;\n    hash: ErrorMessage<BaseIssue<unknown>>;\n    hexadecimal: ErrorMessage<BaseIssue<unknown>>;\n    hexColor: ErrorMessage<BaseIssue<unknown>>;\n    imei: ErrorMessage<BaseIssue<unknown>>;\n    includes: ErrorMessage<BaseIssue<unknown>>;\n    integer: ErrorMessage<BaseIssue<unknown>>;\n    ip: ErrorMessage<BaseIssue<unknown>>;\n    ipv4: ErrorMessage<BaseIssue<unknown>>;\n    ipv6: ErrorMessage<BaseIssue<unknown>>;\n    isbn: ErrorMessage<BaseIssue<unknown>>;\n    isoDate: ErrorMessage<BaseIssue<unknown>>;\n    isoDateTime: ErrorMessage<BaseIssue<unknown>>;\n    isoTime: ErrorMessage<BaseIssue<unknown>>;\n    isoTimeSecond: ErrorMessage<BaseIssue<unknown>>;\n    isoTimestamp: ErrorMessage<BaseIssue<unknown>>;\n    isoWeek: ErrorMessage<BaseIssue<unknown>>;\n    isrc: ErrorMessage<BaseIssue<unknown>>;\n    jwsCompact: ErrorMessage<BaseIssue<unknown>>;\n    length: ErrorMessage<BaseIssue<unknown>>;\n    ltValue: ErrorMessage<BaseIssue<unknown>>;\n    mac: ErrorMessage<BaseIssue<unknown>>;\n    mac48: ErrorMessage<BaseIssue<unknown>>;\n    mac64: ErrorMessage<BaseIssue<unknown>>;\n    maxBytes: ErrorMessage<BaseIssue<unknown>>;\n    maxEntries: ErrorMessage<BaseIssue<unknown>>;\n    maxGraphemes: ErrorMessage<BaseIssue<unknown>>;\n    maxLength: ErrorMessage<BaseIssue<unknown>>;\n    maxSize: ErrorMessage<BaseIssue<unknown>>;\n    maxValue: ErrorMessage<BaseIssue<unknown>>;\n    maxWords: ErrorMessage<BaseIssue<unknown>>;\n    mimeType: ErrorMessage<BaseIssue<unknown>>;\n    minBytes: ErrorMessage<BaseIssue<unknown>>;\n    minEntries: ErrorMessage<BaseIssue<unknown>>;\n    minGraphemes: ErrorMessage<BaseIssue<unknown>>;\n    minLength: ErrorMessage<BaseIssue<unknown>>;\n    minSize: ErrorMessage<BaseIssue<unknown>>;\n    minValue: ErrorMessage<BaseIssue<unknown>>;\n    minWords: ErrorMessage<BaseIssue<unknown>>;\n    multipleOf: ErrorMessage<BaseIssue<unknown>>;\n    nanoid: ErrorMessage<BaseIssue<unknown>>;\n    nonEmpty: ErrorMessage<BaseIssue<unknown>>;\n    notBytes: ErrorMessage<BaseIssue<unknown>>;\n    notEntries: ErrorMessage<BaseIssue<unknown>>;\n    notGraphemes: ErrorMessage<BaseIssue<unknown>>;\n    notLength: ErrorMessage<BaseIssue<unknown>>;\n    notSize: ErrorMessage<BaseIssue<unknown>>;\n    notValue: ErrorMessage<BaseIssue<unknown>>;\n    notValues: ErrorMessage<BaseIssue<unknown>>;\n    notWords: ErrorMessage<BaseIssue<unknown>>;\n    octal: ErrorMessage<BaseIssue<unknown>>;\n    parseBoolean: ErrorMessage<BaseIssue<unknown>>;\n    parseJson: ErrorMessage<BaseIssue<unknown>>;\n    partialCheck: ErrorMessage<BaseIssue<unknown>>;\n    rawCheck: ErrorMessage<BaseIssue<unknown>>;\n    rawTransform: ErrorMessage<BaseIssue<unknown>>;\n    regex: ErrorMessage<BaseIssue<unknown>>;\n    rfcEmail: ErrorMessage<BaseIssue<unknown>>;\n    safeInteger: ErrorMessage<BaseIssue<unknown>>;\n    size: ErrorMessage<BaseIssue<unknown>>;\n    slug: ErrorMessage<BaseIssue<unknown>>;\n    someItem: ErrorMessage<BaseIssue<unknown>>;\n    startsWith: ErrorMessage<BaseIssue<unknown>>;\n    stringifyJson: ErrorMessage<BaseIssue<unknown>>;\n    toBigint: ErrorMessage<BaseIssue<unknown>>;\n    toDate: ErrorMessage<BaseIssue<unknown>>;\n    toNumber: ErrorMessage<BaseIssue<unknown>>;\n    toString: ErrorMessage<BaseIssue<unknown>>;\n    ulid: ErrorMessage<BaseIssue<unknown>>;\n    url: ErrorMessage<BaseIssue<unknown>>;\n    uuid: ErrorMessage<BaseIssue<unknown>>;\n    value: ErrorMessage<BaseIssue<unknown>>;\n    values: ErrorMessage<BaseIssue<unknown>>;\n    words: ErrorMessage<BaseIssue<unknown>>;\n  };\n};\n"
  },
  {
    "path": "packages/i18n/src/uk.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'uk',\n  schema:             (issue) => `Неправильний тип: очікувався ${issue.expected}, але отримано ${issue.received}`,\n  specific: {\n    base64:           (issue) => `Неправильний Base64: отримано ${issue.received}`,\n    bic:              (issue) => `Неправильний BIC: отримано ${issue.received}`,\n    bytes:            (issue) => `Неправильна кількість байт: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    check:            (issue) => `Неправильні дані: отримано ${issue.received}`,\n    checkAsync:       (issue) => `Неправильні дані: отримано ${issue.received}`,\n    checkItems:       (issue) => `Неправильний елемент: отримано ${issue.received}`,\n    checkItemsAsync:  (issue) => `Неправильний елемент: отримано ${issue.received}`,\n    creditCard:       (issue) => `Неправильний номер кредитної картки: отримано ${issue.received}`,\n    cuid2:            (issue) => `Неправильний Cuid2: отримано ${issue.received}`,\n    decimal:          (issue) => `Неправильне десяткове число: отримано ${issue.received}`,\n    digits:           (issue) => `Неправильне число: отримано ${issue.received}`,\n    domain:           (issue) => `Неправильний домен: отримано ${issue.received}`,\n    email:            (issue) => `Неправильний email: отримано ${issue.received}`,\n    emoji:            (issue) => `Неправильні емодзі: отримано ${issue.received}`,\n    empty:            (issue) => `Неправильна довжина: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    endsWith:         (issue) => `Неправильний кінець: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    entries:          (issue) => `Неправильна кількість записів: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    everyItem:        (issue) => `Неправильний елемент: отримано ${issue.received}`,\n    excludes:         (issue) => `Неправильний вміст: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    finite:           (issue) => `Неправильне скінченне число: отримано ${issue.received}`,\n    graphemes:        (issue) => `Неправильна кількість графем: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    gtValue:          (issue) => `Неправильне значення: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    guard:            (issue) => `Неправильні дані: отримано ${issue.received}`,\n    hash:             (issue) => `Неправильний хеш: отримано ${issue.received}`,\n    hexadecimal:      (issue) => `Неправильне шістнадцяткове значення: отримано ${issue.received}`,\n    hexColor:         (issue) => `Неправильний шістнадцятковий колір: отримано ${issue.received}`,\n    imei:             (issue) => `Неправильний IMEI: отримано ${issue.received}`,\n    includes:         (issue) => `Неправильний вміст: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    integer:          (issue) => `Неправильне ціле число: отримано ${issue.received}`,\n    ip:               (issue) => `Неправильний IP: отримано ${issue.received}`,\n    ipv4:             (issue) => `Неправильний IPv4: отримано ${issue.received}`,\n    ipv6:             (issue) => `Неправильний IPv6: отримано ${issue.received}`,\n    isbn:             (issue) => `Неправильний ISBN: отримано ${issue.received}`,\n    isoDate:          (issue) => `Неправильна дата: отримано ${issue.received}`,\n    isoDateTime:      (issue) => `Неправильна дата і час: отримано ${issue.received}`,\n    isoTime:          (issue) => `Неправильний час: отримано ${issue.received}`,\n    isoTimeSecond:    (issue) => `Неправильний час з секундами: отримано ${issue.received}`,\n    isoTimestamp:     (issue) => `Неправильна мітка часу: отримано ${issue.received}`,\n    isoWeek:          (issue) => `Неправильний тиждень: отримано ${issue.received}`,\n    isrc:             (issue) => `Неправильний ISRC: отримано ${issue.received}`,\n    jwsCompact:       (issue) => `Неправильний компактний JWS: отримано ${issue.received}`,\n    length:           (issue) => `Неправильна довжина: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    ltValue:          (issue) => `Неправильне значення: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    mac:              (issue) => `Неправильний MAC: отримано ${issue.received}`,\n    mac48:            (issue) => `Неправильний 48-бітний MAC: отримано ${issue.received}`,\n    mac64:            (issue) => `Неправильний 64-бітний MAC: отримано ${issue.received}`,\n    maxBytes:         (issue) => `Неправильна кількість байт: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    maxEntries:       (issue) => `Неправильна кількість записів: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    maxGraphemes:     (issue) => `Неправильна кількість графем: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    maxLength:        (issue) => `Неправильна довжина: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    maxSize:          (issue) => `Неправильний розмір: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    maxValue:         (issue) => `Неправильне значення: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    maxWords:         (issue) => `Неправильна кількість слів: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    mimeType:         (issue) => `Неправильний MIME тип: очікувався ${issue.expected}, але отримано ${issue.received}`,\n    minBytes:         (issue) => `Неправильна кількість байт: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    minEntries:       (issue) => `Неправильна кількість записів: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    minGraphemes:     (issue) => `Неправильна кількість графем: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    minLength:        (issue) => `Неправильна довжина: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    minSize:          (issue) => `Неправильний розмір: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    minValue:         (issue) => `Неправильне значення: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    minWords:         (issue) => `Неправильна кількість слів: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    multipleOf:       (issue) => `Неправильне кратне число: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    nanoid:           (issue) => `Неправильний Nano ID: отримано ${issue.received}`,\n    nonEmpty:         (issue) => `Неправильна довжина: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    notBytes:         (issue) => `Неправильна кількість байт: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    notEntries:       (issue) => `Неправильна кількість записів: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    notGraphemes:     (issue) => `Неправильна кількість графем: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    notLength:        (issue) => `Неправильна довжина: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    notSize:          (issue) => `Неправильний розмір: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    notValue:         (issue) => `Неправильне значення: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    notValues:        (issue) => `Неправильне значення: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    notWords:         (issue) => `Неправильна кількість слів: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    octal:            (issue) => `Неправильний вісімковий код: отримано ${issue.received}`,\n    parseBoolean:     (issue) => `Неправильне булеве значення: отримано ${issue.received}`,\n    parseJson:        (issue) => `Неправильний JSON: отримано ${issue.received}`,\n    partialCheck:     (issue) => `Неправильні дані: отримано ${issue.received}`,\n    rawCheck:         (issue) => `Неправильні дані: отримано ${issue.received}`,\n    rawTransform:     (issue) => `Неправильні дані: отримано ${issue.received}`,\n    regex:            (issue) => `Неправильний формат: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    rfcEmail:         (issue) => `Неправильний email: отримано ${issue.received}`,\n    safeInteger:      (issue) => `Неправильне безпечне ціле число: отримано ${issue.received}`,\n    size:             (issue) => `Неправильний розмір: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    slug:             (issue) => `Неправильний slug: отримано ${issue.received}`,\n    someItem:         (issue) => `Неправильний елемент: отримано ${issue.received}`,\n    startsWith:       (issue) => `Неправильний початок: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    stringifyJson:    (issue) => `Неправильний JSON: отримано ${issue.received}`,\n    toBigint:         (issue) => `Неправильний BigInt: отримано ${issue.received}`,\n    toDate:           (issue) => `Неправильна дата: отримано ${issue.received}`,\n    toNumber:         (issue) => `Неправильне число: отримано ${issue.received}`,\n    toString:         (issue) => `Неправильний рядок: отримано ${issue.received}`,\n    ulid:             (issue) => `Неправильний ULID: отримано ${issue.received}`,\n    url:              (issue) => `Неправильний URL: отримано ${issue.received}`,\n    uuid:             (issue) => `Неправильний UUID: отримано ${issue.received}`,\n    value:            (issue) => `Неправильне значення: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    values:           (issue) => `Неправильне значення: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n    words:            (issue) => `Неправильна кількість слів: очікувалося ${issue.expected}, але отримано ${issue.received}`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/vi.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'vi',\n  schema:             (issue) => `Loại không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n  specific: {\n    base64:           (issue) => `Base64 không hợp lệ: Nhận được ${issue.received}`,\n    bic:              (issue) => `BIC không hợp lệ: Nhận được ${issue.received}`,\n    bytes:            (issue) => `Bytes không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    check:            (issue) => `Đầu vào không hợp lệ: Nhận ${issue.received}`,\n    checkAsync:       (issue) => `Đầu vào không hợp lệ: Nhận ${issue.received}`,\n    checkItems:       (issue) => `Mục không hợp lệ: Nhận được ${issue.received}`,\n    checkItemsAsync:  (issue) => `Mục không hợp lệ: Nhận được ${issue.received}`,\n    creditCard:       (issue) => `Thẻ tín dụng không hợp lệ: Nhận được ${issue.received}`,\n    cuid2:            (issue) => `Cuid2 không hợp lệ: Nhận được ${issue.received}`,\n    decimal:          (issue) => `Số thập phân không hợp lệ: Nhận được ${issue.received}`,\n    digits:           (issue) => `Các chữ số không hợp lệ: Nhận được ${issue.received}`,\n    domain:           (issue) => `Tên miền không hợp lệ: Nhận được ${issue.received}`,\n    email:            (issue) => `Email không hợp lệ: Nhận được ${issue.received}`,\n    emoji:            (issue) => `Emoji không hợp lệ: Nhận được ${issue.received}`,\n    empty:            (issue) => `Độ dài không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    endsWith:         (issue) => `Các ký tự thúc không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    entries:          (issue) => `Số mục không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    everyItem:        (issue) => `Mục không hợp lệ: Nhận được ${issue.received}`,\n    excludes:         (issue) => `Nội dung không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    finite:           (issue) => `Số không hợp lệ: Nhận được ${issue.received}`,\n    graphemes:        (issue) => `Các chữ cái không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    gtValue:          (issue) => `Giá trị không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    guard:            (issue) => `Đầu vào không hợp lệ: Nhận được ${issue.received}`,\n    hash:             (issue) => `Mã hash không hợp lệ: Nhận được ${issue.received}`,\n    hexadecimal:      (issue) => `Số thập lục phân không hợp lệ: Nhận được ${issue.received}`,\n    hexColor:         (issue) => `Mã màu hex không hợp lệ: Nhận được ${issue.received}`,\n    imei:             (issue) => `IMEI không hợp lệ: Nhận được ${issue.received}`,\n    includes:         (issue) => `Nội dung không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    integer:          (issue) => `Số nguyên không hợp lệ: Nhận được ${issue.received}`,\n    ip:               (issue) => `IP không hợp lệ: Nhận được ${issue.received}`,\n    ipv4:             (issue) => `IPv4 không hợp lệ: Nhận được ${issue.received}`,\n    ipv6:             (issue) => `IPv6 không hợp lệ: Nhận được ${issue.received}`,\n    isbn:             (issue) => `ISBN không hợp lệ: Nhận được ${issue.received}`,\n    isoDate:          (issue) => `Ngày không hợp lệ: Nhận được ${issue.received}`,\n    isoDateTime:      (issue) => `Ngày giờ không hợp lệ: Nhận được ${issue.received}`,\n    isoTime:          (issue) => `Giờ không hợp lệ: Nhận được ${issue.received}`,\n    isoTimeSecond:    (issue) => `Giây không hợp lệ: Nhận được ${issue.received}`,\n    isoTimestamp:     (issue) => `Dấu thời gian không hợp lệ: Nhận được ${issue.received}`,\n    isoWeek:          (issue) => `Tuần không hợp lệ: Nhận được ${issue.received}`,\n    isrc:             (issue) => `ISRC không hợp lệ: Nhận được ${issue.received}`,\n    jwsCompact:       (issue) => `JWS dạng rút gọn không hợp lệ: Nhận được ${issue.received}`,\n    length:           (issue) => `Độ dài không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    ltValue:          (issue) => `Giá trị không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    mac:              (issue) => `MAC không hợp lệ: Nhận được ${issue.received}`,\n    mac48:            (issue) => `MAC 48-bit không hợp lệ: Nhận được ${issue.received}`,\n    mac64:            (issue) => `MAC 64-bit không hợp lệ: Nhận được ${issue.received}`,\n    maxBytes:         (issue) => `Bytes không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    maxEntries:       (issue) => `Số mục không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    maxGraphemes:     (issue) => `Các chữ cái không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    maxLength:        (issue) => `Độ dài không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    maxSize:          (issue) => `Kích cỡ không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    maxValue:         (issue) => `Giá trị không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    maxWords:         (issue) => `Từ không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    mimeType:         (issue) => `Loại MIME không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    minBytes:         (issue) => `Bytes không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    minEntries:       (issue) => `Số mục không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    minGraphemes:     (issue) => `Các chữ cái không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    minLength:        (issue) => `Độ dài không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    minSize:          (issue) => `Kích cỡ không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    minValue:         (issue) => `Giá trị không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    minWords:         (issue) => `Từ không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    multipleOf:       (issue) => `Lựa chọn không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    nanoid:           (issue) => `Nano ID không hợp lệ: Nhận được ${issue.received}`,\n    nonEmpty:         (issue) => `Độ dài không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    notBytes:         (issue) => `Bytes không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    notEntries:       (issue) => `Số mục không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    notGraphemes:     (issue) => `Các chữ cái không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    notLength:        (issue) => `Độ dài không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    notSize:          (issue) => `Kích cỡ không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    notValue:         (issue) => `Giá trị không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    notValues:        (issue) => `Giá trị không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    notWords:         (issue) => `Từ không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    octal:            (issue) => `Hệ bát phân không hợp lệ: Nhận được ${issue.received}`,\n    parseBoolean:     (issue) => `Giá trị boolean không hợp lệ: Nhận được ${issue.received}`,\n    parseJson:        (issue) => `JSON không hợp lệ: Nhận được ${issue.received}`,\n    partialCheck:     (issue) => `Đầu vào không hợp lệ: Nhận được ${issue.received}`,\n    rawCheck:         (issue) => `Đầu vào không hợp lệ: Nhận được ${issue.received}`,\n    rawTransform:     (issue) => `Đầu vào không hợp lệ: Nhận được ${issue.received}`,\n    regex:            (issue) => `Định dạng không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    rfcEmail:         (issue) => `Email không hợp lệ: Nhận được ${issue.received}`,\n    safeInteger:      (issue) => `Số nguyên an toàn không hợp lệ: Nhận được ${issue.received}`,\n    size:             (issue) => `Kích cỡ không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    slug:             (issue) => `Slug không hợp lệ: Nhận được ${issue.received}`,\n    someItem:         (issue) => `Mục không hợp lệ: Nhận được ${issue.received}`,\n    startsWith:       (issue) => `Các ký tự bắt đầu không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    stringifyJson:    (issue) => `JSON không hợp lệ: Nhận được ${issue.received}`,\n    toBigint:         (issue) => `BigInt không hợp lệ: Nhận được ${issue.received}`,\n    toDate:           (issue) => `Ngày không hợp lệ: Nhận được ${issue.received}`,\n    toNumber:         (issue) => `Số không hợp lệ: Nhận được ${issue.received}`,\n    toString:         (issue) => `Chuỗi không hợp lệ: Nhận được ${issue.received}`,\n    ulid:             (issue) => `ULID không hợp lệ: Nhận được ${issue.received}`,\n    url:              (issue) => `URL không hợp lệ: Nhận được ${issue.received}`,\n    uuid:             (issue) => `UUID không hợp lệ: Nhận được ${issue.received}`,\n    value:            (issue) => `Giá trị không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    values:           (issue) => `Giá trị không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n    words:            (issue) => `Từ không hợp lệ: Mong muốn ${issue.expected} nhưng nhận được ${issue.received}`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/zh-CN.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'zh-CN',\n  schema:             (issue) => `无效的类型：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n  specific: {\n    base64:           (issue) => `无效的 Base64：输入为 ${issue.received}`,\n    bic:              (issue) => `无效的商业标识符：输入为 ${issue.received}`,\n    bytes:            (issue) => `无效的字节长度：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    check:            (issue) => `无效的输入：输入为 ${issue.received}`,\n    checkAsync:       (issue) => `无效的输入：输入为 ${issue.received}`,\n    checkItems:       (issue) => `无效的项：输入为 ${issue.received}`,\n    checkItemsAsync:  (issue) => `无效的项：输入为 ${issue.received}`,\n    creditCard:       (issue) => `无效的信用卡：输入为 ${issue.received}`,\n    cuid2:            (issue) => `无效的 Cuid2：输入为 ${issue.received}`,\n    decimal:          (issue) => `无效的十进制：输入为 ${issue.received}`,\n    digits:           (issue) => `无效的数字：输入为 ${issue.received}`,\n    domain:           (issue) => `无效的域名：输入为 ${issue.received}`,\n    email:            (issue) => `无效的邮箱地址：输入为 ${issue.received}`,\n    emoji:            (issue) => `无效的 emoji：输入为 ${issue.received}`,\n    empty:            (issue) => `无效的长度：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    endsWith:         (issue) => `无效的结尾：预期结尾为 ${issue.expected}，而输入为 ${issue.received}`,\n    entries:          (issue) => `无效的条目数：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    everyItem:        (issue) => `无效的项：输入为 ${issue.received}`,\n    excludes:         (issue) => `无效的内容：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    finite:           (issue) => `无效的有限数：输入为 ${issue.received}`,\n    graphemes:        (issue) => `无效的图素长度：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    gtValue:          (issue) => `无效的值：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    guard:            (issue) => `无效的输入：输入为 ${issue.received}`,\n    hash:             (issue) => `无效的哈希值：输入为 ${issue.received}`,\n    hexadecimal:      (issue) => `无效的十六进制：输入为 ${issue.received}`,\n    hexColor:         (issue) => `无效的十六进制颜色：输入为 ${issue.received}`,\n    imei:             (issue) => `无效的国际移动设备识别码：输入为 ${issue.received}`,\n    includes:         (issue) => `无效的内容：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    integer:          (issue) => `无效的整数：输入为 ${issue.received}`,\n    ip:               (issue) => `无效的 IP：输入为 ${issue.received}`,\n    ipv4:             (issue) => `无效的 IPv4：输入为 ${issue.received}`,\n    ipv6:             (issue) => `无效的 IPv6：输入为 ${issue.received}`,\n    isbn:             (issue) => `无效的 ISBN：输入为 ${issue.received}`,\n    isoDate:          (issue) => `无效的日期：输入为 ${issue.received}`,\n    isoDateTime:      (issue) => `无效的日期时间：输入为 ${issue.received}`,\n    isoTime:          (issue) => `无效的时间：输入为 ${issue.received}`,\n    isoTimeSecond:    (issue) => `无效的秒级时间：输入为 ${issue.received}`,\n    isoTimestamp:     (issue) => `无效的时间戳：输入为 ${issue.received}`,\n    isoWeek:          (issue) => `无效的周数：输入为 ${issue.received}`,\n    isrc:             (issue) => `无效的 ISRC：输入为 ${issue.received}`,\n    jwsCompact:       (issue) => `无效的 JWS 紧凑序列化：输入为 ${issue.received}`,\n    length:           (issue) => `无效的长度：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    ltValue:          (issue) => `无效的值：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    mac:              (issue) => `无效的 MAC：输入为 ${issue.received}`,\n    mac48:            (issue) => `无效的 48 位 MAC：输入为 ${issue.received}`,\n    mac64:            (issue) => `无效的 64 位 MAC：输入为 ${issue.received}`,\n    maxBytes:         (issue) => `无效的字节长度：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    maxEntries:       (issue) => `无效的条目数：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    maxGraphemes:     (issue) => `无效的图素长度：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    maxLength:        (issue) => `无效的长度：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    maxSize:          (issue) => `无效的大小：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    maxValue:         (issue) => `无效的值：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    maxWords:         (issue) => `无效的单词数：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    mimeType:         (issue) => `无效的媒体类型：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    minBytes:         (issue) => `无效的字节长度：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    minEntries:       (issue) => `无效的条目数：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    minGraphemes:     (issue) => `无效的图素长度：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    minLength:        (issue) => `无效的长度：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    minSize:          (issue) => `无效的大小：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    minValue:         (issue) => `无效的值：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    minWords:         (issue) => `无效的单词数：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    multipleOf:       (issue) => `无效的倍数：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    nanoid:           (issue) => `无效的 Nano ID：输入为 ${issue.received}`,\n    nonEmpty:         (issue) => `无效的长度：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    notBytes:         (issue) => `无效的字节长度：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    notEntries:       (issue) => `无效的条目数：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    notGraphemes:     (issue) => `无效的图素长度：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    notLength:        (issue) => `无效的长度：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    notSize:          (issue) => `无效的大小：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    notValue:         (issue) => `无效的值：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    notValues:        (issue) => `无效的值：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    notWords:         (issue) => `无效的单词数：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    octal:            (issue) => `无效的八进制：输入为 ${issue.received}`,\n    parseBoolean:     (issue) => `无效的布尔值：输入为 ${issue.received}`,\n    parseJson:        (issue) => `无效的 JSON：输入为 ${issue.received}`,\n    partialCheck:     (issue) => `无效的输入：输入为 ${issue.received}`,\n    rawCheck:         (issue) => `无效的输入：输入为 ${issue.received}`,\n    rawTransform:     (issue) => `无效的输入：输入为 ${issue.received}`,\n    regex:            (issue) => `无效的格式：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    rfcEmail:         (issue) => `无效的电子邮箱：输入为 ${issue.received}`,\n    safeInteger:      (issue) => `无效的安全整数：输入为 ${issue.received}`,\n    size:             (issue) => `无效的大小：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    slug:             (issue) => `无效的短标签：输入为 ${issue.received}`,\n    someItem:         (issue) => `无效的项：输入为 ${issue.received}`,\n    startsWith:       (issue) => `无效的开头：预期开头为 ${issue.expected}，而输入为 ${issue.received}`,\n    stringifyJson:    (issue) => `无效的 JSON：输入为 ${issue.received}`,\n    toBigint:         (issue) => `无效的 BigInt：输入为 ${issue.received}`,\n    toDate:           (issue) => `无效的日期：输入为 ${issue.received}`,\n    toNumber:         (issue) => `无效的数字：输入为 ${issue.received}`,\n    toString:         (issue) => `无效的字符串：输入为 ${issue.received}`,\n    ulid:             (issue) => `无效的 ULID：输入为 ${issue.received}`,\n    url:              (issue) => `无效的 URL：输入为 ${issue.received}`,\n    uuid:             (issue) => `无效的 UUID：输入为 ${issue.received}`,\n    value:            (issue) => `无效的值：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    values:           (issue) => `无效的值：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n    words:            (issue) => `无效的单词数：预期为 ${issue.expected}，而输入为 ${issue.received}`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/src/zh-TW.ts",
    "content": "import type { Language } from './types';\n\n// prettier-ignore\nconst language: Language = {\n  code:               'zh-TW',\n  schema:             (issue) => `無效的類型：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n  specific: {\n    base64:           (issue) => `無效的 Base64：輸入為 ${issue.received}`,\n    bic:              (issue) => `無效的商業識別代碼：輸入為 ${issue.received}`,\n    bytes:            (issue) => `無效的位元組：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    check:            (issue) => `無效的輸入：輸入為 ${issue.received}`,\n    checkAsync:       (issue) => `無效的輸入：輸入為 ${issue.received}`,\n    checkItems:       (issue) => `無效元素：輸入為 ${issue.received}`,\n    checkItemsAsync:  (issue) => `無效元素：輸入為 ${issue.received}`,\n    creditCard:       (issue) => `無效的信用卡：輸入為 ${issue.received}`,\n    cuid2:            (issue) => `無效的 Cuid2：輸入為 ${issue.received}`,\n    decimal:          (issue) => `無效的十進位：輸入為 ${issue.received}`,\n    digits:           (issue) => `無效的數字：輸入為 ${issue.received}`,\n    domain:           (issue) => `無效的網域名稱：輸入為 ${issue.received}`,\n    email:            (issue) => `無效的電子郵件：輸入為 ${issue.received}`,\n    emoji:            (issue) => `無效的表情符號：輸入為 ${issue.received}`,\n    empty:            (issue) => `無效的長度：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    endsWith:         (issue) => `無效的結尾：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    entries:          (issue) => `無效的項目數：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    everyItem:        (issue) => `無效的元素：輸入為 ${issue.received}`,\n    excludes:         (issue) => `無效的內容：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    finite:           (issue) => `無效的有限數：輸入為 ${issue.received}`,\n    graphemes:        (issue) => `無效的字元：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    gtValue:          (issue) => `無效的值：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    guard:            (issue) => `無效的輸入：輸入為 ${issue.received}`,\n    hash:             (issue) => `無效的哈希：輸入為 ${issue.received}`,\n    hexadecimal:      (issue) => `無效的十六進位：輸入為 ${issue.received}`,\n    hexColor:         (issue) => `無效的十六進位顏色：輸入為 ${issue.received}`,\n    imei:             (issue) => `無效的 IMEI：輸入為 ${issue.received}`,\n    includes:         (issue) => `無效的內容：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    integer:          (issue) => `無效的整數：輸入為 ${issue.received}`,\n    ip:               (issue) => `無效的 IP：輸入為 ${issue.received}`,\n    ipv4:             (issue) => `無效的 IPv4：輸入為 ${issue.received}`,\n    ipv6:             (issue) => `無效的 IPv6：輸入為 ${issue.received}`,\n    isbn:             (issue) => `無效的 ISBN：輸入為 ${issue.received}`,\n    isoDate:          (issue) => `無效的日期：輸入為 ${issue.received}`,\n    isoDateTime:      (issue) => `無效的日期時間：輸入為 ${issue.received}`,\n    isoTime:          (issue) => `無效的時間：輸入為 ${issue.received}`,\n    isoTimeSecond:    (issue) => `無效的時間秒：輸入為 ${issue.received}`,\n    isoTimestamp:     (issue) => `無效的時間戳記：輸入為 ${issue.received}`,\n    isoWeek:          (issue) => `無效的週數：輸入為 ${issue.received}`,\n    isrc:             (issue) => `無效的 ISRC：輸入為 ${issue.received}`,\n    jwsCompact:       (issue) => `無效的 JWS 緊湊序列化：輸入為 ${issue.received}`,\n    length:           (issue) => `無效的長度：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    ltValue:          (issue) => `無效的值：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    mac:              (issue) => `無效的 MAC：輸入為 ${issue.received}`,\n    mac48:            (issue) => `無效的 48 位元 MAC：輸入為 ${issue.received}`,\n    mac64:            (issue) => `無效的 64 位元 MAC：輸入為 ${issue.received}`,\n    maxBytes:         (issue) => `無效的位元組：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    maxEntries:       (issue) => `無效的項目數：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    maxGraphemes:     (issue) => `無效的字元：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    maxLength:        (issue) => `無效的長度：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    maxSize:          (issue) => `無效的大小：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    maxValue:         (issue) => `無效的值：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    maxWords:         (issue) => `無效的字詞：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    mimeType:         (issue) => `無效的 MIME 類型：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    minBytes:         (issue) => `無效的位元組：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    minEntries:       (issue) => `無效的項目數：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    minGraphemes:     (issue) => `無效的字元：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    minLength:        (issue) => `無效的長度：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    minSize:          (issue) => `無效的大小：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    minValue:         (issue) => `無效的值：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    minWords:         (issue) => `無效的字詞：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    multipleOf:       (issue) => `無效的倍數：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    nanoid:           (issue) => `無效的 Nano ID：輸入為 ${issue.received}`,\n    nonEmpty:         (issue) => `無效的長度：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    notBytes:         (issue) => `無效的位元組：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    notEntries:       (issue) => `無效的項目數：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    notGraphemes:     (issue) => `無效的字元：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    notLength:        (issue) => `無效的長度：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    notSize:          (issue) => `無效的大小：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    notValue:         (issue) => `無效的值：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    notValues:        (issue) => `無效的值：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    notWords:         (issue) => `無效的字詞：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    octal:            (issue) => `無效的八進位：輸入為 ${issue.received}`,\n    parseBoolean:     (issue) => `無效的布林值：輸入為 ${issue.received}`,\n    parseJson:        (issue) => `無效的 JSON：輸入為 ${issue.received}`,\n    partialCheck:     (issue) => `無效的輸入：輸入為 ${issue.received}`,\n    rawCheck:         (issue) => `無效的輸入：輸入為 ${issue.received}`,\n    rawTransform:     (issue) => `無效的輸入：輸入為 ${issue.received}`,\n    regex:            (issue) => `無效的格式：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    rfcEmail:         (issue) => `無效的電子郵件：輸入為 ${issue.received}`,\n    safeInteger:      (issue) => `無效的安全整數：輸入為 ${issue.received}`,\n    size:             (issue) => `無效的大小：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    slug:             (issue) => `無效的短標籤：輸入為 ${issue.received}`,\n    someItem:         (issue) => `無效的元素：輸入為 ${issue.received}`,\n    startsWith:       (issue) => `無效的開始：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    stringifyJson:    (issue) => `無效的 JSON：輸入為 ${issue.received}`,\n    toBigint:         (issue) => `無效的 BigInt：輸入為 ${issue.received}`,\n    toDate:           (issue) => `無效的日期：輸入為 ${issue.received}`,\n    toNumber:         (issue) => `無效的數字：輸入為 ${issue.received}`,\n    toString:         (issue) => `無效的字串：輸入為 ${issue.received}`,\n    ulid:             (issue) => `無效的 ULID：輸入為 ${issue.received}`,\n    url:              (issue) => `無效的網址：輸入為 ${issue.received}`,\n    uuid:             (issue) => `無效的 UUID：輸入為 ${issue.received}`,\n    value:            (issue) => `無效的值：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    values:           (issue) => `無效的值：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n    words:            (issue) => `無效的字詞：預期為 ${issue.expected}，但輸入為 ${issue.received}`,\n  },\n};\n\nexport default language;\n"
  },
  {
    "path": "packages/i18n/tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"strict\": true,\n    \"lib\": [\"ESNext\", \"DOM\"],\n    \"target\": \"ES2020\",\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"node\",\n    \"allowImportingTsExtensions\": true,\n    \"allowSyntheticDefaultImports\": true,\n    \"resolveJsonModule\": true,\n    \"skipLibCheck\": true,\n    \"noEmit\": true\n  },\n  \"include\": [\"scripts\", \"src\"]\n}\n"
  },
  {
    "path": "packages/to-json-schema/CHANGELOG.md",
    "content": "# Changelog\n\nAll notable changes to the library will be documented in this file.\n\n## v1.6.0 (March 17, 2026)\n\n- Add support for `never` schema (pull request #1430)\n- Add support for `endsWith`, `gtValue`, `hash`, `includes`, `isoTimeSecond`, `isoWeek`, `isrc`, `ltValue`, `mac`, `mac48`, `mac64`, `notValue`, `notValues`, `rfcEmail`, `safeInteger`, `slug`, `startsWith` and `values` actions (pull request #1430)\n- Add JSON compatibility validation for the requirements of `value`, `values`, `notValue` and `notValues` actions (pull request #1430)\n- Add inferred `type` for `enum` and `picklist` schemas (pull request #1430)\n- Change Valibot peer dependency to v1.3.0\n\n## v1.5.0 (December 11, 2025)\n\n- Add support for JSON Schema draft-2020-12 and OpenAPI 3.0 Schema Object format\n- Add `propertyNames` support to record schemas for key validation constraints\n- Add support for `toBigint`, `toBoolean`, `toDate`, `toNumber` and `toString` actions for `typeMode: 'input'`\n- Add new `toStandardJsonSchema` function to convert Valibot schemas to Standard JSON Schema format\n- Change return type from `JSONSchema7` to a custom `JsonSchema` type\n\n## v1.4.0 (December 02, 2025)\n\n- Add support for `examples` action\n- Add support for `integer` when used with `minValue` and `maxValue` actions (pull request #1367)\n- Change Valibot peer dependency to v1.2.0\n- Fix conversion of `exactOptional` object properties (pull request #1220)\n- Fix conversion of `variant` to use `oneOf` instead of `anyOf` (pull request #1193)\n\n## v1.3.0 (June 01, 2025)\n\n- Add `ignoreActions` configuration to be able to ignore specific actions during conversion\n- Add `typeMode` configuration to be able to control whether to convert input or output type of schema\n- Add `ConversionContext`, `OverrideSchemaContext`, `OverrideActionContext` and `OverrideRefContext` to exports\n- Change JSDoc comments to improve documentation\n- Change build step to tsdown and Rolldown\n\n## v1.2.0 (May 17, 2025)\n\n- Add support for title, description and examples in `metadata` action (pull request #1189)\n- Add new override configurations to override default behaviour of JSON Schema conversion (pull request #1197)\n- Add storage for global definitions with `addGlobalDefs` and `getGlobalDefs` (pull request #1197)\n- Add new `toJsonSchemaDefs` function to convert Valibot schema definitions to JSON Schema definitions (pull request #1197)\n\n## v1.1.0 (May 06, 2025)\n\n- Add support for `minEntries` and `maxEntries` action (pull request #1100)\n- Add support for `entries` action (pull request #1156)\n- Change Valibot peer dependency to v1.1.0\n- Fix `toJsonSchema` to be independent of definition order (pull request #1133)\n- Fix `additionalItems` for tuple schemas and add `minItems` (pull request #1126)\n\n## v1.0.0 (March 19, 2025)\n\n- Add support for `exactOptional` and `undefinedable` schema\n- Add support for `base64`, `isoTime`, `isoDateTime`, `nonEmpty` and `url` action (pull request #962)\n- Add support for `bic`, `cuid2`, `empty`, `decimal`, `digits`, `emoji`, `hexColor`, `hexadecimal`, `nanoid`, `octal` and `ulid` action (pull request #998)\n- Change Valibot peer dependency to v1.0.0\n- Change extraction of default value from `nullable`, `nullish` and `optional` schema\n- Change `force` to `errorMode` in config for better control (issue #889)\n- Change `additionalProperties` for `object` and `looseObject` schema (pull request #1001)\n\n## v0.2.1 (September 30, 2024)\n\n- Fix type export for Deno (pull request #854)\n\n## v0.2.0 (September 15, 2024)\n\n- Add support for `title` action (discussion #826)\n\n## v0.1.1 (September 14, 2024)\n\n- Fix maximum call stack bug for recursive schemas\n- Fix invalid JSON Schema ouput for recursive schemas\n\n## v0.1.0 (September 13, 2024)\n\n- Initial release\n"
  },
  {
    "path": "packages/to-json-schema/LICENSE.md",
    "content": "MIT License\n\nCopyright (c) Fabian Hiller\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "packages/to-json-schema/README.md",
    "content": "# Valibot to JSON Schema\n\nUtility to convert [Valibot](https://valibot.dev) schemas to JSON Schema. Supports JSON Schema draft-07, draft-2020-12, and OpenAPI 3.0 Schema Object formats.\n\n```js\nimport { toJsonSchema } from '@valibot/to-json-schema';\nimport * as v from 'valibot';\n\ntoJsonSchema(v.string()); // { $schema: \"http://json-schema.org/draft-07/schema#\", type: \"string\" }\n```\n\nThis package is particularly popular for:\n\n- **API Documentation**: Generate OpenAPI specifications from your Valibot schemas\n- **Code Generation**: Create client SDKs and types from your validation schemas\n- **LLM Integration**: Generate structured outputs for Large Language Models\n- **Schema Sharing**: Share validation logic between different programming languages\n\n> Some Valibot features can't be mapped to JSON schema. For example, transformation actions have no equivalent in JSON schema. Also, some Valibot schemas or validations are too JS-specific and do not have an equivalent JSON schema attribute.\n\n## Supported features\n\n**Note**: Converted schemas may behave slightly differently in JSON schema validators (especially for string format) because their implementation is different from Valibot's.\n\n| Schema           | Status | Note                                                                                                                                  |\n| ---------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------- |\n| `any`            | ✅     |                                                                                                                                       |\n| `array`          | ✅     |                                                                                                                                       |\n| `boolean`        | ✅     |                                                                                                                                       |\n| `enum`           | ✅     |                                                                                                                                       |\n| `exactOptional`  | ✅     |                                                                                                                                       |\n| `intersect`      | ✅     |                                                                                                                                       |\n| `lazy`           | ⚠️     | The `.getter` function is always executed with `undefined` as input                                                                   |\n| `literal`        | ⚠️     | Only JSON compatible values are supported                                                                                             |\n| `looseObject`    | ✅     |                                                                                                                                       |\n| `looseTuple`     | ✅     |                                                                                                                                       |\n| `never`          | ✅     |                                                                                                                                       |\n| `null`           | ✅     |                                                                                                                                       |\n| `nullable`       | ✅     |                                                                                                                                       |\n| `nullish`        | ✅     |                                                                                                                                       |\n| `number`         | ✅     |                                                                                                                                       |\n| `objectWithRest` | ✅     |                                                                                                                                       |\n| `object`         | ✅     |                                                                                                                                       |\n| `optional`       | ✅     |                                                                                                                                       |\n| `picklist`       | ⚠️     | Only JSON compatible values are supported                                                                                             |\n| `record`         | ⚠️     | Only `string` schemas for the key of the record are supported. Adds `propertyNames` for key validation (not available in OpenAPI 3.0) |\n| `strictObject`   | ✅     |                                                                                                                                       |\n| `strictTuple`    | ✅     |                                                                                                                                       |\n| `string`         | ✅     |                                                                                                                                       |\n| `tupleWithRest`  | ✅     |                                                                                                                                       |\n| `tuple`          | ✅     |                                                                                                                                       |\n| `union`          | ✅     |                                                                                                                                       |\n| `undefinedable`  | ✅     |                                                                                                                                       |\n| `unknown`        | ✅     |                                                                                                                                       |\n| `variant`        | ⚠️     | The discriminator key will be ignored                                                                                                 |\n\n| Actions         | Status | Note                                                        |\n| --------------- | ------ | ----------------------------------------------------------- |\n| `base64`        | ✅     |                                                             |\n| `bic`           | ✅     |                                                             |\n| `cuid2`         | ✅     |                                                             |\n| `decimal`       | ✅     |                                                             |\n| `description`   | ✅     |                                                             |\n| `digits`        | ✅     |                                                             |\n| `domain`        | ✅     |                                                             |\n| `email`         | ✅     |                                                             |\n| `emoji`         | ✅     |                                                             |\n| `empty`         | ✅     |                                                             |\n| `endsWith`      | ✅     |                                                             |\n| `entries`       | ✅     |                                                             |\n| `examples`      | ✅     |                                                             |\n| `gtValue`       | ⚠️     | Only in combination with `number` and `integer` schema      |\n| `hash`          | ✅     |                                                             |\n| `hexadecimal`   | ✅     |                                                             |\n| `hexColor`      | ✅     |                                                             |\n| `includes`      | ✅     |                                                             |\n| `integer`       | ✅     |                                                             |\n| `ipv4`          | ✅     |                                                             |\n| `ipv6`          | ✅     |                                                             |\n| `isoDate`       | ✅     |                                                             |\n| `isoDateTime`   | ✅     |                                                             |\n| `isoTime`       | ✅     |                                                             |\n| `isoTimeSecond` | ✅     |                                                             |\n| `isoTimestamp`  | ✅     |                                                             |\n| `isoWeek`       | ✅     |                                                             |\n| `isrc`          | ✅     |                                                             |\n| `jwsCompact`    | ✅     |                                                             |\n| `length`        | ⚠️     | Only in combination with `string` and `array` schema        |\n| `ltValue`       | ⚠️     | Only in combination with `number` and `integer` schema      |\n| `mac`           | ✅     |                                                             |\n| `mac48`         | ✅     |                                                             |\n| `mac64`         | ✅     |                                                             |\n| `maxEntries`    | ✅     |                                                             |\n| `maxLength`     | ⚠️     | Only in combination with `string` and `array` schema        |\n| `maxValue`      | ⚠️     | Only in combination with `number` schema                    |\n| `metadata`      | ⚠️     | Only for valid `title`, `description` and `examples` values |\n| `minEntries`    | ✅     |                                                             |\n| `minLength`     | ⚠️     | Only in combination with `string` and `array` schema        |\n| `minValue`      | ⚠️     | Only in combination with `number` schema                    |\n| `multipleOf`    | ✅     |                                                             |\n| `nanoid`        | ✅     |                                                             |\n| `nonEmpty`      | ✅     |                                                             |\n| `notValue`      | ⚠️     | Only JSON compatible values are supported                   |\n| `notValues`     | ⚠️     | Only JSON compatible values are supported                   |\n| `octal`         | ✅     |                                                             |\n| `regex`         | ⚠️     | RegExp flags are not supported in JSON Schema               |\n| `rfcEmail`      | ✅     |                                                             |\n| `safeInteger`   | ✅     |                                                             |\n| `slug`          | ✅     |                                                             |\n| `startsWith`    | ✅     |                                                             |\n| `title`         | ✅     |                                                             |\n| `ulid`          | ✅     |                                                             |\n| `url`           | ✅     |                                                             |\n| `uuid`          | ✅     |                                                             |\n| `value`         | ⚠️     | Only JSON compatible values are supported                   |\n| `values`        | ⚠️     | Only JSON compatible values are supported                   |\n\n## Configurations\n\n| Option         | Type                                                                  | Note                                                                                                                      |\n| -------------- | --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |\n| target         | `'draft-07' \\| 'draft-2020-12' \\| 'openapi-3.0'`                      | The target JSON Schema format. Defaults to `'draft-07'`.                                                                  |\n| typeMode       | `'ignore' \\| 'input' \\| 'output'`                                     | Whether to convert the input or output type of the Valibot schema to JSON Schema.                                         |\n| errorMode      | `'throw' \\| 'warn' \\| 'ignore'`                                       | The policy for handling incompatible schemas and actions.                                                                 |\n| definitions    | `Record<string, GenericSchema>`                                       | The schema definitions for constructing recursive schemas. If not specified, the definitions are generated automatically. |\n| overrideSchema | `(context: OverrideSchemaContext) => JsonSchema \\| null \\| undefined` | Overrides the JSON Schema conversion for a specific Valibot schema.                                                       |\n| ignoreActions  | `string[]`                                                            | The actions that should be ignored during the conversion.                                                                 |\n| overrideAction | `(context: OverrideActionContext) => JsonSchema \\| null \\| undefined` | Overrides the JSON Schema reference for a specific Valibot action.                                                        |\n| overrideRef    | `(context: OverrideRefContext) => string \\| null \\| undefined`        | Overrides the JSON Schema reference for a specific reference ID.                                                          |\n\n### Target format\n\nThe `target` configuration allows you to specify which JSON Schema format to generate. Different targets have different capabilities and syntax:\n\n```js\nimport { toJsonSchema } from '@valibot/to-json-schema';\nimport * as v from 'valibot';\n\nconst schema = v.nullable(v.string());\n\n// JSON Schema draft-07 (default)\ntoJsonSchema(schema);\n// { $schema: \"http://json-schema.org/draft-07/schema#\", anyOf: [{ type: \"string\" }, { type: \"null\" }] }\n\n// JSON Schema draft-2020-12\ntoJsonSchema(schema, { target: 'draft-2020-12' });\n// { $schema: \"https://json-schema.org/draft/2020-12/schema\", anyOf: [{ type: \"string\" }, { type: \"null\" }] }\n\n// OpenAPI 3.0 Schema Object\ntoJsonSchema(schema, { target: 'openapi-3.0' });\n// { type: \"string\", nullable: true }\n```\n\n**Note**: Some features like `propertyNames` for record schemas are not available in OpenAPI 3.0.\n\n### Type mode\n\nThe `typeMode` configuration controls whether to convert the input or output type of the Valibot schema to JSON Schema.\n\n- When set to `'input'`, conversion stops before the first potential type transformation action or second schema in any pipeline.\n- When set to `'output'`, conversion of any pipelines starts from the last schema in the pipeline. Therefore, the output type must be specified explicitly with a schema after the last type transformation action.\n- When set to `'ignore'` (default), the entire pipeline is converted.\n\nThis is particularly useful when defining API endpoints where external developers need different schema information for requests vs responses:\n\n```js\nimport { toJsonSchema } from '@valibot/to-json-schema';\nimport * as v from 'valibot';\n\nconst ValibotSchema = v.pipe(\n  v.string(),\n  v.decimal(),\n  v.transform(Number),\n  v.number(),\n  v.maxValue(100)\n);\n\ntoJsonSchema(ValibotSchema, { typeMode: 'input' });\n\n// {\n//   $schema: \"http://json-schema.org/draft-07/schema#\",\n//   type: \"string\",\n//   pattern: \"^[+-]?(?:\\\\d*\\\\.)?\\\\d+$\"\n// }\n\ntoJsonSchema(ValibotSchema, { typeMode: 'output' });\n\n// {\n//   $schema: \"http://json-schema.org/draft-07/schema#\",\n//   type: \"number\",\n//   maximum: 100\n// }\n```\n\n### Error mode\n\nThe `errorMode` configuration controls how the converter handles unsupported schemas and actions. By default, the error mode is set to `'throw'`. To force the conversion of unsupported Valibot features, you can set it to `'ignore'`.\n\n> Unsupported schemas usually return an empty JSON schema (`{}`) and unsupported actions are usually ignored.\n\n```js\nimport { toJsonSchema } from '@valibot/to-json-schema';\nimport * as v from 'valibot';\n\ntoJsonSchema(v.file(), { errorMode: 'ignore' }); // {}\n\ntoJsonSchema(v.pipe(v.string(), v.creditCard()), { errorMode: 'ignore' }); // { type: \"string\" }\n```\n\n### Override functions\n\nThe package provides powerful override capabilities to customize the JSON Schema conversion process. You can override the conversion of specific schemas, actions, or references.\n\n#### Override schema conversion\n\nHandle unsupported schemas or customize conversion behavior:\n\n```js\nimport { toJsonSchema } from '@valibot/to-json-schema';\nimport * as v from 'valibot';\n\nconst ValibotSchema = v.object({ createdAt: v.date() });\n\ntoJsonSchema(ValibotSchema, {\n  overrideSchema(context) {\n    if (context.valibotSchema.type === 'date') {\n      return { type: 'string', format: 'date-time' };\n    }\n  },\n});\n\n// {\n//   $schema: \"http://json-schema.org/draft-07/schema#\",\n//   type: \"object\",\n//   properties: {\n//     createdAt: { type: \"string\" format: \"date-time\" }\n//   },\n//   required: [\"createdAt\"]\n// }\n```\n\n#### Override reference IDs\n\nCustomize reference IDs for OpenAPI or other specifications:\n\n```js\nimport { toJsonSchemaDefs } from '@valibot/to-json-schema';\nimport * as v from 'valibot';\n\nconst UserSchema = v.object({ name: v.string() });\n\ntoJsonSchemaDefs(\n  { UserSchema },\n  { overrideRef: (context) => `#/schemas/${context.referenceId}` }\n);\n```\n\n### Enhanced metadata support\n\nUse the generic `metadata` action to add title, description, and examples to your schemas or the individual `title`and `description` actions:\n\n```js\nimport { toJsonSchema } from '@valibot/to-json-schema';\nimport * as v from 'valibot';\n\nconst ValibotSchema = v.pipe(\n  v.string(),\n  v.email(),\n  v.metadata({\n    title: 'Email Schema',\n    description: 'A schema that validates email addresses.',\n    examples: ['jane@example.com'],\n  })\n);\n\ntoJsonSchema(ValibotSchema);\n\n// {\n//   $schema: \"http://json-schema.org/draft-07/schema#\",\n//   type: \"string\",\n//   format: \"email\",\n//   title: \"Email Schema\",\n//   description: \"A schema that validates email addresses.\",\n//   examples: [\"jane@example.com\"]\n// }\n```\n\n### Definitions\n\nNested and recursive schemas can be broken in multiple reusable definitions.\n\n```js\nimport { toJsonSchema } from '@valibot/to-json-schema';\nimport * as v from 'valibot';\n\nconst EmailSchema = v.pipe(v.string(), v.email());\ntoJsonSchema(v.object({ email: EmailSchema }), {\n  definitions: { EmailSchema },\n});\n\n// {\n//   $schema: \"http://json-schema.org/draft-07/schema#\",\n//   type: \"object\",\n//   properties: {\n//     email: {\n//       $ref: \"#/$defs/EmailSchema\"\n//     }\n//   },\n//   required: [\"email\"],\n//   $defs: {\n//     EmailSchema: {\n//       type: \"string\",\n//       format: \"email\"\n//     }\n//   }\n// }\n```\n\nDefinitions are not required for converting `lazy` schemas. Missing definitions will be generated automatically.\n\n```js\nimport { toJsonSchema } from '@valibot/to-json-schema';\nimport * as v from 'valibot';\n\nconst StringSchema = v.string();\ntoJsonSchema(v.object({ key: v.lazy(() => StringSchema) }));\n\n// {\n//   $schema: \"http://json-schema.org/draft-07/schema#\",\n//   type: \"object\",\n//   properties: {\n//     key: {\n//       $ref: \"#/$defs/0\"\n//     }\n//   },\n//   required: [\"key\"],\n//   $defs: {\n//     0: {\n//       type: \"string\"\n//     }\n//   }\n// }\n```\n\n## Additional functions\n\n### `toStandardJsonSchema`\n\nConverts a Valibot schema to the [Standard JSON Schema](https://standardschema.dev/) format. This format is useful when working with tools and libraries that support the Standard JSON Schema specification.\n\n```js\nimport { toStandardJsonSchema } from '@valibot/to-json-schema';\nimport * as v from 'valibot';\n\nconst schema = toStandardJsonSchema(\n  v.object({\n    id: v.pipe(v.string(), v.uuid()),\n    name: v.pipe(v.string(), v.nonEmpty()),\n    age: v.optional(v.number()),\n  })\n);\n```\n\n### `toJsonSchemaDefs`\n\nConverts only the provided Valibot schema definitions to JSON Schema definitions, without wrapping them in a root schema. This is particularly useful for OpenAPI specifications where you need only the schema definitions.\n\n```js\nimport { toJsonSchemaDefs } from '@valibot/to-json-schema';\nimport * as v from 'valibot';\n\nconst EmailSchema = v.pipe(v.string(), v.email());\nconst UserSchema = v.object({\n  name: v.string(),\n  email: EmailSchema,\n});\n\ntoJsonSchemaDefs({ EmailSchema, UserSchema });\n\n// {\n//   EmailSchema: {\n//     type: \"string\",\n//     format: \"email\"\n//   },\n//   UserSchema: {\n//     type: \"object\",\n//     properties: {\n//       name: {\n//         type: \"string\"\n//       },\n//       email: {\n//         $ref: \"#/$defs/EmailSchema\"\n//       }\n//     },\n//     required: [\"name\", \"email\"]\n//   }\n// }\n```\n\n#### OpenAPI integration\n\nFor OpenAPI specifications, you can customize reference IDs:\n\n```js\nimport { toJsonSchemaDefs } from '@valibot/to-json-schema';\nimport * as v from 'valibot';\n\nconst ValibotSchema1 = v.string();\nconst ValibotSchema2 = v.number();\nconst ValibotSchema3 = v.tuple([ValibotSchema1, ValibotSchema2]);\n\ntoJsonSchemaDefs(\n  { ValibotSchema1, ValibotSchema2, ValibotSchema3 },\n  { overrideRef: (context) => `#/schemas/${context.referenceId}` }\n);\n\n// {\n//   ValibotSchema1: { type: \"string\" },\n//   ValibotSchema2: { type: \"number\" },\n//   ValibotSchema3: {\n//     type: \"array\",\n//     items: [\n//       { $ref: \"#/schemas/ValibotSchema1\" },\n//       { $ref: \"#/schemas/ValibotSchema2\" }\n//     ],\n//     minItems: 2\n//   }\n// }\n```\n\n### Global definitions\n\nFor advanced use cases, you can manage global schema definitions that will be automatically used when converting schemas. This is particularly useful for larger projects with many reusable schemas.\n\n```js\nimport { addGlobalDefs, toJsonSchema } from '@valibot/to-json-schema';\nimport * as v from 'valibot';\n\nconst ValibotSchema1 = v.string();\nconst ValibotSchema2 = v.number();\n\naddGlobalDefs({ ValibotSchema1, ValibotSchema2 });\n\nconst ValibotSchema3 = v.tuple([ValibotSchema1, ValibotSchema2]);\n\ntoJsonSchema(ValibotSchema3);\n\n// {\n//   $schema: \"http://json-schema.org/draft-07/schema#\",\n//   type: \"array\",\n//   items: [\n//     { $ref: \"#/$defs/ValibotSchema1\" },\n//     { $ref: \"#/$defs/ValibotSchema2\" }\n//   ],\n//   minItems: 2,\n//   $defs: {\n//     ValibotSchema1: { type: \"string\" },\n//     ValibotSchema2: { type: \"number\" }\n//   }\n// }\n```\n\nYou can also convert global definitions directly using `toJsonSchemaDefs`:\n\n```js\nconst globalDefs = getGlobalDefs();\nif (globalDefs) {\n  const schemaDefs = toJsonSchemaDefs(globalDefs);\n}\n```\n"
  },
  {
    "path": "packages/to-json-schema/eslint.config.js",
    "content": "import eslint from '@eslint/js';\nimport importPlugin from 'eslint-plugin-import';\nimport jsdoc from 'eslint-plugin-jsdoc';\nimport pluginSecurity from 'eslint-plugin-security';\nimport tseslint from 'typescript-eslint';\n\nexport default tseslint.config(\n  {\n    ignores: ['eslint.config.js', 'tsdown.config.ts', 'vitest.config.ts'],\n  },\n  eslint.configs.recommended,\n  tseslint.configs.strict,\n  tseslint.configs.stylistic,\n  jsdoc.configs['flat/recommended'],\n  pluginSecurity.configs.recommended,\n  {\n    files: ['src/**/*.ts'],\n    extends: [importPlugin.flatConfigs.recommended],\n    languageOptions: {\n      parserOptions: {\n        project: './tsconfig.json',\n        tsconfigRootDir: import.meta.dirname,\n      },\n    },\n    plugins: { jsdoc },\n    settings: {\n      'import/resolver': {\n        typescript: {\n          project: './tsconfig.json',\n        },\n      },\n    },\n    rules: {\n      // Enable rules -----------------------------------------------------------\n\n      // TypeScript\n      '@typescript-eslint/consistent-type-definitions': 'error', // Enforce declaring types using `interface` keyword for better TS performance.\n      '@typescript-eslint/consistent-type-imports': 'warn',\n\n      // Import\n      'import/extensions': ['error', 'always'], // Require file extensions\n\n      // JSDoc\n      'jsdoc/tag-lines': ['error', 'any', { startLines: 1 }],\n      'jsdoc/sort-tags': [\n        'error',\n        {\n          linesBetween: 1,\n          tagSequence: [\n            { tags: ['deprecated'] },\n            { tags: ['param'] },\n            { tags: ['returns'] },\n          ],\n        },\n      ],\n      // NOTE: For overloads functions, we only require a JSDoc at the top\n      // SEE: https://github.com/gajus/eslint-plugin-jsdoc/issues/666\n      'jsdoc/require-jsdoc': [\n        'error',\n        {\n          contexts: [\n            'ExportNamedDeclaration[declaration.type=\"TSDeclareFunction\"]:not(ExportNamedDeclaration[declaration.type=\"TSDeclareFunction\"] + ExportNamedDeclaration[declaration.type=\"TSDeclareFunction\"])',\n            'ExportNamedDeclaration[declaration.type=\"FunctionDeclaration\"]:not(ExportNamedDeclaration[declaration.type=\"TSDeclareFunction\"] + ExportNamedDeclaration[declaration.type=\"FunctionDeclaration\"])',\n          ],\n          require: {\n            FunctionDeclaration: false,\n          },\n        },\n      ],\n      'jsdoc/check-tag-names': [\n        'error',\n        {\n          definedTags: ['alpha', 'beta'],\n        },\n      ],\n\n      // Disable rules ----------------------------------------------------------\n\n      // TypeScript\n      '@typescript-eslint/ban-ts-comment': 'off',\n      '@typescript-eslint/no-non-null-assertion': 'off',\n\n      // Imports\n      'no-duplicate-imports': 'off',\n\n      // JSDoc\n      'jsdoc/require-param-type': 'off',\n      'jsdoc/require-returns-type': 'off',\n\n      // Security\n      'security/detect-object-injection': 'off', // Too many false positives\n    },\n  }\n);\n"
  },
  {
    "path": "packages/to-json-schema/jsr.json",
    "content": "{\n  \"name\": \"@valibot/to-json-schema\",\n  \"version\": \"1.6.0\",\n  \"exports\": \"./src/index.ts\",\n  \"publish\": {\n    \"include\": [\"src/**/*.ts\", \"README.md\"],\n    \"exclude\": [\"src/**/*.test.ts\", \"src/vitest/**/*.ts\"]\n  }\n}\n"
  },
  {
    "path": "packages/to-json-schema/package.json",
    "content": "{\n  \"name\": \"@valibot/to-json-schema\",\n  \"description\": \"The official JSON schema converter for Valibot\",\n  \"version\": \"1.6.0\",\n  \"license\": \"MIT\",\n  \"author\": \"Fabian Hiller\",\n  \"homepage\": \"https://valibot.dev\",\n  \"contributors\": [\n    {\n      \"name\": \"Guillaume Cornut\"\n    }\n  ],\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/open-circle/valibot\"\n  },\n  \"keywords\": [\n    \"valibot\",\n    \"schema\",\n    \"converter\",\n    \"json-schema\"\n  ],\n  \"type\": \"module\",\n  \"main\": \"./dist/index.mjs\",\n  \"types\": \"./dist/index.d.mts\",\n  \"exports\": {\n    \".\": {\n      \"import\": {\n        \"types\": \"./dist/index.d.mts\",\n        \"default\": \"./dist/index.mjs\"\n      },\n      \"require\": {\n        \"types\": \"./dist/index.d.cts\",\n        \"default\": \"./dist/index.cjs\"\n      }\n    }\n  },\n  \"sideEffects\": false,\n  \"files\": [\n    \"dist\"\n  ],\n  \"publishConfig\": {\n    \"access\": \"public\"\n  },\n  \"scripts\": {\n    \"test\": \"vitest --typecheck\",\n    \"coverage\": \"vitest run --coverage --isolate\",\n    \"lint\": \"eslint \\\"src/**/*.ts*\\\" && tsc --noEmit && deno check ./src/index.ts\",\n    \"lint.fix\": \"eslint \\\"src/**/*.ts*\\\" --fix\",\n    \"format\": \"prettier --write ./src\",\n    \"format.check\": \"prettier --check ./src\",\n    \"build\": \"tsdown\"\n  },\n  \"devDependencies\": {\n    \"@eslint/js\": \"^9.39.1\",\n    \"@types/node\": \"^24.10.1\",\n    \"@vitest/coverage-v8\": \"^4.0.13\",\n    \"eslint\": \"^9.39.1\",\n    \"eslint-import-resolver-typescript\": \"^4.4.4\",\n    \"eslint-plugin-import\": \"^2.32.0\",\n    \"eslint-plugin-jsdoc\": \"^61.4.0\",\n    \"eslint-plugin-security\": \"^3.0.1\",\n    \"globals\": \"^16.5.0\",\n    \"tsdown\": \"^0.16.6\",\n    \"typescript\": \"^5.9.3\",\n    \"typescript-eslint\": \"^8.47.0\",\n    \"valibot\": \"^1.3.0\",\n    \"vite\": \"^7.2.4\",\n    \"vite-tsconfig-paths\": \"^5.1.4\",\n    \"vitest\": \"4.0.13\"\n  },\n  \"peerDependencies\": {\n    \"valibot\": \"^1.3.0\"\n  }\n}\n"
  },
  {
    "path": "packages/to-json-schema/src/converters/convertAction/convertAction.test.ts",
    "content": "import * as v from 'valibot';\nimport { describe, expect, test, vi } from 'vitest';\nimport { convertAction } from './convertAction.ts';\n\nconsole.warn = vi.fn();\n\ndescribe('convertAction', () => {\n  test('should ignore specified actions', () => {\n    expect(\n      convertAction({}, v.email<string>(), { ignoreActions: ['email'] })\n    ).toStrictEqual({});\n    expect(\n      convertAction({ type: 'string' }, v.email<string>(), {\n        ignoreActions: ['email'],\n      })\n    ).toStrictEqual({\n      type: 'string',\n    });\n  });\n\n  test('should convert base64 action', () => {\n    expect(convertAction({}, v.base64<string>(), undefined)).toStrictEqual({\n      contentEncoding: 'base64',\n    });\n    expect(\n      convertAction({ type: 'string' }, v.base64<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      contentEncoding: 'base64',\n    });\n  });\n\n  test('should convert bic action', () => {\n    expect(convertAction({}, v.bic<string>(), undefined)).toStrictEqual({\n      pattern: v.BIC_REGEX.source,\n    });\n    expect(\n      convertAction({ type: 'string' }, v.bic<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      pattern: v.BIC_REGEX.source,\n    });\n  });\n\n  test('should convert cuid2 action', () => {\n    expect(convertAction({}, v.cuid2<string>(), undefined)).toStrictEqual({\n      pattern: v.CUID2_REGEX.source,\n    });\n    expect(\n      convertAction({ type: 'string' }, v.cuid2<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      pattern: v.CUID2_REGEX.source,\n    });\n  });\n\n  test('should convert decimal action', () => {\n    expect(convertAction({}, v.decimal<string>(), undefined)).toStrictEqual({\n      pattern: v.DECIMAL_REGEX.source,\n    });\n    expect(\n      convertAction({ type: 'string' }, v.decimal<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      pattern: v.DECIMAL_REGEX.source,\n    });\n  });\n\n  test('should convert digits action', () => {\n    expect(convertAction({}, v.digits<string>(), undefined)).toStrictEqual({\n      pattern: v.DIGITS_REGEX.source,\n    });\n    expect(\n      convertAction({ type: 'string' }, v.digits<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      pattern: v.DIGITS_REGEX.source,\n    });\n  });\n\n  test('should convert domain action', () => {\n    expect(convertAction({}, v.domain<string>(), undefined)).toStrictEqual({\n      pattern: v.DOMAIN_REGEX.source,\n    });\n    expect(\n      convertAction({ type: 'string' }, v.domain<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      pattern: v.DOMAIN_REGEX.source,\n    });\n  });\n\n  test('should convert emoji action', () => {\n    expect(convertAction({}, v.emoji<string>(), undefined)).toStrictEqual({\n      pattern: v.EMOJI_REGEX.source,\n    });\n    expect(\n      convertAction({ type: 'string' }, v.emoji<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      pattern: v.EMOJI_REGEX.source,\n    });\n  });\n\n  test('should convert hash action', () => {\n    const action = v.hash(['md5']);\n    expect(convertAction({ type: 'string' }, action, undefined)).toStrictEqual({\n      type: 'string',\n      pattern: action.requirement.source,\n    });\n  });\n\n  test('should convert hexadecimal action', () => {\n    expect(convertAction({}, v.hexadecimal<string>(), undefined)).toStrictEqual(\n      {\n        pattern: v.HEXADECIMAL_REGEX.source,\n      }\n    );\n    expect(\n      convertAction({ type: 'string' }, v.hexadecimal<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      pattern: v.HEXADECIMAL_REGEX.source,\n    });\n  });\n\n  test('should convert hex color action', () => {\n    expect(convertAction({}, v.hexColor<string>(), undefined)).toStrictEqual({\n      pattern: v.HEX_COLOR_REGEX.source,\n    });\n    expect(\n      convertAction({ type: 'string' }, v.hexColor<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      pattern: v.HEX_COLOR_REGEX.source,\n    });\n  });\n\n  test('should convert isrc action', () => {\n    expect(convertAction({}, v.isrc<string>(), undefined)).toStrictEqual({\n      pattern: v.ISRC_REGEX.source,\n    });\n    expect(\n      convertAction({ type: 'string' }, v.isrc<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      pattern: v.ISRC_REGEX.source,\n    });\n  });\n\n  test('should convert iso time second action', () => {\n    expect(\n      convertAction({}, v.isoTimeSecond<string>(), undefined)\n    ).toStrictEqual({\n      pattern: v.ISO_TIME_SECOND_REGEX.source,\n    });\n    expect(\n      convertAction({ type: 'string' }, v.isoTimeSecond<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      pattern: v.ISO_TIME_SECOND_REGEX.source,\n    });\n  });\n\n  test('should convert iso week action', () => {\n    expect(convertAction({}, v.isoWeek<string>(), undefined)).toStrictEqual({\n      pattern: v.ISO_WEEK_REGEX.source,\n    });\n    expect(\n      convertAction({ type: 'string' }, v.isoWeek<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      pattern: v.ISO_WEEK_REGEX.source,\n    });\n  });\n\n  test('should convert mac action', () => {\n    expect(convertAction({}, v.mac<string>(), undefined)).toStrictEqual({\n      pattern: v.MAC_REGEX.source,\n    });\n    expect(\n      convertAction({ type: 'string' }, v.mac<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      pattern: v.MAC_REGEX.source,\n    });\n  });\n\n  test('should convert mac48 action', () => {\n    expect(convertAction({}, v.mac48<string>(), undefined)).toStrictEqual({\n      pattern: v.MAC48_REGEX.source,\n    });\n    expect(\n      convertAction({ type: 'string' }, v.mac48<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      pattern: v.MAC48_REGEX.source,\n    });\n  });\n\n  test('should convert mac64 action', () => {\n    expect(convertAction({}, v.mac64<string>(), undefined)).toStrictEqual({\n      pattern: v.MAC64_REGEX.source,\n    });\n    expect(\n      convertAction({ type: 'string' }, v.mac64<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      pattern: v.MAC64_REGEX.source,\n    });\n  });\n\n  test('should convert Nano ID action', () => {\n    expect(convertAction({}, v.nanoid<string>(), undefined)).toStrictEqual({\n      pattern: v.NANO_ID_REGEX.source,\n    });\n    expect(\n      convertAction({ type: 'string' }, v.nanoid<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      pattern: v.NANO_ID_REGEX.source,\n    });\n  });\n\n  test('should convert octal action', () => {\n    expect(convertAction({}, v.octal<string>(), undefined)).toStrictEqual({\n      pattern: v.OCTAL_REGEX.source,\n    });\n    expect(\n      convertAction({ type: 'string' }, v.octal<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      pattern: v.OCTAL_REGEX.source,\n    });\n  });\n\n  test('should convert slug action', () => {\n    expect(convertAction({}, v.slug<string>(), undefined)).toStrictEqual({\n      pattern: v.SLUG_REGEX.source,\n    });\n    expect(\n      convertAction({ type: 'string' }, v.slug<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      pattern: v.SLUG_REGEX.source,\n    });\n  });\n\n  test('should convert ULID action', () => {\n    expect(convertAction({}, v.ulid<string>(), undefined)).toStrictEqual({\n      pattern: v.ULID_REGEX.source,\n    });\n    expect(\n      convertAction({ type: 'string' }, v.ulid<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      pattern: v.ULID_REGEX.source,\n    });\n  });\n\n  test('should convert description action', () => {\n    expect(convertAction({}, v.description('test'), undefined)).toStrictEqual({\n      description: 'test',\n    });\n  });\n\n  test('should convert email action', () => {\n    expect(convertAction({}, v.email<string>(), undefined)).toStrictEqual({\n      format: 'email',\n    });\n    expect(\n      convertAction({ type: 'string' }, v.email<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      format: 'email',\n    });\n  });\n\n  test('should convert rfc email action', () => {\n    expect(convertAction({}, v.rfcEmail<string>(), undefined)).toStrictEqual({\n      format: 'email',\n    });\n    expect(\n      convertAction({ type: 'string' }, v.rfcEmail<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      format: 'email',\n    });\n  });\n\n  test('should convert ends with action', () => {\n    expect(\n      convertAction(\n        { type: 'string' },\n        v.endsWith<string, 'foo'>('foo'),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'string',\n      pattern: 'foo$',\n    });\n  });\n\n  test('should convert ends with action with special characters', () => {\n    expect(\n      convertAction(\n        { type: 'string' },\n        v.endsWith<string, '.com'>('.com'),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'string',\n      pattern: '\\\\.com$',\n    });\n  });\n\n  test('should throw error for pattern action with existing pattern', () => {\n    const jsonSchema = convertAction(\n      { type: 'string' },\n      v.startsWith<string, 'pre'>('pre'),\n      undefined\n    );\n    const error =\n      'The \"ends_with\" action is not supported in combination with another regex action.';\n    expect(() =>\n      convertAction(jsonSchema, v.endsWith<string, 'suf'>('suf'), undefined)\n    ).toThrowError(error);\n  });\n\n  test('should convert empty action for strings', () => {\n    expect(\n      convertAction({ type: 'string' }, v.empty(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      maxLength: 0,\n    });\n  });\n\n  test('should convert empty action for arrays', () => {\n    expect(\n      convertAction({ type: 'array' }, v.empty(), undefined)\n    ).toStrictEqual({\n      type: 'array',\n      maxItems: 0,\n    });\n  });\n\n  test('should throw error for empty action with invalid type', () => {\n    const action = v.empty();\n    const error1 = 'The \"empty\" action is not supported on type \"undefined\".';\n    expect(() => convertAction({}, action, undefined)).toThrowError(error1);\n    expect(() =>\n      convertAction({}, action, { errorMode: 'throw' })\n    ).toThrowError(error1);\n    const error2 = 'The \"empty\" action is not supported on type \"object\".';\n    expect(() =>\n      convertAction({ type: 'object' }, action, undefined)\n    ).toThrowError(error2);\n    expect(() =>\n      convertAction({ type: 'object' }, action, { errorMode: 'throw' })\n    ).toThrowError(error2);\n  });\n\n  test('should warn error for empty action with invalid type', () => {\n    expect(convertAction({}, v.empty(), { errorMode: 'warn' })).toStrictEqual({\n      maxLength: 0,\n    });\n    expect(console.warn).toHaveBeenLastCalledWith(\n      'The \"empty\" action is not supported on type \"undefined\".'\n    );\n    expect(\n      convertAction({ type: 'object' }, v.empty(), {\n        errorMode: 'warn',\n      })\n    ).toStrictEqual({ type: 'object', maxLength: 0 });\n    expect(console.warn).toHaveBeenLastCalledWith(\n      'The \"empty\" action is not supported on type \"object\".'\n    );\n  });\n\n  test('should convert entries action', () => {\n    expect(\n      convertAction(\n        { type: 'object' },\n        v.entries<v.EntriesInput, 3>(3),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'object',\n      minProperties: 3,\n      maxProperties: 3,\n    });\n  });\n\n  test('should convert examples action', () => {\n    expect(\n      convertAction({}, v.examples(['foo', 'bar']), undefined)\n    ).toStrictEqual({\n      examples: ['foo', 'bar'],\n    });\n    expect(\n      convertAction(\n        { examples: ['baz'] },\n        v.examples(['foo', 'bar']),\n        undefined\n      )\n    ).toStrictEqual({\n      examples: ['baz', 'foo', 'bar'],\n    });\n  });\n\n  test('should merge examples from multiple actions', () => {\n    const jsonSchema = {};\n    convertAction(jsonSchema, v.examples(['foo']), undefined);\n    convertAction(jsonSchema, v.metadata({ examples: ['bar'] }), undefined);\n    expect(jsonSchema).toStrictEqual({\n      examples: ['foo', 'bar'],\n    });\n  });\n\n  test('should convert gt value action for numbers', () => {\n    expect(\n      convertAction(\n        { type: 'number' },\n        v.gtValue<v.ValueInput, 3>(3),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'number',\n      exclusiveMinimum: 3,\n    });\n  });\n\n  test('should convert gt value action for integers', () => {\n    expect(\n      convertAction(\n        { type: 'integer' },\n        v.gtValue<v.ValueInput, 0>(0),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'integer',\n      exclusiveMinimum: 0,\n    });\n  });\n\n  test('should throw error for gt value action with invalid type', () => {\n    const action = v.gtValue<v.ValueInput, 3>(3);\n    const error1 =\n      'The \"gt_value\" action is not supported on type \"undefined\".';\n    expect(() => convertAction({}, action, undefined)).toThrowError(error1);\n    const error2 = 'The \"gt_value\" action is not supported on type \"string\".';\n    expect(() =>\n      convertAction({ type: 'string' }, action, undefined)\n    ).toThrowError(error2);\n  });\n\n  test('should throw error for gt value action with openapi-3.0', () => {\n    const error = 'The \"gt_value\" action is not supported for OpenAPI 3.0.';\n    expect(() =>\n      convertAction({ type: 'number' }, v.gtValue<v.ValueInput, 3>(3), {\n        target: 'openapi-3.0',\n      })\n    ).toThrowError(error);\n  });\n\n  test('should convert includes action', () => {\n    expect(\n      convertAction(\n        { type: 'string' },\n        v.includes<string, 'foo'>('foo'),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'string',\n      pattern: 'foo',\n    });\n  });\n\n  test('should convert includes action with special characters', () => {\n    expect(\n      convertAction(\n        { type: 'string' },\n        v.includes<string, 'foo.bar'>('foo.bar'),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'string',\n      pattern: 'foo\\\\.bar',\n    });\n  });\n\n  test('should warn error for pattern action with existing pattern', () => {\n    expect(\n      convertAction(\n        { type: 'string', pattern: '^pre' },\n        v.includes<string, 'foo'>('foo'),\n        { errorMode: 'warn' }\n      )\n    ).toStrictEqual({\n      type: 'string',\n      pattern: '^pre',\n    });\n    expect(console.warn).toHaveBeenLastCalledWith(\n      'The \"includes\" action is not supported in combination with another regex action.'\n    );\n  });\n\n  test('should convert integer action', () => {\n    expect(convertAction({}, v.integer<number>(), undefined)).toStrictEqual({\n      type: 'integer',\n    });\n    expect(\n      convertAction({ type: 'number' }, v.integer<number>(), undefined)\n    ).toStrictEqual({\n      type: 'integer',\n    });\n  });\n\n  test('should convert IPv4 action', () => {\n    expect(convertAction({}, v.ipv4<string>(), undefined)).toStrictEqual({\n      format: 'ipv4',\n    });\n    expect(\n      convertAction({ type: 'string' }, v.ipv4<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      format: 'ipv4',\n    });\n  });\n\n  test('should convert IPv6 action', () => {\n    expect(convertAction({}, v.ipv6<string>(), undefined)).toStrictEqual({\n      format: 'ipv6',\n    });\n    expect(\n      convertAction({ type: 'string' }, v.ipv6<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      format: 'ipv6',\n    });\n  });\n\n  test('should convert ISO date action', () => {\n    expect(convertAction({}, v.isoDate<string>(), undefined)).toStrictEqual({\n      format: 'date',\n    });\n    expect(\n      convertAction({ type: 'string' }, v.isoDate<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      format: 'date',\n    });\n  });\n\n  test('should convert ISO date time action', () => {\n    expect(convertAction({}, v.isoDateTime<string>(), undefined)).toStrictEqual(\n      {\n        format: 'date-time',\n      }\n    );\n    expect(\n      convertAction({ type: 'string' }, v.isoDateTime<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      format: 'date-time',\n    });\n  });\n\n  test('should convert ISO timestamp action', () => {\n    expect(\n      convertAction({}, v.isoTimestamp<string>(), undefined)\n    ).toStrictEqual({\n      format: 'date-time',\n    });\n    expect(\n      convertAction({ type: 'string' }, v.isoTimestamp<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      format: 'date-time',\n    });\n  });\n\n  test('should convert ISO time action', () => {\n    expect(convertAction({}, v.isoTime<string>(), undefined)).toStrictEqual({\n      format: 'time',\n    });\n    expect(\n      convertAction({ type: 'string' }, v.isoTime<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      format: 'time',\n    });\n  });\n\n  test('should convert jwsCompact action', () => {\n    expect(convertAction({}, v.jwsCompact<string>(), undefined)).toStrictEqual({\n      pattern: v.JWS_COMPACT_REGEX.source,\n    });\n    expect(\n      convertAction({ type: 'string' }, v.jwsCompact<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      pattern: v.JWS_COMPACT_REGEX.source,\n    });\n  });\n\n  test('should convert length action for strings', () => {\n    expect(\n      convertAction(\n        { type: 'string' },\n        v.length<v.LengthInput, 3>(3),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'string',\n      minLength: 3,\n      maxLength: 3,\n    });\n  });\n\n  test('should convert length action for arrays', () => {\n    expect(\n      convertAction({ type: 'array' }, v.length<v.LengthInput, 3>(3), undefined)\n    ).toStrictEqual({\n      type: 'array',\n      minItems: 3,\n      maxItems: 3,\n    });\n  });\n\n  test('should throw error for length action with invalid type', () => {\n    const action = v.length<v.LengthInput, 3>(3);\n    const error1 = 'The \"length\" action is not supported on type \"undefined\".';\n    expect(() => convertAction({}, action, undefined)).toThrowError(error1);\n    expect(() =>\n      convertAction({}, action, { errorMode: 'throw' })\n    ).toThrowError(error1);\n    const error2 = 'The \"length\" action is not supported on type \"object\".';\n    expect(() =>\n      convertAction({ type: 'object' }, action, undefined)\n    ).toThrowError(error2);\n    expect(() =>\n      convertAction({ type: 'object' }, action, { errorMode: 'throw' })\n    ).toThrowError(error2);\n  });\n\n  test('should warn error for length action with invalid type', () => {\n    expect(\n      convertAction({}, v.length<v.LengthInput, 3>(3), { errorMode: 'warn' })\n    ).toStrictEqual({\n      minLength: 3,\n      maxLength: 3,\n    });\n    expect(console.warn).toHaveBeenLastCalledWith(\n      'The \"length\" action is not supported on type \"undefined\".'\n    );\n    expect(\n      convertAction({ type: 'object' }, v.length<v.LengthInput, 3>(3), {\n        errorMode: 'warn',\n      })\n    ).toStrictEqual({ type: 'object', minLength: 3, maxLength: 3 });\n    expect(console.warn).toHaveBeenLastCalledWith(\n      'The \"length\" action is not supported on type \"object\".'\n    );\n  });\n\n  test('should convert lt value action for numbers', () => {\n    expect(\n      convertAction(\n        { type: 'number' },\n        v.ltValue<v.ValueInput, 10>(10),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'number',\n      exclusiveMaximum: 10,\n    });\n  });\n\n  test('should convert lt value action for integers', () => {\n    expect(\n      convertAction(\n        { type: 'integer' },\n        v.ltValue<v.ValueInput, 100>(100),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'integer',\n      exclusiveMaximum: 100,\n    });\n  });\n\n  test('should throw error for lt value action with invalid type', () => {\n    const action = v.ltValue<v.ValueInput, 10>(10);\n    const error1 =\n      'The \"lt_value\" action is not supported on type \"undefined\".';\n    expect(() => convertAction({}, action, undefined)).toThrowError(error1);\n    const error2 = 'The \"lt_value\" action is not supported on type \"string\".';\n    expect(() =>\n      convertAction({ type: 'string' }, action, undefined)\n    ).toThrowError(error2);\n  });\n\n  test('should throw error for lt value action with openapi-3.0', () => {\n    const error = 'The \"lt_value\" action is not supported for OpenAPI 3.0.';\n    expect(() =>\n      convertAction({ type: 'number' }, v.ltValue<v.ValueInput, 10>(10), {\n        target: 'openapi-3.0',\n      })\n    ).toThrowError(error);\n  });\n\n  test('should convert max entries action', () => {\n    expect(\n      convertAction(\n        { type: 'object' },\n        v.maxEntries<v.EntriesInput, 3>(3),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'object',\n      maxProperties: 3,\n    });\n  });\n\n  test('should convert max length action for strings', () => {\n    expect(\n      convertAction(\n        { type: 'string' },\n        v.maxLength<v.LengthInput, 3>(3),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'string',\n      maxLength: 3,\n    });\n  });\n\n  test('should convert max length action for arrays', () => {\n    expect(\n      convertAction(\n        { type: 'array' },\n        v.maxLength<v.LengthInput, 3>(3),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'array',\n      maxItems: 3,\n    });\n  });\n\n  test('should throw error for max length action with invalid type', () => {\n    const action = v.maxLength<v.LengthInput, 3>(3);\n    const error1 =\n      'The \"max_length\" action is not supported on type \"undefined\".';\n    expect(() => convertAction({}, action, undefined)).toThrowError(error1);\n    expect(() =>\n      convertAction({}, action, { errorMode: 'throw' })\n    ).toThrowError(error1);\n    const error2 = 'The \"max_length\" action is not supported on type \"object\".';\n    expect(() =>\n      convertAction({ type: 'object' }, action, undefined)\n    ).toThrowError(error2);\n    expect(() =>\n      convertAction({ type: 'object' }, action, { errorMode: 'throw' })\n    ).toThrowError(error2);\n  });\n\n  test('should warn error for max length action with invalid type', () => {\n    expect(\n      convertAction({}, v.maxLength<v.LengthInput, 3>(3), { errorMode: 'warn' })\n    ).toStrictEqual({\n      maxLength: 3,\n    });\n    expect(console.warn).toHaveBeenLastCalledWith(\n      'The \"max_length\" action is not supported on type \"undefined\".'\n    );\n    expect(\n      convertAction({ type: 'object' }, v.maxLength<v.LengthInput, 3>(3), {\n        errorMode: 'warn',\n      })\n    ).toStrictEqual({ type: 'object', maxLength: 3 });\n    expect(console.warn).toHaveBeenLastCalledWith(\n      'The \"max_length\" action is not supported on type \"object\".'\n    );\n  });\n\n  test('should convert max value action for numbers', () => {\n    expect(\n      convertAction(\n        { type: 'number' },\n        v.maxValue<v.ValueInput, 3>(3),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'number',\n      maximum: 3,\n    });\n  });\n\n  test('should convert max value action for integers', () => {\n    expect(\n      convertAction(\n        { type: 'integer' },\n        v.maxValue<v.ValueInput, 100>(100),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'integer',\n      maximum: 100,\n    });\n  });\n\n  test('should throw error for max value action with invalid type', () => {\n    const action = v.maxValue<v.ValueInput, 3>(3);\n    const error1 =\n      'The \"max_value\" action is not supported on type \"undefined\".';\n    expect(() => convertAction({}, action, undefined)).toThrowError(error1);\n    expect(() =>\n      convertAction({}, action, { errorMode: 'throw' })\n    ).toThrowError(error1);\n    const error2 = 'The \"max_value\" action is not supported on type \"string\".';\n    expect(() =>\n      convertAction({ type: 'string' }, action, undefined)\n    ).toThrowError(error2);\n    expect(() =>\n      convertAction({ type: 'string' }, action, { errorMode: 'throw' })\n    ).toThrowError(error2);\n  });\n\n  test('should warn error for max value action with invalid type', () => {\n    expect(\n      convertAction({}, v.maxValue<v.ValueInput, 3>(3), { errorMode: 'warn' })\n    ).toStrictEqual({\n      maximum: 3,\n    });\n    expect(console.warn).toHaveBeenLastCalledWith(\n      'The \"max_value\" action is not supported on type \"undefined\".'\n    );\n    expect(\n      convertAction({ type: 'string' }, v.maxValue<v.ValueInput, 3>(3), {\n        errorMode: 'warn',\n      })\n    ).toStrictEqual({ type: 'string', maximum: 3 });\n    expect(console.warn).toHaveBeenLastCalledWith(\n      'The \"max_value\" action is not supported on type \"string\".'\n    );\n  });\n\n  test('should convert metadata action', () => {\n    expect(\n      convertAction(\n        {},\n        v.metadata({\n          title: 'title',\n          description: 'description',\n          examples: ['example'],\n          other: 'other',\n        }),\n        undefined\n      )\n    ).toStrictEqual({\n      title: 'title',\n      description: 'description',\n      examples: ['example'],\n    });\n    expect(\n      convertAction(\n        { examples: ['existing'] },\n        v.metadata({\n          examples: ['new'],\n        }),\n        undefined\n      )\n    ).toStrictEqual({\n      examples: ['existing', 'new'],\n    });\n  });\n\n  test('should skip invalid metadata properties', () => {\n    expect(\n      convertAction(\n        {},\n        v.metadata({\n          title: 123,\n          description: null,\n          examples: { foo: 'bar' },\n          other: 'other',\n        }),\n        undefined\n      )\n    ).toStrictEqual({});\n  });\n\n  test('should convert min entries action', () => {\n    expect(\n      convertAction(\n        { type: 'object' },\n        v.minEntries<v.EntriesInput, 3>(3),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'object',\n      minProperties: 3,\n    });\n  });\n\n  test('should convert min length action for strings', () => {\n    expect(\n      convertAction(\n        { type: 'string' },\n        v.minLength<v.LengthInput, 3>(3),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'string',\n      minLength: 3,\n    });\n  });\n\n  test('should convert min length action for arrays', () => {\n    expect(\n      convertAction(\n        { type: 'array' },\n        v.minLength<v.LengthInput, 3>(3),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'array',\n      minItems: 3,\n    });\n  });\n\n  test('should throw error for min length action with invalid type', () => {\n    const action = v.minLength<v.LengthInput, 3>(3);\n    const error1 =\n      'The \"min_length\" action is not supported on type \"undefined\".';\n    expect(() => convertAction({}, action, undefined)).toThrowError(error1);\n    expect(() =>\n      convertAction({}, action, { errorMode: 'throw' })\n    ).toThrowError(error1);\n    const error2 = 'The \"min_length\" action is not supported on type \"object\".';\n    expect(() =>\n      convertAction({ type: 'object' }, action, undefined)\n    ).toThrowError(error2);\n    expect(() =>\n      convertAction({ type: 'object' }, action, { errorMode: 'throw' })\n    ).toThrowError(error2);\n  });\n\n  test('should warn error for min length action with invalid type', () => {\n    expect(\n      convertAction({}, v.minLength<v.LengthInput, 3>(3), { errorMode: 'warn' })\n    ).toStrictEqual({\n      minLength: 3,\n    });\n    expect(console.warn).toHaveBeenLastCalledWith(\n      'The \"min_length\" action is not supported on type \"undefined\".'\n    );\n    expect(\n      convertAction({ type: 'object' }, v.minLength<v.LengthInput, 3>(3), {\n        errorMode: 'warn',\n      })\n    ).toStrictEqual({ type: 'object', minLength: 3 });\n    expect(console.warn).toHaveBeenLastCalledWith(\n      'The \"min_length\" action is not supported on type \"object\".'\n    );\n  });\n\n  test('should convert min value action for numbers', () => {\n    expect(\n      convertAction(\n        { type: 'number' },\n        v.minValue<v.ValueInput, 3>(3),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'number',\n      minimum: 3,\n    });\n  });\n\n  test('should convert min value action for integers', () => {\n    expect(\n      convertAction(\n        { type: 'integer' },\n        v.minValue<v.ValueInput, 1>(1),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'integer',\n      minimum: 1,\n    });\n  });\n\n  test('should throw error for min value action with invalid type', () => {\n    const action = v.minValue<v.ValueInput, 3>(3);\n    const error1 =\n      'The \"min_value\" action is not supported on type \"undefined\".';\n    expect(() => convertAction({}, action, undefined)).toThrowError(error1);\n    expect(() =>\n      convertAction({}, action, { errorMode: 'throw' })\n    ).toThrowError(error1);\n    const error2 = 'The \"min_value\" action is not supported on type \"string\".';\n    expect(() =>\n      convertAction({ type: 'string' }, action, undefined)\n    ).toThrowError(error2);\n    expect(() =>\n      convertAction({ type: 'string' }, action, { errorMode: 'throw' })\n    ).toThrowError(error2);\n  });\n\n  test('should warn error for min value action with invalid type', () => {\n    expect(\n      convertAction({}, v.minValue<v.ValueInput, 3>(3), { errorMode: 'warn' })\n    ).toStrictEqual({\n      minimum: 3,\n    });\n    expect(console.warn).toHaveBeenLastCalledWith(\n      'The \"min_value\" action is not supported on type \"undefined\".'\n    );\n    expect(\n      convertAction({ type: 'string' }, v.minValue<v.ValueInput, 3>(3), {\n        errorMode: 'warn',\n      })\n    ).toStrictEqual({ type: 'string', minimum: 3 });\n    expect(console.warn).toHaveBeenLastCalledWith(\n      'The \"min_value\" action is not supported on type \"string\".'\n    );\n  });\n\n  test('should convert multiple of action', () => {\n    expect(\n      convertAction({}, v.multipleOf<number, 5>(5), undefined)\n    ).toStrictEqual({\n      multipleOf: 5,\n    });\n    expect(\n      convertAction({ type: 'number' }, v.multipleOf<number, 5>(5), undefined)\n    ).toStrictEqual({\n      type: 'number',\n      multipleOf: 5,\n    });\n  });\n\n  test('should convert non empty action for strings', () => {\n    expect(\n      convertAction({ type: 'string' }, v.nonEmpty(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      minLength: 1,\n    });\n  });\n\n  test('should convert non empty action for arrays', () => {\n    expect(\n      convertAction({ type: 'array' }, v.nonEmpty(), undefined)\n    ).toStrictEqual({\n      type: 'array',\n      minItems: 1,\n    });\n  });\n\n  test('should throw error for non empty action with invalid type', () => {\n    const action = v.nonEmpty();\n    const error1 =\n      'The \"non_empty\" action is not supported on type \"undefined\".';\n    expect(() => convertAction({}, action, undefined)).toThrowError(error1);\n    expect(() =>\n      convertAction({}, action, { errorMode: 'throw' })\n    ).toThrowError(error1);\n    const error2 = 'The \"non_empty\" action is not supported on type \"object\".';\n    expect(() =>\n      convertAction({ type: 'object' }, action, undefined)\n    ).toThrowError(error2);\n    expect(() =>\n      convertAction({ type: 'object' }, action, { errorMode: 'throw' })\n    ).toThrowError(error2);\n  });\n\n  test('should warn error for non empty action with invalid type', () => {\n    expect(\n      convertAction({}, v.nonEmpty(), { errorMode: 'warn' })\n    ).toStrictEqual({\n      minLength: 1,\n    });\n    expect(console.warn).toHaveBeenLastCalledWith(\n      'The \"non_empty\" action is not supported on type \"undefined\".'\n    );\n    expect(\n      convertAction({ type: 'object' }, v.nonEmpty(), {\n        errorMode: 'warn',\n      })\n    ).toStrictEqual({ type: 'object', minLength: 1 });\n    expect(console.warn).toHaveBeenLastCalledWith(\n      'The \"non_empty\" action is not supported on type \"object\".'\n    );\n  });\n\n  test('should convert not value action', () => {\n    expect(\n      convertAction(\n        { type: 'number' },\n        v.notValue<v.ValueInput, 0>(0),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'number',\n      not: { const: 0 },\n    });\n  });\n\n  test('should convert not value action for openapi-3.0', () => {\n    expect(\n      convertAction({ type: 'number' }, v.notValue<v.ValueInput, 0>(0), {\n        target: 'openapi-3.0',\n      })\n    ).toStrictEqual({\n      type: 'number',\n      not: { enum: [0] },\n    });\n  });\n\n  test('should convert not values action', () => {\n    expect(\n      convertAction(\n        { type: 'number' },\n        v.notValues<v.ValueInput, [0, 1]>([0, 1]),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'number',\n      not: { enum: [0, 1] },\n    });\n  });\n\n  test('should throw error for unsupported not value action', () => {\n    const error =\n      'The requirement of the \"not_value\" action is not JSON compatible.';\n    expect(() =>\n      convertAction({}, v.notValue<v.ValueInput, 1n>(1n), undefined)\n    ).toThrowError(error);\n    expect(() =>\n      convertAction({}, v.notValue<v.ValueInput, Date>(new Date(0)), {\n        errorMode: 'throw',\n      })\n    ).toThrowError(error);\n  });\n\n  test('should warn error for unsupported not value action', () => {\n    expect(\n      convertAction({ type: 'number' }, v.notValue<v.ValueInput, 1n>(1n), {\n        errorMode: 'warn',\n      })\n    ).toStrictEqual({\n      type: 'number',\n    });\n    expect(console.warn).toHaveBeenLastCalledWith(\n      'The requirement of the \"not_value\" action is not JSON compatible.'\n    );\n  });\n\n  test('should throw error for unsupported not values action', () => {\n    const error =\n      'A requirement of the \"not_values\" action is not JSON compatible.';\n    expect(() =>\n      convertAction({}, v.notValues<v.ValueInput, [1n]>([1n]), undefined)\n    ).toThrowError(error);\n    expect(() =>\n      convertAction(\n        {},\n        v.notValues<v.ValueInput, [Date, Date]>([new Date(0), new Date(1)]),\n        { errorMode: 'throw' }\n      )\n    ).toThrowError(error);\n  });\n\n  test('should warn error for unsupported not values action', () => {\n    expect(\n      convertAction({ type: 'number' }, v.notValues<v.ValueInput, [1n]>([1n]), {\n        errorMode: 'warn',\n      })\n    ).toStrictEqual({\n      type: 'number',\n    });\n    expect(console.warn).toHaveBeenLastCalledWith(\n      'A requirement of the \"not_values\" action is not JSON compatible.'\n    );\n  });\n\n  test('should convert supported regex action', () => {\n    expect(\n      convertAction({ type: 'string' }, v.regex<string>(/[a-zA-Z]/), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      pattern: '[a-zA-Z]',\n    });\n  });\n\n  test('should throw error for unsupported regex action', () => {\n    const action = v.regex<string>(/[a-z]/im);\n    const error = 'RegExp flags are not supported by JSON Schema.';\n    expect(() => convertAction({}, action, undefined)).toThrowError(error);\n    expect(() =>\n      convertAction({}, action, { errorMode: 'throw' })\n    ).toThrowError(error);\n  });\n\n  test('should warn error for unsupported regex action', () => {\n    expect(\n      convertAction({ type: 'string' }, v.regex<string>(/[a-z]/im), {\n        errorMode: 'warn',\n      })\n    ).toStrictEqual({\n      type: 'string',\n      pattern: '[a-z]',\n    });\n    expect(console.warn).toHaveBeenLastCalledWith(\n      'RegExp flags are not supported by JSON Schema.'\n    );\n  });\n\n  test('should convert safe integer action', () => {\n    expect(\n      convertAction({ type: 'number' }, v.safeInteger<number>(), undefined)\n    ).toStrictEqual({\n      type: 'integer',\n      minimum: Number.MIN_SAFE_INTEGER,\n      maximum: Number.MAX_SAFE_INTEGER,\n    });\n  });\n\n  test('should preserve stricter safe integer bounds', () => {\n    expect(\n      convertAction(\n        { type: 'number', minimum: 10, maximum: 20 },\n        v.safeInteger<number>(),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'integer',\n      minimum: 10,\n      maximum: 20,\n    });\n    expect(\n      convertAction(\n        {\n          type: 'number',\n          exclusiveMinimum: 10,\n          exclusiveMaximum: 20,\n        },\n        v.safeInteger<number>(),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'integer',\n      minimum: Number.MIN_SAFE_INTEGER,\n      maximum: Number.MAX_SAFE_INTEGER,\n      exclusiveMinimum: 10,\n      exclusiveMaximum: 20,\n    });\n  });\n\n  test('should clamp broader safe integer bounds', () => {\n    expect(\n      convertAction(\n        {\n          type: 'number',\n          minimum: Number.MIN_SAFE_INTEGER - 1,\n          maximum: Number.MAX_SAFE_INTEGER + 1,\n        },\n        v.safeInteger<number>(),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'integer',\n      minimum: Number.MIN_SAFE_INTEGER,\n      maximum: Number.MAX_SAFE_INTEGER,\n    });\n  });\n\n  test('should convert starts with action', () => {\n    expect(\n      convertAction(\n        { type: 'string' },\n        v.startsWith<string, 'foo'>('foo'),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'string',\n      pattern: '^foo',\n    });\n  });\n\n  test('should convert starts with action with special characters', () => {\n    expect(\n      convertAction(\n        { type: 'string' },\n        v.startsWith<string, 'https://'>('https://'),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'string',\n      pattern: '^https://',\n    });\n  });\n\n  test('should convert title action', () => {\n    expect(convertAction({}, v.title('test'), undefined)).toStrictEqual({\n      title: 'test',\n    });\n  });\n\n  test('should convert url action', () => {\n    expect(convertAction({}, v.url<string>(), undefined)).toStrictEqual({\n      format: 'uri',\n    });\n    expect(\n      convertAction({ type: 'string' }, v.url<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      format: 'uri',\n    });\n  });\n\n  test('should convert UUID action', () => {\n    expect(convertAction({}, v.uuid<string>(), undefined)).toStrictEqual({\n      format: 'uuid',\n    });\n    expect(\n      convertAction({ type: 'string' }, v.uuid<string>(), undefined)\n    ).toStrictEqual({\n      type: 'string',\n      format: 'uuid',\n    });\n  });\n\n  test('should convert value action', () => {\n    expect(\n      convertAction(\n        { type: 'boolean' },\n        v.value<v.ValueInput, true>(true),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'boolean',\n      const: true,\n    });\n    expect(\n      convertAction(\n        { type: 'number' },\n        v.value<v.ValueInput, 123>(123),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'number',\n      const: 123,\n    });\n    expect(\n      convertAction(\n        { type: 'string' },\n        v.value<v.ValueInput, 'foo'>('foo'),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'string',\n      const: 'foo',\n    });\n  });\n\n  test('should convert value action for openapi-3.0', () => {\n    expect(\n      convertAction({ type: 'string' }, v.value<v.ValueInput, 'foo'>('foo'), {\n        target: 'openapi-3.0',\n      })\n    ).toStrictEqual({\n      type: 'string',\n      enum: ['foo'],\n    });\n  });\n\n  test('should throw error for unsupported value action', () => {\n    const error =\n      'The requirement of the \"value\" action is not JSON compatible.';\n    expect(() =>\n      convertAction({}, v.value<v.ValueInput, 1n>(1n), undefined)\n    ).toThrowError(error);\n    expect(() =>\n      convertAction({}, v.value<v.ValueInput, Date>(new Date(0)), {\n        errorMode: 'throw',\n      })\n    ).toThrowError(error);\n    expect(() =>\n      convertAction(\n        { type: 'number' },\n        v.value<v.ValueInput, number>(NaN),\n        undefined\n      )\n    ).toThrowError(error);\n    expect(() =>\n      convertAction(\n        { type: 'number' },\n        v.value<v.ValueInput, number>(Infinity),\n        undefined\n      )\n    ).toThrowError(error);\n  });\n\n  test('should warn error for unsupported value action', () => {\n    expect(\n      convertAction({ type: 'number' }, v.value<v.ValueInput, 1n>(1n), {\n        errorMode: 'warn',\n      })\n    ).toStrictEqual({\n      type: 'number',\n    });\n    expect(console.warn).toHaveBeenLastCalledWith(\n      'The requirement of the \"value\" action is not JSON compatible.'\n    );\n  });\n\n  test('should convert values action', () => {\n    expect(\n      convertAction(\n        { type: 'number' },\n        v.values<v.ValueInput, [1, 2, 3]>([1, 2, 3]),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'number',\n      enum: [1, 2, 3],\n    });\n    expect(\n      convertAction(\n        { type: 'string' },\n        v.values<v.ValueInput, ['foo', 'bar']>(['foo', 'bar']),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'string',\n      enum: ['foo', 'bar'],\n    });\n    expect(\n      convertAction(\n        { type: 'boolean' },\n        v.values<v.ValueInput, [true, false]>([true, false]),\n        undefined\n      )\n    ).toStrictEqual({\n      type: 'boolean',\n      enum: [true, false],\n    });\n  });\n\n  test('should throw error for unsupported values action', () => {\n    const error =\n      'A requirement of the \"values\" action is not JSON compatible.';\n    expect(() =>\n      convertAction({}, v.values<v.ValueInput, [1n]>([1n]), undefined)\n    ).toThrowError(error);\n    expect(() =>\n      convertAction(\n        {},\n        v.values<v.ValueInput, [string, Date]>(['foo', new Date(0)]),\n        { errorMode: 'throw' }\n      )\n    ).toThrowError(error);\n  });\n\n  test('should warn error for unsupported values action', () => {\n    expect(\n      convertAction({ type: 'number' }, v.values<v.ValueInput, [1n]>([1n]), {\n        errorMode: 'warn',\n      })\n    ).toStrictEqual({\n      type: 'number',\n    });\n    expect(console.warn).toHaveBeenLastCalledWith(\n      'A requirement of the \"values\" action is not JSON compatible.'\n    );\n  });\n\n  test('should throw error for unsupported transform action', () => {\n    const action = v.transform(parseInt);\n    const error = 'The \"transform\" action cannot be converted to JSON Schema.';\n    expect(() => convertAction({}, action as never, undefined)).toThrowError(\n      error\n    );\n    expect(() =>\n      convertAction({}, action as never, { errorMode: 'throw' })\n    ).toThrowError(error);\n  });\n\n  test('should warn error for unsupported transform action', () => {\n    expect(\n      convertAction({}, v.transform(parseInt) as never, { errorMode: 'warn' })\n    ).toStrictEqual({});\n    expect(console.warn).toHaveBeenLastCalledWith(\n      'The \"transform\" action cannot be converted to JSON Schema.'\n    );\n    expect(\n      convertAction({ type: 'string' }, v.transform(parseInt) as never, {\n        errorMode: 'warn',\n      })\n    ).toStrictEqual({ type: 'string' });\n    expect(console.warn).toHaveBeenLastCalledWith(\n      'The \"transform\" action cannot be converted to JSON Schema.'\n    );\n  });\n\n  test('should override JSON Schema output of action', () => {\n    expect(\n      convertAction({}, v.decimal<string>(), {\n        overrideAction({ valibotAction }) {\n          if (valibotAction.type === 'decimal') {\n            return { format: 'decimal' };\n          }\n        },\n      })\n    ).toStrictEqual({\n      format: 'decimal',\n    });\n    expect(\n      convertAction({ type: 'string' }, v.decimal<string>(), {\n        overrideAction({ valibotAction, jsonSchema }) {\n          if (valibotAction.type === 'decimal') {\n            return { ...jsonSchema, format: 'decimal' };\n          }\n        },\n      })\n    ).toStrictEqual({\n      type: 'string',\n      pattern: v.DECIMAL_REGEX.source,\n      format: 'decimal',\n    });\n  });\n\n  test('should override action to suppress error', () => {\n    expect(\n      convertAction({}, v.transform(parseInt) as never, {\n        overrideAction({ valibotAction, jsonSchema }) {\n          if (valibotAction.type === 'transform') {\n            return jsonSchema;\n          }\n        },\n      })\n    ).toStrictEqual({});\n  });\n});\n"
  },
  {
    "path": "packages/to-json-schema/src/converters/convertAction/convertAction.ts",
    "content": "import type * as v from 'valibot';\nimport type { ConversionConfig, JsonSchema } from '../../types/index.ts';\nimport {\n  addError,\n  escapeRegExp,\n  handleError,\n  isJsonConstValue,\n  isJsonEnumValues,\n} from '../../utils/index.ts';\n\n/**\n * Action type.\n */\ntype Action =\n  | v.Base64Action<string, v.ErrorMessage<v.Base64Issue<string>> | undefined>\n  | v.BicAction<string, v.ErrorMessage<v.BicIssue<string>> | undefined>\n  | v.Cuid2Action<string, v.ErrorMessage<v.Cuid2Issue<string>> | undefined>\n  | v.DecimalAction<string, v.ErrorMessage<v.DecimalIssue<string>> | undefined>\n  | v.DescriptionAction<unknown, string>\n  | v.DigitsAction<string, v.ErrorMessage<v.DigitsIssue<string>> | undefined>\n  | v.DomainAction<string, v.ErrorMessage<v.DomainIssue<string>> | undefined>\n  | v.EmailAction<string, v.ErrorMessage<v.EmailIssue<string>> | undefined>\n  | v.EmojiAction<string, v.ErrorMessage<v.EmojiIssue<string>> | undefined>\n  | v.EmptyAction<\n      v.LengthInput,\n      v.ErrorMessage<v.EmptyIssue<v.LengthInput>> | undefined\n    >\n  | v.EndsWithAction<\n      string,\n      string,\n      v.ErrorMessage<v.EndsWithIssue<string, string>> | undefined\n    >\n  | v.EntriesAction<\n      v.EntriesInput,\n      number,\n      v.ErrorMessage<v.EntriesIssue<v.EntriesInput, number>> | undefined\n    >\n  | v.ExamplesAction<unknown, readonly unknown[]>\n  | v.GtValueAction<\n      v.ValueInput,\n      v.ValueInput,\n      v.ErrorMessage<v.GtValueIssue<v.ValueInput, v.ValueInput>> | undefined\n    >\n  | v.HashAction<string, v.ErrorMessage<v.HashIssue<string>> | undefined>\n  | v.HexadecimalAction<\n      string,\n      v.ErrorMessage<v.HexadecimalIssue<string>> | undefined\n    >\n  | v.HexColorAction<\n      string,\n      v.ErrorMessage<v.HexColorIssue<string>> | undefined\n    >\n  | v.IncludesAction<\n      string,\n      string,\n      v.ErrorMessage<v.IncludesIssue<string, string>> | undefined\n    >\n  | v.IntegerAction<number, v.ErrorMessage<v.IntegerIssue<number>> | undefined>\n  | v.Ipv4Action<string, v.ErrorMessage<v.Ipv4Issue<string>> | undefined>\n  | v.Ipv6Action<string, v.ErrorMessage<v.Ipv6Issue<string>> | undefined>\n  | v.IsoDateAction<string, v.ErrorMessage<v.IsoDateIssue<string>> | undefined>\n  | v.IsoDateTimeAction<\n      string,\n      v.ErrorMessage<v.IsoDateTimeIssue<string>> | undefined\n    >\n  | v.IsoTimeAction<string, v.ErrorMessage<v.IsoTimeIssue<string>> | undefined>\n  | v.IsoTimeSecondAction<\n      string,\n      v.ErrorMessage<v.IsoTimeSecondIssue<string>> | undefined\n    >\n  | v.IsoTimestampAction<\n      string,\n      v.ErrorMessage<v.IsoTimestampIssue<string>> | undefined\n    >\n  | v.IsoWeekAction<string, v.ErrorMessage<v.IsoWeekIssue<string>> | undefined>\n  | v.IsrcAction<string, v.ErrorMessage<v.IsrcIssue<string>> | undefined>\n  | v.JwsCompactAction<\n      string,\n      v.ErrorMessage<v.JwsCompactIssue<string>> | undefined\n    >\n  | v.LengthAction<\n      v.LengthInput,\n      number,\n      v.ErrorMessage<v.LengthIssue<v.LengthInput, number>> | undefined\n    >\n  | v.LtValueAction<\n      v.ValueInput,\n      v.ValueInput,\n      v.ErrorMessage<v.LtValueIssue<v.ValueInput, v.ValueInput>> | undefined\n    >\n  | v.MacAction<string, v.ErrorMessage<v.MacIssue<string>> | undefined>\n  | v.Mac48Action<string, v.ErrorMessage<v.Mac48Issue<string>> | undefined>\n  | v.Mac64Action<string, v.ErrorMessage<v.Mac64Issue<string>> | undefined>\n  | v.MaxEntriesAction<\n      v.EntriesInput,\n      number,\n      v.ErrorMessage<v.MaxEntriesIssue<v.EntriesInput, number>> | undefined\n    >\n  | v.MaxLengthAction<\n      v.LengthInput,\n      number,\n      v.ErrorMessage<v.MaxLengthIssue<v.LengthInput, number>> | undefined\n    >\n  | v.MaxValueAction<\n      v.ValueInput,\n      v.ValueInput,\n      v.ErrorMessage<v.MaxValueIssue<v.ValueInput, v.ValueInput>> | undefined\n    >\n  | v.MetadataAction<unknown, Record<string, unknown>>\n  | v.MinEntriesAction<\n      v.EntriesInput,\n      number,\n      v.ErrorMessage<v.MinEntriesIssue<v.EntriesInput, number>> | undefined\n    >\n  | v.MinLengthAction<\n      v.LengthInput,\n      number,\n      v.ErrorMessage<v.MinLengthIssue<v.LengthInput, number>> | undefined\n    >\n  | v.MinValueAction<\n      v.ValueInput,\n      v.ValueInput,\n      v.ErrorMessage<v.MinValueIssue<v.ValueInput, v.ValueInput>> | undefined\n    >\n  | v.MultipleOfAction<\n      number,\n      number,\n      v.ErrorMessage<v.MultipleOfIssue<number, number>> | undefined\n    >\n  | v.NanoIdAction<string, v.ErrorMessage<v.NanoIdIssue<string>> | undefined>\n  | v.NonEmptyAction<\n      v.LengthInput,\n      v.ErrorMessage<v.NonEmptyIssue<v.LengthInput>> | undefined\n    >\n  | v.NotValueAction<\n      v.ValueInput,\n      v.ValueInput,\n      v.ErrorMessage<v.NotValueIssue<v.ValueInput, v.ValueInput>> | undefined\n    >\n  | v.NotValuesAction<\n      v.ValueInput,\n      v.ValueInput[],\n      v.ErrorMessage<v.NotValuesIssue<v.ValueInput, v.ValueInput[]>> | undefined\n    >\n  | v.OctalAction<string, v.ErrorMessage<v.OctalIssue<string>> | undefined>\n  | v.RegexAction<string, v.ErrorMessage<v.RegexIssue<string>> | undefined>\n  | v.RfcEmailAction<\n      string,\n      v.ErrorMessage<v.RfcEmailIssue<string>> | undefined\n    >\n  | v.SafeIntegerAction<\n      number,\n      v.ErrorMessage<v.SafeIntegerIssue<number>> | undefined\n    >\n  | v.SlugAction<string, v.ErrorMessage<v.SlugIssue<string>> | undefined>\n  | v.StartsWithAction<\n      string,\n      string,\n      v.ErrorMessage<v.StartsWithIssue<string, string>> | undefined\n    >\n  | v.TitleAction<unknown, string>\n  | v.UlidAction<string, v.ErrorMessage<v.UlidIssue<string>> | undefined>\n  | v.UrlAction<string, v.ErrorMessage<v.UrlIssue<string>> | undefined>\n  | v.UuidAction<string, v.ErrorMessage<v.UuidIssue<string>> | undefined>\n  | v.ValueAction<\n      v.ValueInput,\n      v.ValueInput,\n      v.ErrorMessage<v.ValueIssue<v.ValueInput, v.ValueInput>> | undefined\n    >\n  | v.ValuesAction<\n      v.ValueInput,\n      v.ValueInput[],\n      v.ErrorMessage<v.ValuesIssue<v.ValueInput, v.ValueInput[]>> | undefined\n    >;\n\n/**\n * Converts any supported Valibot action to the JSON Schema format.\n *\n * @param jsonSchema The JSON Schema object.\n * @param valibotAction The Valibot action object.\n * @param config The conversion configuration.\n *\n * @returns The converted JSON Schema.\n */\nexport function convertAction(\n  jsonSchema: JsonSchema,\n  valibotAction: Action,\n  config: ConversionConfig | undefined\n): JsonSchema {\n  // Ignore action if specified in configuration\n  if (config?.ignoreActions?.includes(valibotAction.type)) {\n    return jsonSchema;\n  }\n\n  // Create errors variable\n  let errors: [string, ...string[]] | undefined;\n\n  // Convert Valibot action to JSON Schema\n  switch (valibotAction.type) {\n    case 'base64': {\n      jsonSchema.contentEncoding = 'base64';\n      break;\n    }\n\n    case 'bic':\n    case 'cuid2':\n    case 'decimal':\n    case 'digits':\n    case 'domain':\n    case 'emoji':\n    case 'hash':\n    case 'hexadecimal':\n    case 'hex_color':\n    case 'isrc':\n    case 'iso_time_second':\n    case 'iso_week':\n    case 'mac':\n    case 'mac48':\n    case 'mac64':\n    case 'nanoid':\n    case 'octal':\n    case 'slug':\n    case 'ulid': {\n      if (jsonSchema.pattern) {\n        errors = addError(\n          errors,\n          `The \"${valibotAction.type}\" action is not supported in combination with another regex action.`\n        );\n      } else {\n        jsonSchema.pattern = valibotAction.requirement.source;\n      }\n      break;\n    }\n\n    case 'description': {\n      jsonSchema.description = valibotAction.description;\n      break;\n    }\n\n    case 'email':\n    case 'rfc_email': {\n      jsonSchema.format = 'email';\n      break;\n    }\n\n    case 'ends_with': {\n      if (jsonSchema.pattern) {\n        errors = addError(\n          errors,\n          `The \"${valibotAction.type}\" action is not supported in combination with another regex action.`\n        );\n      } else {\n        jsonSchema.pattern = `${escapeRegExp(valibotAction.requirement)}$`;\n      }\n      break;\n    }\n\n    case 'empty': {\n      if (jsonSchema.type === 'array') {\n        jsonSchema.maxItems = 0;\n      } else {\n        if (jsonSchema.type !== 'string') {\n          errors = addError(\n            errors,\n            `The \"${valibotAction.type}\" action is not supported on type \"${jsonSchema.type}\".`\n          );\n        }\n        jsonSchema.maxLength = 0;\n      }\n      break;\n    }\n\n    case 'entries': {\n      jsonSchema.minProperties = valibotAction.requirement;\n      jsonSchema.maxProperties = valibotAction.requirement;\n      break;\n    }\n\n    case 'examples': {\n      if (Array.isArray(jsonSchema.examples)) {\n        // @ts-expect-error\n        jsonSchema.examples = [\n          ...jsonSchema.examples,\n          ...valibotAction.examples,\n        ];\n      } else {\n        // @ts-expect-error\n        jsonSchema.examples = valibotAction.examples;\n      }\n      break;\n    }\n\n    case 'gt_value': {\n      if (jsonSchema.type !== 'number' && jsonSchema.type !== 'integer') {\n        errors = addError(\n          errors,\n          `The \"gt_value\" action is not supported on type \"${jsonSchema.type}\".`\n        );\n      }\n      if (config?.target === 'openapi-3.0') {\n        errors = addError(\n          errors,\n          'The \"gt_value\" action is not supported for OpenAPI 3.0.'\n        );\n        break;\n      }\n      jsonSchema.exclusiveMinimum = valibotAction.requirement as number;\n      break;\n    }\n\n    case 'includes': {\n      if (jsonSchema.pattern) {\n        errors = addError(\n          errors,\n          `The \"${valibotAction.type}\" action is not supported in combination with another regex action.`\n        );\n      } else {\n        jsonSchema.pattern = escapeRegExp(valibotAction.requirement);\n      }\n      break;\n    }\n\n    case 'integer': {\n      jsonSchema.type = 'integer';\n      break;\n    }\n\n    case 'ipv4': {\n      jsonSchema.format = 'ipv4';\n      break;\n    }\n\n    case 'ipv6': {\n      jsonSchema.format = 'ipv6';\n      break;\n    }\n\n    case 'iso_date': {\n      jsonSchema.format = 'date';\n      break;\n    }\n\n    case 'iso_date_time':\n    case 'iso_timestamp': {\n      jsonSchema.format = 'date-time';\n      break;\n    }\n\n    case 'iso_time': {\n      jsonSchema.format = 'time';\n      break;\n    }\n\n    case 'jws_compact': {\n      if (jsonSchema.pattern) {\n        errors = addError(\n          errors,\n          `The \"${valibotAction.type}\" action is not supported in combination with another regex action.`\n        );\n      } else {\n        jsonSchema.pattern = valibotAction.requirement.source;\n      }\n      break;\n    }\n\n    case 'length': {\n      if (jsonSchema.type === 'array') {\n        jsonSchema.minItems = valibotAction.requirement;\n        jsonSchema.maxItems = valibotAction.requirement;\n      } else {\n        if (jsonSchema.type !== 'string') {\n          errors = addError(\n            errors,\n            `The \"${valibotAction.type}\" action is not supported on type \"${jsonSchema.type}\".`\n          );\n        }\n        jsonSchema.minLength = valibotAction.requirement;\n        jsonSchema.maxLength = valibotAction.requirement;\n      }\n      break;\n    }\n\n    case 'lt_value': {\n      if (jsonSchema.type !== 'number' && jsonSchema.type !== 'integer') {\n        errors = addError(\n          errors,\n          `The \"lt_value\" action is not supported on type \"${jsonSchema.type}\".`\n        );\n      }\n      if (config?.target === 'openapi-3.0') {\n        errors = addError(\n          errors,\n          'The \"lt_value\" action is not supported for OpenAPI 3.0.'\n        );\n        break;\n      }\n      jsonSchema.exclusiveMaximum = valibotAction.requirement as number;\n      break;\n    }\n\n    case 'max_entries': {\n      jsonSchema.maxProperties = valibotAction.requirement;\n      break;\n    }\n\n    case 'max_length': {\n      if (jsonSchema.type === 'array') {\n        jsonSchema.maxItems = valibotAction.requirement;\n      } else {\n        if (jsonSchema.type !== 'string') {\n          errors = addError(\n            errors,\n            `The \"${valibotAction.type}\" action is not supported on type \"${jsonSchema.type}\".`\n          );\n        }\n        jsonSchema.maxLength = valibotAction.requirement;\n      }\n      break;\n    }\n\n    case 'max_value': {\n      if (jsonSchema.type !== 'number' && jsonSchema.type !== 'integer') {\n        errors = addError(\n          errors,\n          `The \"max_value\" action is not supported on type \"${jsonSchema.type}\".`\n        );\n      }\n      jsonSchema.maximum = valibotAction.requirement as number;\n      break;\n    }\n\n    case 'metadata': {\n      if (typeof valibotAction.metadata.title === 'string') {\n        jsonSchema.title = valibotAction.metadata.title;\n      }\n      if (typeof valibotAction.metadata.description === 'string') {\n        jsonSchema.description = valibotAction.metadata.description;\n      }\n      if (Array.isArray(valibotAction.metadata.examples)) {\n        if (Array.isArray(jsonSchema.examples)) {\n          jsonSchema.examples = [\n            ...jsonSchema.examples,\n            ...valibotAction.metadata.examples,\n          ];\n        } else {\n          jsonSchema.examples = valibotAction.metadata.examples;\n        }\n      }\n      break;\n    }\n\n    case 'min_entries': {\n      jsonSchema.minProperties = valibotAction.requirement;\n      break;\n    }\n\n    case 'min_length': {\n      if (jsonSchema.type === 'array') {\n        jsonSchema.minItems = valibotAction.requirement;\n      } else {\n        if (jsonSchema.type !== 'string') {\n          errors = addError(\n            errors,\n            `The \"${valibotAction.type}\" action is not supported on type \"${jsonSchema.type}\".`\n          );\n        }\n        jsonSchema.minLength = valibotAction.requirement;\n      }\n      break;\n    }\n\n    case 'min_value': {\n      if (jsonSchema.type !== 'number' && jsonSchema.type !== 'integer') {\n        errors = addError(\n          errors,\n          `The \"min_value\" action is not supported on type \"${jsonSchema.type}\".`\n        );\n      }\n      jsonSchema.minimum = valibotAction.requirement as number;\n      break;\n    }\n\n    case 'multiple_of': {\n      jsonSchema.multipleOf = valibotAction.requirement;\n      break;\n    }\n\n    case 'non_empty': {\n      if (jsonSchema.type === 'array') {\n        jsonSchema.minItems = 1;\n      } else {\n        if (jsonSchema.type !== 'string') {\n          errors = addError(\n            errors,\n            `The \"${valibotAction.type}\" action is not supported on type \"${jsonSchema.type}\".`\n          );\n        }\n        jsonSchema.minLength = 1;\n      }\n      break;\n    }\n\n    case 'not_value': {\n      if (!isJsonConstValue(valibotAction.requirement)) {\n        errors = addError(\n          errors,\n          'The requirement of the \"not_value\" action is not JSON compatible.'\n        );\n        break;\n      }\n      if (config?.target === 'openapi-3.0') {\n        jsonSchema.not = { enum: [valibotAction.requirement] };\n      } else {\n        jsonSchema.not = { const: valibotAction.requirement };\n      }\n      break;\n    }\n\n    case 'not_values': {\n      if (!isJsonEnumValues(valibotAction.requirement)) {\n        errors = addError(\n          errors,\n          'A requirement of the \"not_values\" action is not JSON compatible.'\n        );\n        break;\n      }\n      jsonSchema.not = { enum: valibotAction.requirement };\n      break;\n    }\n\n    case 'regex': {\n      if (valibotAction.requirement.flags) {\n        errors = addError(\n          errors,\n          'RegExp flags are not supported by JSON Schema.'\n        );\n      }\n      if (jsonSchema.pattern) {\n        errors = addError(\n          errors,\n          `The \"${valibotAction.type}\" action is not supported in combination with another regex action.`\n        );\n      } else {\n        jsonSchema.pattern = valibotAction.requirement.source;\n      }\n      break;\n    }\n\n    case 'safe_integer': {\n      jsonSchema.type = 'integer';\n      if (\n        typeof jsonSchema.minimum !== 'number' ||\n        jsonSchema.minimum < Number.MIN_SAFE_INTEGER\n      ) {\n        jsonSchema.minimum = Number.MIN_SAFE_INTEGER;\n      }\n      if (\n        typeof jsonSchema.maximum !== 'number' ||\n        jsonSchema.maximum > Number.MAX_SAFE_INTEGER\n      ) {\n        jsonSchema.maximum = Number.MAX_SAFE_INTEGER;\n      }\n      break;\n    }\n\n    case 'starts_with': {\n      if (jsonSchema.pattern) {\n        errors = addError(\n          errors,\n          `The \"${valibotAction.type}\" action is not supported in combination with another regex action.`\n        );\n      } else {\n        jsonSchema.pattern = `^${escapeRegExp(valibotAction.requirement)}`;\n      }\n      break;\n    }\n\n    case 'title': {\n      jsonSchema.title = valibotAction.title;\n      break;\n    }\n\n    case 'url': {\n      jsonSchema.format = 'uri';\n      break;\n    }\n\n    case 'uuid': {\n      jsonSchema.format = 'uuid';\n      break;\n    }\n\n    case 'value': {\n      // Hint: It is not necessary to validate the type of the JSON schema or\n      // Valibot action requirement, as this action can only follow a valid\n      // schema in the pipeline anyway.\n      if (!isJsonConstValue(valibotAction.requirement)) {\n        errors = addError(\n          errors,\n          'The requirement of the \"value\" action is not JSON compatible.'\n        );\n        break;\n      }\n      if (config?.target === 'openapi-3.0') {\n        // Hint: OpenAPI 3.0 does not support const. That's why we use an\n        // enum instead.\n        jsonSchema.enum = [valibotAction.requirement];\n      } else {\n        jsonSchema.const = valibotAction.requirement;\n      }\n      break;\n    }\n\n    case 'values': {\n      if (!isJsonEnumValues(valibotAction.requirement)) {\n        errors = addError(\n          errors,\n          'A requirement of the \"values\" action is not JSON compatible.'\n        );\n        break;\n      }\n      jsonSchema.enum = valibotAction.requirement;\n      break;\n    }\n\n    default: {\n      errors = addError(\n        errors,\n        // @ts-expect-error\n        `The \"${valibotAction.type}\" action cannot be converted to JSON Schema.`\n      );\n    }\n  }\n\n  // Override JSON Schema if specified and necessary\n  if (config?.overrideAction) {\n    const actionOverride = config.overrideAction({\n      valibotAction,\n      jsonSchema,\n      errors,\n    });\n    if (actionOverride) {\n      return { ...actionOverride };\n    }\n  }\n\n  // Handle errors based on configuration\n  if (errors) {\n    for (const message of errors) {\n      handleError(message, config);\n    }\n  }\n\n  // Return converted JSON Schema\n  return jsonSchema;\n}\n"
  },
  {
    "path": "packages/to-json-schema/src/converters/convertAction/index.ts",
    "content": "export * from './convertAction.ts';\n"
  },
  {
    "path": "packages/to-json-schema/src/converters/convertSchema/convertSchema.test.ts",
    "content": "import * as v from 'valibot';\nimport { describe, expect, test, vi } from 'vitest';\nimport { createContext } from '../../vitest/index.ts';\nimport { convertSchema } from './convertSchema.ts';\n\nconsole.warn = vi.fn();\n\ndescribe('convertSchema', () => {\n  describe('definitions', () => {\n    test('should convert schema using definitions', () => {\n      const schema = v.string();\n      expect(\n        convertSchema(\n          {},\n          schema,\n          undefined,\n          createContext({\n            definitions: { foo: { type: 'string' } },\n            referenceMap: new Map().set(schema, 'foo'),\n          })\n        )\n      ).toStrictEqual({\n        $ref: '#/$defs/foo',\n      });\n    });\n\n    test('should skip definition if specified', () => {\n      const stringSchema = v.string();\n      expect(\n        convertSchema(\n          {},\n          stringSchema,\n          undefined,\n          createContext({\n            definitions: { foo: { type: 'string' } },\n            referenceMap: new Map().set(stringSchema, 'foo'),\n          }),\n          true\n        )\n      ).toStrictEqual({\n        type: 'string',\n      });\n    });\n\n    test('should not skip definition if specified', () => {\n      const stringSchema = v.string();\n      expect(\n        convertSchema(\n          {},\n          stringSchema,\n          undefined,\n          createContext({\n            definitions: { foo: { type: 'string' } },\n            referenceMap: new Map().set(stringSchema, 'foo'),\n          }),\n          false\n        )\n      ).toStrictEqual({\n        $ref: '#/$defs/foo',\n      });\n    });\n\n    test('should skip only root definition of nested schema if specified', () => {\n      const stringSchema = v.string();\n      const arraySchema = v.array(stringSchema);\n      const definitions = {\n        string: { type: 'string' },\n        array: {\n          type: 'array',\n          items: { $ref: '#/$defs/string' },\n        },\n      } as const;\n      const referenceMap = new Map<v.GenericSchema, string>([\n        [stringSchema, 'string'],\n        [arraySchema, 'array'],\n      ]);\n      expect(\n        convertSchema(\n          {},\n          arraySchema,\n          undefined,\n          createContext({ definitions, referenceMap }),\n          true\n        )\n      ).toStrictEqual({\n        type: 'array',\n        items: { $ref: '#/$defs/string' },\n      });\n    });\n\n    test('should override reference ID if specified', () => {\n      const foo = v.string();\n      const bar = v.number();\n      const schema = v.object({ foo, bar });\n      expect(\n        convertSchema(\n          {},\n          schema,\n          {\n            overrideRef({ referenceId }) {\n              if (referenceId === 'bar') {\n                return '#/$custom/reference';\n              }\n            },\n          },\n          createContext({\n            definitions: { foo: { type: 'string' }, bar: { type: 'number' } },\n            referenceMap: new Map().set(foo, 'foo').set(bar, 'bar'),\n          })\n        )\n      ).toStrictEqual({\n        type: 'object',\n        properties: {\n          foo: { $ref: '#/$defs/foo' },\n          bar: { $ref: '#/$custom/reference' },\n        },\n        required: ['foo', 'bar'],\n      });\n    });\n  });\n\n  describe('schema with pipe', () => {\n    test('should convert pipe items', () => {\n      expect(\n        convertSchema(\n          {},\n          v.pipe(v.string(), v.email(), v.description('foo')),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'string',\n        format: 'email',\n        description: 'foo',\n      });\n    });\n\n    test('should convert domain pipe items', () => {\n      expect(\n        convertSchema(\n          {},\n          v.pipe(v.string(), v.domain(), v.description('foo')),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'string',\n        pattern: v.DOMAIN_REGEX.source,\n        description: 'foo',\n      });\n    });\n\n    test('should convert pipe schema in definitions', () => {\n      const schema = v.string();\n      expect(\n        convertSchema(\n          {},\n          v.pipe(schema, v.email(), v.description('foo')),\n          undefined,\n          createContext({\n            definitions: { foo: { type: 'string' } },\n            referenceMap: new Map().set(schema, 'foo'),\n          })\n        )\n      ).toStrictEqual({\n        type: 'string',\n        format: 'email',\n        description: 'foo',\n      });\n    });\n\n    test('should throw error for multiple schemas in pipe', () => {\n      const schema = v.pipe(\n        v.nullable(v.string()),\n        v.string(),\n        v.description('foo')\n      );\n      const error =\n        'Set the \"typeMode\" config to \"input\" or \"output\" to convert pipelines with multiple schemas.';\n      expect(() =>\n        convertSchema({}, schema, undefined, createContext())\n      ).toThrowError(error);\n      expect(() =>\n        convertSchema({}, schema, { errorMode: 'throw' }, createContext())\n      ).toThrowError(error);\n      expect(() =>\n        convertSchema({}, schema, { typeMode: 'ignore' }, createContext())\n      ).toThrowError(error);\n    });\n\n    test('should warn error for multiple schemas in pipe', () => {\n      const schema = v.pipe(\n        v.nullable(v.string()),\n        v.string(),\n        v.description('foo')\n      );\n      const error =\n        'Set the \"typeMode\" config to \"input\" or \"output\" to convert pipelines with multiple schemas.';\n      expect(\n        convertSchema({}, schema, { errorMode: 'warn' }, createContext())\n      ).toStrictEqual({\n        anyOf: [{ type: 'string' }, { type: 'null' }],\n        type: 'string',\n        description: 'foo',\n      });\n      expect(console.warn).toHaveBeenLastCalledWith(error);\n      expect(\n        convertSchema(\n          {},\n          schema,\n          { errorMode: 'warn', typeMode: 'ignore' },\n          createContext()\n        )\n      ).toStrictEqual({\n        anyOf: [{ type: 'string' }, { type: 'null' }],\n        type: 'string',\n        description: 'foo',\n      });\n      expect(console.warn).toHaveBeenLastCalledWith(error);\n    });\n\n    // Hint: This schema is intentionally complex to test the conversion of nested pipelines\n    const inputOutputSchema = v.pipe(\n      v.pipe(\n        v.pipe(v.string(), v.nonEmpty()),\n        v.decimal(),\n        v.transform(Number),\n        v.pipe(v.number(), v.minValue(0))\n      ),\n      v.maxValue(100)\n    );\n\n    test('should convert only input type of pipeline', () => {\n      expect(\n        convertSchema(\n          {},\n          // @ts-expect-error\n          inputOutputSchema,\n          { typeMode: 'input' },\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'string',\n        minLength: 1,\n        pattern: '^[+-]?(?:\\\\d*\\\\.)?\\\\d+$',\n      });\n    });\n\n    test('should convert only output type of pipeline', () => {\n      expect(\n        convertSchema(\n          {},\n          // @ts-expect-error\n          inputOutputSchema,\n          { typeMode: 'output' },\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'number',\n        minimum: 0,\n        maximum: 100,\n      });\n    });\n  });\n\n  describe('primitive schemas', () => {\n    test('should convert boolean schema', () => {\n      expect(\n        convertSchema({}, v.boolean(), undefined, createContext())\n      ).toStrictEqual({\n        type: 'boolean',\n      });\n    });\n\n    test('should convert null schema', () => {\n      expect(\n        convertSchema({}, v.null(), undefined, createContext())\n      ).toStrictEqual({\n        type: 'null',\n      });\n    });\n\n    test('should convert null schema for openapi-3.0', () => {\n      expect(\n        convertSchema({}, v.null_(), { target: 'openapi-3.0' }, createContext())\n      ).toStrictEqual({\n        enum: [null],\n      });\n    });\n\n    test('should convert number schema', () => {\n      expect(\n        convertSchema({}, v.number(), undefined, createContext())\n      ).toStrictEqual({\n        type: 'number',\n      });\n    });\n\n    test('should convert string schema', () => {\n      expect(\n        convertSchema({}, v.string(), undefined, createContext())\n      ).toStrictEqual({\n        type: 'string',\n      });\n    });\n  });\n\n  describe('complex schemas', () => {\n    test('should convert array schema', () => {\n      expect(\n        convertSchema({}, v.array(v.number()), undefined, createContext())\n      ).toStrictEqual({\n        type: 'array',\n        items: { type: 'number' },\n      });\n    });\n\n    test('should convert tuple schema', () => {\n      expect(\n        convertSchema(\n          {},\n          v.tuple([v.number(), v.string()]),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'array',\n        items: [{ type: 'number' }, { type: 'string' }],\n        minItems: 2,\n      });\n    });\n\n    test('should convert tuple schema for draft-2020-12', () => {\n      expect(\n        convertSchema(\n          {},\n          v.tuple([v.string(), v.number()]),\n          { target: 'draft-2020-12' },\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'array',\n        prefixItems: [{ type: 'string' }, { type: 'number' }],\n        minItems: 2,\n      });\n    });\n\n    test('should convert tuple schema for openapi-3.0', () => {\n      expect(\n        convertSchema(\n          {},\n          v.tuple([v.string(), v.number()]),\n          { target: 'openapi-3.0' },\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'array',\n        items: {\n          anyOf: [{ type: 'string' }, { type: 'number' }],\n        },\n        minItems: 2,\n        maxItems: 2,\n      });\n    });\n\n    test('should convert tuple with rest schema', () => {\n      expect(\n        convertSchema(\n          {},\n          v.tupleWithRest([v.number(), v.string()], v.boolean()),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'array',\n        items: [{ type: 'number' }, { type: 'string' }],\n        minItems: 2,\n        additionalItems: { type: 'boolean' },\n      });\n    });\n\n    test('should convert tuple with rest schema for draft-2020-12', () => {\n      expect(\n        convertSchema(\n          {},\n          v.tupleWithRest([v.string()], v.number()),\n          { target: 'draft-2020-12' },\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'array',\n        prefixItems: [{ type: 'string' }],\n        minItems: 1,\n        items: { type: 'number' },\n      });\n    });\n\n    test('should convert tuple with rest schema for openapi-3.0', () => {\n      expect(\n        convertSchema(\n          {},\n          v.tupleWithRest([v.string()], v.number()),\n          { target: 'openapi-3.0' },\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'array',\n        items: {\n          anyOf: [{ type: 'string' }, { type: 'number' }],\n        },\n        minItems: 1,\n      });\n    });\n\n    test('should convert loose tuple schema', () => {\n      expect(\n        convertSchema(\n          {},\n          v.looseTuple([v.number(), v.string()]),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'array',\n        items: [{ type: 'number' }, { type: 'string' }],\n        minItems: 2,\n      });\n    });\n\n    test('should convert loose tuple schema for draft-2020-12', () => {\n      expect(\n        convertSchema(\n          {},\n          v.looseTuple([v.string(), v.number()]),\n          { target: 'draft-2020-12' },\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'array',\n        prefixItems: [{ type: 'string' }, { type: 'number' }],\n        minItems: 2,\n      });\n    });\n\n    test('should convert loose tuple schema for openapi-3.0', () => {\n      expect(\n        convertSchema(\n          {},\n          v.looseTuple([v.string(), v.number()]),\n          { target: 'openapi-3.0' },\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'array',\n        items: {\n          anyOf: [{ type: 'string' }, { type: 'number' }],\n        },\n        minItems: 2,\n      });\n    });\n\n    test('should convert strict tuple schema', () => {\n      expect(\n        convertSchema(\n          {},\n          v.strictTuple([v.number(), v.string()]),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'array',\n        items: [{ type: 'number' }, { type: 'string' }],\n        minItems: 2,\n        additionalItems: false,\n      });\n    });\n\n    test('should convert strict tuple schema for draft-2020-12', () => {\n      expect(\n        convertSchema(\n          {},\n          v.strictTuple([v.string(), v.boolean()]),\n          { target: 'draft-2020-12' },\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'array',\n        prefixItems: [{ type: 'string' }, { type: 'boolean' }],\n        minItems: 2,\n        items: false,\n      });\n    });\n\n    test('should convert strict tuple schema for openapi-3.0', () => {\n      expect(\n        convertSchema(\n          {},\n          v.strictTuple([v.string(), v.boolean()]),\n          { target: 'openapi-3.0' },\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'array',\n        items: {\n          anyOf: [{ type: 'string' }, { type: 'boolean' }],\n        },\n        minItems: 2,\n        maxItems: 2,\n      });\n    });\n\n    test('should convert object schema', () => {\n      expect(\n        convertSchema(\n          {},\n          v.object({\n            key1: v.string(),\n            key2: v.optional(v.string()),\n            key3: v.boolean(),\n            key4: v.exactOptional(v.boolean()),\n            key5: v.number(),\n            key6: v.nullish(v.number()),\n          }),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'object',\n        properties: {\n          key1: { type: 'string' },\n          key2: { type: 'string' },\n          key3: { type: 'boolean' },\n          key4: { type: 'boolean' },\n          key5: { type: 'number' },\n          key6: { anyOf: [{ type: 'number' }, { type: 'null' }] },\n        },\n        required: ['key1', 'key3', 'key5'],\n      });\n    });\n\n    test('should convert object with rest schema', () => {\n      expect(\n        convertSchema(\n          {},\n          v.objectWithRest(\n            {\n              key1: v.string(),\n              key2: v.optional(v.string()),\n              key3: v.boolean(),\n              key4: v.exactOptional(v.boolean()),\n              key5: v.number(),\n              key6: v.nullish(v.number()),\n            },\n            v.number()\n          ),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'object',\n        properties: {\n          key1: { type: 'string' },\n          key2: { type: 'string' },\n          key3: { type: 'boolean' },\n          key4: { type: 'boolean' },\n          key5: { type: 'number' },\n          key6: { anyOf: [{ type: 'number' }, { type: 'null' }] },\n        },\n        required: ['key1', 'key3', 'key5'],\n        additionalProperties: { type: 'number' },\n      });\n    });\n\n    test('should convert loose object schema', () => {\n      expect(\n        convertSchema(\n          {},\n          v.looseObject({\n            key1: v.string(),\n            key2: v.optional(v.string()),\n            key3: v.boolean(),\n            key4: v.exactOptional(v.boolean()),\n            key5: v.number(),\n            key6: v.nullish(v.number()),\n          }),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'object',\n        properties: {\n          key1: { type: 'string' },\n          key2: { type: 'string' },\n          key3: { type: 'boolean' },\n          key4: { type: 'boolean' },\n          key5: { type: 'number' },\n          key6: { anyOf: [{ type: 'number' }, { type: 'null' }] },\n        },\n        required: ['key1', 'key3', 'key5'],\n      });\n    });\n\n    test('should convert strict object schema', () => {\n      expect(\n        convertSchema(\n          {},\n          v.strictObject({\n            key1: v.string(),\n            key2: v.optional(v.string()),\n            key3: v.boolean(),\n            key4: v.exactOptional(v.boolean()),\n            key5: v.number(),\n            key6: v.nullish(v.number()),\n          }),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'object',\n        properties: {\n          key1: { type: 'string' },\n          key2: { type: 'string' },\n          key3: { type: 'boolean' },\n          key4: { type: 'boolean' },\n          key5: { type: 'number' },\n          key6: { anyOf: [{ type: 'number' }, { type: 'null' }] },\n        },\n        required: ['key1', 'key3', 'key5'],\n        additionalProperties: false,\n      });\n    });\n\n    test('should convert record schema', () => {\n      expect(\n        convertSchema(\n          {},\n          v.record(v.string(), v.number()),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'object',\n        propertyNames: { type: 'string' },\n        additionalProperties: { type: 'number' },\n      });\n    });\n\n    test('should convert record schema for openapi-3.0', () => {\n      expect(\n        convertSchema(\n          {},\n          v.record(v.string(), v.number()),\n          { target: 'openapi-3.0' },\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'object',\n        additionalProperties: { type: 'number' },\n      });\n    });\n\n    test('should convert record schema with pipe in key', () => {\n      expect(\n        convertSchema(\n          {},\n          v.record(v.pipe(v.string(), v.email()), v.number()),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'object',\n        propertyNames: { type: 'string', format: 'email' },\n        additionalProperties: { type: 'number' },\n      });\n    });\n\n    test('should throw error for record with piped key schema for openapi-3.0', () => {\n      const schema = v.record(v.pipe(v.string(), v.email()), v.number());\n      const error =\n        'The \"record\" schema with a schema for the key that contains a \"pipe\" cannot be converted to JSON Schema.';\n      expect(() =>\n        convertSchema({}, schema, { target: 'openapi-3.0' }, createContext())\n      ).toThrowError(error);\n      expect(() =>\n        convertSchema(\n          {},\n          schema,\n          { target: 'openapi-3.0', errorMode: 'throw' },\n          createContext()\n        )\n      ).toThrowError(error);\n    });\n\n    test('should throw error for record schema with non-string schema key', () => {\n      // @ts-expect-error\n      const schema = v.record(v.number(), v.number());\n      const error =\n        'The \"record\" schema with the \"number\" schema for the key cannot be converted to JSON Schema.';\n      expect(() =>\n        convertSchema({}, schema, undefined, createContext())\n      ).toThrowError(error);\n      expect(() =>\n        convertSchema({}, schema, { errorMode: 'throw' }, createContext())\n      ).toThrowError(error);\n    });\n\n    test('should warn error for record schema with non-string schema key', () => {\n      // @ts-expect-error\n      const schema = v.record(v.pipe(v.number(), v.minValue(10)), v.number());\n      expect(\n        convertSchema({}, schema, { errorMode: 'warn' }, createContext())\n      ).toStrictEqual({\n        type: 'object',\n        propertyNames: { type: 'number', minimum: 10 },\n        additionalProperties: { type: 'number' },\n      });\n      expect(console.warn).toHaveBeenLastCalledWith(\n        'The \"record\" schema with the \"number\" schema for the key cannot be converted to JSON Schema.'\n      );\n    });\n  });\n\n  describe('special schemas', () => {\n    test('should convert any schema', () => {\n      expect(\n        convertSchema({}, v.any(), undefined, createContext())\n      ).toStrictEqual({});\n    });\n\n    test('should convert unknown schema', () => {\n      expect(\n        convertSchema({}, v.unknown(), undefined, createContext())\n      ).toStrictEqual({});\n    });\n\n    test('should convert nullable schema without default', () => {\n      expect(\n        convertSchema({}, v.nullable(v.string()), undefined, createContext())\n      ).toStrictEqual({\n        anyOf: [{ type: 'string' }, { type: 'null' }],\n      });\n    });\n\n    test('should convert nullable schema for openapi-3.0', () => {\n      expect(\n        convertSchema(\n          {},\n          v.nullable(v.string()),\n          { target: 'openapi-3.0' },\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'string',\n        nullable: true,\n      });\n    });\n\n    test('should convert nullable schema with default for openapi-3.0', () => {\n      expect(\n        convertSchema(\n          {},\n          v.nullable(v.string(), 'foo'),\n          { target: 'openapi-3.0' },\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'string',\n        nullable: true,\n        default: 'foo',\n      });\n    });\n\n    test('should convert nullable schema with default', () => {\n      expect(\n        convertSchema(\n          {},\n          v.nullable(v.string(), 'foo'),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        anyOf: [{ type: 'string' }, { type: 'null' }],\n        default: 'foo',\n      });\n      expect(\n        convertSchema(\n          {},\n          v.nullable(v.string(), () => 'foo'),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        anyOf: [{ type: 'string' }, { type: 'null' }],\n        default: 'foo',\n      });\n    });\n\n    test('should convert nullish schema without default', () => {\n      expect(\n        convertSchema({}, v.nullish(v.string()), undefined, createContext())\n      ).toStrictEqual({\n        anyOf: [{ type: 'string' }, { type: 'null' }],\n      });\n    });\n\n    test('should convert nullish schema for openapi-3.0', () => {\n      expect(\n        convertSchema(\n          {},\n          v.nullish(v.number()),\n          { target: 'openapi-3.0' },\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'number',\n        nullable: true,\n      });\n    });\n\n    test('should convert nullish schema with default for openapi-3.0', () => {\n      expect(\n        convertSchema(\n          {},\n          v.nullish(v.number(), 42),\n          { target: 'openapi-3.0' },\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'number',\n        nullable: true,\n        default: 42,\n      });\n    });\n\n    test('should convert nullish schema with default', () => {\n      expect(\n        convertSchema(\n          {},\n          v.nullish(v.string(), 'foo'),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        anyOf: [{ type: 'string' }, { type: 'null' }],\n        default: 'foo',\n      });\n      expect(\n        convertSchema(\n          {},\n          v.nullable(v.string(), () => 'foo'),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        anyOf: [{ type: 'string' }, { type: 'null' }],\n        default: 'foo',\n      });\n    });\n\n    test('should convert never schema', () => {\n      expect(\n        convertSchema({}, v.never(), undefined, createContext())\n      ).toStrictEqual({\n        not: {},\n      });\n    });\n\n    test('should convert exact optional schema without default', () => {\n      expect(\n        convertSchema(\n          {},\n          v.exactOptional(v.string()),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'string',\n      });\n    });\n\n    test('should convert exact optional schema with default', () => {\n      expect(\n        convertSchema(\n          {},\n          v.exactOptional(v.string(), 'foo'),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'string',\n        default: 'foo',\n      });\n      expect(\n        convertSchema(\n          {},\n          v.exactOptional(v.string(), () => 'foo'),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'string',\n        default: 'foo',\n      });\n    });\n\n    test('should convert optional schema without default', () => {\n      expect(\n        convertSchema({}, v.optional(v.string()), undefined, createContext())\n      ).toStrictEqual({\n        type: 'string',\n      });\n    });\n\n    test('should convert optional schema with default', () => {\n      expect(\n        convertSchema(\n          {},\n          v.optional(v.string(), 'foo'),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'string',\n        default: 'foo',\n      });\n      expect(\n        convertSchema(\n          {},\n          v.optional(v.string(), () => 'foo'),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'string',\n        default: 'foo',\n      });\n    });\n\n    test('should convert undefinedable schema without default', () => {\n      expect(\n        convertSchema(\n          {},\n          v.undefinedable(v.string()),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'string',\n      });\n    });\n\n    test('should convert undefinedable schema with default', () => {\n      expect(\n        convertSchema(\n          {},\n          v.undefinedable(v.string(), 'foo'),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'string',\n        default: 'foo',\n      });\n      expect(\n        convertSchema(\n          {},\n          v.undefinedable(v.string(), () => 'foo'),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'string',\n        default: 'foo',\n      });\n    });\n\n    test('should convert supported literal schema', () => {\n      expect(\n        convertSchema({}, v.literal(true), undefined, createContext())\n      ).toStrictEqual({\n        const: true,\n      });\n      expect(\n        convertSchema({}, v.literal(123), undefined, createContext())\n      ).toStrictEqual({\n        const: 123,\n      });\n      expect(\n        convertSchema({}, v.literal('foo'), undefined, createContext())\n      ).toStrictEqual({\n        const: 'foo',\n      });\n    });\n\n    test('should convert literal schema for openapi-3.0', () => {\n      expect(\n        convertSchema(\n          {},\n          v.literal('test'),\n          { target: 'openapi-3.0' },\n          createContext()\n        )\n      ).toStrictEqual({\n        enum: ['test'],\n      });\n      expect(\n        convertSchema(\n          {},\n          v.literal(42),\n          { target: 'openapi-3.0' },\n          createContext()\n        )\n      ).toStrictEqual({\n        enum: [42],\n      });\n      expect(\n        convertSchema(\n          {},\n          v.literal(true),\n          { target: 'openapi-3.0' },\n          createContext()\n        )\n      ).toStrictEqual({\n        enum: [true],\n      });\n    });\n\n    test('should throw error for unsupported literal schema', () => {\n      const schema1 = v.literal(123n);\n      const schema2 = v.literal(Symbol('foo'));\n      const error = 'The value of the \"literal\" schema is not JSON compatible.';\n      expect(() =>\n        convertSchema({}, schema1, undefined, createContext())\n      ).toThrowError(error);\n      expect(() =>\n        convertSchema({}, schema1, { errorMode: 'throw' }, createContext())\n      ).toThrowError(error);\n      expect(() =>\n        convertSchema({}, schema2, undefined, createContext())\n      ).toThrowError(error);\n      expect(() =>\n        convertSchema({}, schema2, { errorMode: 'throw' }, createContext())\n      ).toThrowError(error);\n    });\n\n    test('should warn error for unsupported literal schema', () => {\n      expect(\n        convertSchema(\n          {},\n          v.literal(123n),\n          { errorMode: 'warn' },\n          createContext()\n        )\n      ).toStrictEqual({\n        const: 123n,\n      });\n      expect(console.warn).toHaveBeenLastCalledWith(\n        'The value of the \"literal\" schema is not JSON compatible.'\n      );\n      const symbol = Symbol('foo');\n      expect(\n        convertSchema(\n          {},\n          v.literal(symbol),\n          { errorMode: 'warn' },\n          createContext()\n        )\n      ).toStrictEqual({\n        const: symbol,\n      });\n      expect(console.warn).toHaveBeenLastCalledWith(\n        'The value of the \"literal\" schema is not JSON compatible.'\n      );\n    });\n\n    test('should convert enum schema', () => {\n      enum TestEnum {\n        KEY1,\n        KEY2,\n        KEY3 = 'foo',\n        KEY4 = 123,\n      }\n      expect(\n        convertSchema(\n          {},\n          // @ts-expect-error\n          v.enum(TestEnum),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        type: ['string', 'number'],\n        enum: [0, 1, 'foo', 123],\n      });\n\n      enum TestOnlyNumbersEnum {\n        KEY1,\n        KEY2,\n      }\n      expect(\n        convertSchema(\n          {},\n          // @ts-expect-error\n          v.enum(TestOnlyNumbersEnum),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'number',\n        enum: [0, 1],\n      });\n\n      enum TestOnlyStringsEnum {\n        KEY1 = 'key1',\n        KEY2 = 'key2',\n      }\n      expect(\n        convertSchema(\n          {},\n          // @ts-expect-error\n          v.enum(TestOnlyStringsEnum),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'string',\n        enum: ['key1', 'key2'],\n      });\n    });\n\n    test('should convert enum schema for openapi-3.0', () => {\n      enum TestEnum {\n        KEY1,\n        KEY2,\n        KEY3 = 'foo',\n        KEY4 = 123,\n      }\n      expect(\n        convertSchema(\n          {},\n          // @ts-expect-error\n          v.enum(TestEnum),\n          { target: 'openapi-3.0' },\n          createContext()\n        )\n      ).toStrictEqual({\n        enum: [0, 1, 'foo', 123],\n      });\n\n      enum TestOnlyNumbersEnum {\n        KEY1,\n        KEY2,\n      }\n      expect(\n        convertSchema(\n          {},\n          // @ts-expect-error\n          v.enum(TestOnlyNumbersEnum),\n          { target: 'openapi-3.0' },\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'number',\n        enum: [0, 1],\n      });\n\n      enum TestOnlyStringsEnum {\n        KEY1 = 'key1',\n        KEY2 = 'key2',\n      }\n      expect(\n        convertSchema(\n          {},\n          // @ts-expect-error\n          v.enum(TestOnlyStringsEnum),\n          { target: 'openapi-3.0' },\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'string',\n        enum: ['key1', 'key2'],\n      });\n    });\n\n    test('should convert supported picklist schema', () => {\n      expect(\n        convertSchema(\n          {},\n          v.picklist(['foo', 123, 'bar', 456]),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        type: ['string', 'number'],\n        enum: ['foo', 123, 'bar', 456],\n      });\n\n      expect(\n        convertSchema(\n          {},\n          v.picklist(['foo', 'bar']),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'string',\n        enum: ['foo', 'bar'],\n      });\n\n      expect(\n        convertSchema({}, v.picklist([123, 456]), undefined, createContext())\n      ).toStrictEqual({\n        type: 'number',\n        enum: [123, 456],\n      });\n    });\n\n    test('should convert supported picklist schema for openapi-3.0', () => {\n      expect(\n        convertSchema(\n          {},\n          v.picklist(['foo', 123, 'bar', 456]),\n          { target: 'openapi-3.0' },\n          createContext()\n        )\n      ).toStrictEqual({\n        enum: ['foo', 123, 'bar', 456],\n      });\n\n      expect(\n        convertSchema(\n          {},\n          v.picklist(['foo', 'bar']),\n          { target: 'openapi-3.0' },\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'string',\n        enum: ['foo', 'bar'],\n      });\n\n      expect(\n        convertSchema(\n          {},\n          v.picklist([123, 456]),\n          { target: 'openapi-3.0' },\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'number',\n        enum: [123, 456],\n      });\n    });\n\n    test('should throw error for unsupported picklist schema', () => {\n      const schema = v.picklist([123n, 456n]);\n      const error =\n        'An option of the \"picklist\" schema is not JSON compatible.';\n      expect(() =>\n        convertSchema({}, schema, undefined, createContext())\n      ).toThrowError(error);\n      expect(() =>\n        convertSchema({}, schema, { errorMode: 'throw' }, createContext())\n      ).toThrowError(error);\n    });\n\n    test('should warn error for unsupported picklist schema', () => {\n      expect(\n        convertSchema(\n          {},\n          v.picklist([123n, 456n]),\n          { errorMode: 'warn' },\n          createContext()\n        )\n      ).toStrictEqual({ enum: [123n, 456n] });\n      expect(console.warn).toHaveBeenLastCalledWith(\n        'An option of the \"picklist\" schema is not JSON compatible.'\n      );\n    });\n\n    test('should convert union schema', () => {\n      expect(\n        convertSchema(\n          {},\n          v.union([v.string(), v.boolean()]),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        anyOf: [{ type: 'string' }, { type: 'boolean' }],\n      });\n    });\n\n    test('should convert variant schema', () => {\n      expect(\n        convertSchema(\n          {},\n          v.variant('type', [\n            v.object({ type: v.literal('foo'), foo: v.string() }),\n            v.object({ type: v.literal('bar'), bar: v.number() }),\n          ]),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        oneOf: [\n          {\n            type: 'object',\n            properties: {\n              type: { const: 'foo' },\n              foo: { type: 'string' },\n            },\n            required: ['type', 'foo'],\n          },\n          {\n            type: 'object',\n            properties: {\n              type: { const: 'bar' },\n              bar: { type: 'number' },\n            },\n            required: ['type', 'bar'],\n          },\n        ],\n      });\n    });\n\n    test('should convert intersect schema', () => {\n      expect(\n        convertSchema(\n          {},\n          v.intersect([\n            v.object({ foo: v.string() }),\n            v.object({ bar: v.number() }),\n          ]),\n          undefined,\n          createContext()\n        )\n      ).toStrictEqual({\n        allOf: [\n          {\n            type: 'object',\n            properties: {\n              foo: { type: 'string' },\n            },\n            required: ['foo'],\n          },\n          {\n            type: 'object',\n            properties: {\n              bar: { type: 'number' },\n            },\n            required: ['bar'],\n          },\n        ],\n      });\n    });\n\n    test('should convert simple lazy schema without definitions', () => {\n      const stringSchema = v.string();\n      const lazyGetter = () => stringSchema;\n      const context = createContext();\n      expect(\n        convertSchema({}, v.lazy(lazyGetter), undefined, context)\n      ).toStrictEqual({ $ref: '#/$defs/0' });\n      expect(context).toStrictEqual({\n        definitions: { '0': { type: 'string' } },\n        referenceMap: new Map().set(stringSchema, '0'),\n        getterMap: new Map().set(lazyGetter, stringSchema),\n      });\n    });\n\n    test('should convert simple lazy schema with definitions', () => {\n      const stringSchema = v.string();\n      const lazyGetter = () => stringSchema;\n      const context = createContext({\n        definitions: { testSchema: { type: 'string' } },\n        referenceMap: new Map().set(stringSchema, 'stringSchema'),\n      });\n      expect(\n        convertSchema(\n          {},\n          v.lazy(lazyGetter),\n          { definitions: { stringSchema } },\n          context\n        )\n      ).toStrictEqual({ $ref: '#/$defs/stringSchema' });\n      expect(context).toStrictEqual({\n        definitions: { testSchema: { type: 'string' } },\n        referenceMap: new Map().set(stringSchema, 'stringSchema'),\n        getterMap: new Map().set(lazyGetter, stringSchema),\n      });\n    });\n\n    test('should convert recursive lazy schema with static getter', () => {\n      // Returns a static reference that never changes\n      const lazyGetter = () => nodeSchema;\n      const nodeSchema: v.GenericSchema = v.object({\n        node: v.optional(v.lazy(lazyGetter)),\n      });\n      const context = createContext();\n      expect(\n        convertSchema(\n          {},\n          // @ts-expect-error\n          nodeSchema,\n          undefined,\n          context\n        )\n      ).toStrictEqual({\n        type: 'object',\n        properties: { node: { $ref: '#/$defs/1' } },\n        required: [],\n      });\n      expect(context).toStrictEqual({\n        definitions: {\n          '1': {\n            type: 'object',\n            properties: { node: { $ref: '#/$defs/1' } },\n            required: [],\n          },\n        },\n        referenceMap: new Map().set(nodeSchema, '1'),\n        getterMap: new Map().set(lazyGetter, nodeSchema),\n      });\n    });\n\n    test('should convert recursive lazy schema with dynamic getter', () => {\n      // Returns a dynamic reference that always changes\n      const lazyGetter = () => v.nullable(nodeSchema);\n      const nodeSchema: v.GenericSchema = v.object({\n        node: v.lazy(lazyGetter),\n      });\n      const context = createContext();\n      expect(\n        convertSchema(\n          {},\n          // @ts-expect-error\n          nodeSchema,\n          undefined,\n          context\n        )\n      ).toStrictEqual({\n        type: 'object',\n        properties: { node: { $ref: '#/$defs/2' } },\n        required: ['node'],\n      });\n      expect(context).toStrictEqual({\n        definitions: {\n          '2': {\n            anyOf: [\n              {\n                type: 'object',\n                properties: { node: { $ref: '#/$defs/2' } },\n                required: ['node'],\n              },\n              { type: 'null' },\n            ],\n          },\n        },\n        referenceMap: new Map().set(expect.any(Object), '2'),\n        getterMap: new Map().set(lazyGetter, expect.any(Object)),\n      });\n    });\n\n    test('should convert simple lazy schema without custom reference ID', () => {\n      const wrappedSchema = v.string();\n      expect(\n        convertSchema(\n          {},\n          v.lazy(() => wrappedSchema),\n          {\n            overrideRef({ valibotSchema }) {\n              if (valibotSchema === wrappedSchema) {\n                return '#/$custom/reference';\n              }\n            },\n          },\n          createContext()\n        )\n      ).toStrictEqual({ $ref: '#/$custom/reference' });\n    });\n  });\n\n  describe('other schemas', () => {\n    test('should throw error for unsupported file schema', () => {\n      const schema = v.file();\n      const error = 'The \"file\" schema cannot be converted to JSON Schema.';\n      expect(() =>\n        convertSchema(\n          {},\n          // @ts-expect-error\n          schema,\n          undefined,\n          createContext()\n        )\n      ).toThrowError(error);\n      expect(() =>\n        convertSchema(\n          {},\n          // @ts-expect-error\n          schema,\n          { errorMode: 'throw' },\n          createContext()\n        )\n      ).toThrowError(error);\n    });\n\n    test('should warn error for unsupported file schema', () => {\n      expect(\n        // @ts-expect-error\n        convertSchema({}, v.file(), { errorMode: 'warn' }, createContext())\n      ).toStrictEqual({});\n      expect(console.warn).toHaveBeenLastCalledWith(\n        'The \"file\" schema cannot be converted to JSON Schema.'\n      );\n    });\n  });\n\n  describe('custom config', () => {\n    test('should override JSON Schema and suppress error', () => {\n      expect(() =>\n        convertSchema(\n          {},\n          // @ts-expect-error\n          v.date(),\n          { overrideSchema: () => null },\n          createContext()\n        )\n      ).toThrowError('The \"date\" schema cannot be converted to JSON Schema.');\n      expect(\n        convertSchema(\n          {},\n          // @ts-expect-error\n          v.date(),\n          {\n            overrideSchema({ valibotSchema }) {\n              if (valibotSchema.type === 'date') {\n                return { type: 'string', format: 'date-time' };\n              }\n            },\n          },\n          createContext()\n        )\n      ).toStrictEqual({\n        type: 'string',\n        format: 'date-time',\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "packages/to-json-schema/src/converters/convertSchema/convertSchema.ts",
    "content": "import * as v from 'valibot';\nimport type {\n  ConversionConfig,\n  ConversionContext,\n  JsonSchema,\n} from '../../types/index.ts';\nimport { addError, handleError } from '../../utils/index.ts';\nimport { convertAction } from '../convertAction/index.ts';\n\n/**\n * Schema type.\n */\ntype Schema =\n  | v.AnySchema\n  | v.UnknownSchema\n  | v.NullableSchema<\n      v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>,\n      v.Default<v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>, null>\n    >\n  | v.NullishSchema<\n      v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>,\n      v.Default<\n        v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>,\n        null | undefined\n      >\n    >\n  | v.NullSchema<v.ErrorMessage<v.NullIssue> | undefined>\n  | v.StringSchema<v.ErrorMessage<v.StringIssue> | undefined>\n  | v.BooleanSchema<v.ErrorMessage<v.BooleanIssue> | undefined>\n  | v.NumberSchema<v.ErrorMessage<v.NumberIssue> | undefined>\n  | v.LiteralSchema<v.Literal, v.ErrorMessage<v.LiteralIssue> | undefined>\n  | v.PicklistSchema<\n      v.PicklistOptions,\n      v.ErrorMessage<v.PicklistIssue> | undefined\n    >\n  | v.EnumSchema<v.Enum, v.ErrorMessage<v.EnumIssue> | undefined>\n  | v.VariantSchema<\n      string,\n      v.VariantOptions<string>,\n      v.ErrorMessage<v.VariantIssue> | undefined\n    >\n  | v.UnionSchema<\n      v.UnionOptions,\n      v.ErrorMessage<v.UnionIssue<v.BaseIssue<unknown>>> | undefined\n    >\n  | v.IntersectSchema<\n      v.IntersectOptions,\n      v.ErrorMessage<v.IntersectIssue> | undefined\n    >\n  | v.ObjectSchema<v.ObjectEntries, v.ErrorMessage<v.ObjectIssue> | undefined>\n  | v.ObjectWithRestSchema<\n      v.ObjectEntries,\n      v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>,\n      v.ErrorMessage<v.ObjectWithRestIssue> | undefined\n    >\n  | v.ExactOptionalSchema<\n      v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>,\n      v.Default<v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>, undefined>\n    >\n  | v.OptionalSchema<\n      v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>,\n      v.Default<v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>, undefined>\n    >\n  | v.UndefinedableSchema<\n      v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>,\n      v.Default<v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>, undefined>\n    >\n  | v.StrictObjectSchema<\n      v.ObjectEntries,\n      v.ErrorMessage<v.StrictObjectIssue> | undefined\n    >\n  | v.LooseObjectSchema<\n      v.ObjectEntries,\n      v.ErrorMessage<v.LooseObjectIssue> | undefined\n    >\n  | v.RecordSchema<\n      v.BaseSchema<string, string | number | symbol, v.BaseIssue<unknown>>,\n      v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>,\n      v.ErrorMessage<v.RecordIssue> | undefined\n    >\n  | v.TupleSchema<v.TupleItems, v.ErrorMessage<v.TupleIssue> | undefined>\n  | v.TupleWithRestSchema<\n      v.TupleItems,\n      v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>,\n      v.ErrorMessage<v.TupleWithRestIssue> | undefined\n    >\n  | v.LooseTupleSchema<\n      v.TupleItems,\n      v.ErrorMessage<v.LooseTupleIssue> | undefined\n    >\n  | v.StrictTupleSchema<\n      v.TupleItems,\n      v.ErrorMessage<v.StrictTupleIssue> | undefined\n    >\n  | v.ArraySchema<\n      v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>,\n      v.ErrorMessage<v.ArrayIssue> | undefined\n    >\n  | v.NeverSchema<v.ErrorMessage<v.NeverIssue> | undefined>\n  | v.LazySchema<v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>>;\n\n/**\n * Pipe type.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Pipe = readonly (Schema | v.PipeAction<any, any, v.BaseIssue<unknown>>)[];\n\n/**\n * Schema or pipe type.\n */\ntype SchemaOrPipe = Schema | v.SchemaWithPipe<readonly [Schema, ...Pipe]>;\n\n/**\n * Flattens a Valibot pipe by recursively expanding nested pipes.\n *\n * @param pipe The pipeline to flatten.\n *\n * @returns A flat pipeline.\n */\nfunction flattenPipe(pipe: Pipe): Pipe {\n  return pipe.flatMap((item) =>\n    'pipe' in item ? flattenPipe(item.pipe as Pipe) : item\n  );\n}\n\n// Create global reference count\nlet refCount = 0;\n\n/**\n * Converts any supported Valibot schema to the JSON Schema format.\n *\n * @param jsonSchema The JSON Schema object.\n * @param valibotSchema The Valibot schema object.\n * @param config The conversion configuration.\n * @param context The conversion context.\n * @param skipRef Whether to skip using a reference.\n *\n * @returns The converted JSON Schema.\n */\nexport function convertSchema(\n  jsonSchema: JsonSchema,\n  valibotSchema: SchemaOrPipe,\n  config: ConversionConfig | undefined,\n  context: ConversionContext,\n  skipRef = false\n): JsonSchema {\n  if (!skipRef) {\n    // If schema is in reference map use reference and skip conversion\n    const referenceId = context.referenceMap.get(valibotSchema);\n    if (referenceId) {\n      jsonSchema.$ref = `#/$defs/${referenceId}`;\n      if (config?.overrideRef) {\n        const refOverride = config.overrideRef({\n          ...context,\n          referenceId,\n          valibotSchema,\n          jsonSchema,\n        });\n        if (refOverride) {\n          jsonSchema.$ref = refOverride;\n        }\n      }\n      return jsonSchema;\n    }\n  }\n\n  // If it is schema with pipe, convert each item of pipe\n  if ('pipe' in valibotSchema) {\n    // Flatten pipe by expanding nested pipes\n    const flatPipe = flattenPipe(valibotSchema.pipe);\n\n    // Create start and stop index variables\n    let startIndex = 0;\n    let stopIndex = flatPipe.length - 1;\n\n    // If type mode is set to input, update stop index\n    if (config?.typeMode === 'input') {\n      const inputStopIndex = flatPipe\n        .slice(1)\n        .findIndex(\n          (item) =>\n            item.kind === 'schema' ||\n            (item.kind === 'transformation' &&\n              (item.type === 'find_item' ||\n                item.type === 'parse_json' ||\n                item.type === 'raw_transform' ||\n                item.type === 'reduce_items' ||\n                item.type === 'stringify_json' ||\n                item.type === 'to_bigint' ||\n                item.type === 'to_boolean' ||\n                item.type === 'to_date' ||\n                item.type === 'to_number' ||\n                item.type === 'to_string' ||\n                item.type === 'transform'))\n        );\n      if (inputStopIndex !== -1) {\n        stopIndex = inputStopIndex;\n      }\n\n      // Otherwise, if type mode is set to output, update start index\n    } else if (config?.typeMode === 'output') {\n      const outputStartIndex = flatPipe.findLastIndex(\n        (item) => item.kind === 'schema'\n      );\n      if (outputStartIndex !== -1) {\n        startIndex = outputStartIndex;\n      }\n    }\n\n    // Convert each item of pipe in specified range\n    for (let index = startIndex; index <= stopIndex; index++) {\n      // Get current pipe item\n      const valibotPipeItem = flatPipe[index];\n\n      // Convert Valibot schema or action to JSON Schema\n      if (valibotPipeItem.kind === 'schema') {\n        // Handle error if pipe contains another schema after start index\n        if (index > startIndex) {\n          handleError(\n            'Set the \"typeMode\" config to \"input\" or \"output\" to convert pipelines with multiple schemas.',\n            config\n          );\n        }\n\n        // Convert Valibot schema to JSON Schema\n        jsonSchema = convertSchema(\n          jsonSchema,\n          valibotPipeItem,\n          config,\n          context,\n          // Hint: We skip using a reference because subsequent pipe elements\n          // may change the JSON schema, which could result in invalid output\n          // if we were to use a reference.\n          true\n        );\n\n        // Convert Valibot action to JSON Schema\n      } else {\n        // @ts-expect-error\n        jsonSchema = convertAction(jsonSchema, valibotPipeItem, config);\n      }\n    }\n\n    // Return converted JSON Schema\n    return jsonSchema;\n  }\n\n  // Create errors variable\n  let errors: [string, ...string[]] | undefined;\n\n  // Otherwise, convert individual schema to JSON Schema\n  switch (valibotSchema.type) {\n    // Primitive schemas\n\n    case 'boolean': {\n      jsonSchema.type = 'boolean';\n      break;\n    }\n\n    case 'null': {\n      if (config?.target === 'openapi-3.0') {\n        // Hint: OpenAPI 3.0 does not have a null type. That's why we're using\n        // an enum as a workaround.\n        jsonSchema.enum = [null];\n      } else {\n        jsonSchema.type = 'null';\n      }\n      break;\n    }\n\n    case 'number': {\n      jsonSchema.type = 'number';\n      break;\n    }\n\n    case 'string': {\n      jsonSchema.type = 'string';\n      break;\n    }\n\n    // Complex schemas\n\n    case 'array': {\n      jsonSchema.type = 'array';\n      jsonSchema.items = convertSchema(\n        {},\n        valibotSchema.item as SchemaOrPipe,\n        config,\n        context\n      );\n      break;\n    }\n\n    case 'tuple':\n    case 'tuple_with_rest':\n    case 'loose_tuple':\n    case 'strict_tuple': {\n      jsonSchema.type = 'array';\n\n      // If target is OpenAPI 3.0\n      if (config?.target === 'openapi-3.0') {\n        // Uses anyOf pattern with minItems/maxItems\n        jsonSchema.items = { anyOf: [] };\n        jsonSchema.minItems = valibotSchema.items.length;\n        for (const item of valibotSchema.items) {\n          // @ts-expect-error\n          jsonSchema.items.anyOf.push(\n            convertSchema({}, item as SchemaOrPipe, config, context)\n          );\n        }\n\n        // Add rest item to anyOf if present\n        if (valibotSchema.type === 'tuple_with_rest') {\n          // @ts-expect-error\n          jsonSchema.items.anyOf.push(\n            convertSchema(\n              {},\n              valibotSchema.rest as SchemaOrPipe,\n              config,\n              context\n            )\n          );\n\n          // Set maxItems for tuples with fixed length\n        } else if (\n          valibotSchema.type === 'strict_tuple' ||\n          valibotSchema.type === 'tuple'\n        ) {\n          jsonSchema.maxItems = valibotSchema.items.length;\n        }\n\n        // If target is draft-2020-12\n      } else if (config?.target === 'draft-2020-12') {\n        // Use prefixItems for draft-2020-12\n        jsonSchema.prefixItems = [];\n        jsonSchema.minItems = valibotSchema.items.length;\n        for (const item of valibotSchema.items) {\n          jsonSchema.prefixItems.push(\n            convertSchema({}, item as SchemaOrPipe, config, context)\n          );\n        }\n\n        // Add additional items depending on schema type\n        if (valibotSchema.type === 'tuple_with_rest') {\n          jsonSchema.items = convertSchema(\n            {},\n            valibotSchema.rest as SchemaOrPipe,\n            config,\n            context\n          );\n        } else if (valibotSchema.type === 'strict_tuple') {\n          jsonSchema.items = false;\n        }\n\n        // If target is draft-07 or unspecified\n      } else {\n        // Use items array for draft-07\n        jsonSchema.items = [];\n        jsonSchema.minItems = valibotSchema.items.length;\n        for (const item of valibotSchema.items) {\n          jsonSchema.items.push(\n            convertSchema({}, item as SchemaOrPipe, config, context)\n          );\n        }\n\n        // Add additional items depending on schema type\n        if (valibotSchema.type === 'tuple_with_rest') {\n          jsonSchema.additionalItems = convertSchema(\n            {},\n            valibotSchema.rest as SchemaOrPipe,\n            config,\n            context\n          );\n        } else if (valibotSchema.type === 'strict_tuple') {\n          jsonSchema.additionalItems = false;\n        }\n      }\n\n      break;\n    }\n\n    case 'object':\n    case 'object_with_rest':\n    case 'loose_object':\n    case 'strict_object': {\n      jsonSchema.type = 'object';\n\n      // Add JSON Schema of properties and mark required keys\n      jsonSchema.properties = {};\n      jsonSchema.required = [];\n      for (const key in valibotSchema.entries) {\n        const entry = valibotSchema.entries[key] as SchemaOrPipe;\n        jsonSchema.properties[key] = convertSchema({}, entry, config, context);\n        if (\n          entry.type !== 'exact_optional' &&\n          entry.type !== 'nullish' &&\n          entry.type !== 'optional'\n        ) {\n          jsonSchema.required.push(key);\n        }\n      }\n\n      // Add additional properties depending on schema type\n      if (valibotSchema.type === 'object_with_rest') {\n        jsonSchema.additionalProperties = convertSchema(\n          {},\n          valibotSchema.rest as SchemaOrPipe,\n          config,\n          context\n        );\n      } else if (valibotSchema.type === 'strict_object') {\n        jsonSchema.additionalProperties = false;\n      }\n\n      break;\n    }\n\n    case 'record': {\n      if (config?.target === 'openapi-3.0' && 'pipe' in valibotSchema.key) {\n        errors = addError(\n          errors,\n          'The \"record\" schema with a schema for the key that contains a \"pipe\" cannot be converted to JSON Schema.'\n        );\n      }\n      if (valibotSchema.key.type !== 'string') {\n        errors = addError(\n          errors,\n          `The \"record\" schema with the \"${valibotSchema.key.type}\" schema for the key cannot be converted to JSON Schema.`\n        );\n      }\n\n      jsonSchema.type = 'object';\n\n      // propertyNames is not supported in OpenAPI 3.0\n      if (config?.target !== 'openapi-3.0') {\n        jsonSchema.propertyNames = convertSchema(\n          {},\n          valibotSchema.key as SchemaOrPipe,\n          config,\n          context\n        );\n      }\n\n      jsonSchema.additionalProperties = convertSchema(\n        {},\n        valibotSchema.value as SchemaOrPipe,\n        config,\n        context\n      );\n      break;\n    }\n\n    // Special schemas\n\n    case 'any':\n    case 'unknown': {\n      break;\n    }\n\n    case 'never': {\n      jsonSchema.not = {};\n      break;\n    }\n\n    case 'nullable':\n    case 'nullish': {\n      // If target is OpenAPI 3.0 use nullable property\n      if (config?.target === 'openapi-3.0') {\n        const innerSchema = convertSchema(\n          {},\n          valibotSchema.wrapped as SchemaOrPipe,\n          config,\n          context\n        );\n        Object.assign(jsonSchema, innerSchema);\n        jsonSchema.nullable = true;\n\n        // Otherwise, use union of wrapped schema and null\n      } else {\n        jsonSchema.anyOf = [\n          convertSchema(\n            {},\n            valibotSchema.wrapped as SchemaOrPipe,\n            config,\n            context\n          ),\n          { type: 'null' },\n        ];\n      }\n\n      // Add default value to JSON Schema, if available\n      if (valibotSchema.default !== undefined) {\n        // @ts-expect-error\n        jsonSchema.default = v.getDefault(valibotSchema);\n      }\n\n      break;\n    }\n\n    case 'exact_optional':\n    case 'optional':\n    case 'undefinedable': {\n      // Convert wrapped schema to JSON Schema\n      jsonSchema = convertSchema(\n        jsonSchema,\n        valibotSchema.wrapped as SchemaOrPipe,\n        config,\n        context\n      );\n\n      // Add default value to JSON Schema, if available\n      if (valibotSchema.default !== undefined) {\n        // @ts-expect-error\n        jsonSchema.default = v.getDefault(valibotSchema);\n      }\n\n      break;\n    }\n\n    case 'literal': {\n      if (\n        typeof valibotSchema.literal !== 'boolean' &&\n        typeof valibotSchema.literal !== 'number' &&\n        typeof valibotSchema.literal !== 'string'\n      ) {\n        errors = addError(\n          errors,\n          'The value of the \"literal\" schema is not JSON compatible.'\n        );\n      }\n      if (config?.target === 'openapi-3.0') {\n        // Hint: OpenAPI 3.0 does not support const. That's why we use an enum instead.\n        // @ts-expect-error\n        jsonSchema.enum = [valibotSchema.literal];\n      } else {\n        // @ts-expect-error\n        jsonSchema.const = valibotSchema.literal;\n      }\n      break;\n    }\n\n    case 'enum': {\n      jsonSchema.enum = valibotSchema.options;\n      if (valibotSchema.options.every((option) => typeof option === 'string')) {\n        jsonSchema.type = 'string';\n      } else if (\n        valibotSchema.options.every((option) => typeof option === 'number')\n      ) {\n        jsonSchema.type = 'number';\n      } else if (config?.target !== 'openapi-3.0') {\n        // Hint: OpenAPI 3.0 does not support multi-type arrays.\n        jsonSchema.type = ['string', 'number'];\n      }\n      break;\n    }\n\n    case 'picklist': {\n      const hasInvalidOption = valibotSchema.options.some(\n        (option) => typeof option !== 'number' && typeof option !== 'string'\n      );\n      if (hasInvalidOption) {\n        errors = addError(\n          errors,\n          'An option of the \"picklist\" schema is not JSON compatible.'\n        );\n      }\n      // @ts-expect-error\n      jsonSchema.enum = valibotSchema.options;\n      if (valibotSchema.options.every((option) => typeof option === 'string')) {\n        jsonSchema.type = 'string';\n      } else if (\n        valibotSchema.options.every((option) => typeof option === 'number')\n      ) {\n        jsonSchema.type = 'number';\n      } else if (!hasInvalidOption && config?.target !== 'openapi-3.0') {\n        // Hint: OpenAPI 3.0 does not support multi-type arrays.\n        jsonSchema.type = ['string', 'number'];\n      }\n      break;\n    }\n\n    case 'union': {\n      jsonSchema.anyOf = valibotSchema.options.map((option) =>\n        convertSchema({}, option as SchemaOrPipe, config, context)\n      );\n      break;\n    }\n\n    case 'variant': {\n      jsonSchema.oneOf = valibotSchema.options.map((option) =>\n        convertSchema({}, option as SchemaOrPipe, config, context)\n      );\n      break;\n    }\n\n    case 'intersect': {\n      jsonSchema.allOf = valibotSchema.options.map((option) =>\n        convertSchema({}, option as SchemaOrPipe, config, context)\n      );\n      break;\n    }\n\n    case 'lazy': {\n      // Get wrapped Valibot schema\n      let wrappedValibotSchema = context.getterMap.get(valibotSchema.getter);\n\n      // Add wrapped Valibot schema to getter map, if necessary\n      if (!wrappedValibotSchema) {\n        wrappedValibotSchema = valibotSchema.getter(undefined);\n        context.getterMap.set(valibotSchema.getter, wrappedValibotSchema);\n      }\n\n      // Get reference ID of wrapped Valibot schema\n      let referenceId = context.referenceMap.get(wrappedValibotSchema);\n\n      // Add wrapped Valibot schema to reference map and definitions, if necessary\n      if (!referenceId) {\n        referenceId = `${refCount++}`;\n        context.referenceMap.set(wrappedValibotSchema, referenceId);\n        context.definitions[referenceId] = convertSchema(\n          {},\n          wrappedValibotSchema as SchemaOrPipe,\n          config,\n          context,\n          true\n        );\n      }\n\n      // Add reference to JSON Schema object\n      jsonSchema.$ref = `#/$defs/${referenceId}`;\n\n      // Override reference, if necessary\n      if (config?.overrideRef) {\n        const refOverride = config.overrideRef({\n          ...context,\n          referenceId,\n          valibotSchema: wrappedValibotSchema,\n          jsonSchema,\n        });\n        if (refOverride) {\n          jsonSchema.$ref = refOverride;\n        }\n      }\n\n      break;\n    }\n\n    // Other schemas\n\n    default: {\n      errors = addError(\n        errors,\n        // @ts-expect-error\n        `The \"${valibotSchema.type}\" schema cannot be converted to JSON Schema.`\n      );\n    }\n  }\n\n  // Override JSON Schema if specified and necessary\n  if (config?.overrideSchema) {\n    const schemaOverride = config.overrideSchema({\n      ...context,\n      referenceId: context.referenceMap.get(valibotSchema),\n      valibotSchema,\n      jsonSchema,\n      errors,\n    });\n    if (schemaOverride) {\n      return { ...schemaOverride };\n    }\n  }\n\n  // Handle errors based on configuration\n  if (errors) {\n    for (const message of errors) {\n      handleError(message, config);\n    }\n  }\n\n  // Return converted JSON Schema\n  return jsonSchema;\n}\n"
  },
  {
    "path": "packages/to-json-schema/src/converters/convertSchema/index.ts",
    "content": "export * from './convertSchema.ts';\n"
  },
  {
    "path": "packages/to-json-schema/src/converters/index.ts",
    "content": "export * from './convertAction/index.ts';\nexport * from './convertSchema/index.ts';\n"
  },
  {
    "path": "packages/to-json-schema/src/functions/index.ts",
    "content": "export * from './toJsonSchema/index.ts';\nexport * from './toJsonSchemaDefs/index.ts';\nexport * from './toStandardJsonSchema/index.ts';\n"
  },
  {
    "path": "packages/to-json-schema/src/functions/toJsonSchema/index.ts",
    "content": "export * from './toJsonSchema.ts';\n"
  },
  {
    "path": "packages/to-json-schema/src/functions/toJsonSchema/toJsonSchema.test.ts",
    "content": "import * as v from 'valibot';\nimport { describe, expect, test, vi } from 'vitest';\nimport { toJsonSchema } from './toJsonSchema.ts';\n\n// TODO: Add tests for override configs\n\nconsole.warn = vi.fn();\n\ndescribe('toJsonSchema', () => {\n  describe('should convert schema', () => {\n    test('for simple string schema', () => {\n      expect(toJsonSchema(v.string())).toStrictEqual({\n        $schema: 'http://json-schema.org/draft-07/schema#',\n        type: 'string',\n      });\n    });\n\n    test('for complex schema with definitions', () => {\n      const stringSchema = v.string();\n      const complexSchema = v.pipe(\n        v.object({\n          name: v.lazy(() => stringSchema),\n          email: v.pipe(stringSchema, v.email(), v.minLength(10)),\n          age: v.optional(v.number()),\n        }),\n        v.description('foo')\n      );\n      expect(\n        toJsonSchema(complexSchema, {\n          definitions: { stringSchema, complexSchema },\n        })\n      ).toStrictEqual({\n        $schema: 'http://json-schema.org/draft-07/schema#',\n        $ref: '#/$defs/complexSchema',\n        $defs: {\n          stringSchema: { type: 'string' },\n          complexSchema: {\n            type: 'object',\n            properties: {\n              name: { $ref: '#/$defs/stringSchema' },\n              email: { type: 'string', format: 'email', minLength: 10 },\n              age: { type: 'number' },\n            },\n            required: ['name', 'email'],\n            description: 'foo',\n          },\n        },\n      });\n    });\n\n    test('for complex schema with any order of definitions', () => {\n      const stringSchema = v.string();\n      const aliasesSchema = v.array(stringSchema);\n      const complexSchema = v.pipe(\n        v.object({\n          name: v.lazy(() => stringSchema),\n          aliases: v.optional(aliasesSchema),\n          email: v.pipe(stringSchema, v.email(), v.minLength(10)),\n        }),\n        v.description('foo')\n      );\n      const expectedJsonSchema = {\n        $schema: 'http://json-schema.org/draft-07/schema#',\n        $ref: '#/$defs/complexSchema',\n        $defs: {\n          stringSchema: { type: 'string' },\n          aliasesSchema: {\n            type: 'array',\n            items: { $ref: '#/$defs/stringSchema' },\n          },\n          complexSchema: {\n            type: 'object',\n            properties: {\n              name: { $ref: '#/$defs/stringSchema' },\n              aliases: { $ref: '#/$defs/aliasesSchema' },\n              email: { type: 'string', format: 'email', minLength: 10 },\n            },\n            required: ['name', 'email'],\n            description: 'foo',\n          },\n        },\n      };\n      const definitionPermutations = [\n        { stringSchema, aliasesSchema, complexSchema },\n        { stringSchema, complexSchema, aliasesSchema },\n        { aliasesSchema, stringSchema, complexSchema },\n        { aliasesSchema, complexSchema, stringSchema },\n        { complexSchema, stringSchema, aliasesSchema },\n        { complexSchema, aliasesSchema, stringSchema },\n      ];\n      for (const definitions of definitionPermutations) {\n        expect(toJsonSchema(complexSchema, { definitions })).toStrictEqual(\n          expectedJsonSchema\n        );\n      }\n    });\n\n    test('for recursive schema', () => {\n      const ul = v.object({\n        type: v.literal('ul'),\n        children: v.array(v.lazy(() => li)),\n      });\n      const li: v.GenericSchema = v.object({\n        type: v.literal('li'),\n        children: v.array(v.union([v.string(), ul])),\n      });\n      expect(\n        toJsonSchema(ul, {\n          definitions: { ul, li },\n        })\n      ).toStrictEqual({\n        $schema: 'http://json-schema.org/draft-07/schema#',\n        $ref: '#/$defs/ul',\n        $defs: {\n          ul: {\n            properties: {\n              children: {\n                items: { $ref: '#/$defs/li' },\n                type: 'array',\n              },\n              type: { const: 'ul' },\n            },\n            required: ['type', 'children'],\n            type: 'object',\n          },\n          li: {\n            properties: {\n              children: {\n                items: {\n                  anyOf: [{ type: 'string' }, { $ref: '#/$defs/ul' }],\n                },\n                type: 'array',\n              },\n              type: { const: 'li' },\n            },\n            required: ['type', 'children'],\n            type: 'object',\n          },\n        },\n      });\n    });\n  });\n\n  describe('should throw error', () => {\n    test('for invalid file schema', () => {\n      expect(() => toJsonSchema(v.file())).toThrowError(\n        'The \"file\" schema cannot be converted to JSON Schema.'\n      );\n      expect(() => toJsonSchema(v.file(), { errorMode: 'throw' })).toThrowError(\n        'The \"file\" schema cannot be converted to JSON Schema.'\n      );\n    });\n\n    test('for invalid credit card action', () => {\n      expect(() =>\n        toJsonSchema(v.pipe(v.string(), v.creditCard()))\n      ).toThrowError(\n        'The \"credit_card\" action cannot be converted to JSON Schema.'\n      );\n      expect(() =>\n        toJsonSchema(v.pipe(v.string(), v.creditCard()), { errorMode: 'throw' })\n      ).toThrowError(\n        'The \"credit_card\" action cannot be converted to JSON Schema.'\n      );\n    });\n  });\n\n  describe('should warn error', () => {\n    test('for invalid file schema', () => {\n      expect(toJsonSchema(v.file(), { errorMode: 'warn' })).toStrictEqual({\n        $schema: 'http://json-schema.org/draft-07/schema#',\n      });\n      expect(console.warn).toHaveBeenLastCalledWith(\n        'The \"file\" schema cannot be converted to JSON Schema.'\n      );\n    });\n\n    test('for invalid credit card action', () => {\n      expect(\n        toJsonSchema(v.pipe(v.string(), v.creditCard()), { errorMode: 'warn' })\n      ).toStrictEqual({\n        $schema: 'http://json-schema.org/draft-07/schema#',\n        type: 'string',\n      });\n      expect(console.warn).toHaveBeenLastCalledWith(\n        'The \"credit_card\" action cannot be converted to JSON Schema.'\n      );\n    });\n  });\n\n  describe('should ignore error', () => {\n    test('for invalid file schema', () => {\n      expect(toJsonSchema(v.file(), { errorMode: 'ignore' })).toStrictEqual({\n        $schema: 'http://json-schema.org/draft-07/schema#',\n      });\n    });\n\n    test('for invalid credit card action', () => {\n      expect(\n        toJsonSchema(v.pipe(v.string(), v.creditCard()), {\n          errorMode: 'ignore',\n        })\n      ).toStrictEqual({\n        $schema: 'http://json-schema.org/draft-07/schema#',\n        type: 'string',\n      });\n    });\n  });\n\n  describe('should handle target config', () => {\n    test('for draft-07', () => {\n      expect(toJsonSchema(v.string(), { target: 'draft-07' })).toStrictEqual({\n        $schema: 'http://json-schema.org/draft-07/schema#',\n        type: 'string',\n      });\n    });\n\n    test('for draft-2020-12', () => {\n      expect(\n        toJsonSchema(v.string(), { target: 'draft-2020-12' })\n      ).toStrictEqual({\n        $schema: 'https://json-schema.org/draft/2020-12/schema',\n        type: 'string',\n      });\n    });\n\n    test('for openapi-3.0', () => {\n      expect(toJsonSchema(v.string(), { target: 'openapi-3.0' })).toStrictEqual(\n        {\n          type: 'string',\n        }\n      );\n    });\n  });\n});\n"
  },
  {
    "path": "packages/to-json-schema/src/functions/toJsonSchema/toJsonSchema.ts",
    "content": "import type * as v from 'valibot';\nimport { convertSchema } from '../../converters/index.ts';\nimport { getGlobalDefs } from '../../storages/index.ts';\nimport type {\n  ConversionConfig,\n  ConversionContext,\n  JsonSchema,\n} from '../../types/index.ts';\n\n/**\n * Converts a Valibot schema to the JSON Schema format.\n *\n * @param schema The Valibot schema object.\n * @param config The JSON Schema configuration.\n *\n * @returns The converted JSON Schema.\n */\nexport function toJsonSchema(\n  schema: v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>,\n  config?: ConversionConfig\n): JsonSchema {\n  // Initialize JSON Schema context\n  const context: ConversionContext = {\n    definitions: {},\n    referenceMap: new Map(),\n    getterMap: new Map(),\n  };\n\n  // Get definitions from config or global storage\n  const definitions = config?.definitions ?? getGlobalDefs();\n\n  // Add provided definitions to context, if necessary\n  if (definitions) {\n    for (const key in definitions) {\n      context.referenceMap.set(definitions[key], key);\n    }\n    for (const key in definitions) {\n      context.definitions[key] = convertSchema(\n        {},\n        // @ts-expect-error\n        definitions[key],\n        config,\n        context,\n        true\n      );\n    }\n  }\n\n  // Convert Valibot schema to JSON Schema\n  const jsonSchema = convertSchema(\n    {},\n    // @ts-expect-error\n    schema,\n    config,\n    context\n  );\n\n  // Add schema URI to JSON Schema, if necessary\n  // Hint: OpenAPI 3.0 has no `$schema` property\n  const target = config?.target ?? 'draft-07';\n  if (target === 'draft-2020-12') {\n    jsonSchema.$schema = 'https://json-schema.org/draft/2020-12/schema';\n  } else if (target === 'draft-07') {\n    jsonSchema.$schema = 'http://json-schema.org/draft-07/schema#';\n  }\n\n  // Add definitions to JSON Schema, if necessary\n  if (context.referenceMap.size) {\n    jsonSchema.$defs = context.definitions;\n  }\n\n  // Return converted JSON Schema\n  return jsonSchema;\n}\n"
  },
  {
    "path": "packages/to-json-schema/src/functions/toJsonSchemaDefs/index.ts",
    "content": "export * from './toJsonSchemaDefs.ts';\n"
  },
  {
    "path": "packages/to-json-schema/src/functions/toJsonSchemaDefs/toJsonSchemaDefs.test.ts",
    "content": "import * as v from 'valibot';\nimport { describe, expect, test, vi } from 'vitest';\nimport { toJsonSchemaDefs } from './toJsonSchemaDefs.ts';\n\n// TODO: Add tests for override configs\n\nconsole.warn = vi.fn();\n\ndescribe('toJsonSchemaDefs', () => {\n  describe('should convert schema', () => {\n    test('for simple schema', () => {\n      expect(\n        toJsonSchemaDefs({ foo: v.string(), bar: v.number() })\n      ).toStrictEqual({\n        foo: { type: 'string' },\n        bar: { type: 'number' },\n      });\n    });\n\n    test('for complex schema with linked definitions', () => {\n      const stringSchema = v.string();\n      const complexSchema = v.pipe(\n        v.object({\n          name: v.lazy(() => stringSchema),\n          email: v.pipe(stringSchema, v.email(), v.minLength(10)),\n          age: v.optional(v.number()),\n        }),\n        v.description('foo')\n      );\n      expect(toJsonSchemaDefs({ stringSchema, complexSchema })).toStrictEqual({\n        stringSchema: { type: 'string' },\n        complexSchema: {\n          type: 'object',\n          properties: {\n            name: { $ref: '#/$defs/stringSchema' },\n            email: { type: 'string', format: 'email', minLength: 10 },\n            age: { type: 'number' },\n          },\n          required: ['name', 'email'],\n          description: 'foo',\n        },\n      });\n    });\n\n    test('for complex schema with any order of linked definitions', () => {\n      const stringSchema = v.string();\n      const aliasesSchema = v.array(stringSchema);\n      const complexSchema = v.pipe(\n        v.object({\n          name: v.lazy(() => stringSchema),\n          aliases: v.optional(aliasesSchema),\n          email: v.pipe(stringSchema, v.email(), v.minLength(10)),\n        }),\n        v.description('foo')\n      );\n      const expectedJsonSchemaDefs = {\n        stringSchema: { type: 'string' },\n        aliasesSchema: {\n          type: 'array',\n          items: { $ref: '#/$defs/stringSchema' },\n        },\n        complexSchema: {\n          type: 'object',\n          properties: {\n            name: { $ref: '#/$defs/stringSchema' },\n            aliases: { $ref: '#/$defs/aliasesSchema' },\n            email: { type: 'string', format: 'email', minLength: 10 },\n          },\n          required: ['name', 'email'],\n          description: 'foo',\n        },\n      };\n      const definitionPermutations = [\n        { stringSchema, aliasesSchema, complexSchema },\n        { stringSchema, complexSchema, aliasesSchema },\n        { aliasesSchema, stringSchema, complexSchema },\n        { aliasesSchema, complexSchema, stringSchema },\n        { complexSchema, stringSchema, aliasesSchema },\n        { complexSchema, aliasesSchema, stringSchema },\n      ];\n      for (const definitions of definitionPermutations) {\n        expect(toJsonSchemaDefs(definitions)).toStrictEqual(\n          expectedJsonSchemaDefs\n        );\n      }\n    });\n\n    test('for recursive schema', () => {\n      const ul = v.object({\n        type: v.literal('ul'),\n        children: v.array(v.lazy(() => li)),\n      });\n      const li: v.GenericSchema = v.object({\n        type: v.literal('li'),\n        children: v.array(v.union([v.string(), ul])),\n      });\n      expect(toJsonSchemaDefs({ ul, li })).toStrictEqual({\n        ul: {\n          properties: {\n            children: {\n              items: { $ref: '#/$defs/li' },\n              type: 'array',\n            },\n            type: { const: 'ul' },\n          },\n          required: ['type', 'children'],\n          type: 'object',\n        },\n        li: {\n          properties: {\n            children: {\n              items: {\n                anyOf: [{ type: 'string' }, { $ref: '#/$defs/ul' }],\n              },\n              type: 'array',\n            },\n            type: { const: 'li' },\n          },\n          required: ['type', 'children'],\n          type: 'object',\n        },\n      });\n    });\n  });\n\n  describe('should throw error', () => {\n    test('for invalid file schema', () => {\n      expect(() => toJsonSchemaDefs({ foo: v.file() })).toThrowError(\n        'The \"file\" schema cannot be converted to JSON Schema.'\n      );\n      expect(() =>\n        toJsonSchemaDefs({ foo: v.file() }, { errorMode: 'throw' })\n      ).toThrowError('The \"file\" schema cannot be converted to JSON Schema.');\n    });\n\n    test('for invalid credit card action', () => {\n      expect(() =>\n        toJsonSchemaDefs({ foo: v.pipe(v.string(), v.creditCard()) })\n      ).toThrowError(\n        'The \"credit_card\" action cannot be converted to JSON Schema.'\n      );\n      expect(() =>\n        toJsonSchemaDefs(\n          { foo: v.pipe(v.string(), v.creditCard()) },\n          { errorMode: 'throw' }\n        )\n      ).toThrowError(\n        'The \"credit_card\" action cannot be converted to JSON Schema.'\n      );\n    });\n  });\n\n  describe('should warn error', () => {\n    test('for invalid file schema', () => {\n      expect(\n        toJsonSchemaDefs({ foo: v.file() }, { errorMode: 'warn' })\n      ).toStrictEqual({ foo: {} });\n      expect(console.warn).toHaveBeenLastCalledWith(\n        'The \"file\" schema cannot be converted to JSON Schema.'\n      );\n    });\n\n    test('for invalid credit card action', () => {\n      expect(\n        toJsonSchemaDefs(\n          { foo: v.pipe(v.string(), v.creditCard()) },\n          { errorMode: 'warn' }\n        )\n      ).toStrictEqual({ foo: { type: 'string' } });\n      expect(console.warn).toHaveBeenLastCalledWith(\n        'The \"credit_card\" action cannot be converted to JSON Schema.'\n      );\n    });\n  });\n\n  describe('should ignore error', () => {\n    test('for invalid file schema', () => {\n      expect(\n        toJsonSchemaDefs({ foo: v.file() }, { errorMode: 'ignore' })\n      ).toStrictEqual({ foo: {} });\n    });\n\n    test('for invalid credit card action', () => {\n      expect(\n        toJsonSchemaDefs(\n          { foo: v.pipe(v.string(), v.creditCard()) },\n          { errorMode: 'ignore' }\n        )\n      ).toStrictEqual({ foo: { type: 'string' } });\n    });\n  });\n});\n"
  },
  {
    "path": "packages/to-json-schema/src/functions/toJsonSchemaDefs/toJsonSchemaDefs.ts",
    "content": "import type * as v from 'valibot';\nimport { convertSchema } from '../../converters/index.ts';\nimport type {\n  ConversionConfig,\n  ConversionContext,\n  JsonSchema,\n} from '../../types/index.ts';\n\n/**\n * Converts Valibot schema definitions to JSON Schema definitions.\n *\n * @param definitions The Valibot schema definitions.\n * @param config The JSON Schema configuration.\n *\n * @returns The converted JSON Schema definitions.\n */\nexport function toJsonSchemaDefs<\n  TDefinitions extends Record<\n    string,\n    v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>\n  >,\n>(\n  definitions: TDefinitions,\n  config?: Omit<ConversionConfig, 'definitions'>\n): { [TKey in keyof TDefinitions]: JsonSchema } {\n  // Initialize JSON Schema context\n  const context: ConversionContext = {\n    definitions: {},\n    referenceMap: new Map(),\n    getterMap: new Map(),\n  };\n\n  // Add provided definitions to context, if necessary\n  for (const key in definitions) {\n    context.referenceMap.set(definitions[key], key);\n  }\n  for (const key in definitions) {\n    context.definitions[key] = convertSchema(\n      {},\n      // @ts-expect-error\n      definitions[key],\n      config,\n      context,\n      true\n    );\n  }\n\n  // Return JSON Schema definitions\n  // @ts-expect-error\n  return context.definitions;\n}\n"
  },
  {
    "path": "packages/to-json-schema/src/functions/toStandardJsonSchema/index.ts",
    "content": "export * from './toStandardJsonSchema.ts';\n"
  },
  {
    "path": "packages/to-json-schema/src/functions/toStandardJsonSchema/toStandardJsonSchema.test.ts",
    "content": "import * as v from 'valibot';\nimport { describe, expect, test } from 'vitest';\nimport { toStandardJsonSchema } from './toStandardJsonSchema.ts';\n\ndescribe('toStandardJsonSchema', () => {\n  const schema = v.pipe(\n    v.string(),\n    v.decimal(),\n    v.toNumber(),\n    v.number(),\n    v.minValue(10)\n  );\n\n  describe('should return schema object', () => {\n    test('with string schema', () => {\n      const result = toStandardJsonSchema(schema);\n\n      expect(result).toStrictEqual({\n        '~standard': {\n          version: 1,\n          vendor: 'valibot',\n          validate: expect.any(Function),\n          jsonSchema: {\n            input: expect.any(Function),\n            output: expect.any(Function),\n          },\n        },\n      });\n    });\n  });\n\n  describe('should throw error for unsupported target', () => {\n    test('throws error for input conversion with unsupported target', () => {\n      const result = toStandardJsonSchema(schema);\n\n      expect(() =>\n        result['~standard'].jsonSchema.input({\n          target: 'unsupported-target',\n        })\n      ).toThrowError('Unsupported target: unsupported-target');\n    });\n\n    test('throws error for output conversion with unsupported target', () => {\n      const result = toStandardJsonSchema(schema);\n\n      expect(() =>\n        result['~standard'].jsonSchema.output({\n          target: 'unsupported-target',\n        })\n      ).toThrowError('Unsupported target: unsupported-target');\n    });\n  });\n\n  describe('should convert schema to JSON Schema', () => {\n    test('converts schema to input JSON Schema', () => {\n      const result = toStandardJsonSchema(schema);\n\n      const jsonSchema = result['~standard'].jsonSchema.input({\n        target: 'draft-07',\n      });\n\n      expect(jsonSchema).toStrictEqual({\n        $schema: 'http://json-schema.org/draft-07/schema#',\n        type: 'string',\n        pattern: '^[+-]?(?:\\\\d*\\\\.)?\\\\d+$',\n      });\n    });\n\n    test('converts schema to output JSON Schema', () => {\n      const result = toStandardJsonSchema(schema);\n\n      const jsonSchema = result['~standard'].jsonSchema.output({\n        target: 'draft-07',\n      });\n\n      expect(jsonSchema).toStrictEqual({\n        $schema: 'http://json-schema.org/draft-07/schema#',\n        type: 'number',\n        minimum: 10,\n      });\n    });\n  });\n});\n"
  },
  {
    "path": "packages/to-json-schema/src/functions/toStandardJsonSchema/toStandardJsonSchema.ts",
    "content": "import type * as v from 'valibot';\nimport type { StandardJsonSchema } from '../../types/index.ts';\nimport { toJsonSchema } from '../toJsonSchema/index.ts';\n\ntype Target = 'draft-07' | 'draft-2020-12' | 'openapi-3.0';\nconst SUPPORTED_TARGETS = ['draft-07', 'draft-2020-12', 'openapi-3.0'];\n\n/**\n * Converts a Valibot schema to the Standard JSON Schema format.\n *\n * @param schema The Valibot schema object.\n *\n * @returns The Standard JSON Schema.\n */\nexport function toStandardJsonSchema<\n  TSchema extends v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>,\n>(\n  schema: TSchema\n): StandardJsonSchema<v.InferInput<TSchema>, v.InferOutput<TSchema>> {\n  return {\n    '~standard': {\n      ...schema['~standard'],\n      jsonSchema: {\n        input(options) {\n          if (SUPPORTED_TARGETS.includes(options.target)) {\n            return toJsonSchema(schema, {\n              typeMode: 'input',\n              target: options.target as Target,\n              ...options.libraryOptions,\n            }) as Record<string, unknown>;\n          }\n          throw new Error(`Unsupported target: ${options.target}`);\n        },\n        output(options) {\n          if (SUPPORTED_TARGETS.includes(options.target)) {\n            return toJsonSchema(schema, {\n              typeMode: 'output',\n              target: options.target as Target,\n              ...options.libraryOptions,\n            }) as Record<string, unknown>;\n          }\n          throw new Error(`Unsupported target: ${options.target}`);\n        },\n      },\n    },\n  };\n}\n"
  },
  {
    "path": "packages/to-json-schema/src/index.ts",
    "content": "export * from './types/index.ts';\nexport * from './functions/index.ts';\nexport * from './storages/index.ts';\n"
  },
  {
    "path": "packages/to-json-schema/src/storages/globalDefs/globalDefs.test.ts",
    "content": "import * as v from 'valibot';\nimport { describe, expect, test } from 'vitest';\nimport { addGlobalDefs, getGlobalDefs } from './globalDefs.ts';\n\ndescribe('globalDefs', () => {\n  test('should be undefined initially', () => {\n    expect(getGlobalDefs()).toBeUndefined();\n  });\n\n  test('should return an empty object', () => {\n    addGlobalDefs({});\n    expect(getGlobalDefs()).toStrictEqual({});\n  });\n\n  const schema1 = v.string();\n  const schema2 = v.number();\n  const schema3 = v.boolean();\n\n  test('should add global definitions', () => {\n    addGlobalDefs({ schema1, schema2 });\n    expect(getGlobalDefs()).toStrictEqual({ schema1, schema2 });\n    addGlobalDefs({ schema3 });\n    expect(getGlobalDefs()).toStrictEqual({ schema1, schema2, schema3 });\n  });\n\n  test('should overwrite existing definitions', () => {\n    const otherSchema = v.null();\n    addGlobalDefs({ schema2: otherSchema });\n    expect(getGlobalDefs()).toStrictEqual({\n      schema1,\n      schema2: otherSchema,\n      schema3,\n    });\n  });\n});\n"
  },
  {
    "path": "packages/to-json-schema/src/storages/globalDefs/globalDefs.ts",
    "content": "import type * as v from 'valibot';\n\n// Create global definitions store\nlet store:\n  | Record<string, v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>>\n  | undefined;\n\n/**\n * Adds new definitions to the global schema definitions.\n *\n * @param definitions The schema definitions.\n *\n * @beta\n */\nexport function addGlobalDefs(\n  definitions: Record<\n    string,\n    v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>\n  >\n): void {\n  store = { ...(store ?? {}), ...definitions };\n}\n\n/**\n * Returns the current global schema definitions.\n *\n * @returns The schema definitions.\n *\n * @beta\n */\nexport function getGlobalDefs():\n  | Record<string, v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>>\n  | undefined {\n  return store;\n}\n"
  },
  {
    "path": "packages/to-json-schema/src/storages/globalDefs/index.ts",
    "content": "export * from './globalDefs.ts';\n"
  },
  {
    "path": "packages/to-json-schema/src/storages/index.ts",
    "content": "export * from './globalDefs/index.ts';\n"
  },
  {
    "path": "packages/to-json-schema/src/types/config.ts",
    "content": "import type * as v from 'valibot';\nimport type { JsonSchema } from './schema.ts';\n\n/**\n * JSON Schema conversion context interface.\n */\nexport interface ConversionContext {\n  /**\n   * The JSON Schema definitions that have already been created.\n   */\n  readonly definitions: Record<string, JsonSchema>;\n  /**\n   * The JSON Schema reference map that is used to look up the reference ID\n   * for a given Valibot schema.\n   */\n  readonly referenceMap: Map<\n    v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>,\n    string\n  >;\n  /**\n   * The lazy schema getter map that is used internally to ensure that\n   * recursive lazy schemas are unwrapped only once.\n   */\n  readonly getterMap: Map<\n    (input: unknown) => v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>,\n    v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>\n  >;\n}\n\n/**\n * JSON Schema override context interface for schemas.\n *\n * @beta\n */\nexport interface OverrideSchemaContext extends ConversionContext {\n  /**\n   * The JSON Schema reference ID.\n   */\n  readonly referenceId: string | undefined;\n  /**\n   * The Valibot schema to be converted.\n   */\n  readonly valibotSchema: v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>;\n  /**\n   * The converted JSON Schema.\n   */\n  readonly jsonSchema: JsonSchema;\n  /**\n   * The errors of the current Valibot schema conversion.\n   */\n  readonly errors: [string, ...string[]] | undefined;\n}\n\n/**\n * JSON Schema override context interface for actions.\n *\n * @beta\n */\nexport interface OverrideActionContext {\n  /**\n   * The Valibot action to be converted.\n   */\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  readonly valibotAction: v.PipeAction<any, any, v.BaseIssue<unknown>>;\n  /**\n   * The converted JSON Schema.\n   */\n  readonly jsonSchema: JsonSchema;\n  /**\n   * The errors of the current Valibot action conversion.\n   */\n  readonly errors: [string, ...string[]] | undefined;\n}\n\n/**\n * JSON Schema override context interface for references.\n *\n * @beta\n */\nexport interface OverrideRefContext extends ConversionContext {\n  /**\n   * The JSON Schema reference ID.\n   */\n  readonly referenceId: string;\n  /**\n   * The Valibot schema to be converted.\n   */\n  readonly valibotSchema: v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>;\n  /**\n   * The converted JSON Schema.\n   */\n  readonly jsonSchema: JsonSchema;\n}\n\n/**\n * JSON Schema conversion config interface.\n */\nexport interface ConversionConfig {\n  /**\n   * The target JSON Schema draft version. Defaults to 'draft-07'.\n   */\n  readonly target?: 'draft-07' | 'draft-2020-12' | 'openapi-3.0';\n  /**\n   * Whether to convert the input or output type of the Valibot schema to JSON Schema.\n   *\n   * When set to 'input', conversion stops before the first potential type\n   * transformation action or second schema in any pipeline.\n   *\n   * When set to 'output', conversion of any pipelines starts from the last\n   * schema in the pipeline. Therefore, the output type must be specified\n   * explicitly with a schema after the last type transformation action.\n   *\n   * @beta\n   */\n  readonly typeMode?: 'ignore' | 'input' | 'output';\n  /**\n   * The policy for handling incompatible schemas and actions.\n   */\n  readonly errorMode?: 'throw' | 'warn' | 'ignore';\n  /**\n   * The schema definitions for constructing recursive schemas. If not\n   * specified, the definitions are generated automatically as needed.\n   */\n  readonly definitions?: Record<\n    string,\n    v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>\n  >;\n  /**\n   * Overrides the JSON Schema conversion for a specific Valibot schema.\n   *\n   * Only return a JSON Schema if you want to override the default conversion\n   * behaviour and suppress errors for a specific schema. Returning either\n   * `null` or `undefined` will skip the override.\n   *\n   * @param context The conversion context.\n   *\n   * @returns A JSON Schema, if overridden.\n   *\n   * @beta\n   */\n  readonly overrideSchema?: (\n    context: OverrideSchemaContext\n  ) => JsonSchema | null | undefined;\n  /**\n   * The actions that should be ignored during the conversion.\n   *\n   * @beta\n   */\n  readonly ignoreActions?: string[];\n  /**\n   * Overrides the JSON Schema reference for a specific Valibot action.\n   *\n   * Only return a JSON Schema if you want to override the default conversion\n   * behaviour and suppress errors for a specific action. Returning either\n   * `null` or `undefined` will skip the override.\n   *\n   * @param context The conversion context.\n   *\n   * @returns A JSON Schema, if overridden.\n   *\n   * @beta\n   */\n  readonly overrideAction?: (\n    context: OverrideActionContext\n  ) => JsonSchema | null | undefined;\n  /**\n   * Overrides the JSON Schema reference for a specific reference ID.\n   *\n   * @param context The conversion context.\n   *\n   * @returns A reference ID, if overridden.\n   *\n   * @beta\n   */\n  readonly overrideRef?: (\n    context: OverrideRefContext\n  ) => string | null | undefined;\n}\n"
  },
  {
    "path": "packages/to-json-schema/src/types/index.ts",
    "content": "export * from './config.ts';\nexport * from './schema.ts';\nexport * from './standard.ts';\n"
  },
  {
    "path": "packages/to-json-schema/src/types/schema.ts",
    "content": "type JsonSchemaTypeName =\n  | 'string'\n  | 'number'\n  | 'integer'\n  | 'boolean'\n  | 'object'\n  | 'array'\n  | 'null';\n\ntype JsonSchemaType =\n  | string\n  | number\n  | boolean\n  | JsonSchemaObject\n  | JsonSchemaArray\n  | null;\n\ninterface JsonSchemaObject {\n  [key: string]: JsonSchemaType;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\ninterface JsonSchemaArray extends Array<JsonSchemaType> {}\n\ntype JsonSchemaDefinition = JsonSchema | boolean;\n\n/**\n * JSON Schema interface.\n */\nexport interface JsonSchema {\n  $id?: string | undefined;\n  $ref?: string | undefined;\n  $schema?: string | undefined;\n  $comment?: string | undefined;\n  $defs?: Record<string, JsonSchemaDefinition> | undefined;\n  type?: JsonSchemaTypeName | JsonSchemaTypeName[] | undefined;\n  nullable?: boolean | undefined;\n  enum?: JsonSchemaType[] | undefined;\n  const?: JsonSchemaType | undefined;\n  multipleOf?: number | undefined;\n  maximum?: number | undefined;\n  exclusiveMaximum?: number | undefined;\n  minimum?: number | undefined;\n  exclusiveMinimum?: number | undefined;\n  maxLength?: number | undefined;\n  minLength?: number | undefined;\n  pattern?: string | undefined;\n  items?: JsonSchemaDefinition | JsonSchemaDefinition[] | undefined;\n  prefixItems?: JsonSchemaDefinition[] | undefined;\n  additionalItems?: JsonSchemaDefinition | undefined;\n  maxItems?: number | undefined;\n  minItems?: number | undefined;\n  uniqueItems?: boolean | undefined;\n  contains?: JsonSchemaDefinition | undefined;\n  maxProperties?: number | undefined;\n  minProperties?: number | undefined;\n  required?: string[] | undefined;\n  properties?: Record<string, JsonSchemaDefinition> | undefined;\n  patternProperties?: Record<string, JsonSchemaDefinition> | undefined;\n  additionalProperties?: JsonSchemaDefinition | undefined;\n  dependencies?: Record<string, JsonSchemaDefinition | string[]> | undefined;\n  propertyNames?: JsonSchemaDefinition | undefined;\n  if?: JsonSchemaDefinition | undefined;\n  then?: JsonSchemaDefinition | undefined;\n  else?: JsonSchemaDefinition | undefined;\n  allOf?: JsonSchemaDefinition[] | undefined;\n  anyOf?: JsonSchemaDefinition[] | undefined;\n  oneOf?: JsonSchemaDefinition[] | undefined;\n  not?: JsonSchemaDefinition | undefined;\n  format?: string | undefined;\n  contentMediaType?: string | undefined;\n  contentEncoding?: string | undefined;\n  definitions?: Record<string, JsonSchemaDefinition> | undefined;\n  title?: string | undefined;\n  description?: string | undefined;\n  default?: JsonSchemaType | undefined;\n  readOnly?: boolean | undefined;\n  writeOnly?: boolean | undefined;\n  examples?: JsonSchemaType | undefined;\n}\n\n/**\n * JSON Schema 7 interface.\n *\n * @deprecated Use `JsonSchema` instead.\n */\n// eslint-disable-next-line @typescript-eslint/no-empty-object-type\nexport interface JSONSchema7 extends JsonSchema {}\n"
  },
  {
    "path": "packages/to-json-schema/src/types/standard.ts",
    "content": "import type { StandardProps } from 'valibot';\n\n/**\n * JSON Schema interface.\n */\nexport interface StandardJsonSchema<TInput, TOutput> {\n  /**\n   * The Standard JSON Schema properties.\n   */\n  readonly '~standard': StandardJsonProps<TInput, TOutput>;\n}\n\n/**\n * The Standard JSON Schema properties interface.\n */\ninterface StandardJsonProps<TInput, TOutput>\n  extends StandardProps<TInput, TOutput> {\n  /**\n   * Methods for generating the input/output JSON Schema.\n   */\n  readonly jsonSchema: StandardJsonConverter;\n}\n\n/**\n * The Standard JSON Schema converter interface.\n */\ninterface StandardJsonConverter {\n  /**\n   * Converts the input type to JSON Schema. May throw if conversion is not supported.\n   */\n  readonly input: (options: StandardJsonOptions) => Record<string, unknown>;\n  /**\n   * Converts the output type to JSON Schema. May throw if conversion is not supported.\n   */\n  readonly output: (options: StandardJsonOptions) => Record<string, unknown>;\n}\n\n/**\n * The target version of the generated JSON Schema.\n */\ntype StandardJsonTarget =\n  | 'draft-2020-12'\n  | 'draft-07'\n  | 'openapi-3.0'\n  | ({} & string);\n\n/**\n * The options for the input/output methods.\n */\ninterface StandardJsonOptions {\n  /**\n   * Specifies the target version of the generated JSON Schema.\n   */\n  readonly target: StandardJsonTarget;\n  /**\n   * Explicit support for additional vendor-specific parameters, if needed.\n   */\n  readonly libraryOptions?: Record<string, unknown> | undefined;\n}\n"
  },
  {
    "path": "packages/to-json-schema/src/utils/addError.ts",
    "content": "/**\n * Adds an error message to the errors array.\n *\n * @param errors The array of error messages.\n * @param message The error message to add.\n *\n * @returns The new errors.\n */\nexport function addError(\n  errors: [string, ...string[]] | undefined,\n  message: string\n): [string, ...string[]] {\n  if (errors) {\n    errors.push(message);\n    return errors;\n  }\n  return [message];\n}\n"
  },
  {
    "path": "packages/to-json-schema/src/utils/escapeRegExp.ts",
    "content": "// RegExp for matching special regex characters\nconst ESCAPE_REGEX = /[.*+?^${}()|[\\]\\\\]/g;\n\n/**\n * Escapes special regex characters in a string.\n *\n * @param string The string to escape.\n *\n * @returns The escaped string.\n */\nexport function escapeRegExp(string: string): string {\n  return string.replace(ESCAPE_REGEX, '\\\\$&');\n}\n"
  },
  {
    "path": "packages/to-json-schema/src/utils/handleError.ts",
    "content": "import type { ConversionConfig } from '../types/index.ts';\n\n/**\n * Throws an error or logs a warning based on the configuration.\n *\n * @param message The message to throw or log.\n * @param config The conversion configuration.\n */\nexport function handleError(\n  message: string,\n  config: ConversionConfig | undefined\n): void {\n  switch (config?.errorMode) {\n    case 'ignore': {\n      break;\n    }\n    case 'warn': {\n      console.warn(message);\n      break;\n    }\n    default: {\n      throw new Error(message);\n    }\n  }\n}\n"
  },
  {
    "path": "packages/to-json-schema/src/utils/index.ts",
    "content": "export * from './addError.ts';\nexport * from './escapeRegExp.ts';\nexport * from './handleError.ts';\nexport * from './isJsonConstValue.ts';\nexport * from './isJsonEnumValues.ts';\n"
  },
  {
    "path": "packages/to-json-schema/src/utils/isJsonConstValue.ts",
    "content": "/**\n * Whether a value is JSON compatible for a const keyword.\n *\n * @param value The value to check.\n *\n * @returns Whether the value is JSON compatible.\n */\nexport function isJsonConstValue(\n  value: unknown\n): value is boolean | number | string {\n  return (\n    typeof value === 'boolean' ||\n    (typeof value === 'number' && Number.isFinite(value)) ||\n    typeof value === 'string'\n  );\n}\n"
  },
  {
    "path": "packages/to-json-schema/src/utils/isJsonEnumValues.ts",
    "content": "import { isJsonConstValue } from './isJsonConstValue.ts';\n\n/**\n * Whether values are JSON compatible for an enum keyword.\n *\n * @param values The values to check.\n *\n * @returns Whether the values are JSON compatible.\n */\nexport function isJsonEnumValues(\n  values: readonly unknown[]\n): values is (boolean | number | string)[] {\n  return values.every(isJsonConstValue);\n}\n"
  },
  {
    "path": "packages/to-json-schema/src/vitest/createContext.ts",
    "content": "import type { ConversionContext } from '../types/index.ts';\n\n/**\n * Creates a new conversion context.\n *\n * @param initial The initial context to use.\n *\n * @returns A new conversion context.\n */\nexport function createContext(\n  initial?: Omit<ConversionContext, 'getterMap'>\n): ConversionContext {\n  return {\n    definitions: initial?.definitions ?? {},\n    referenceMap: initial?.referenceMap ?? new Map(),\n    getterMap: new Map(),\n  };\n}\n"
  },
  {
    "path": "packages/to-json-schema/src/vitest/index.ts",
    "content": "export * from './createContext.ts';\n"
  },
  {
    "path": "packages/to-json-schema/tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"allowImportingTsExtensions\": true,\n    \"declaration\": true,\n    \"exactOptionalPropertyTypes\": true,\n    \"isolatedDeclarations\": true,\n    \"lib\": [\"ESNext\", \"DOM\"],\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"node\",\n    \"noEmit\": true,\n    \"skipLibCheck\": true,\n    \"strict\": true,\n    \"target\": \"ES2020\",\n    \"paths\": {\n      \"valibot\": [\"../../library/src/index.ts\"],\n      \"valibot/*\": [\"../../library/src/*\"]\n    }\n  },\n  \"include\": [\"src\"]\n}\n"
  },
  {
    "path": "packages/to-json-schema/tsdown.config.ts",
    "content": "import { defineConfig } from 'tsdown';\n\nexport default defineConfig([\n  {\n    entry: ['./src/index.ts'],\n    clean: true,\n    format: ['es', 'cjs'],\n    minify: false,\n    dts: true,\n    outDir: './dist',\n  },\n  {\n    entry: ['./src/index.ts'],\n    clean: true,\n    format: ['es', 'cjs'],\n    minify: true,\n    dts: false,\n    outDir: './dist',\n    outExtensions: ({ format }) => ({\n      js: format === 'cjs' ? '.min.cjs' : '.min.mjs',\n    }),\n  },\n]);\n"
  },
  {
    "path": "packages/to-json-schema/vitest.config.ts",
    "content": "import tsconfigPaths from 'vite-tsconfig-paths';\nimport { defineConfig } from 'vitest/config';\n\nexport default defineConfig({\n  plugins: [tsconfigPaths()],\n  test: {\n    isolate: false,\n    coverage: {\n      include: ['src'],\n      exclude: ['**/index.ts', '**/types.ts', '**/*.test.ts'],\n    },\n  },\n});\n"
  },
  {
    "path": "pnpm-workspace.yaml",
    "content": "packages:\n  - 'codemod/*'\n  - 'library'\n  - 'packages/*'\n  - 'website'\n"
  },
  {
    "path": "prettier.config.cjs",
    "content": "module.exports = {\n  plugins: [\n    '@trivago/prettier-plugin-sort-imports',\n    'prettier-plugin-tailwindcss',\n  ],\n  printWidth: 80,\n  tabWidth: 2,\n  useTabs: false,\n  semi: true,\n  singleQuote: true,\n  quoteProps: 'as-needed',\n  jsxSingleQuote: false,\n  trailingComma: 'es5',\n  bracketSpacing: true,\n  bracketSameLine: false,\n  arrowParens: 'always',\n  endOfLine: 'lf',\n  // prettier-ignore\n  importOrder: ['^\\w', '^[./]'],\n  importOrderSortSpecifiers: true,\n  importOrderCaseInsensitive: true,\n};\n"
  },
  {
    "path": "website/.gitignore",
    "content": "public/sitemap.xml\npublic/llms.txt\npublic/llms-full.txt\npublic/llms-guides.txt\npublic/llms-api.txt\npublic/guides/\npublic/api/\n\n\n"
  },
  {
    "path": "website/.node-version",
    "content": "20\n"
  },
  {
    "path": "website/.prettierignore",
    "content": "**/*.log\n**/.DS_Store\n*.\n.vscode/settings.json\ndist\nnode_modules\ntmp\nserver\n.cache\n.vscode\n*.spec.tsx\n*.spec.ts\n.netlify\n.vercel\nzod\n"
  },
  {
    "path": "website/README.md",
    "content": "# Website\n\nOur [website](https://valibot.dev/) contains guides, an API reference and a playground to quickly learn and understand Valibot.\n\n## Getting started\n\nStep 1: Clone repository\n\n```bash\ngit clone git@github.com:open-circle/valibot.git\n```\n\nStep 2: Install dependencies\n\n```bash\npnpm install\n```\n\nStep 3: Build library\n\n```bash\ncd ./library && pnpm build\n```\n\nStep 4: Start website\n\n```bash\ncd ../website && pnpm start\n```\n"
  },
  {
    "path": "website/adapters/vercel-edge/vite.config.ts",
    "content": "import { vercelEdgeAdapter } from '@builder.io/qwik-city/adapters/vercel-edge/vite';\nimport { extendConfig } from '@builder.io/qwik-city/vite';\nimport { viteStaticCopy } from 'vite-plugin-static-copy';\nimport baseConfig from '../../vite.config';\n\nexport default extendConfig(baseConfig, () => {\n  return {\n    ssr: {\n      external: ['@vercel/og'],\n    },\n    build: {\n      ssr: true,\n      rollupOptions: {\n        input: ['src/entry.vercel-edge.tsx', '@qwik-city-plan'],\n      },\n      outDir: '.vercel/output/functions/_qwik-city.func',\n    },\n    plugins: [\n      vercelEdgeAdapter({\n        ssg: {\n          include: [],\n          sitemapOutFile: null,\n        },\n      }),\n      viteStaticCopy({\n        targets: [\n          {\n            src: 'node_modules/@vercel/og/**/*',\n            dest: 'node_modules/@vercel/og/',\n          },\n        ],\n      }),\n    ],\n  };\n});\n"
  },
  {
    "path": "website/eslint.config.js",
    "content": "import js from '@eslint/js';\nimport { qwikEslint9Plugin } from 'eslint-plugin-qwik';\nimport { globalIgnores } from 'eslint/config';\nimport globals from 'globals';\nimport tseslint from 'typescript-eslint';\n\nconst ignores = [\n  '**/*.log',\n  '**/.DS_Store',\n  '**/*.',\n  '.vscode/settings.json',\n  '**/.history',\n  '**/.yarn',\n  '**/bazel-*',\n  '**/bazel-bin',\n  '**/bazel-out',\n  '**/bazel-qwik',\n  '**/bazel-testlogs',\n  '**/dist',\n  '**/dist-dev',\n  '**/lib',\n  '**/lib-types',\n  '**/etc',\n  '**/external',\n  '**/node_modules',\n  '**/temp',\n  '**/tsc-out',\n  '**/tsdoc-metadata.json',\n  '**/target',\n  '**/output',\n  '**/rollup.config.js',\n  '**/build',\n  '**/.cache',\n  '**/.vscode',\n  '**/.rollup.cache',\n  '**/dist',\n  '**/tsconfig.tsbuildinfo',\n  '**/vite.config.ts',\n  '**/*.spec.tsx',\n  '**/*.spec.ts',\n  '**/.netlify',\n  '**/pnpm-lock.yaml',\n  '**/package-lock.json',\n  '**/yarn.lock',\n  '**/server',\n  '**/zod',\n  'eslint.config.js',\n];\n\nexport default tseslint.config(\n  globalIgnores(ignores),\n  js.configs.recommended,\n  tseslint.configs.recommended,\n  qwikEslint9Plugin.configs.recommended,\n  {\n    languageOptions: {\n      globals: {\n        ...globals.browser,\n        ...globals.node,\n        ...globals.es2021,\n        ...globals.serviceworker,\n      },\n      parserOptions: {\n        projectService: true,\n        tsconfigRootDir: import.meta.dirname,\n      },\n    },\n  },\n  {\n    rules: {\n      '@typescript-eslint/no-explicit-any': 'off',\n      '@typescript-eslint/ban-ts-comment': 'off',\n    },\n  }\n);\n"
  },
  {
    "path": "website/package.json",
    "content": "{\n  \"name\": \"website\",\n  \"description\": \"The website and docs of Valibot\",\n  \"version\": \"0.1.0\",\n  \"license\": \"MIT\",\n  \"author\": \"Fabian Hiller\",\n  \"homepage\": \"https://valibot.dev\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/open-circle/valibot\"\n  },\n  \"type\": \"module\",\n  \"scripts\": {\n    \"build\": \"qwik build\",\n    \"build.client\": \"vite build\",\n    \"build.preview\": \"vite build --ssr src/entry.preview.tsx\",\n    \"build.server\": \"vite build -c adapters/vercel-edge/vite.config.ts\",\n    \"build.types\": \"tsc --incremental --noEmit\",\n    \"contributors\": \"tsm ./scripts/contributors.ts\",\n    \"deploy\": \"vercel deploy\",\n    \"dev\": \"vite --mode ssr\",\n    \"dev.debug\": \"node --inspect-brk ./node_modules/vite/bin/vite.js --mode ssr --force\",\n    \"format\": \"prettier --write .\",\n    \"format.check\": \"prettier --check .\",\n    \"lint\": \"eslint \\\"src/**/*.ts*\\\" && tsc --noEmit\",\n    \"preview\": \"qwik build preview && vite preview --open\",\n    \"sitemap\": \"tsm ./scripts/sitemap.ts\",\n    \"llms\": \"tsm ./scripts/llms.ts\",\n    \"sources\": \"tsm ./scripts/sources.ts\",\n    \"start\": \"vite --open --mode ssr\",\n    \"qwik\": \"qwik\"\n  },\n  \"devDependencies\": {\n    \"@builder.io/qwik\": \"~1.17.2\",\n    \"@builder.io/qwik-city\": \"~1.17.2\",\n    \"@eslint/js\": \"^9.39.1\",\n    \"@mapbox/rehype-prism\": \"^0.9.0\",\n    \"@tailwindcss/vite\": \"^4.1.17\",\n    \"@types/jscodeshift\": \"17.3.0\",\n    \"@types/mapbox__rehype-prism\": \"^0.8.3\",\n    \"@types/node\": \"^24.10.1\",\n    \"dotenv\": \"^17.2.3\",\n    \"eslint\": \"^9.39.1\",\n    \"eslint-plugin-qwik\": \"~1.17.2\",\n    \"globals\": \"^16.5.0\",\n    \"gray-matter\": \"^4.0.3\",\n    \"prettier\": \"^3.6.2\",\n    \"rehype-external-links\": \"^3.0.0\",\n    \"sharp\": \"^0.34.5\",\n    \"tailwindcss\": \"^4.1.17\",\n    \"tsm\": \"^2.3.0\",\n    \"typescript\": \"^5.9.3\",\n    \"typescript-eslint\": \"^8.47.0\",\n    \"undici\": \"^7.16.0\",\n    \"vercel\": \"^48.10.10\",\n    \"vite\": \"^7.2.4\",\n    \"vite-imagetools\": \"^9.0.0\",\n    \"vite-plugin-node-polyfills\": \"^0.24.0\",\n    \"vite-plugin-static-copy\": \"^3.1.4\",\n    \"vite-tsconfig-paths\": \"^5.1.4\"\n  },\n  \"dependencies\": {\n    \"@valibot/zod-to-valibot\": \"workspace:*\",\n    \"@vercel/og\": \"0.7.2\",\n    \"@vercel/speed-insights\": \"^1.2.0\",\n    \"clsx\": \"^2.1.1\",\n    \"jscodeshift\": \"^17.3.0\",\n    \"lz-string\": \"^1.5.0\",\n    \"monaco-editor\": \"^0.55.1\",\n    \"monaco-editor-textmate\": \"^4.0.0\",\n    \"monaco-textmate\": \"^3.0.1\",\n    \"onigasm\": \"^2.2.5\",\n    \"satori-html\": \"^0.3.2\",\n    \"sucrase\": \"^3.35.1\",\n    \"valibot\": \"workspace:*\"\n  },\n  \"engines\": {\n    \"node\": \">=20.0.0\"\n  }\n}\n"
  },
  {
    "path": "website/public/manifest.json",
    "content": "{\n  \"$schema\": \"https://json.schemastore.org/web-manifest-combined.json\",\n  \"name\": \"Valibot\",\n  \"short_name\": \"Valibot\",\n  \"description\": \"Modular and type safe schema library\",\n  \"theme_color\": \"#111827\",\n  \"background_color\": \"#111827\",\n  \"display\": \"standalone\",\n  \"start_url\": \".\",\n  \"icons\": [\n    {\n      \"src\": \"/icon-192px.png\",\n      \"sizes\": \"192x192\",\n      \"type\": \"image/png\"\n    },\n    {\n      \"src\": \"/icon-192px.jpeg\",\n      \"sizes\": \"192x192\",\n      \"type\": \"image/jpeg\"\n    },\n    {\n      \"src\": \"/icon-512px.png\",\n      \"sizes\": \"512x512\",\n      \"type\": \"image/png\"\n    },\n    {\n      \"src\": \"/icon-512px.jpeg\",\n      \"sizes\": \"512x512\",\n      \"type\": \"image/jpeg\"\n    }\n  ]\n}\n"
  },
  {
    "path": "website/public/robots.txt",
    "content": "User-agent: * \nDisallow: \n\nSitemap: https://valibot.dev/sitemap.xml"
  },
  {
    "path": "website/scripts/contributors.ts",
    "content": "import dotenv from 'dotenv';\nimport graymatter from 'gray-matter';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport { fetch } from 'undici';\nimport { findNestedFiles } from './utils/index';\n\n// Load environment variables\ndotenv.config({ path: '.env.local', override: true });\n\n/**\n * NOTE: Please create `.env.local`, and set your own `GITHUB_PERSONAL_ACCESS_TOKEN`.\n * This token is required because of the GitHub API rate limit. https://docs.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting\n * How to create a personal access token: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token\n */\nconst GITHUB_PERSONAL_ACCESS_TOKEN = process.env.GITHUB_PERSONAL_ACCESS_TOKEN;\n\nconst EXCLUDED_COMMITS = ['2cc351f6db7798cf60276225abcbacbc1ea491db'];\n\n/**\n * Updates the contributors of the guides and API reference.\n */\nasync function updateContributors() {\n  // Check if GitHub personal access token is available\n  if (!GITHUB_PERSONAL_ACCESS_TOKEN) {\n    throw new Error('Missing GITHUB_PERSONAL_ACCESS_TOKEN');\n  }\n\n  // Find all MDX files of guides and API reference\n  const filePaths = findNestedFiles(\n    [path.join('src', 'routes', 'guides'), path.join('src', 'routes', 'api')],\n    (fileName) => fileName === 'index.mdx'\n  );\n\n  // Update contributors of each MDX file\n  for (const filePath of filePaths) {\n    // Log info to console\n    console.log('Update:', filePath);\n\n    // Read frontmatter of MDX file\n    const frontmatter = graymatter.read(filePath);\n\n    // Create API URL and add query parameters\n    const url = new URL(\n      'https://api.github.com/repos/open-circle/valibot/commits'\n    );\n    url.searchParams.set('since', '2023-07-13T00:00:00.000Z');\n    url.searchParams.set('path', `website/${filePath.replace(/\\\\/g, '/')}`);\n\n    // Fetch commits of file from GitHub\n    const response = await fetch(url.href, {\n      headers: {\n        Authorization: `Bearer ${GITHUB_PERSONAL_ACCESS_TOKEN}`,\n      },\n    });\n\n    // Continue if GitHub responded with status code 200\n    if (response.status === 200) {\n      // Get commits from response\n      const commits = (await response.json()) as {\n        sha: string;\n        author: { login: string } | null;\n      }[];\n\n      // Create contributors list\n      const contributors: { author: string; count: number }[] = [];\n\n      // Count commits of each author\n      for (const commit of commits) {\n        if (!EXCLUDED_COMMITS.includes(commit.sha) && commit.author) {\n          const author = commit.author.login;\n          const contributor = contributors.find(\n            (contributor) => contributor.author === author\n          );\n          if (contributor) {\n            contributor.count++;\n          } else {\n            contributors.push({ author, count: 1 });\n          }\n        }\n      }\n\n      // Sort contributors by commit count\n      contributors.sort((a, b) =>\n        a.count < b.count ? 1 : a.count > b.count ? -1 : 0\n      );\n\n      // Add contributors to frontmatter\n      frontmatter.data.contributors = [\n        ...new Set([\n          ...contributors.map((contributor) => contributor.author),\n          ...(frontmatter.data.contributors || []),\n        ]),\n      ];\n\n      // Write changes to MDX file\n      fs.writeFileSync(\n        filePath,\n        graymatter.stringify(frontmatter.content, frontmatter.data)\n      );\n\n      // Otherwise, log error to console\n    } else {\n      console.log(\n        'error',\n        response.status,\n        response.statusText,\n        await response.text()\n      );\n    }\n  }\n}\n\n// Start update process\nupdateContributors();\n"
  },
  {
    "path": "website/scripts/llms.ts",
    "content": "import graymatter from 'gray-matter';\nimport fs from 'node:fs';\nimport path from 'node:path';\n\n// Read menu.md of guides and API\nconst menuOfGuides = fs.readFileSync(\n  path.join('src', 'routes', 'guides', 'menu.md'),\n  'utf-8'\n);\nconst menuOfApi = fs.readFileSync(\n  path.join('src', 'routes', 'api', 'menu.md'),\n  'utf-8'\n);\n\n/**\n * Converts a markdown menu to a string suitable for our llms.txt file.\n *\n * @param markdown The markdown string to convert.\n *\n * @returns A llms.txt compatible string.\n */\nfunction convertMenuToLlms(markdown: string): string {\n  return (\n    markdown\n      // Change levels of headings to one level down\n      .replaceAll(/^#/gm, '##')\n      // Replace relative paths with URLs to MD files\n      .replaceAll(/\\(\\/(.+)\\/\\)$/gm, '(https://valibot.dev/$1.md)')\n  );\n}\n\n// Create llms.txt intro text\nconst introText =\n  '# Valibot\\n\\nThe modular and type safe schema library for validating structural data.\\n';\n\n// Create llms.txt file with content of guides and API menus\nconst llmsTxt = `${introText}\\n${convertMenuToLlms(menuOfGuides)}\\n${convertMenuToLlms(menuOfApi)}`;\n\n// Write llms.txt file to public directory\nfs.writeFileSync(path.join('public', 'llms.txt'), llmsTxt);\n\n/**\n * Extracts grouped file paths from a markdown menu.\n *\n * @param markdown The markdown menu string.\n *\n * @returns A grouped array of file paths.\n */\nfunction extractFilePathsOfMenu(\n  markdown: string\n): { title: string; files: { name: string; path: string }[] }[] {\n  // Split menu into groups based on level 2 headings\n  const groups = markdown.split(/^## /gm).slice(1);\n\n  // Convert groups into an array of MDX file paths\n  return groups.map((group) => {\n    // Extract title and create slug\n    const groupTitle = group.match(/(^.+)\\n/)![1];\n    const groupSlug = groupTitle.toLowerCase().replace(/\\s+/g, '-');\n\n    // Create object to hold title and file data\n    const groupData: {\n      title: string;\n      files: { name: string; path: string }[];\n    } = { title: groupTitle, files: [] };\n\n    // Extract file paths from group using regex\n    const filePaths = group.matchAll(/\\(\\/(.+)\\/(.+)\\/\\)/gm);\n\n    // Add data of each file path to group data\n    for (const regexMatch of filePaths) {\n      // Extract area and name from regex match\n      const fileArea = regexMatch[1];\n      const fileName = regexMatch[2];\n\n      // Create MDX file path based on area, group slug and name\n      const filePath = path.join(\n        'src',\n        'routes',\n        fileArea,\n        `(${groupSlug})`,\n        fileName,\n        'index.mdx'\n      );\n\n      // Add file data to fiels of group data\n      groupData.files.push({\n        name: fileName,\n        path: filePath,\n      });\n    }\n\n    // Return final group data\n    return groupData;\n  });\n}\n\n// Create object to hold content for specific llms files\nconst llms: Record<'full' | 'guides' | 'api', string> = {\n  full: introText,\n  guides: introText,\n  api: introText,\n};\n\n// Define content areas with all necessary data\nconst contentAreas = [\n  {\n    id: 'guides',\n    name: 'guides',\n    publicDir: path.join('public', 'guides'),\n    groups: extractFilePathsOfMenu(menuOfGuides),\n  },\n  {\n    id: 'api',\n    name: 'API',\n    publicDir: path.join('public', 'api'),\n    groups: extractFilePathsOfMenu(menuOfApi),\n  },\n] as const;\n\n// Copy content of MDX files to public dir and add it to llms files\nfor (const contentArea of contentAreas) {\n  // Ensure directory of content area exists\n  if (!fs.existsSync(contentArea.publicDir)) {\n    fs.mkdirSync(contentArea.publicDir);\n  }\n\n  // Add group title to llms files and process its files\n  for (const areaGroup of contentArea.groups) {\n    // Create level 2 heading for group\n    const heading = `## ${areaGroup.title}`;\n\n    // Add heading to specific llms files\n    llms.full += `\\n${heading} (${contentArea.name})\\n`;\n    llms[contentArea.id] += `\\n${heading}\\n`;\n\n    // Copy content of MDX files to public dir and add content to llms files\n    for (const mdxFile of areaGroup.files) {\n      // Read MDX file and extract frontmatter\n      const frontmatter = graymatter.read(mdxFile.path);\n\n      // Remove MDX import statements from MDX content\n      const mdxContent = frontmatter.content.slice(\n        frontmatter.content.indexOf('# ') // Index of first heading\n      );\n\n      // Copy MDX content into public directory\n      fs.writeFileSync(\n        path.join(contentArea.publicDir, `${mdxFile.name}.md`),\n        mdxContent\n      );\n\n      // Change level of headings two levels down\n      const llmsContent = mdxContent.replaceAll(/^#/gm, '###');\n\n      // Add content to specific llms files\n      llms.full += `\\n${llmsContent}`;\n      llms[contentArea.id] += `\\n${llmsContent}`;\n    }\n  }\n}\n\n// Write specific llms files to public directory\nfs.writeFileSync(path.join('public', 'llms-full.txt'), llms.full);\nfs.writeFileSync(path.join('public', 'llms-guides.txt'), llms.guides);\nfs.writeFileSync(path.join('public', 'llms-api.txt'), llms.api);\n"
  },
  {
    "path": "website/scripts/sitemap.ts",
    "content": "import fs from 'node:fs';\nimport path from 'node:path';\nimport { findNestedFiles } from './utils/index';\n\nconst ORIGIN = 'https://valibot.dev';\n\n// Find all route index files\nconst filePaths = findNestedFiles(\n  [path.join('src', 'routes')],\n  (fileName) => fileName === 'index.tsx' || fileName === 'index.mdx'\n);\n\n// Create URL paths and sort them\nlet urlSet = filePaths\n  // Transform file paths to URL paths\n  .map((filePath) =>\n    filePath\n      .replace(/\\\\/g, '/')\n      .replace(/src\\/routes\\//, '')\n      .replace(/\\(.+\\)\\//, '')\n      .replace(/index\\.(tsx|mdx)/, '')\n  )\n  // Sort URL paths alphabetically\n  .sort()\n  // Reduce URL paths to URL set\n  .reduce(\n    (urlPaths, urlPath) =>\n      `${urlPaths}<url><loc>${ORIGIN}/${urlPath}</loc></url>`,\n    ''\n  );\n\n// Add thesis to URL set\nurlSet += `<url><loc>${ORIGIN}/thesis.pdf</loc></url>`;\n\n// Write sitemap.xml to public directory\nfs.writeFileSync(\n  path.join('public', 'sitemap.xml'),\n  `<?xml version=\"1.0\" encoding=\"UTF-8\"?><urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">${urlSet}</urlset>`\n);\n"
  },
  {
    "path": "website/scripts/sources.ts",
    "content": "import graymatter from 'gray-matter';\nimport fs from 'node:fs';\nimport path from 'node:path';\nimport { findNestedFiles } from './utils/index';\n\n// Find all MDX files of API reference\nconst filePaths = findNestedFiles(\n  [path.join('src', 'routes', 'api')],\n  (fileName) => fileName === 'index.mdx'\n);\n\n// Update source file paths of MDX files\nfor (const filePath of filePaths) {\n  if (!filePath.includes('(types)')) {\n    // Log info to console\n    console.log('Update:', filePath);\n\n    // Get group and name of source code file\n    const pathList = filePath.split('/');\n    let group = pathList.slice(3, 4)[0].replace('(', '').replace(')', '');\n    const name = pathList.slice(4, 5)[0];\n\n    // If group is async, find non-async group\n    if (group === 'async') {\n      const nonAsync = filePaths.find(\n        (filePath) =>\n          !filePath.includes('(async)') &&\n          filePath.includes(name.replace('Async', ''))\n      );\n      group = nonAsync!\n        .split('/')\n        .slice(3, 4)[0]\n        .replace('(', '')\n        .replace(')', '');\n    }\n\n    // Create path to source code file\n    const source = `/${group}/${name.replace('Async', '')}/${name}.ts`;\n\n    // Read frontmatter of MDX file\n    const frontmatter = graymatter.read(filePath);\n\n    // Add source code file path to frontmatter\n    frontmatter.data.source = source;\n\n    // Write changes to MDX file\n    fs.writeFileSync(\n      filePath,\n      graymatter.stringify(frontmatter.content, frontmatter.data)\n    );\n  }\n}\n"
  },
  {
    "path": "website/scripts/utils/findNestedFiles.ts",
    "content": "import fs from 'node:fs';\nimport path from 'node:path';\n\n/**\n * Finds nested files in the given directories.\n *\n * @param directories The directories to search in.\n * @param requirement The requirement for a file to be included.\n *\n * @returns A list of file paths.\n */\nexport function findNestedFiles(\n  directories: string[],\n  requirement: (fileName: string) => boolean\n) {\n  // Create file paths list\n  const filePaths: string[] = [];\n\n  // Search for index files in each directory\n  for (const directory of directories) {\n    // Get items of directory\n    const items = fs.readdirSync(directory);\n\n    for (const itemName of items) {\n      // If item matches requirement, add it to list\n      if (requirement(itemName)) {\n        filePaths.push(path.join(directory, itemName));\n\n        // Otherwise, search for nested files\n      } else {\n        const itemPath = path.join(directory, itemName);\n        const itemStat = fs.statSync(itemPath);\n        if (itemStat.isDirectory()) {\n          filePaths.push(...findNestedFiles([itemPath], requirement));\n        }\n      }\n    }\n  }\n\n  // Return file paths list\n  return filePaths;\n}\n"
  },
  {
    "path": "website/scripts/utils/index.ts",
    "content": "export * from './findNestedFiles';\n"
  },
  {
    "path": "website/src/components/ActionButton.tsx",
    "content": "import { component$ } from '@builder.io/qwik';\nimport clsx from 'clsx';\nimport { type DefaultButtonProps, UnstyledButton } from './UnstyledButton';\n\ntype ActionButtonProps = DefaultButtonProps & {\n  variant: 'primary' | 'secondary';\n  label: string;\n};\n\n/**\n * Button that is used for navigation, to confirm form entries or perform\n * individual actions.\n */\nexport const ActionButton = component$<ActionButtonProps>(\n  ({ label, variant, ...props }) => (\n    <UnstyledButton\n      {...props}\n      class={clsx(\n        'focus-ring relative flex items-center justify-center rounded-2xl px-5 py-2.5 font-medium no-underline backdrop-blur transition-colors md:text-lg lg:rounded-2xl lg:px-6 lg:py-3 lg:text-xl',\n        variant === 'primary' &&\n          'bg-sky-600 text-white hover:bg-sky-600/80 dark:bg-sky-400 dark:text-gray-900 dark:hover:bg-sky-400/80',\n        variant === 'secondary' &&\n          'bg-sky-600/10 text-sky-600 hover:bg-sky-600/20 dark:bg-sky-400/10 dark:text-sky-400 dark:hover:bg-sky-400/20',\n        props.class\n      )}\n    >\n      {label}\n    </UnstyledButton>\n  )\n);\n"
  },
  {
    "path": "website/src/components/ApiList.tsx",
    "content": "import { component$ } from '@builder.io/qwik';\nimport { Link } from './Link';\n\ntype ApiListProps = {\n  label?: string;\n  items: string[];\n};\n\n/**\n * List to display APIs and navigate to their documentation.\n */\nexport const ApiList = component$<ApiListProps>(({ label, items }) => (\n  <ul class=\"ml-8! flex list-none flex-row flex-wrap gap-2 lg:ml-10!\">\n    {label && label + ': '}\n    {items.map((item, index) => (\n      <li key={item} class=\"p-0!\">\n        <Link href={`/api/${item}/`}>\n          <code>{item}</code>\n        </Link>\n        {index < items.length - 1 && ','}\n      </li>\n    ))}\n  </ul>\n));\n"
  },
  {
    "path": "website/src/components/ButtonGroup.tsx",
    "content": "import { component$, Slot } from '@builder.io/qwik';\nimport clsx from 'clsx';\n\ntype ButtonGroupProps = {\n  class?: string;\n};\n\n/**\n * Button group displays multiple related actions side-by-side and helps with\n * arrangement and spacing.\n */\nexport const ButtonGroup = component$<ButtonGroupProps>((props) => (\n  <div class={clsx('flex flex-wrap gap-6 lg:gap-8', props.class)}>\n    <Slot />\n  </div>\n));\n"
  },
  {
    "path": "website/src/components/Chapters.tsx",
    "content": "import {\n  component$,\n  useComputed$,\n  useSignal,\n  useTask$,\n  useVisibleTask$,\n} from '@builder.io/qwik';\nimport { useContent } from '@builder.io/qwik-city';\nimport clsx from 'clsx';\n\n/**\n * Navigation list used to display the current page's content structure.\n */\nexport const Chapters = component$(() => {\n  // Use content and active ID signal\n  const content = useContent();\n  const activeId = useSignal<string>();\n\n  // Use list element and indicator style signal\n  const listElement = useSignal<HTMLUListElement>();\n  const indicatorStyle = useSignal<{\n    top: string;\n    height: string;\n  }>();\n\n  // Compute filtererd level 2 headings\n  const headings = useComputed$(\n    () =>\n      // Use level 2 headings for subpages\n      content.headings?.filter((heading) => heading.level === 2) ||\n      // Or use main menu items for top level pages\n      content.menu?.items?.map((heading) => ({\n        text: heading.text,\n        id: heading.text.toLowerCase(),\n      })) ||\n      []\n  );\n\n  // Reset active ID when headings change\n  useTask$(({ track }) => {\n    track(headings);\n    activeId.value = undefined;\n  });\n\n  // Update active ID when heading is intersecting\n  // eslint-disable-next-line qwik/no-use-visible-task\n  useVisibleTask$(({ track, cleanup }) => {\n    // Update observer when headings change\n    track(headings);\n\n    // Create intersection observer\n    const observer = new IntersectionObserver(\n      (entries) => {\n        // Check every intersection entry\n        for (let index = 0; index < entries.length; index++) {\n          const entry = entries[index];\n\n          // Mark first visible heading or last heading that is above viewport\n          // as active\n          if (\n            entry.isIntersecting ||\n            (index > 0 &&\n              index === entries.length - 1 &&\n              entry.boundingClientRect.top < 0)\n          ) {\n            activeId.value = entry.target.id;\n            break;\n          }\n\n          // Mark previous heading of first heading below intersection\n          // bounding box, if any, as active\n          if (entry.boundingClientRect.top > 0) {\n            activeId.value =\n              headings.value[\n                headings.value.findIndex(\n                  (heading) => heading.id === entry.target.id\n                ) - 1\n              ]?.id;\n            break;\n          }\n        }\n      },\n\n      // Observe only top 30% of window\n      { rootMargin: '0px 0px -70% 0px' }\n    );\n\n    // Observe every heading element\n    headings.value.forEach((heading) =>\n      observer.observe(document.getElementById(heading.id)!)\n    );\n\n    // Disconnect observer on cleanup\n    cleanup(() => observer.disconnect());\n  });\n\n  // Update indicator style when active ID changes\n  // eslint-disable-next-line qwik/no-use-visible-task\n  useVisibleTask$(({ track }) => {\n    track(activeId);\n\n    // Get active list element by pathname and href\n    const activeElement = [...listElement.value!.children].find((e) =>\n      (e.children[0] as HTMLAnchorElement).href.endsWith(`#${activeId.value}`)\n    ) as HTMLLIElement | undefined;\n\n    // Update indicator style to active element or reset it to undefined\n    indicatorStyle.value = activeElement\n      ? {\n          top: `${activeElement.offsetTop}px`,\n          height: `${activeElement.offsetHeight}px`,\n        }\n      : undefined;\n  });\n\n  return (\n    <nav class=\"sticky top-32 flex flex-col gap-6\">\n      <h5 class=\"text-lg font-medium text-slate-900 dark:text-slate-200\">\n        On this page\n      </h5>\n      <div class=\"relative\">\n        <ul\n          class=\"flex flex-col gap-5 border-l-2 border-l-slate-200 dark:border-l-slate-800\"\n          ref={listElement}\n        >\n          {headings.value.map(({ text, id }) => (\n            <li key={id}>\n              <a\n                class={clsx(\n                  'focus-ring relative -left-0.5 block truncate border-l-2 border-l-transparent pl-4 transition-colors hover:border-l-slate-400 focus-visible:rounded-md hover:dark:border-l-slate-600',\n                  activeId.value === id\n                    ? 'text-sky-600 dark:text-sky-400'\n                    : 'hover:text-slate-800 dark:hover:text-slate-300'\n                )}\n                href={`#${id}`}\n                preventdefault:click\n                onClick$={() =>\n                  document.getElementById(id)!.scrollIntoView({\n                    behavior: 'smooth',\n                  })\n                }\n              >\n                {text}\n              </a>\n            </li>\n          ))}\n        </ul>\n        <div\n          class=\"absolute m-0 w-0.5 rounded bg-sky-600 duration-200 dark:bg-sky-400\"\n          style={indicatorStyle.value}\n        />\n      </div>\n    </nav>\n  );\n});\n"
  },
  {
    "path": "website/src/components/CodeEditor.tsx",
    "content": "import {\n  $,\n  component$,\n  type NoSerialize,\n  noSerialize,\n  type QRL,\n  type Signal,\n  sync$,\n  useComputed$,\n  useSignal,\n  useTask$,\n  useVisibleTask$,\n} from '@builder.io/qwik';\nimport { isBrowser } from '@builder.io/qwik/build';\nimport clsx from 'clsx';\nimport * as monaco from 'monaco-editor';\nimport { wireTmGrammars } from 'monaco-editor-textmate';\nimport editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker';\nimport tsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker';\nimport { Registry } from 'monaco-textmate';\nimport { loadWASM } from 'onigasm';\nimport onigasm from 'onigasm/lib/onigasm.wasm?url';\nimport prettierPluginEstree from 'prettier/plugins/estree';\nimport prettierPluginTypeScript from 'prettier/plugins/typescript';\nimport { formatWithCursor } from 'prettier/standalone';\nimport { useTheme } from '~/routes/plugin@theme';\nimport valibotTypes from '../../../library/dist/index.d.mts?raw';\nimport valibotPackageJson from '../../../library/package.json?raw';\nimport valibotToJsonSchemaTypes from '../../../packages/to-json-schema/dist/index.d.mts?raw';\nimport valibotToJsonSchemaPackageJson from '../../../packages/to-json-schema/package.json?raw';\nimport typescriptTm from '../json/TypeScript.tmLanguage.json';\n\ntype CodeEditorProps = {\n  class: string;\n  value: Signal<string>;\n  model: Signal<NoSerialize<monaco.editor.ITextModel>>;\n  onSave$?: QRL<() => void>;\n};\n\n/**\n * Monaco code editor with TypeScript support and syntax highlighting.\n */\nexport const CodeEditor = component$<CodeEditorProps>(\n  ({ value, model, onSave$, ...props }) => {\n    // Use theme\n    const theme = useTheme();\n\n    // Use element and editor signal\n    const element = useSignal<HTMLElement>();\n    const editor =\n      useSignal<NoSerialize<monaco.editor.IStandaloneCodeEditor>>();\n\n    // Compute editor theme name\n    const editorTheme = useComputed$(() =>\n      theme.value === 'dark' ? 'pace-dark' : 'pace-light'\n    );\n\n    /**\n     * Returns device specific editor options.\n     */\n    const getDeviceOptions = $(() =>\n      window.innerWidth <= 640\n        ? {\n            fontSize: 16,\n            padding: { top: 20, bottom: 20 },\n            lineNumbersMinChars: 3,\n          }\n        : {\n            fontSize: 18,\n            padding: { top: 40, bottom: 40 },\n            lineNumbersMinChars: 4,\n          }\n    );\n\n    // Initialize and setup Monaco editor\n    // eslint-disable-next-line qwik/no-use-visible-task\n    useVisibleTask$(async ({ cleanup }) => {\n      // Initialize Monaco editor environment\n      await initializeMonaco();\n\n      // Create model for Monaco editor instance\n      model.value = noSerialize(\n        monaco.editor.createModel(\n          value.value,\n          'typescript',\n          monaco.Uri.parse('file:///index.ts')\n        )\n      );\n\n      // Create Monaco editor instance with model\n      editor.value = noSerialize(\n        monaco.editor.create(element.value!, {\n          ...(await getDeviceOptions()),\n          autoDetectHighContrast: false,\n          automaticLayout: true,\n          // @ts-expect-error\n          'bracketPairColorization.enabled': false,\n          fontFamily:\n            'ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace',\n          model: model.value,\n          minimap: { enabled: false },\n          scrollBeyondLastLine: false,\n          theme: editorTheme.value,\n        })\n      );\n\n      // Dispose editor and model on cleanup\n      cleanup(() => {\n        editor.value!.dispose();\n        model.value!.dispose();\n      });\n    });\n\n    // Update theme on change\n    useTask$(async ({ track }) => {\n      track(editorTheme);\n      if (isBrowser) {\n        editor.value?.updateOptions({\n          theme: editorTheme.value,\n        });\n      }\n    });\n\n    /**\n     * Updates the device options of the code editor.\n     */\n    const updateDeviceOptions = $(async () =>\n      editor.value?.updateOptions(await getDeviceOptions())\n    );\n\n    /**\n     * Handles keyboard keydown events.\n     */\n    const handleKeyDown = $(async (event: KeyboardEvent) => {\n      if ((event.ctrlKey || event.metaKey) && event.key === 's') {\n        // Format code with Prettier\n        try {\n          const prettier = await formatWithCursor(model.value!.getValue(), {\n            cursorOffset: model.value!.getOffsetAt(\n              editor.value!.getPosition()!\n            ),\n            parser: 'typescript',\n            plugins: [prettierPluginEstree, prettierPluginTypeScript],\n            singleQuote: true,\n          });\n          model.value!.pushEditOperations(\n            null,\n            [\n              {\n                range: model.value!.getFullModelRange(),\n                text: prettier.formatted,\n              },\n            ],\n            () => null\n          );\n          editor.value!.setPosition(\n            model.value!.getPositionAt(prettier.cursorOffset)\n          );\n        } catch {\n          // Ignore formatting errors\n        }\n\n        // Execute save event\n        onSave$?.();\n      }\n    });\n\n    /**\n     * Prevents default behavior of keydown events.\n     */\n    const preventDefault = sync$((event: KeyboardEvent) => {\n      if ((event.ctrlKey || event.metaKey) && event.key === 's') {\n        event.preventDefault();\n      }\n    });\n\n    return (\n      <div\n        class={clsx('w-full', props.class)}\n        ref={element}\n        window:onResize$={updateDeviceOptions}\n        onKeyDown$={[preventDefault, handleKeyDown]}\n      />\n    );\n  }\n);\n\n/**\n * Sets up the Monaco editor environment.\n */\nasync function setupMonaco() {\n  // Load Onigasm WebAssembly module\n  await loadWASM(onigasm);\n\n  // Wire TypeScript TextMate grammar\n  await wireTmGrammars(\n    monaco,\n    new Registry({\n      getGrammarDefinition: async () => ({\n        format: 'json',\n        content: typescriptTm,\n      }),\n    }),\n    new Map().set('typescript', 'source.ts')\n  );\n\n  // Setup TypeScript and edior workers\n  window.MonacoEnvironment = {\n    getWorker: (_, label) =>\n      label === 'typescript' ? new tsWorker() : new editorWorker(),\n  };\n\n  // Define pace dark mode theme\n  monaco.editor.defineTheme('pace-dark', {\n    base: 'vs-dark',\n    inherit: false,\n    colors: {\n      'editor.foreground': '#CBD5E1',\n      'editor.background': '#111827',\n      'editor.selectionBackground': '#334155',\n      'editor.lineHighlightBackground': '#1E293B',\n      'editorCursor.foreground': '#E2E8F0',\n      'editorHoverWidget.border': '#1E293B',\n      'editorLineNumber.foreground': '#64748B',\n      'editorLineNumber.activeForeground': '#CBD5E1',\n      'editorIndentGuide.background': '#334155',\n      'editorWhitespace.foreground': '#334155',\n      'editorWidget.background': '#0A101C',\n      'scrollbarSlider.activeBackground': '#64748B80',\n      'scrollbarSlider.background': '#33415580',\n      'scrollbarSlider.hoverBackground': '#47556980',\n    },\n    rules: [\n      {\n        token: 'comment',\n        foreground: '#6B7280',\n      },\n      {\n        token: 'string',\n        foreground: '#FDE68A',\n      },\n      {\n        token: 'string.regex',\n        foreground: '#CBD5E1',\n      },\n      {\n        token: 'constant',\n        foreground: '#2DD4BF',\n      },\n      {\n        token: 'constant.numeric',\n        foreground: '#C084FC',\n      },\n      {\n        token: 'keyword',\n        foreground: '#F87171',\n      },\n      {\n        token: 'keyword.operator.assignment',\n        foreground: '#94A3B8',\n      },\n      {\n        token: 'storage',\n        foreground: '#2DD4BF',\n      },\n      {\n        token: 'entity',\n        foreground: '#34D399',\n      },\n      {\n        token: 'entity.name.type',\n        foreground: '#38BDF8',\n      },\n      {\n        token: 'variable',\n        foreground: '#38BDF8',\n      },\n      {\n        token: 'variable.parameter',\n        foreground: '#FDBA74',\n      },\n      {\n        token: 'punctuation',\n        foreground: '#94A3B8',\n      },\n      {\n        token: 'punctuation.definition.string',\n        foreground: '#FDE68A',\n      },\n      {\n        token: 'punctuation.definition.group.regexp',\n        foreground: '#F87171',\n      },\n      {\n        token: 'punctuation.definition.character-class',\n        foreground: '#2DD4BF',\n      },\n      {\n        token: 'support',\n        foreground: '#2DD4BF',\n      },\n      {\n        token: 'support.class',\n        foreground: '#38BDF8',\n      },\n    ],\n  });\n\n  // Define pace light mode theme\n  monaco.editor.defineTheme('pace-light', {\n    base: 'vs',\n    inherit: false,\n    colors: {\n      'editor.foreground': '#334155',\n      'editor.background': '#FFFFFF',\n      'editor.selectionBackground': '#CBD5E1',\n      'editor.lineHighlightBackground': '#F1F5F9',\n      'editorCursor.foreground': '#0F172A',\n      'editorHoverWidget.border': '#E2E8F0',\n      'editorIndentGuide.background': '#CBD5E1',\n      'editorLineNumber.foreground': '#94A3B8',\n      'editorLineNumber.activeForeground': '#334155',\n      'editorWhitespace.foreground': '#CBD5E1',\n      'editorWidget.background': '#F1F5F9',\n      'scrollbarSlider.activeBackground': '#94A3B880',\n      'scrollbarSlider.background': '#E2E8F080',\n      'scrollbarSlider.hoverBackground': '#CBD5E180',\n    },\n    rules: [\n      {\n        token: 'comment',\n        foreground: '#94A3B8',\n      },\n      {\n        token: 'string',\n        foreground: '#CA8A04',\n      },\n      {\n        token: 'string.regex',\n        foreground: '#334155',\n      },\n      {\n        token: 'constant',\n        foreground: '#0D9488',\n      },\n      {\n        token: 'constant.numeric',\n        foreground: '#9333EA',\n      },\n      {\n        token: 'keyword',\n        foreground: '#DC2626',\n      },\n      {\n        token: 'keyword.operator.assignment',\n        foreground: '#64748B',\n      },\n      {\n        token: 'storage',\n        foreground: '#0D9488',\n      },\n      {\n        token: 'entity',\n        foreground: '#059669',\n      },\n      {\n        token: 'entity.name.type',\n        foreground: '#0284C7',\n      },\n      {\n        token: 'variable',\n        foreground: '#0284C7',\n      },\n      {\n        token: 'variable.parameter',\n        foreground: '#F97316',\n      },\n      {\n        token: 'punctuation',\n        foreground: '#64748B',\n      },\n      {\n        token: 'punctuation.definition.string',\n        foreground: '#CA8A04',\n      },\n      {\n        token: 'punctuation.definition.group.regexp',\n        foreground: '#DC2626',\n      },\n      {\n        token: 'punctuation.definition.character-class',\n        foreground: '#0D9488',\n      },\n      {\n        token: 'support',\n        foreground: '#059669',\n      },\n      {\n        token: 'support.class',\n        foreground: '#0284C7',\n      },\n    ],\n  });\n\n  // Add Valibot to context of editor\n  monaco.typescript.typescriptDefaults.addExtraLib(\n    valibotPackageJson,\n    'file:///node_modules/valibot/package.json'\n  );\n  monaco.typescript.typescriptDefaults.addExtraLib(\n    valibotTypes,\n    'file:///node_modules/valibot/dist/index.d.mts'\n  );\n\n  // Add to-json-schema to context of editor\n  monaco.typescript.typescriptDefaults.addExtraLib(\n    valibotToJsonSchemaPackageJson,\n    'file:///node_modules/@valibot/to-json-schema/package.json'\n  );\n  monaco.typescript.typescriptDefaults.addExtraLib(\n    valibotToJsonSchemaTypes,\n    'file:///node_modules/@valibot/to-json-schema/dist/index.d.mts'\n  );\n\n  // Set TypeScript compiler options\n  monaco.typescript.typescriptDefaults.setCompilerOptions({\n    strict: true,\n    exactOptionalPropertyTypes: true,\n    target: monaco.typescript.ScriptTarget.ESNext,\n    module: monaco.typescript.ModuleKind.ESNext,\n    moduleResolution: monaco.typescript.ModuleResolutionKind.NodeJs,\n    skipLibCheck: true,\n  });\n}\n\n// Create initialization promise\nlet promise: Promise<void> | undefined;\n\n/**\n * Initializes Monaco editor environment.\n */\nasync function initializeMonaco() {\n  if (!promise) {\n    promise = setupMonaco();\n  }\n  await promise;\n}\n"
  },
  {
    "path": "website/src/components/Credits.tsx",
    "content": "import { component$ } from '@builder.io/qwik';\nimport { useDocumentHead } from '@builder.io/qwik-city';\nimport {\n  AlgoliaLogo,\n  BoltLogo,\n  BuilderLogo,\n  DigitalOceanLogo,\n  HdmLogo,\n  MotionLogo,\n  PaceLogo,\n  StainlessLogo,\n  TestMuAiLogo,\n  VercelLogo,\n} from '~/logos';\n\n/**\n * Displays the contributors of the current page as well as partners and\n * sponsors of the project.\n */\nexport const Credits = component$(() => {\n  const head = useDocumentHead<{ contributors?: string[] }>();\n  return (\n    <footer class=\"mx-8 mt-12 border-t-2 border-slate-200 pt-2 md:mt-16 md:pt-4 lg:mx-10 lg:mt-20 lg:pt-6 dark:border-slate-800\">\n      {!!head.frontmatter.contributors?.length && (\n        <>\n          <h3 class=\"mt-10 text-lg font-medium text-slate-900 md:mt-12 md:text-xl lg:mt-14 lg:text-2xl dark:text-slate-200\">\n            Contributors\n          </h3>\n          <p class=\"mt-3 leading-loose md:mt-4 md:text-lg lg:mt-5 lg:text-xl\">\n            Thanks to all the contributors who helped make this page better!\n          </p>\n          <ul class=\"mt-4 flex flex-wrap gap-2 md:mt-5 lg:mt-6 lg:gap-3\">\n            {head.frontmatter.contributors.map((contributor) => (\n              <li key={contributor}>\n                <a\n                  href={`https://github.com/${contributor}`}\n                  target=\"_blank\"\n                  rel=\"noreferrer\"\n                >\n                  <img\n                    width=\"88\"\n                    height=\"88\"\n                    loading=\"lazy\"\n                    src={`https://github.com/${contributor}.png?size=88`}\n                    alt={`GitHub profile picture of @${contributor}`}\n                    class=\"w-9 rounded-full md:w-10 lg:w-11\"\n                  />\n                </a>\n              </li>\n            ))}\n          </ul>\n        </>\n      )}\n\n      <h3 class=\"mt-10 text-lg font-medium text-slate-900 md:mt-12 md:text-xl lg:mt-14 lg:text-2xl dark:text-slate-200\">\n        Partners\n      </h3>\n      <p class=\"mt-3 leading-loose md:mt-4 md:text-lg lg:mt-5 lg:text-xl\">\n        Thanks to our partners who support the project ideally and financially.\n      </p>\n      <ul class=\"mt-4 flex flex-wrap gap-x-6 gap-y-3 md:mt-5 md:gap-x-8 md:gap-y-4 lg:mt-6 lg:gap-x-10 lg:gap-y-5\">\n        {[\n          { Logo: PaceLogo, href: 'https://www.pace.edu' },\n          { Logo: HdmLogo, href: 'https://www.hdm-stuttgart.de' },\n          { Logo: BoltLogo, href: 'https://bolt.new/' },\n          { Logo: MotionLogo, href: 'https://www.usemotion.com/' },\n          { Logo: VercelLogo, href: 'https://vercel.com' },\n          { Logo: StainlessLogo, href: 'https://www.stainless.com/' },\n          {\n            Logo: TestMuAiLogo,\n            href: 'https://www.testmuai.com/?utm_medium=sponsor&utm_source=valibot',\n          },\n          { Logo: AlgoliaLogo, href: 'https://www.algolia.com' },\n          { Logo: DigitalOceanLogo, href: 'https://www.digitalocean.com/' },\n          { Logo: BuilderLogo, href: 'https://www.builder.io' },\n        ].map(({ Logo, href }) => (\n          <li key={href}>\n            <a href={href} target=\"_blank\" rel=\"noreferrer\">\n              <Logo class=\"h-9 md:h-11 lg:h-12\" />\n            </a>\n          </li>\n        ))}\n      </ul>\n\n      <h3 class=\"mt-10 text-lg font-medium text-slate-900 md:mt-12 md:text-xl lg:mt-14 lg:text-2xl dark:text-slate-200\">\n        Sponsors\n      </h3>\n      <p class=\"mt-3 leading-loose md:mt-4 md:text-lg lg:mt-5 lg:text-xl\">\n        Thanks to our GitHub sponsors who support the project financially.\n      </p>\n      <ul class=\"mt-4 flex flex-wrap gap-2 md:mt-5 lg:mt-6 lg:gap-3\">\n        {[\n          'antfu',\n          'UpwayShop',\n          'vasilii-kovalev',\n          'saturnonearth',\n          'ruiaraujo012',\n          'hyunbinseo',\n          'nickytonline',\n          'KubaJastrz',\n          'kibertoad',\n          'Thanaen',\n          'caegdeveloper',\n          'bmoyroud',\n          'dslatkin',\n        ].map((sponsor) => (\n          <li key={sponsor}>\n            <a\n              href={`https://github.com/${sponsor}`}\n              target=\"_blank\"\n              rel=\"noreferrer\"\n            >\n              <img\n                width=\"88\"\n                height=\"88\"\n                loading=\"lazy\"\n                src={`https://github.com/${sponsor}.png?size=88`}\n                alt={`GitHub profile picture of @${sponsor}`}\n                class=\"w-9 rounded-full md:w-10 lg:w-11\"\n              />\n            </a>\n          </li>\n        ))}\n      </ul>\n    </footer>\n  );\n});\n"
  },
  {
    "path": "website/src/components/DiscordIconLink.tsx",
    "content": "import { component$ } from '@builder.io/qwik';\nimport { DiscordIcon } from '~/icons';\nimport { SystemIcon } from './SystemIcon';\n\n/**\n * Discord icon pointing to our community server.\n */\nexport const DiscordIconLink = component$(() => (\n  <SystemIcon\n    label=\"Join our Discord server\"\n    type=\"link\"\n    href=\"https://discord.gg/tkMjQACf2P\"\n    target=\"_blank\"\n  >\n    <DiscordIcon class=\"h-full\" />\n  </SystemIcon>\n));\n"
  },
  {
    "path": "website/src/components/DocSearch.tsx",
    "content": "import {\n  $,\n  component$,\n  type Signal,\n  sync$,\n  useComputed$,\n  useSignal,\n  useTask$,\n} from '@builder.io/qwik';\nimport { useLocation, useNavigate } from '@builder.io/qwik-city';\nimport { isBrowser } from '@builder.io/qwik/build';\nimport clsx from 'clsx';\nimport { useFocusTrap, useStorageSignal } from '~/hooks';\nimport {\n  AngleRightIcon,\n  CloseIcon,\n  HashtagIcon,\n  PageIcon,\n  SearchIcon,\n} from '~/icons';\nimport { AlgoliaLogo } from '~/logos';\nimport { trackEvent } from '~/utils';\nimport { Link } from './Link';\nimport { SystemIcon } from './SystemIcon';\nimport { TextLink } from './TextLink';\n\ntype HitType = 'lvl2' | 'lvl3' | 'lvl4' | 'lvl5' | 'content';\n\ntype AlgoliaResult = {\n  hits: {\n    type: HitType;\n    hierarchy: {\n      lvl0: string;\n      lvl1: string;\n      lvl2: string;\n      lvl3: string | null;\n      lvl4: string | null;\n    };\n    content: string | null;\n    url: string;\n    _highlightResult: {\n      hierarchy: {\n        lvl0: { value: string };\n        lvl1: { value: string };\n        lvl2: { value: string };\n        lvl3: { value: string } | undefined;\n        lvl4: { value: string } | undefined;\n        lvl5: { value: string } | undefined;\n      };\n    };\n    _snippetResult?: {\n      content: { value: string };\n    };\n  }[];\n};\n\ntype SearchItem = {\n  group: string;\n  relation: 'page' | 'child' | 'none';\n  type: HitType;\n  page: string;\n  text: string;\n  path: string;\n};\n\ntype SearchStorage = {\n  [key: string]:\n    | {\n        result: SearchItem[];\n        expires: number;\n      }\n    | undefined;\n};\n\ntype DocSearchProps = {\n  open: Signal<boolean>;\n};\n\n/**\n * Provides a search box for the documentation.\n */\nexport const DocSearch = component$<DocSearchProps>(({ open }) => {\n  // Use location and navigate\n  const location = useLocation();\n  const navigate = useNavigate();\n\n  // Use input, loading, active index and error signal\n  const input = useSignal('');\n  const loading = useSignal(false);\n  const activeIndex = useSignal(0);\n  const error = useSignal(false);\n\n  // Use modal and input element signal\n  const modalElement = useSignal<HTMLDivElement>();\n  const inputElement = useSignal<HTMLInputElement>();\n\n  // Use storage, recent, result and clicked signal\n  const storage = useStorageSignal<SearchStorage>('search-index', {});\n  const recent = useStorageSignal<SearchItem[]>('search-recent', []);\n  const result = useSignal<SearchItem[]>([]);\n  const clicked = useSignal<SearchItem | null>(null);\n\n  // Compute search items\n  const searchItems = useComputed$(() =>\n    input.value ? result.value : recent.value\n  );\n\n  // Use focus trap when search is open\n  useFocusTrap(modalElement, open);\n\n  // Do stuff when search is opened or closed\n  useTask$(({ track }) => {\n    track(inputElement);\n    track(open);\n    if (isBrowser && inputElement.value) {\n      // Focus input and block background scrolling when search is opened\n      if (open.value) {\n        inputElement.value.focus();\n        document.body.style.overflow = 'hidden';\n\n        // Tracke open search event\n        trackEvent('open_search');\n\n        // Otherwise when search is closed, add clicked item to recent and\n        // reset state and background scrolling\n      } else {\n        const item = clicked.value;\n        if (item) {\n          recent.value = [\n            item,\n            ...recent.value.filter((i) => i !== item).slice(0, 5),\n          ];\n\n          // Track seleact search item event\n          trackEvent('select_search_item', {\n            input: input.value,\n            path: item.path,\n          });\n        }\n\n        // Reset state and background scrolling\n        input.value = '';\n        activeIndex.value = 0;\n        result.value = [];\n        clicked.value = null;\n        document.body.style.overflow = '';\n      }\n    }\n  });\n\n  // Close search when location changes\n  useTask$(({ track }) => {\n    track(() => location.prevUrl);\n    if (isBrowser) {\n      open.value = false;\n    }\n  });\n\n  // Update search result and active index when input changes\n  useTask$(({ track, cleanup }) => {\n    const currentInput = track(input);\n    if (isBrowser) {\n      // Reset error state\n      error.value = false;\n\n      // If input is present, query and set search result\n      if (currentInput) {\n        // Get its current value\n        const storageValue = storage.value[currentInput];\n\n        // Set result of index values is present and not expired\n        if (storageValue && storageValue.expires >= Date.now()) {\n          activeIndex.value = storageValue.result.length ? 0 : -1;\n          result.value = storageValue.result;\n          loading.value = false;\n\n          // Otherwise query search result from Algolia with a short timeout to\n          // reduce unnecessary queries\n        } else {\n          const timeout = setTimeout(async () => {\n            try {\n              const algoliaResult = (await (\n                await fetch(\n                  `https://${\n                    import.meta.env.PUBLIC_ALGOLIA_APP_ID\n                  }-dsn.algolia.net/1/indexes/${\n                    import.meta.env.PUBLIC_ALGOLIA_INDEX_NAME\n                  }/query`,\n                  {\n                    method: 'POST',\n                    headers: {\n                      'X-Algolia-Application-Id': import.meta.env\n                        .PUBLIC_ALGOLIA_APP_ID,\n                      'X-Algolia-API-Key': import.meta.env\n                        .PUBLIC_ALGOLIA_PUBLIC_API_KEY,\n                      'Content-Type': 'application/json',\n                    },\n                    body: JSON.stringify({\n                      query: currentInput,\n                      filters: 'NOT type:lvl1',\n                    }),\n                  }\n                )\n              ).json()) as AlgoliaResult;\n\n              // Transform hits of Algolia result to our schema\n              let prevItem: SearchItem | undefined;\n              const searchResult: SearchItem[] = algoliaResult.hits.map(\n                (hit) => {\n                  // Create path by removing origin from URL\n                  const path = hit.url.replace(\n                    import.meta.env.PUBLIC_WEBSITE_URL,\n                    ''\n                  );\n\n                  // Create search item object\n                  const searchItem: SearchItem = {\n                    group: `${hit.hierarchy.lvl0}${hit.hierarchy.lvl1 ? `: ${hit.hierarchy.lvl1}` : ''}`,\n                    relation:\n                      hit.type === 'lvl2'\n                        ? 'page'\n                        : prevItem &&\n                            prevItem.relation !== 'none' &&\n                            prevItem.path.split('#')[0] === path.split('#')[0]\n                          ? 'child'\n                          : 'none',\n                    type: hit.type,\n                    page: hit._highlightResult.hierarchy.lvl2.value,\n                    text:\n                      hit.type === 'content'\n                        ? hit._snippetResult!.content.value\n                        : hit._highlightResult.hierarchy[hit.type]!.value,\n                    path,\n                  };\n\n                  // Update previous item variable\n                  prevItem = searchItem;\n\n                  // Return search item object\n                  return searchItem;\n                }\n              );\n\n              // Add search result to search storage\n              storage.value = {\n                ...storage.value,\n                [currentInput]: {\n                  result: searchResult,\n                  expires: Date.now() + 6.048e8, // 7 days\n                },\n              };\n\n              // Set search result if input has not changed\n              if (currentInput === input.value) {\n                activeIndex.value = 0;\n                result.value = searchResult;\n                loading.value = false;\n              }\n\n              // Update state in case of an error\n            } catch {\n              error.value = true;\n            }\n          }, 150);\n\n          // Set loading to \"true\"\n          loading.value = true;\n\n          // Clear timeout if the input has changed in the meantime\n          cleanup(() => clearTimeout(timeout));\n        }\n\n        // Otherwise if input is empty, reset state\n      } else {\n        activeIndex.value = 0;\n        result.value = [];\n        loading.value = false;\n      }\n    }\n  });\n\n  /**\n   * Handles the click on a search item.\n   */\n  const handleClick = $((item: SearchItem) => {\n    if (item.path === location.url.pathname) {\n      open.value = false;\n    }\n    clicked.value = item;\n  });\n\n  /**\n   * Handles keyboard keydown events.\n   */\n  const handleKeyDown = $((event: KeyboardEvent) => {\n    // Open or close search\n    if (\n      ((event.ctrlKey || event.metaKey) && event.key === 'k') ||\n      (open.value && event.key === 'Escape')\n    ) {\n      open.value = !open.value;\n    }\n\n    if (open.value) {\n      // Change active index\n      if (event.key === 'ArrowUp' || event.key === 'ArrowDown') {\n        const maxIndex = searchItems.value.length - 1;\n        activeIndex.value =\n          event.key === 'ArrowUp'\n            ? activeIndex.value === 0\n              ? maxIndex\n              : activeIndex.value - 1\n            : activeIndex.value === maxIndex\n              ? 0\n              : activeIndex.value + 1;\n      }\n\n      // Select current active index\n      if (event.key === 'Enter') {\n        const item = searchItems.value[activeIndex.value];\n\n        if (item) {\n          if (item.path === location.url.pathname) {\n            open.value = false;\n          } else {\n            navigate(item.path);\n          }\n          clicked.value = item;\n        }\n      }\n    }\n  });\n\n  /**\n   * Prevents default behavior of keydown events.\n   */\n  const preventDefault = sync$((event: KeyboardEvent) => {\n    if ((event.ctrlKey || event.metaKey) && event.key === 'k') {\n      event.preventDefault();\n    }\n  });\n\n  return (\n    <div\n      class={clsx(\n        open.value &&\n          'fixed top-0 left-0 z-40 h-screen w-screen lg:p-40 xl:p-48'\n      )}\n      window:onKeyDown$={[preventDefault, handleKeyDown]}\n    >\n      {open.value && (\n        <>\n          <div\n            class=\"flex h-full w-full flex-col bg-white/90 backdrop-blur-sm lg:mx-auto lg:h-auto lg:max-h-full lg:max-w-3xl lg:rounded-3xl lg:bg-white lg:backdrop-blur-none dark:bg-gray-900/90 lg:dark:bg-gray-900\"\n            ref={modalElement}\n          >\n            {/* Header */}\n            <header class=\"flex h-14 shrink-0 items-center px-2 md:h-16 lg:h-[72px] lg:px-4\">\n              <form class=\"flex flex-1\" preventdefault:submit>\n                <SystemIcon\n                  label={loading.value ? 'Search' : 'Focus search input'}\n                  type=\"button\"\n                  onClick$={() => inputElement.value!.focus()}\n                  loading={loading.value}\n                >\n                  <SearchIcon class=\"h-full\" />\n                </SystemIcon>\n                <input\n                  class=\"flex-1 bg-transparent px-2 text-lg text-slate-900 outline-none placeholder:text-slate-500 md:text-xl dark:text-slate-200\"\n                  ref={inputElement}\n                  name=\"search\"\n                  type=\"search\"\n                  placeholder=\"Search docs\"\n                  value={input.value}\n                  onInput$={(_, element) => (input.value = element.value)}\n                />\n              </form>\n              <SystemIcon\n                class=\"lg:h-[22px]! lg:w-[22px]!\"\n                label=\"Close search\"\n                type=\"button\"\n                onClick$={() => (open.value = false)}\n              >\n                <CloseIcon class=\"h-full\" />\n              </SystemIcon>\n            </header>\n\n            {/* Content */}\n            <div class=\"flex-1 overflow-y-auto overscroll-contain scroll-smooth p-4 lg:min-h-[120px] lg:px-6\">\n              {\n                // Error\n                error.value ? (\n                  <p class=\"md:text-lg\">\n                    An unexpected error has occurred. If this happens regularly,\n                    please create an{' '}\n                    <TextLink\n                      href=\"https://github.com/open-circle/valibot/issues/new\"\n                      target=\"_blank\"\n                      colored\n                      underlined\n                    >\n                      issue\n                    </TextLink>{' '}\n                    on Github.\n                  </p>\n                ) : // No result\n                input.value && !loading.value && !result.value.length ? (\n                  <p class=\"text-sm md:text-base\">\n                    No results for \"\n                    <span class=\"text-slate-900 dark:text-slate-200\">\n                      {input.value}\n                    </span>\n                    \"\n                  </p>\n                ) : // Result\n                input.value && result.value.length ? (\n                  <ul>\n                    {result.value.map((item, index) => {\n                      const getPrevItem = () =>\n                        index > 0 ? result.value[index - 1] : undefined;\n                      const getGroup = () =>\n                        getPrevItem()?.group !== item.group\n                          ? item.group\n                          : undefined;\n                      return (\n                        <li\n                          key={item.path + item.text}\n                          class={clsx(\n                            index > 0 &&\n                              (getGroup()\n                                ? 'mt-9'\n                                : item.relation === 'page' &&\n                                    getPrevItem()?.relation !== 'page'\n                                  ? 'mt-6'\n                                  : item.relation === 'child'\n                                    ? 'border-l-2 border-l-slate-200 pt-2.5 pl-2 dark:border-l-slate-800'\n                                    : 'mt-2.5')\n                          )}\n                        >\n                          {getGroup() && (\n                            <div class=\"mb-6 text-sm md:text-base\">\n                              {getGroup()}\n                            </div>\n                          )}\n                          <SearchItem\n                            {...item}\n                            index={index}\n                            activeIndex={activeIndex}\n                            onClick$={() => handleClick(item)}\n                          />\n                        </li>\n                      );\n                    })}\n                  </ul>\n                ) : // Resent\n                recent.value!.length ? (\n                  <>\n                    <div class=\"text-sm md:text-base\">Recent</div>\n                    <ul class=\"mt-6 flex flex-col gap-2.5\">\n                      {recent.value.map((item, index) => (\n                        <li key={item.path + item.text}>\n                          <SearchItem\n                            {...item}\n                            index={index}\n                            activeIndex={activeIndex}\n                            onClick$={() => handleClick(item)}\n                            recent\n                          />\n                        </li>\n                      ))}\n                    </ul>\n                  </>\n                ) : null\n              }\n            </div>\n\n            {/* Footer */}\n            <footer class=\"flex h-12 shrink-0 items-center justify-end px-4 text-xs md:h-14 md:text-sm lg:h-[72px] lg:px-6\">\n              Search by\n              <TextLink\n                class=\"ml-2 md:ml-3\"\n                href=\"https://www.algolia.com/ref/docsearch/?utm_source=valibot.dev&utm_medium=referral&utm_content=powered_by&utm_campaign=docsearch\"\n                target=\"_blank\"\n              >\n                <AlgoliaLogo class=\"h-8 md:h-10\" />\n              </TextLink>\n            </footer>\n          </div>\n          <div\n            class=\"hidden lg:absolute lg:top-0 lg:left-0 lg:-z-10 lg:block lg:h-full lg:w-full lg:cursor-default lg:bg-gray-200/50 lg:backdrop-blur-sm lg:dark:bg-gray-800/50\"\n            role=\"button\"\n            onClick$={() => (open.value = false)}\n          />\n        </>\n      )}\n    </div>\n  );\n});\n\ntype SearchItemProps = SearchItem & {\n  index: number;\n  activeIndex: Signal<number>;\n  onClick$: () => void;\n  recent?: boolean;\n};\n\n/**\n * Displays relevant info of a single search result and links to its page.\n */\nconst SearchItem = component$<SearchItemProps>(\n  ({\n    type,\n    relation,\n    page,\n    text,\n    path,\n    index,\n    activeIndex,\n    onClick$,\n    recent,\n  }) => {\n    // Use element signal\n    const element = useSignal<HTMLAnchorElement>();\n\n    // Compute active state\n    const active = useComputed$(() => index === activeIndex.value);\n\n    // Scroll element into view if active\n    useTask$(({ track }) => {\n      track(element);\n      track(active);\n      if (isBrowser && element.value && active.value) {\n        element.value.scrollIntoView({ block: 'nearest' });\n      }\n    });\n\n    return (\n      <Link\n        class={clsx(\n          'focus-ring flex scroll-my-12 items-center rounded-2xl border-2 px-5 py-4 md:px-6',\n          active.value\n            ? 'border-transparent bg-sky-600/10 text-sky-600 dark:bg-sky-400/10 dark:text-sky-400'\n            : 'border-slate-200 dark:border-slate-800'\n        )}\n        ref={element}\n        href={path}\n        onMouseEnter$={() => (activeIndex.value = index)}\n        onFocusIn$={() => (activeIndex.value = index)}\n        // eslint-disable-next-line qwik/valid-lexical-scope\n        onClick$={onClick$}\n      >\n        {relation === 'page' ? (\n          <PageIcon class=\"h-5 shrink-0 md:h-6\" />\n        ) : (\n          <HashtagIcon class=\"h-5 shrink-0 md:h-6\" />\n        )}\n        <div\n          class={clsx(\n            'flex-1 px-4 md:px-5 [&_mark]:bg-transparent [&_mark]:font-medium',\n            active.value\n              ? '[&_mark]:text-sky-600 [&_mark]:underline [&_mark]:dark:text-sky-400'\n              : '[&_mark]:text-slate-900 [&_mark]:dark:text-slate-200'\n          )}\n        >\n          {type === 'content' && (relation === 'none' || recent) && (\n            <div\n              class=\"mb-2 text-xs md:text-sm\"\n              dangerouslySetInnerHTML={page}\n            />\n          )}\n          <div\n            class=\"text-sm md:text-base\"\n            dangerouslySetInnerHTML={`${\n              type !== 'lvl2' &&\n              type !== 'content' &&\n              (relation === 'none' || recent)\n                ? `${page}: `\n                : ''\n            }${text}`}\n          />\n        </div>\n        <AngleRightIcon class=\"h-3 shrink-0 md:h-4\" />\n      </Link>\n    );\n  }\n);\n"
  },
  {
    "path": "website/src/components/DocsLayout.tsx",
    "content": "import {\n  component$,\n  type ReadonlySignal,\n  Slot,\n  useComputed$,\n} from '@builder.io/qwik';\nimport {\n  type ContentMenu,\n  Form,\n  useContent,\n  useDocumentHead,\n  useLocation,\n} from '@builder.io/qwik-city';\nimport clsx from 'clsx';\nimport {\n  ArrowLeftIcon,\n  ArrowRightIcon,\n  GitHubIcon,\n  MarkdownIcon,\n  MenuIcon,\n  PenIcon,\n} from '~/icons';\nimport { useChapters, useChaptersToggle } from '~/routes/plugin@chapters';\nimport { trackEvent } from '~/utils';\nimport '../styles/pace.css';\nimport { Chapters } from './Chapters';\nimport { Credits } from './Credits';\nimport { IconButton } from './IconButton';\nimport { Navigation } from './Navigation';\nimport { SideBar, useSideBarToggle } from './SideBar';\n\nconst MDX_PATH_REGEX = /^\\/(?:[\\w-]+\\/){2}$/;\n\ntype NavItem = ContentMenu & { group: string };\n\n/**\n * Provides the layout for the documentation pages.\n */\nexport const DocsLayout = component$(() => {\n  // Use location, content, docuemnt head and chapters\n  const location = useLocation();\n  const content = useContent();\n  const documentHead = useDocumentHead();\n  const chapters = useChapters();\n\n  // Use side bar and chapters toggle\n  const sideBarToggle = useSideBarToggle();\n  const chaptersToggle = useChaptersToggle();\n\n  // Compute navigation items\n  const navItems = useComputed$(\n    () =>\n      content.menu?.items?.reduce<NavItem[]>(\n        (list, { text, items }) =>\n          items\n            ? [...list, ...items.map((item) => ({ ...item, group: text }))]\n            : list,\n        []\n      ) || []\n  );\n\n  // Compute current navigation index\n  const navIndex = useComputed$(() =>\n    navItems.value.findIndex((item) => item.href === location.url.pathname)\n  );\n\n  // Compute previous, current and next page\n  const prevPage = useComputed$<NavItem | undefined>(\n    () => navItems.value[navIndex.value - 1]\n  );\n  const currentPage = useComputed$<NavItem | undefined>(\n    () => navItems.value[navIndex.value]\n  );\n  const nextPage = useComputed$<NavItem | undefined>(\n    () => navItems.value[navIndex.value + 1]\n  );\n\n  // Optimistically compute whether to show chapters\n  const showChapters = useComputed$(() =>\n    chaptersToggle.isRunning ? !chapters.value : chapters.value\n  );\n\n  // Compute Markdown path from current location\n  const markdownPath = useComputed$(() =>\n    MDX_PATH_REGEX.test(location.url.pathname)\n      ? `${location.url.pathname.replace(/\\/$/, '')}.md`\n      : undefined\n  );\n\n  return (\n    <div\n      class={clsx(\n        'flex w-full flex-1 flex-col-reverse self-center lg:flex-row',\n        showChapters.value\n          ? 'max-w-(--breakpoint-2xl)'\n          : 'max-w-(--breakpoint-xl)'\n      )}\n    >\n      {/* Side bar navigation */}\n      <SideBar class=\"lg:max-h-[calc(100vh-70px)]\" toggle={sideBarToggle}>\n        <div q:slot=\"buttons\" class=\"mr-4 flex gap-6 lg:hidden\">\n          <NavButtons\n            pageIndex={navIndex.value}\n            sourcePath={documentHead.frontmatter.source}\n            markdownPath={markdownPath.value}\n            prevPage={prevPage.value}\n            nextPage={nextPage.value}\n          />\n        </div>\n        <Navigation\n          class={clsx(\n            'px-8 py-9 lg:w-60 lg:py-24 xl:py-32',\n            showChapters.value ? '2xl:w-64' : '2xl:w-72'\n          )}\n        />\n      </SideBar>\n\n      <main\n        class={clsx(\n          'relative flex-1 py-12 md:py-14 lg:w-px lg:py-24 xl:py-32',\n          showChapters.value ? 'lg:px-9' : 'lg:pl-9'\n        )}\n      >\n        {/* Navigation buttons */}\n        <nav\n          class={clsx(\n            'hidden px-8 lg:absolute lg:flex lg:gap-6 lg:px-10',\n            showChapters.value ? 'lg:right-9' : 'lg:right-0'\n          )}\n        >\n          <NavButtons\n            pageIndex={navIndex.value}\n            sourcePath={documentHead.frontmatter.source}\n            markdownPath={markdownPath.value}\n            prevPage={prevPage.value}\n            nextPage={nextPage.value}\n            chapters={chapters}\n            chaptersToggle={chaptersToggle}\n          />\n        </nav>\n\n        {/* Article */}\n        <article class=\"mdx flex flex-col\">\n          <Slot />\n        </article>\n\n        {currentPage.value?.href && (\n          <nav class=\"mt-10 flex justify-between px-8 md:mt-12 lg:mt-14 lg:px-10\">\n            {/* Edit page buttton */}\n            <IconButton\n              variant=\"secondary\"\n              type=\"link\"\n              href={`https://github.com/open-circle/valibot/blob/main/website/src/routes${currentPage.value.href.replace(\n                /^(\\/.+)\\/(.+\\/)$/,\n                `$1/(${currentPage.value.group\n                  .toLowerCase()\n                  .replace(/\\s/g, '-')})/$2`\n              )}index.mdx`}\n              target=\"_blank\"\n              label=\"Edit page\"\n            >\n              <PenIcon class=\"h-[18px]\" />\n            </IconButton>\n\n            {/* Next page button */}\n            {nextPage.value?.href && (\n              <div class=\"hidden lg:block\">\n                <IconButton\n                  variant=\"secondary\"\n                  type=\"link\"\n                  href={nextPage.value.href}\n                  label=\"Next page\"\n                  align=\"right\"\n                >\n                  <ArrowRightIcon class=\"h-[18px]\" />\n                </IconButton>\n              </div>\n            )}\n          </nav>\n        )}\n\n        {/* Credits */}\n        <Credits />\n      </main>\n\n      {showChapters.value && (\n        <aside class=\"hidden xl:block xl:w-60 xl:px-8 xl:py-32 2xl:w-64\">\n          <Chapters />\n        </aside>\n      )}\n    </div>\n  );\n});\n\ntype NavButtonsProps = {\n  pageIndex: number;\n  sourcePath: string | undefined;\n  markdownPath: string | undefined;\n  prevPage: ContentMenu | undefined;\n  nextPage: ContentMenu | undefined;\n  chapters?: ReadonlySignal<boolean>;\n  chaptersToggle?: ReturnType<typeof useChaptersToggle>;\n};\n\n/**\n * Buttons to navigate to the previous or next page.\n */\nexport const NavButtons = component$<NavButtonsProps>(\n  ({\n    pageIndex,\n    sourcePath,\n    markdownPath,\n    prevPage,\n    nextPage,\n    chapters,\n    chaptersToggle,\n  }) => (\n    <>\n      {pageIndex !== -1 && (\n        <>\n          {prevPage?.href ? (\n            <IconButton\n              variant=\"secondary\"\n              type=\"link\"\n              href={prevPage.href}\n              label=\"Previous page\"\n              hideLabel\n            >\n              <ArrowLeftIcon class=\"h-[18px]\" />\n            </IconButton>\n          ) : (\n            <div class=\"w-10\" />\n          )}\n          {nextPage?.href ? (\n            <IconButton\n              variant=\"secondary\"\n              type=\"link\"\n              href={nextPage.href}\n              label=\"Next page\"\n              hideLabel\n            >\n              <ArrowRightIcon class=\"h-[18px]\" />\n            </IconButton>\n          ) : (\n            <div class=\"w-10\" />\n          )}\n        </>\n      )}\n      {chaptersToggle && (\n        <Form\n          class=\"hidden xl:block\"\n          action={chaptersToggle}\n          onSubmit$={() =>\n            trackEvent('change_chapters', { enabled: !chapters!.value })\n          }\n        >\n          <IconButton\n            variant=\"secondary\"\n            type=\"submit\"\n            label={chapters!.value ? 'Hide chapters' : 'Show chapters'}\n            hideLabel\n          >\n            <MenuIcon class=\"h-[18px]\" />\n          </IconButton>\n        </Form>\n      )}\n      {sourcePath && (\n        <IconButton\n          variant=\"secondary\"\n          type=\"link\"\n          href={`https://github.com/open-circle/valibot/blob/main/library/src${sourcePath}`}\n          target=\"_blank\"\n          label=\"Source code\"\n          hideLabel\n        >\n          <GitHubIcon class=\"h-[18px]\" />\n        </IconButton>\n      )}\n      {markdownPath && (\n        <IconButton\n          variant=\"secondary\"\n          type=\"link\"\n          href={markdownPath}\n          target=\"_blank\"\n          label=\"View as Markdown\"\n          hideLabel\n        >\n          <MarkdownIcon class=\"h-[18px]\" />\n        </IconButton>\n      )}\n    </>\n  )\n);\n"
  },
  {
    "path": "website/src/components/Expandable.tsx",
    "content": "import { $, component$, Slot, useSignal, useTask$ } from '@builder.io/qwik';\nimport { isBrowser } from '@builder.io/qwik/build';\nimport clsx from 'clsx';\n\ntype ExpandableProps = {\n  class?: string;\n  id?: string;\n  expanded: boolean;\n};\n\n/**\n * Wrapper component to vertically expand or collapse content.\n */\nexport const Expandable = component$<ExpandableProps>(\n  ({ id, expanded, ...props }) => {\n    // Use element signal\n    const element = useSignal<HTMLDivElement>();\n\n    /**\n     * Updates the expandable element height.\n     */\n    const updateElementHeight = $(() => {\n      element.value!.style.maxHeight = '0';\n      element.value!.style.height = `${\n        expanded ? element.value!.scrollHeight : 0\n      }px`;\n      element.value!.style.maxHeight = '';\n    });\n\n    // Expand or collapse content when expanded prop change\n    useTask$(({ track }) => {\n      track(() => expanded);\n      if (isBrowser && element.value) {\n        updateElementHeight();\n      }\n    });\n\n    return (\n      <div\n        class={clsx(\n          'm-0! origin-top duration-200',\n          !expanded && 'invisible h-0 -translate-y-2 scale-y-75 opacity-0',\n          props.class\n        )}\n        id={id}\n        ref={element}\n        aria-hidden={!expanded}\n        window:onResize$={updateElementHeight}\n      >\n        <Slot />\n      </div>\n    );\n  }\n);\n"
  },
  {
    "path": "website/src/components/Footer.tsx",
    "content": "import { component$ } from '@builder.io/qwik';\nimport { TextLink } from './TextLink';\n\n/**\n * Footer with copyright notice and links to legal text.\n */\nexport const Footer = component$(() => (\n  <footer class=\"flex justify-between p-4 text-sm md:text-base lg:px-8 lg:py-6 lg:text-[17px]\">\n    <div>&copy; {new Date().getFullYear()} Fabian Hiller</div>\n    <nav class=\"flex gap-5 lg:gap-12\">\n      {[\n        { label: 'Contact', href: '/contact/' },\n        { label: 'Privacy', href: '/privacy/' },\n      ].map(({ label, href }) => (\n        <TextLink key={href} href={href}>\n          {label}\n        </TextLink>\n      ))}\n    </nav>\n  </footer>\n));\n"
  },
  {
    "path": "website/src/components/GitHubIconLink.tsx",
    "content": "import { component$ } from '@builder.io/qwik';\nimport { GitHubIcon } from '~/icons';\nimport { SystemIcon } from './SystemIcon';\n\n/**\n * GitHub icon pointing to our repository.\n */\nexport const GitHubIconLink = component$(() => (\n  <SystemIcon\n    label=\"Open GitHub repository\"\n    type=\"link\"\n    href=\"https://github.com/open-circle/valibot\"\n    target=\"_blank\"\n  >\n    <GitHubIcon class=\"h-full\" />\n  </SystemIcon>\n));\n"
  },
  {
    "path": "website/src/components/Head.tsx",
    "content": "import { component$, useComputed$ } from '@builder.io/qwik';\nimport { useDocumentHead, useLocation } from '@builder.io/qwik-city';\nimport { useTheme } from '~/routes/plugin@theme';\n\n/**\n * Head with title, meta, link, script and style elements.\n */\nexport const Head = component$(() => {\n  // Use document head, location and theme\n  const head = useDocumentHead();\n  const location = useLocation();\n  const theme = useTheme();\n\n  // Compute document title\n  const documentTitle = useComputed$(() =>\n    location.url.pathname === '/' ? head.title : `${head.title} | Valibot`\n  );\n\n  // Compute theme color code\n  const themeColor = useComputed$(() =>\n    theme.value === 'dark' ? '#111827' : '#fff'\n  );\n\n  // Compute Open Graph type\n  const ogType = useComputed$(() =>\n    location.url.pathname === '/' || location.url.pathname === '/playground/'\n      ? 'website'\n      : 'article'\n  );\n\n  // Compute description from metadata\n  const description = useComputed$(\n    () => head.meta.find((item) => item.name === 'description')?.content\n  );\n\n  // Compute Open Graph image URL\n  const imageUrl = useComputed$(() => {\n    // Create base URL\n    let imageUrl = `${location.url.origin}/og-image`;\n\n    // Add title and path to URL\n    if (location.url.pathname !== '/') {\n      imageUrl += `?title=${encodeURIComponent(head.title)}&path=${\n        location.url.pathname.split('/')[1]\n      }`;\n\n      // Add description to URL\n      if (description.value) {\n        imageUrl += `&description=${encodeURIComponent(description.value)}`;\n      }\n    }\n\n    // Return image URL\n    return imageUrl;\n  });\n\n  return (\n    <head>\n      {/* Document title */}\n      <title>{documentTitle.value}</title>\n\n      {/* Default metadata */}\n      <meta charset=\"utf-8\" />\n      <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n      <meta name=\"theme-color\" content={themeColor.value} />\n      <link rel=\"canonical\" href={location.url.href} />\n      <link rel=\"manifest\" href=\"/manifest.json\" />\n\n      {/* Icon metadata */}\n      <link rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/icon-32px.png\" />\n      <link rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/icon-16px.png\" />\n      <link rel=\"apple-touch-icon\" sizes=\"180x180\" href=\"/icon-180px.jpg\" />\n\n      {/* Preload fonts */}\n      <link\n        rel=\"preload\"\n        href=\"/fonts/lexend-exa-500.woff2\"\n        as=\"font\"\n        type=\"font/woff2\"\n        crossOrigin=\"\"\n      />\n      <link\n        rel=\"preload\"\n        href=\"/fonts/lexend-500.woff2\"\n        as=\"font\"\n        type=\"font/woff2\"\n        crossOrigin=\"\"\n      />\n      <link\n        rel=\"preload\"\n        href=\"/fonts/lexend-400.woff2\"\n        as=\"font\"\n        type=\"font/woff2\"\n        crossOrigin=\"\"\n      />\n\n      {/* Open Graph metadata */}\n      <meta property=\"og:type\" content={ogType.value} />\n      <meta property=\"og:url\" content={location.url.href} />\n      <meta property=\"og:title\" content={head.title} />\n      {description.value && (\n        <meta property=\"og:description\" content={description.value} />\n      )}\n      <meta property=\"og:image\" content={imageUrl.value} />\n      <meta name=\"twitter:card\" content=\"summary_large_image\" />\n\n      {/* Dynamic metadata */}\n      {head.meta.map(({ key, ...props }) => (\n        <meta key={key} {...props} />\n      ))}\n\n      {/* Umami tracking script */}\n      <script\n        async\n        src=\"https://umami.valibot.dev/script.js\"\n        data-website-id=\"1fe7c3d9-66cb-43db-bb9c-dd86128e828c\"\n        data-domains=\"valibot.dev\"\n        data-strip-search=\"true\"\n      />\n\n      {/* Temporary solution until attribute can be rendered dynamically */}\n      {theme.value === 'dark' ? (\n        <script dangerouslySetInnerHTML=\"document.documentElement.classList.add('dark')\" />\n      ) : (\n        <script dangerouslySetInnerHTML=\"document.documentElement.classList.remove('dark')\" />\n      )}\n    </head>\n  );\n});\n"
  },
  {
    "path": "website/src/components/Header.tsx",
    "content": "import {\n  $,\n  component$,\n  type Signal,\n  useComputed$,\n  useSignal,\n  useTask$,\n} from '@builder.io/qwik';\nimport { globalAction$, useLocation, z, zod$ } from '@builder.io/qwik-city';\nimport clsx from 'clsx';\nimport { useFocusTrap } from '~/hooks';\nimport { LogoIcon } from '~/icons';\nimport { DiscordIconLink } from './DiscordIconLink';\nimport { GitHubIconLink } from './GitHubIconLink';\nimport { Link } from './Link';\nimport { MainMenuToggle } from './MainMenuToggle';\nimport { SearchToggle } from './SearchToggle';\nimport { ThemeToggle } from './ThemeToggle';\n\n/**\n * Toggles the open state of the main menu.\n */\nexport const useMainMenuToggle = globalAction$(\n  (values) => values,\n  zod$({ state: z.enum(['opened', 'closed']) })\n);\n\ntype HeaderProps = {\n  searchOpen: Signal<boolean>;\n};\n\n/**\n * Fixed header with logo, main navigation and theme toogle.\n */\nexport const Header = component$<HeaderProps>(({ searchOpen }) => {\n  // Use location, root element and scrolled signal\n  const location = useLocation();\n  const rootElement = useSignal<HTMLElement>();\n  const windowScrolled = useSignal(false);\n\n  // Use main menu toggle and compute open state\n  const toggle = useMainMenuToggle();\n  const isOpen = useComputed$(() =>\n    toggle.isRunning\n      ? // Optimistic UI\n        toggle.formData?.get('state') === 'opened'\n      : toggle.value?.state === 'opened'\n  );\n\n  // Use focus trap for main menu\n  useFocusTrap(rootElement, isOpen);\n\n  // Close main menu when location pathname changes\n  useTask$(({ track }) => {\n    track(() => location.prevUrl);\n    if (\n      isOpen.value &&\n      location.prevUrl &&\n      location.url.pathname !== location.prevUrl.pathname\n    ) {\n      toggle.submit({ state: 'closed' });\n    }\n  });\n\n  /**\n   * Updates the window scrolled state.\n   */\n  const updateWindowScrolled = $(() => {\n    windowScrolled.value = window.scrollY > 0;\n  });\n\n  return (\n    <header\n      class={clsx(\n        'sticky top-0 h-14 md:h-16 lg:h-[70px]',\n        isOpen.value ? 'z-30' : 'z-20'\n      )}\n      ref={rootElement}\n      window:onScroll$={updateWindowScrolled}\n    >\n      {/* Header content */}\n      <div\n        class={clsx(\n          'flex h-full items-center justify-between border-b-2 px-2 backdrop-blur duration-200 lg:px-4',\n          isOpen.value && 'bg-white dark:bg-gray-900',\n          !isOpen.value && windowScrolled.value\n            ? 'border-b-slate-200 bg-white/90 dark:border-b-slate-800 dark:bg-gray-900/90'\n            : 'border-b-transparent'\n        )}\n      >\n        {/* Website logo */}\n        <div class=\"-m-1 overflow-hidden p-1 lg:w-64\">\n          <Link\n            class=\"focus-ring inline-flex w-full items-center rounded-lg p-2 font-medium transition-colors select-none hover:text-slate-900 md:w-auto md:text-lg lg:text-xl dark:hover:text-slate-200\"\n            href=\"/\"\n            preventdefault:contextmenu\n            onContextMenu$={() =>\n              window.open(\n                'https://github.com/open-circle/valibot/tree/main/brand'\n              )\n            }\n          >\n            <LogoIcon class=\"mr-2 h-8 shrink-0 md:h-9 lg:mr-3 lg:h-10\" />\n            <div class=\"font-lexend-exa truncate text-lg font-medium md:text-xl lg:text-2xl\">\n              {/* The `<span />` is necessary because Safari will not display the text overflow ellipsis if the text color of the hidden element is transparent */}\n              <span class=\"bg-linear-to-br from-slate-800 to-slate-600 bg-clip-text text-transparent dark:from-slate-200 dark:to-slate-400\">\n                Valibot\n              </span>\n            </div>\n          </Link>\n        </div>\n\n        {/* Icon buttons (mobile) */}\n        <div class=\"flex items-center gap-4 lg:hidden\">\n          <DiscordIconLink />\n          <GitHubIconLink />\n          <ThemeToggle />\n          <SearchToggle open={searchOpen} />\n          <MainMenuToggle action={toggle} open={isOpen.value} />\n        </div>\n\n        {/* Main menu */}\n        <nav\n          class={clsx(\n            'absolute top-full left-0 flex max-h-[60vh] w-full origin-top flex-col overflow-y-auto border-b-2 pt-4 pb-8 duration-200 lg:static lg:top-auto lg:w-auto lg:translate-y-0 lg:flex-row lg:gap-5 lg:overflow-visible lg:border-none lg:bg-transparent lg:p-0 xl:gap-6 lg:dark:bg-transparent',\n            !isOpen.value && 'invisible scale-y-0 lg:visible lg:scale-y-100',\n            (isOpen.value && 'bg-white dark:bg-gray-900') ||\n              (windowScrolled.value && 'bg-white/90 dark:bg-gray-900/90'),\n            isOpen.value || windowScrolled.value\n              ? 'border-b-slate-200 dark:border-b-slate-800'\n              : 'border-b-transparent'\n          )}\n          id=\"main-menu\"\n        >\n          {[\n            { label: 'Guides', href: '/guides/' },\n            { label: 'API', href: '/api/' },\n            { label: 'Blog', href: '/blog/' },\n            { label: 'Playground', href: '/playground/' },\n          ].map(({ label, href }) => (\n            <Link\n              key={href}\n              class={clsx(\n                'focus-ring mx-4 rounded-lg px-4 py-3 text-lg transition-colors hover:text-slate-900 lg:px-3 lg:py-2 lg:text-[17px] lg:font-medium dark:hover:text-slate-200',\n                location.url.pathname.startsWith(href) &&\n                  'docsearch-lvl0 text-slate-900 dark:text-slate-200'\n              )}\n              href={href}\n            >\n              {label}\n            </Link>\n          ))}\n        </nav>\n\n        {/* Icon buttons (desktop) */}\n        <div class=\"hidden lg:flex lg:w-64 lg:items-center lg:justify-end lg:gap-6\">\n          <SearchToggle open={searchOpen} />\n          <ThemeToggle />\n          <div\n            class=\"lg:block lg:h-5 lg:w-0.5 lg:rounded-full lg:bg-slate-200 lg:dark:bg-slate-800\"\n            role=\"separator\"\n          />\n          <GitHubIconLink />\n          <DiscordIconLink />\n        </div>\n      </div>\n\n      {/* Background overlay */}\n      <div\n        class={clsx(\n          'absolute top-0 -z-10 h-screen w-full bg-black/10 lg:hidden dark:bg-black/20',\n          isOpen.value\n            ? 'delay-75 duration-300'\n            : 'invisible opacity-0 duration-75'\n        )}\n        onClick$={() => toggle.submit({ state: 'closed' })}\n      />\n    </header>\n  );\n});\n"
  },
  {
    "path": "website/src/components/IconButton.tsx",
    "content": "import { component$, Slot } from '@builder.io/qwik';\nimport clsx from 'clsx';\nimport { type DefaultButtonProps, UnstyledButton } from './UnstyledButton';\n\ntype IconButtonProps = DefaultButtonProps & {\n  variant: 'primary' | 'secondary';\n  label: string;\n  align?: 'right';\n  hideLabel?: boolean;\n};\n\n/**\n * Button with an icon that is used for navigation, to confirm form entries or\n * perform individual actions.\n */\nexport const IconButton = component$<IconButtonProps>(\n  ({ label, variant, align, hideLabel, ...props }) => (\n    <UnstyledButton\n      {...props}\n      class={clsx(\n        'focus-ring group/button flex items-center rounded-xl backdrop-blur',\n        align === 'right' && 'flex-row-reverse',\n        props.class\n      )}\n      aria-label={label}\n    >\n      <span\n        class={clsx(\n          'flex h-10 w-10 items-center justify-center rounded-xl transition-colors',\n          variant === 'primary' &&\n            'bg-sky-600 text-white group-hover/button:bg-sky-600/80 dark:bg-sky-400 dark:text-gray-900 dark:group-hover/button:bg-sky-400/80',\n          variant === 'secondary' &&\n            'bg-sky-600/10 text-sky-600 group-hover/button:bg-sky-600/20 dark:bg-sky-400/10 dark:text-sky-400 dark:group-hover/button:bg-sky-400/20'\n        )}\n      >\n        <Slot />\n      </span>\n      {!hideLabel && (\n        <span\n          class={clsx(\n            'mx-4 transition-colors group-hover/button:text-slate-700 md:mx-6 md:text-lg lg:mx-8 lg:text-xl dark:group-hover/button:text-slate-200'\n          )}\n        >\n          {label}\n        </span>\n      )}\n    </UnstyledButton>\n  )\n);\n"
  },
  {
    "path": "website/src/components/Link.tsx",
    "content": "import { component$, Slot } from '@builder.io/qwik';\nimport type { LinkProps } from '@builder.io/qwik-city';\nimport { Link as RouterLink } from '@builder.io/qwik-city';\n\n/**\n * Thin wrapper around Qwik's Link component with prefetch disabled by default.\n */\nexport const Link = component$<LinkProps>((props) => {\n  return (\n    <RouterLink {...props} prefetch={props.prefetch ?? false}>\n      <Slot />\n    </RouterLink>\n  );\n});\n"
  },
  {
    "path": "website/src/components/MainMenuToggle.tsx",
    "content": "import { component$ } from '@builder.io/qwik';\nimport { type ActionStore, Form } from '@builder.io/qwik-city';\nimport clsx from 'clsx';\n\ntype MainMenuToggleProps = {\n  action: ActionStore<any, any, false>;\n  open: boolean;\n};\n\n/**\n * Button for opening and closing the main menu. Depending on the status, a\n * hamburger or close icon is displayed.\n */\nexport const MainMenuToggle = component$<MainMenuToggleProps>(\n  ({ action, open }) => (\n    <Form action={action}>\n      <input name=\"state\" type=\"hidden\" value={open ? 'closed' : 'opened'} />\n      <button\n        class={clsx(\n          'focus-ring group/button rounded-lg p-2',\n          !open && 'rotate-180'\n        )}\n        type=\"submit\"\n        aria-expanded={open}\n        aria-label={`${open ? 'Close' : 'Open'} main menu`}\n        aria-controls=\"main-menu\"\n      >\n        <span class=\"relative flex h-5 w-5 items-center justify-center md:h-[22px] md:w-[22px]\">\n          {[...Array(3).keys()].map((index) => (\n            <span\n              key={index}\n              class={clsx(\n                'absolute h-[1.5px] w-full rounded-full bg-slate-600 transition group-hover/button:bg-slate-900 dark:bg-slate-400 dark:group-hover/button:bg-slate-200',\n                index === 1 && open && 'opacity-0',\n                index === 0 && (open ? '-rotate-45' : '-translate-y-1.5'),\n                index === 2 && (open ? 'rotate-45' : 'translate-y-1.5')\n              )}\n            />\n          ))}\n        </span>\n      </button>\n    </Form>\n  )\n);\n"
  },
  {
    "path": "website/src/components/Navigation.tsx",
    "content": "import {\n  component$,\n  type ReadonlySignal,\n  useSignal,\n  useVisibleTask$,\n} from '@builder.io/qwik';\nimport {\n  type ContentMenu,\n  useContent,\n  useLocation,\n} from '@builder.io/qwik-city';\nimport clsx from 'clsx';\nimport { Link } from './Link';\n\ntype NavigationProps = {\n  class?: string;\n};\n\n/**\n * Navigation list used as a secondary navigation over a certain part of the\n * website.\n */\nexport const Navigation = component$<NavigationProps>((props) => {\n  // Use content and nav element signal\n  const content = useContent();\n  const navElement = useSignal<HTMLElement>();\n\n  return (\n    <nav\n      ref={navElement}\n      class={clsx('h-full overflow-auto overscroll-contain', props.class)}\n    >\n      <ul class=\"flex flex-col gap-9 lg:gap-12\">\n        {content.menu?.items?.map((item) => (\n          <NavItem {...item} navElement={navElement} key={item.text} />\n        ))}\n      </ul>\n    </nav>\n  );\n});\n\nexport type NavItemProps = {\n  navElement: ReadonlySignal<HTMLElement | undefined>;\n  text: string;\n  items?: ContentMenu[];\n};\n\n/**\n * Single navigation main point that displays a heading and a navigation list.\n */\nconst NavItem = component$<NavItemProps>(({ navElement, text, items }) => {\n  // Use location\n  const location = useLocation();\n\n  // Use list element and indicator style signal\n  const listElement = useSignal<HTMLUListElement>();\n  const indicatorStyle = useSignal<{\n    top: string;\n    height: string;\n  }>();\n\n  // Update indicator style when pathname changes\n  // eslint-disable-next-line qwik/no-use-visible-task\n  useVisibleTask$(\n    ({ track }) => {\n      // Track URL pathname\n      const pathname = track(() => location.url.pathname);\n\n      // Get active list element by pathname and href\n      const activeElement = [...listElement.value!.children].find((e) =>\n        (e.children[0] as HTMLAnchorElement).href.endsWith(pathname)\n      ) as HTMLLIElement | undefined;\n\n      // Update indicator style to active element or reset it to undefined\n      indicatorStyle.value = activeElement\n        ? {\n            top: `${activeElement.offsetTop}px`,\n            height: `${activeElement.offsetHeight}px`,\n          }\n        : undefined;\n\n      // Scroll active element into view if needed\n      if (activeElement) {\n        setTimeout(\n          () => {\n            const parentClientRect = navElement.value!.getBoundingClientRect();\n            if (parentClientRect.height > 0) {\n              const childClientRect = activeElement.getBoundingClientRect();\n              if (\n                childClientRect.top < parentClientRect.top ||\n                childClientRect.bottom > parentClientRect.bottom\n              ) {\n                navElement.value!.scrollBy({\n                  behavior: 'smooth',\n                  top:\n                    childClientRect.top -\n                    parentClientRect.top -\n                    parentClientRect.height / 2 +\n                    childClientRect.height,\n                });\n              }\n            }\n          },\n          window.innerWidth < 1024 ? 100 : 0\n        );\n      }\n    },\n    { strategy: 'document-idle' }\n  );\n\n  return (\n    <li class=\"flex flex-col gap-6\">\n      <div class=\"sticky -top-1 z-10 lg:-top-24\">\n        <h4\n          class={clsx(\n            'text-lg font-medium text-slate-900 dark:text-slate-200',\n            items?.some(({ href }) => location.url.pathname === href) &&\n              'docsearch-lvl1'\n          )}\n        >\n          {text}\n        </h4>\n        <div class=\"pointer-events-none absolute -top-8 -z-10 h-24 w-full bg-linear-to-b from-white via-white to-transparent opacity-90 dark:from-gray-900 dark:via-gray-900\" />\n      </div>\n      <div class=\"relative\">\n        <ul\n          class=\"flex flex-col gap-5 border-l-2 border-l-slate-200 dark:border-l-slate-800\"\n          ref={listElement}\n        >\n          {items?.map(({ text, href }) => (\n            <li key={href}>\n              <Link\n                class={clsx(\n                  'focus-ring relative -left-0.5 block truncate border-l-2 border-l-transparent pl-4 transition-colors hover:border-l-slate-400 focus-visible:rounded-md hover:dark:border-l-slate-600',\n                  location.url.pathname === href\n                    ? 'text-sky-600 dark:text-sky-400'\n                    : 'hover:text-slate-800 dark:hover:text-slate-300'\n                )}\n                href={href}\n              >\n                {text}\n              </Link>\n            </li>\n          ))}\n        </ul>\n        <div\n          class=\"absolute m-0 w-0.5 rounded bg-sky-600 duration-200 dark:bg-sky-400\"\n          style={indicatorStyle.value}\n        />\n      </div>\n    </li>\n  );\n});\n"
  },
  {
    "path": "website/src/components/PostCover.tsx",
    "content": "import { component$ } from '@builder.io/qwik';\nimport clsx from 'clsx';\n\ntype PostCoverProps = {\n  variant: 'blog' | 'post';\n  label: string;\n};\n\n/**\n * Displays a dynamic post cover image.\n */\nexport const PostCover = component$<PostCoverProps>(({ variant, label }) => (\n  <div\n    class={clsx(\n      'relative flex aspect-video items-center justify-center overflow-hidden rounded-xl border-2 border-slate-200 select-none dark:border-slate-800',\n      variant === 'blog' &&\n        'duration-100 will-change-transform hover:-translate-y-1 lg:rounded-2xl',\n      variant === 'post' &&\n        'mx-3 lg:mx-10 lg:rounded-[32px] lg:border-[3px] 2xl:mx-0'\n    )}\n    role=\"img\"\n    aria-label=\"Post cover image\"\n  >\n    <div class=\"absolute -top-[60%] -right-[20%] h-[150%] w-[60%] bg-[radial-gradient(theme(--color-yellow-500/.06),transparent_70%)] dark:bg-[radial-gradient(theme(--color-yellow-300/.05),transparent_70%)]\" />\n    <div class=\"absolute -bottom-[60%] -left-[20%] h-[150%] w-[60%] bg-[radial-gradient(theme(--color-sky-600/.08),transparent_70%)] dark:bg-[radial-gradient(theme(--color-sky-400/.08),transparent_70%)]\" />\n    <div\n      class={clsx(\n        'font-lexend-exa text-center text-[6vw] font-medium text-slate-700 dark:text-slate-300',\n        variant === 'blog' && 'md:text-[3vw] lg:text-3xl',\n        variant === 'post' && 'lg:text-7xl'\n      )}\n    >\n      {label}\n    </div>\n  </div>\n));\n"
  },
  {
    "path": "website/src/components/PostList.tsx",
    "content": "import { component$ } from '@builder.io/qwik';\nimport { Link } from './Link';\nimport { PostCover } from './PostCover';\nimport { PostMeta } from './PostMeta';\n\ninterface BlogPostData {\n  authors: string[];\n  cover: string;\n  href: string;\n  published: string;\n  title: string;\n}\n\ninterface PostListProps {\n  posts: BlogPostData[];\n}\n\n/**\n * Displays a list of blog post cards.\n */\nexport const PostList = component$<PostListProps>(({ posts }) => (\n  <ol class=\"mx-3 mt-6 flex flex-wrap lg:mx-2 lg:mt-10\">\n    {posts.map((post) => (\n      <li class=\"w-full px-5 py-6 md:w-1/2 lg:p-8\" key={post.href}>\n        <Link class=\"flex flex-col gap-8\" href={post.href} prefetch={false}>\n          <PostCover variant=\"blog\" label={post.cover} />\n          <div class=\"flex flex-col gap-5\">\n            <h3 class=\"text-lg leading-normal font-medium text-slate-900 md:text-xl lg:text-2xl dark:text-slate-200\">\n              {post.title}\n            </h3>\n            <PostMeta\n              variant=\"blog\"\n              authors={post.authors}\n              published={post.published}\n            />\n          </div>\n        </Link>\n      </li>\n    ))}\n  </ol>\n));\n"
  },
  {
    "path": "website/src/components/PostMeta.tsx",
    "content": "import { component$ } from '@builder.io/qwik';\nimport clsx from 'clsx';\n\ntype PostCoverProps = {\n  variant: 'blog' | 'post';\n  authors: string[];\n  published: string;\n};\n\n/**\n * Displays the post meta information.\n */\nexport const PostMeta = component$<PostCoverProps>(\n  ({ variant, authors, published }) => (\n    <div\n      class={clsx('flex items-center gap-4', variant === 'post' && 'lg:gap-5')}\n    >\n      {/* Authors */}\n      <div class=\"-m-[3px] flex\">\n        {authors.map((author, index) => {\n          const Author = variant === 'blog' ? 'div' : 'a';\n          const authorProps =\n            variant === 'post'\n              ? {\n                  href: `https://github.com/${author}`,\n                  target: '_blank',\n                  rel: 'noopener noreferrer',\n                }\n              : null;\n          return (\n            <Author\n              {...authorProps}\n              key={author}\n              style={{ zIndex: authors.length - index }}\n              class={clsx(\n                'box-content w-6 overflow-hidden rounded-full border-[3px] border-white dark:border-gray-900',\n                variant === 'blog' && 'lg:w-7',\n                variant === 'post' && 'md:w-7 lg:w-8',\n                index > 0 && '-ml-3'\n              )}\n            >\n              <img\n                src={`https://github.com/${author}.png?size=64`}\n                width=\"64\"\n                height=\"64\"\n                loading=\"lazy\"\n                alt={`GitHub profile picture of ${author}`}\n              />\n            </Author>\n          );\n        })}\n      </div>\n\n      {/* Date */}\n      <time\n        class={clsx('text-sm md:text-base', variant === 'post' && 'lg:text-lg')}\n        dateTime={published}\n      >\n        {new Date(published).toLocaleDateString('en-US', {\n          year: 'numeric',\n          month: 'long',\n          day: 'numeric',\n          timeZone: 'UTC',\n        })}\n      </time>\n    </div>\n  )\n);\n"
  },
  {
    "path": "website/src/components/Property.tsx",
    "content": "import { component$, Fragment } from '@builder.io/qwik';\nimport clsx from 'clsx';\nimport { Link } from './Link';\n\ntype DefinitionData =\n  | 'string'\n  | 'symbol'\n  | 'number'\n  | 'bigint'\n  | 'boolean'\n  | 'null'\n  | 'undefined'\n  | 'void'\n  | 'never'\n  | 'any'\n  | 'unknown'\n  | 'object'\n  | 'array'\n  | 'tuple'\n  | 'function'\n  | {\n      type: 'string';\n      value: string;\n    }\n  | {\n      type: 'number';\n      value: number;\n    }\n  | {\n      type: 'bigint';\n      value: number;\n    }\n  | {\n      type: 'boolean';\n      value: boolean;\n    }\n  | {\n      type: 'object';\n      entries: {\n        key:\n          | string\n          | { name: string; modifier?: string; type?: DefinitionData };\n        optional?: boolean;\n        value: DefinitionData;\n      }[];\n    }\n  | {\n      type: 'array';\n      modifier?: string;\n      spread?: boolean;\n      item: DefinitionData;\n    }\n  | {\n      type: 'tuple';\n      modifier?: string;\n      items: DefinitionData[];\n    }\n  | {\n      type: 'function';\n      params: {\n        spread?: boolean;\n        name: string;\n        optional?: boolean;\n        type: DefinitionData;\n      }[];\n      return: DefinitionData;\n    }\n  | {\n      type: 'template';\n      parts: DefinitionData[];\n    }\n  | {\n      type: 'union';\n      options: [DefinitionData, DefinitionData, ...DefinitionData[]];\n    }\n  | {\n      type: 'intersect';\n      options: [DefinitionData, DefinitionData, ...DefinitionData[]];\n    }\n  | {\n      type: 'conditional';\n      conditions: {\n        type: DefinitionData;\n        extends: DefinitionData;\n        true: DefinitionData;\n      }[];\n      false: DefinitionData;\n    }\n  | {\n      type: 'predicate';\n      param: string;\n      is: DefinitionData;\n    }\n  | {\n      type: 'custom';\n      modifier?: string;\n      spread?: boolean;\n      name: string;\n      href?: string;\n      generics?: DefinitionData[];\n      indexes?: DefinitionData[];\n    };\n\nexport type PropertyProps = {\n  modifier?: string;\n  type: DefinitionData;\n  default?: DefinitionData;\n};\n\n/**\n * Visually represents the type and default value of a property with syntax\n * highlighting using JSON schema as props.\n */\nexport const Property = component$<PropertyProps>(\n  ({ modifier, type, ...props }: PropertyProps) => {\n    return (\n      <code class=\"bg-transparent! p-0! text-slate-600! dark:text-slate-300!\">\n        {modifier && (\n          <span class=\"text-red-600 dark:text-red-400\">{modifier} </span>\n        )}\n        <Definition data={type} />\n        {props.default && (\n          <>\n            {' = '}\n            <Definition data={props.default} />\n          </>\n        )}\n      </code>\n    );\n  }\n);\n\ntype DefinitionProps = {\n  parent?:\n    | 'object'\n    | 'array'\n    | 'tuple'\n    | 'function'\n    | 'template'\n    | 'union'\n    | 'intersect'\n    | 'conditional'\n    | 'custom';\n  data: DefinitionData;\n};\n\nconst Definition = component$<DefinitionProps>(({ parent, data }) => (\n  <>\n    {typeof data === 'string' ? (\n      <span\n        class={{\n          'text-teal-600 dark:text-teal-400':\n            data === 'string' ||\n            data === 'symbol' ||\n            data === 'number' ||\n            data === 'bigint' ||\n            data === 'boolean' ||\n            data === 'null' ||\n            data === 'undefined' ||\n            data === 'void' ||\n            data === 'never' ||\n            data === 'any' ||\n            data === 'unknown',\n          'text-sky-600 capitalize dark:text-sky-400':\n            data === 'object' ||\n            data === 'array' ||\n            data === 'tuple' ||\n            data === 'function',\n        }}\n      >\n        {data}\n      </span>\n    ) : data.type === 'string' ? (\n      <span class=\"text-yellow-600 dark:text-amber-200\">'{data.value}'</span>\n    ) : data.type === 'number' || data.type === 'bigint' ? (\n      <span class=\"text-purple-600 dark:text-purple-400\">{data.value}</span>\n    ) : data.type === 'boolean' ? (\n      <span class=\"text-teal-600 dark:text-teal-400\">\n        {data.value.toString()}\n      </span>\n    ) : data.type === 'object' ? (\n      <span class=\"text-slate-600 dark:text-slate-400\">\n        {'{'}\n        {data.entries.map((entrie, index) => (\n          <Fragment key={index}>\n            {index === 0 ? ' ' : ', '}\n            <>\n              {typeof entrie.key === 'string' ? (\n                <span class=\"text-slate-700 dark:text-slate-300\">\n                  {entrie.key}\n                </span>\n              ) : (\n                <>\n                  [\n                  {entrie.key.modifier ? (\n                    <>\n                      <span class=\"text-sky-600 dark:text-sky-400\">\n                        {entrie.key.name}\n                      </span>{' '}\n                      <span class=\"text-red-600 dark:text-red-400\">\n                        {entrie.key.modifier}\n                      </span>{' '}\n                    </>\n                  ) : entrie.key.type ? (\n                    <>\n                      <span class=\"text-orange-500 italic dark:text-orange-300\">\n                        {entrie.key.name}\n                      </span>\n                      <span class=\"text-red-600 dark:text-red-400\">:</span>{' '}\n                    </>\n                  ) : (\n                    entrie.key.name\n                  )}\n                  {entrie.key.type && (\n                    <Definition parent={data.type} data={entrie.key.type} />\n                  )}\n                  ]\n                </>\n              )}\n            </>\n            <span class=\"text-red-600 dark:text-red-400\">\n              {entrie.optional && '?'}:\n            </span>{' '}\n            <Definition parent={data.type} data={entrie.value} />\n            {index === data.entries.length - 1 && ' '}\n          </Fragment>\n        ))}\n        {'}'}\n      </span>\n    ) : data.type === 'array' ? (\n      <span>\n        {data.modifier && (\n          <span class=\"text-red-600 dark:text-red-400\">{data.modifier} </span>\n        )}\n        {data.spread && <span class=\"text-red-600 dark:text-red-400\">...</span>}\n        {typeof data.item === 'object' &&\n          (data.item.type === 'union' ||\n            data.item.type === 'intersect' ||\n            (data.item.type === 'custom' && data.item.modifier)) &&\n          '('}\n        <Definition parent={data.type} data={data.item} />\n        {typeof data.item === 'object' &&\n          (data.item.type === 'union' ||\n            data.item.type === 'intersect' ||\n            (data.item.type === 'custom' && data.item.modifier)) &&\n          ')'}\n        <span class=\"text-slate-600 dark:text-slate-400\">[]</span>\n      </span>\n    ) : data.type === 'tuple' ? (\n      <>\n        {data.modifier && (\n          <span class=\"text-red-600 dark:text-red-400\">{data.modifier} </span>\n        )}\n        <span class=\"text-slate-600 dark:text-slate-400\">\n          [\n          {data.items.map((item, index) => (\n            <Fragment key={index}>\n              {index > 0 && ', '}\n              <Definition parent={data.type} data={item} />\n            </Fragment>\n          ))}\n          ]\n        </span>\n      </>\n    ) : data.type === 'function' ? (\n      <span class=\"text-slate-600 dark:text-slate-400\">\n        {(parent === 'union' ||\n          parent === 'intersect' ||\n          (typeof data.return === 'object' &&\n            (data.return.type === 'union' ||\n              data.return.type === 'intersect'))) &&\n          '('}\n        (\n        {data.params.map((param, index) => (\n          <Fragment key={index}>\n            <span>\n              {index > 0 && ', '}\n              {param.spread && (\n                <span class=\"text-red-600 dark:text-red-400\">...</span>\n              )}\n              <span\n                class={clsx(\n                  'italic',\n                  param.name === 'this' && index === 0\n                    ? 'text-red-600 dark:text-red-400'\n                    : 'text-orange-500 dark:text-orange-300'\n                )}\n              >\n                {param.name}\n              </span>\n              <span class=\"text-red-600 dark:text-red-400\">\n                {param.optional && '?'}:\n              </span>{' '}\n            </span>\n            <Definition parent={data.type} data={param.type} />\n          </Fragment>\n        ))}\n        ) <span class=\"text-teal-600 dark:text-teal-400\">{'=>'}</span>{' '}\n        <Definition parent={data.type} data={data.return} />\n        {(parent === 'union' ||\n          parent === 'intersect' ||\n          (typeof data.return === 'object' &&\n            (data.return.type === 'union' ||\n              data.return.type === 'intersect'))) &&\n          ')'}\n      </span>\n    ) : data.type === 'template' ? (\n      <span class=\"text-yellow-600 dark:text-amber-200\">\n        `\n        {data.parts.map((part, index) => (\n          <Fragment key={index}>\n            {typeof part === 'object' && part.type === 'string' ? (\n              part.value\n            ) : (\n              <>\n                <span class=\"text-purple-600 dark:text-purple-400\">{'${'}</span>\n                <Definition parent={data.type} data={part} />\n                <span class=\"text-purple-600 dark:text-purple-400\">{'}'}</span>\n              </>\n            )}\n          </Fragment>\n        ))}\n        `\n      </span>\n    ) : data.type === 'union' ? (\n      data.options.map((option, index) => (\n        <Fragment key={index}>\n          {index > 0 && <span class=\"text-red-600 dark:text-red-400\"> | </span>}\n          <Definition parent={data.type} data={option} />\n        </Fragment>\n      ))\n    ) : data.type === 'intersect' ? (\n      data.options.map((option, index) => (\n        <Fragment key={index}>\n          {index > 0 && <span class=\"text-red-600 dark:text-red-400\"> & </span>}\n          <Definition parent={data.type} data={option} />\n        </Fragment>\n      ))\n    ) : data.type === 'conditional' ? (\n      <>\n        {data.conditions.map((condition, index) => (\n          <Fragment key={index}>\n            <Definition parent={data.type} data={condition.type} />\n            <span class=\"text-red-600 dark:text-red-400\"> extends </span>\n            <Definition parent={data.type} data={condition.extends} />\n            <span class=\"text-red-600 dark:text-red-400\"> ? </span>\n            <Definition parent={data.type} data={condition.true} />\n            <span class=\"text-red-600 dark:text-red-400\"> : </span>\n          </Fragment>\n        ))}\n        <Definition parent={data.type} data={data.false} />\n      </>\n    ) : data.type === 'predicate' ? (\n      <>\n        <span class=\"text-orange-500 italic dark:text-orange-300\">\n          {data.param}\n        </span>\n        <span class=\"text-red-600 dark:text-red-400\"> is </span>\n        <Definition parent=\"conditional\" data={data.is} />\n      </>\n    ) : (\n      <>\n        {data.modifier && (\n          <span class=\"text-red-600 dark:text-red-400\">{data.modifier} </span>\n        )}\n        {data.spread && <span class=\"text-red-600 dark:text-red-400\">...</span>}\n        {data.href ? (\n          <Link\n            class={{\n              'text-sky-600 dark:text-sky-400':\n                data.name[0] === data.name[0].toUpperCase(),\n              'text-slate-700! dark:text-slate-300!':\n                data.name[0] !== data.name[0].toUpperCase(),\n            }}\n            href={data.href}\n          >\n            {data.name}\n          </Link>\n        ) : (\n          <span\n            class={{\n              'text-sky-600 dark:text-sky-400':\n                data.name[0] === data.name[0].toUpperCase(),\n              'text-slate-700 dark:text-slate-300':\n                data.name[0] !== data.name[0].toUpperCase(),\n            }}\n          >\n            {data.name}\n          </span>\n        )}\n        {data.generics && (\n          <>\n            {'<'}\n            {data.generics.map((generic, index) => (\n              <span key={index} class=\"inline-block\">\n                <Definition parent={data.type} data={generic} />\n                {index < data.generics!.length - 1 && (\n                  <span class=\"whitespace-pre\">, </span>\n                )}\n              </span>\n            ))}\n            {'>'}\n          </>\n        )}\n        {data.indexes?.map((data_, index) => (\n          <span key={index} class=\"text-slate-600 dark:text-slate-400\">\n            {'['}\n            <Definition parent={data.type} data={data_} />\n            {']'}\n          </span>\n        ))}\n      </>\n    )}\n  </>\n));\n"
  },
  {
    "path": "website/src/components/RoutingIndicator.tsx",
    "content": "import { component$, useSignal, useTask$ } from '@builder.io/qwik';\nimport { useLocation } from '@builder.io/qwik-city';\nimport clsx from 'clsx';\n\ntype State = 'start' | 'loading' | 'end';\n\n/**\n * Loading animation that gives visual feedback that the route is being changed.\n */\nexport const RoutingIndicator = component$(() => {\n  // Use location and create state signal\n  const location = useLocation();\n  const state = useSignal<State>('start');\n\n  // Update state when location changes\n  useTask$(({ track, cleanup }) => {\n    if (track(() => location.isNavigating)) {\n      state.value = 'loading';\n    } else if (state.value === 'loading') {\n      state.value = 'end';\n      const timeout = setTimeout(() => (state.value = 'start'), 750);\n      cleanup(() => clearTimeout(timeout));\n    }\n  });\n\n  return (\n    <div\n      class={clsx(\n        'fixed z-50 h-0.5 w-screen origin-left bg-sky-600 md:h-[3px]',\n        state.value === 'start' && 'scale-x-0',\n        state.value === 'loading' && 'scale-x-75 duration-[3s] ease-linear',\n        state.value === 'end' &&\n          'opacity-0 [transition:scale_.5s_ease-in,opacity_.5s_linear_.25s]'\n      )}\n      role=\"status\"\n      aria-label={`App is ${location.isNavigating ? '' : 'not'} navigating`}\n    />\n  );\n});\n"
  },
  {
    "path": "website/src/components/SearchToggle.tsx",
    "content": "import { component$, type Signal } from '@builder.io/qwik';\nimport { SearchIcon } from '~/icons';\nimport { SystemIcon } from './SystemIcon';\n\ntype SearchToggleProps = {\n  open: Signal<boolean>;\n};\n\n/**\n * Icon button to open the search interface of the website.\n */\nexport const SearchToggle = component$<SearchToggleProps>(({ open }) => (\n  <SystemIcon\n    label=\"Open search\"\n    type=\"button\"\n    onClick$={() => (open.value = true)}\n  >\n    <SearchIcon class=\"h-full\" />\n  </SystemIcon>\n));\n"
  },
  {
    "path": "website/src/components/SideBar.tsx",
    "content": "import {\n  $,\n  component$,\n  type Signal,\n  Slot,\n  useComputed$,\n  useSignal,\n  useTask$,\n} from '@builder.io/qwik';\nimport {\n  Form,\n  globalAction$,\n  useLocation,\n  z,\n  zod$,\n} from '@builder.io/qwik-city';\nimport clsx from 'clsx';\nimport { useFocusTrap } from '~/hooks';\nimport { AngleUpIcon } from '~/icons';\n\n/**\n * Toggles the open state of the side bar.\n */\nexport const useSideBarToggle = globalAction$(\n  (values) => values,\n  zod$({ state: z.enum(['opened', 'closed']) })\n);\n\ntype SideBarProps = {\n  ref?: Signal<HTMLElement | undefined>;\n  class?: string;\n  toggle: ReturnType<typeof useSideBarToggle>;\n};\n\n/**\n * Sidebar that can be extended from the bottom on smaller devices and\n * displayed on the side next to the main content on larger ones.\n */\nexport const SideBar = component$<SideBarProps>(({ ref, toggle, ...props }) => {\n  // Use location and element signal\n  const location = useLocation();\n  const element = useSignal<HTMLElement>();\n\n  // Use computed open state\n  const isOpen = useComputed$(() =>\n    toggle.isRunning\n      ? // Optimistic UI\n        toggle.formData?.get('state') === 'opened'\n      : toggle.value?.state === 'opened'\n  );\n\n  // Use focus trap for sidebar\n  useFocusTrap(element, isOpen);\n\n  // Close side bar when location pathname changes\n  useTask$(({ track }) => {\n    track(() => location.prevUrl);\n    if (\n      isOpen.value &&\n      location.prevUrl &&\n      location.url.pathname !== location.prevUrl.pathname\n    ) {\n      toggle.submit({ state: 'closed' });\n    }\n  });\n\n  /**\n   * Closes the side bar when the window width is changed to desktop.\n   */\n  const handleResize = $(() => {\n    if (window.innerWidth >= 1024) {\n      toggle.submit({ state: 'closed' });\n    }\n  });\n\n  return (\n    <aside\n      class={clsx(\n        'sticky bottom-0 h-14 md:h-16 lg:top-[70px] lg:h-auto',\n        isOpen.value ? 'z-30' : 'z-10',\n        props.class\n      )}\n      ref={(element_) => {\n        if (ref) ref.value = element_;\n        element.value = element_;\n      }}\n      window:onResize$={handleResize}\n    >\n      {/* Content */}\n      <div\n        class={clsx(\n          'flex h-full items-center justify-end border-t-2 border-t-slate-200 backdrop-blur duration-200 lg:items-start lg:border-none dark:border-t-slate-800',\n          isOpen.value\n            ? 'bg-white dark:bg-gray-900'\n            : 'bg-white/90 dark:bg-gray-900/90'\n        )}\n        id=\"side-bar\"\n      >\n        {/* Buttons */}\n        <Slot name=\"buttons\" />\n\n        {/* Toggle */}\n        <Form class=\"lg:hidden\" action={toggle}>\n          <input\n            type=\"hidden\"\n            name=\"state\"\n            value={isOpen.value ? 'closed' : 'opened'}\n          />\n          <button\n            class=\"focus-ring m-1 box-content flex h-5 w-5 justify-center rounded-xl p-2.5 hover:text-slate-900 md:h-6 md:w-6 dark:hover:text-slate-200\"\n            aria-expanded={isOpen.value}\n            aria-label={`${isOpen.value ? 'Close' : 'Open'} side bar`}\n            aria-controls=\"side-bar\"\n          >\n            <AngleUpIcon\n              class={clsx('h-full duration-200', isOpen.value && '-rotate-180')}\n            />\n          </button>\n        </Form>\n\n        {/* Children */}\n        <div\n          class={clsx(\n            'absolute bottom-full h-[60vh] w-full origin-bottom border-t-2 border-t-slate-200 bg-white duration-200 lg:static lg:h-full lg:w-full lg:translate-y-0 lg:border-none dark:border-t-slate-800 dark:bg-gray-900',\n            !isOpen.value && 'invisible scale-y-0 lg:visible lg:scale-y-100'\n          )}\n        >\n          <Slot />\n        </div>\n\n        {/* Gradient overlay */}\n        <div\n          class={clsx(\n            'pointer-events-none absolute bottom-14 z-20 h-14 w-full origin-bottom translate-y-0.5 bg-linear-to-b from-transparent to-white duration-300 md:bottom-16 lg:hidden dark:to-gray-900',\n            !isOpen.value && 'invisible scale-y-0'\n          )}\n        />\n      </div>\n\n      {/* Background overlay */}\n      <div\n        class={clsx(\n          'absolute bottom-0 -z-10 h-screen w-full bg-black/10 lg:hidden dark:bg-black/20',\n          isOpen.value ? 'duration-300' : 'invisible opacity-0 duration-75'\n        )}\n        onClick$={() => toggle.submit({ state: 'closed' })}\n      />\n    </aside>\n  );\n});\n"
  },
  {
    "path": "website/src/components/SpeedInsights.tsx",
    "content": "import {\n  component$,\n  noSerialize,\n  type NoSerialize,\n  useSignal,\n  useVisibleTask$,\n} from '@builder.io/qwik';\nimport { useLocation } from '@builder.io/qwik-city';\nimport { injectSpeedInsights } from '@vercel/speed-insights';\n\n/**\n * Component for tracking speed insights performance metrics.\n */\nexport const SpeedInsights = component$(() => {\n  // Use location and set route signal\n  const location = useLocation();\n  const setRoute = useSignal<NoSerialize<(path: string) => void>>();\n\n  // Initialize speed insights and update route\n  // eslint-disable-next-line qwik/no-use-visible-task\n  useVisibleTask$(\n    ({ track }) => {\n      // Track URL pathname\n      const pathname = track(() => location.url.pathname);\n\n      // Set route if script is already initialized\n      if (setRoute.value) {\n        setRoute.value(pathname);\n\n        // Otherwise, set route on script initialization\n      } else {\n        const script = injectSpeedInsights({\n          framework: 'qwik',\n          route: pathname,\n        });\n\n        // If script is available, set route signal\n        if (script) {\n          setRoute.value = noSerialize(script.setRoute);\n        }\n      }\n    },\n    { strategy: 'document-ready' }\n  );\n\n  return null;\n});\n"
  },
  {
    "path": "website/src/components/Spinner.tsx",
    "content": "import { component$ } from '@builder.io/qwik';\n\ntype SpinnerProps = {\n  label?: string;\n};\n\n/**\n * Spinner provide a visual cue that an action is being processed.\n */\nexport const Spinner = component$<SpinnerProps>((props) => (\n  <span\n    class=\"h-5 w-5 animate-spin rounded-full border-t-2 border-r-2 border-t-current border-r-transparent md:h-[22px] md:w-[22px] md:border-t-[2.5px] md:border-r-[2.5px] lg:h-6 lg:w-6\"\n    aria-label={props.label || 'Loading'}\n  />\n));\n"
  },
  {
    "path": "website/src/components/SystemIcon.tsx",
    "content": "import { component$, Slot } from '@builder.io/qwik';\nimport clsx from 'clsx';\nimport { Spinner } from './Spinner';\nimport { type DefaultButtonProps, UnstyledButton } from './UnstyledButton';\n\ntype SystemIconProps = DefaultButtonProps & {\n  label: string;\n  loading?: boolean;\n};\n\n/**\n * System icon that is used for navigation, to confirm form entries or perform\n * individual actions.\n */\nexport const SystemIcon = component$<SystemIconProps>(\n  ({ loading, ...props }) => (\n    <UnstyledButton\n      {...props}\n      class={clsx(\n        'focus-ring box-content flex h-5 w-5 cursor-pointer justify-center rounded-lg p-2 transition-colors hover:text-slate-900 md:h-[22px] md:w-[22px] lg:h-6 lg:w-6 dark:hover:text-slate-200',\n        props.class\n      )}\n      aria-label={props.label}\n    >\n      {loading ? <Spinner label={`${props.label} is loading`} /> : <Slot />}\n    </UnstyledButton>\n  )\n);\n"
  },
  {
    "path": "website/src/components/TextLink.tsx",
    "content": "import { component$, Slot } from '@builder.io/qwik';\nimport clsx from 'clsx';\nimport { type LinkButtonProps, UnstyledButton } from './UnstyledButton';\n\ntype TextLinkProps = Omit<LinkButtonProps, 'type'> & {\n  colored?: boolean;\n  underlined?: boolean;\n};\n\n/**\n * Text links take users to another location and usually appear within a\n * sentence.\n */\nexport const TextLink = component$<TextLinkProps>(\n  ({ href, download, target, colored, underlined, ...props }) => {\n    return (\n      <UnstyledButton\n        class={clsx(\n          'focus-ring rounded focus-visible:ring-offset-[6px] focus-visible:outline-offset-4',\n          colored && 'text-sky-600 dark:text-sky-400',\n          underlined &&\n            'underline decoration-slate-400 decoration-dashed underline-offset-[3px] dark:decoration-slate-600',\n          props.class\n        )}\n        type=\"link\"\n        href={href}\n        download={download}\n        target={target}\n      >\n        <Slot />\n      </UnstyledButton>\n    );\n  }\n);\n"
  },
  {
    "path": "website/src/components/ThemeToggle.tsx",
    "content": "import { $, component$, useComputed$ } from '@builder.io/qwik';\nimport { Form } from '@builder.io/qwik-city';\nimport { NightIcon, SunIcon } from '~/icons';\nimport { useTheme, useThemeToggle } from '~/routes/plugin@theme';\nimport { disableTransitions, trackEvent } from '~/utils';\nimport { SystemIcon } from './SystemIcon';\n\ntype ThemeToggleProps = {\n  class?: string;\n};\n\n/**\n * Button for switching the color theme. Depending on the status, a sun or\n * night icon is displayed.\n */\nexport const ThemeToggle = component$<ThemeToggleProps>((props) => {\n  // Use theme and theme toggle\n  const theme = useTheme();\n  const themeToggle = useThemeToggle();\n\n  // Compute value of next theme\n  const nextTheme = useComputed$(() =>\n    theme.value === 'dark' ? 'light' : 'dark'\n  );\n\n  /**\n   * Handles client-side theme change actions.\n   */\n  const changeTheme = $(() => {\n    // Disable CSS transitions\n    disableTransitions();\n\n    // Tracke change theme event\n    trackEvent('change_theme', { theme: nextTheme.value });\n  });\n\n  return (\n    <Form class={props.class} action={themeToggle} onSubmit$={changeTheme}>\n      <SystemIcon type=\"submit\" label={`Change theme to ${nextTheme.value}`}>\n        <SunIcon class=\"hidden h-full dark:block\" />\n        <NightIcon class=\"h-full dark:hidden\" />\n      </SystemIcon>\n    </Form>\n  );\n});\n"
  },
  {
    "path": "website/src/components/UnstyledButton.tsx",
    "content": "import { component$, type QRLEventHandlerMulti, Slot } from '@builder.io/qwik';\nimport { Link } from './Link';\n\nexport type LinkButtonProps = {\n  class?: string;\n  type: 'link';\n  href: string;\n  download?: boolean | string;\n  target?: '_blank';\n};\n\nexport type NormalButtonProps = {\n  class?: string;\n  type: 'button' | 'submit';\n  'preventdefault:click'?: boolean;\n  onClick$?:\n    | ((event: PointerEvent, element: HTMLButtonElement) => any)\n    | QRLEventHandlerMulti<PointerEvent, HTMLButtonElement>;\n};\n\nexport type DefaultButtonProps = LinkButtonProps | NormalButtonProps;\n\ntype UnstyledButtonProps = DefaultButtonProps & {\n  'aria-label'?: string;\n};\n\n/**\n * Basic button component that contains important functionality and is used to\n * build more complex components on top of it.\n */\nexport const UnstyledButton = component$((props: UnstyledButtonProps) => {\n  if (props.type === 'link') {\n    // External link\n    if (props.target === '_blank') {\n      return (\n        <a {...props} rel=\"noreferrer\">\n          <Slot />\n        </a>\n      );\n    }\n\n    // Internal link\n    return (\n      <Link {...props}>\n        <Slot />\n      </Link>\n    );\n  }\n\n  // Normal button\n  return (\n    <button {...props}>\n      <Slot />\n    </button>\n  );\n});\n"
  },
  {
    "path": "website/src/components/index.ts",
    "content": "export * from './ActionButton';\nexport * from './ApiList';\nexport * from './ButtonGroup';\nexport * from './CodeEditor';\nexport * from './Credits';\nexport * from './DiscordIconLink';\nexport * from './DocSearch';\nexport * from './DocsLayout';\nexport * from './Expandable';\nexport * from './Footer';\nexport * from './GitHubIconLink';\nexport * from './Head';\nexport * from './Header';\nexport * from './IconButton';\nexport * from './Link';\nexport * from './MainMenuToggle';\nexport * from './Navigation';\nexport * from './PostCover';\nexport * from './PostList';\nexport * from './PostMeta';\nexport * from './Property';\nexport * from './RoutingIndicator';\nexport * from './SearchToggle';\nexport * from './SideBar';\nexport * from './SpeedInsights';\nexport * from './Spinner';\nexport * from './SystemIcon';\nexport * from './TextLink';\nexport * from './ThemeToggle';\nexport * from './UnstyledButton';\n"
  },
  {
    "path": "website/src/entry.dev.tsx",
    "content": "/*\n * WHAT IS THIS FILE?\n *\n * Development entry point using only client-side modules:\n * - Do not use this mode in production!\n * - No SSR\n * - No portion of the application is pre-rendered on the server.\n * - All of the application is running eagerly in the browser.\n * - More code is transferred to the browser than in SSR mode.\n * - Optimizer/Serialization/Deserialization code is not exercised!\n */\nimport { render, type RenderOptions } from '@builder.io/qwik';\nimport Root from './root';\n\nexport default function (opts: RenderOptions) {\n  return render(document, <Root />, opts);\n}\n"
  },
  {
    "path": "website/src/entry.preview.tsx",
    "content": "/*\n * WHAT IS THIS FILE?\n *\n * It's the bundle entry point for `npm run preview`.\n * That is, serving your app built in production mode.\n *\n * Feel free to modify this file, but don't remove it!\n *\n * Learn more about Vite's preview command:\n * - https://vitejs.dev/config/preview-options.html#preview-options\n *\n */\nimport { createQwikCity } from '@builder.io/qwik-city/middleware/node';\nimport qwikCityPlan from '@qwik-city-plan';\nimport render from './entry.ssr';\n\n/**\n * The default export is the QwikCity adapter used by Vite preview.\n */\nexport default createQwikCity({ render, qwikCityPlan });\n"
  },
  {
    "path": "website/src/entry.ssr.tsx",
    "content": "/**\n * WHAT IS THIS FILE?\n *\n * SSR entry point, in all cases the application is rendered outside the browser, this\n * entry point will be the common one.\n *\n * - Server (express, cloudflare...)\n * - npm run start\n * - npm run preview\n * - npm run build\n *\n */\nimport {\n  renderToStream,\n  type RenderToStreamOptions,\n} from '@builder.io/qwik/server';\nimport { manifest } from '@qwik-client-manifest';\nimport Root from './root';\n\nexport default function (opts: RenderToStreamOptions) {\n  return renderToStream(<Root />, {\n    manifest,\n    ...opts,\n    // Use container attributes to set attributes on the html tag.\n    containerAttributes: {\n      lang: 'en',\n      class: 'dark',\n      ...opts.containerAttributes,\n    },\n  });\n}\n"
  },
  {
    "path": "website/src/entry.vercel-edge.tsx",
    "content": "/*\n * WHAT IS THIS FILE?\n *\n * It's the entry point for Vercel Edge when building for production.\n *\n * Learn more about the Vercel Edge integration here:\n * - https://qwik.dev/docs/deployments/vercel-edge/\n *\n */\nimport {\n  createQwikCity,\n  type PlatformVercel,\n} from '@builder.io/qwik-city/middleware/vercel-edge';\nimport qwikCityPlan from '@qwik-city-plan';\nimport { manifest } from '@qwik-client-manifest';\nimport render from './entry.ssr';\n\ndeclare global {\n  // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n  interface QwikCityPlatform extends PlatformVercel {}\n}\n\nexport default createQwikCity({ render, qwikCityPlan, manifest });\n"
  },
  {
    "path": "website/src/hooks/index.ts",
    "content": "export * from './useFocusTrap';\nexport * from './useResetSignal';\nexport * from './useStorageSignal';\n"
  },
  {
    "path": "website/src/hooks/useFocusTrap.ts",
    "content": "import { type Signal, useTask$ } from '@builder.io/qwik';\n\n/**\n * Creates a focus trap for a specific area for better accessibility when the\n * tab key is used for navigation.\n *\n * @param getRootElement The root element of the focus trap.\n * @param getActive Whether the focus trap is active.\n */\nexport function useFocusTrap(\n  rootElement: Signal<HTMLElement | undefined>,\n  active: Signal<boolean>\n) {\n  useTask$(({ track, cleanup }) => {\n    if (track(active)) {\n      const rootElementValue = track(rootElement);\n      if (rootElementValue) {\n        // Get current active element\n        const { activeElement } = document;\n\n        // Focus root element\n        rootElementValue.focus();\n\n        // Query focusable elements\n        const elements = [\n          ...rootElementValue.querySelectorAll<\n            HTMLAnchorElement | HTMLButtonElement | HTMLInputElement\n          >('a, button'),\n        ].filter((element) => element.offsetParent !== null);\n\n        // Get first and last focusable element\n        const firstElement = elements[0];\n        const lastElement = elements[elements.length - 1];\n\n        /**\n         * Traps the focus within the root element.\n         */\n        const trapFocus = (event: KeyboardEvent) => {\n          // Continue if user pressed \"Tab\" key\n          if (event.key === 'Tab') {\n            // Get currently active element\n            const { activeElement } = document;\n\n            // Prevent user from leaving focus area by manually focusing\n            // first or last focusable element of the root element\n            if (\n              (event.shiftKey && firstElement === activeElement) ||\n              (!event.shiftKey && lastElement === activeElement)\n            ) {\n              event.preventDefault();\n              (event.shiftKey ? lastElement : firstElement).focus();\n            }\n          }\n        };\n\n        // Add event listener to root element\n        rootElementValue.addEventListener('keydown', trapFocus);\n\n        cleanup(() => {\n          // Remove event listener form root element\n          rootElementValue.removeEventListener('keydown', trapFocus);\n\n          // Focus prevoius active element if possible\n          if (activeElement instanceof HTMLElement) {\n            activeElement.focus({ preventScroll: true });\n          }\n        });\n      }\n    }\n  });\n}\n"
  },
  {
    "path": "website/src/hooks/useMDXComponents.tsx",
    "content": "import {\n  $,\n  component$,\n  Slot,\n  useSignal,\n  useVisibleTask$,\n} from '@builder.io/qwik';\nimport lz from 'lz-string';\nimport { IconButton } from '~/components';\nimport { useResetSignal } from '~/hooks';\nimport { CheckIcon, CopyIcon, PlayIcon } from '~/icons';\nimport { trackEvent } from '~/utils';\n\ntype PreProps = {\n  class: string;\n};\n\n/**\n * Pre component for rendering code snippets.\n */\nconst Pre = component$<PreProps>((props) => {\n  // Use element and state signals\n  const preElement = useSignal<HTMLPreElement>();\n  const isValibotCode = useSignal(false);\n  const copied = useResetSignal(false);\n\n  // eslint-disable-next-line qwik/no-use-visible-task\n  useVisibleTask$(() => {\n    if (\n      props.class === 'language-ts' &&\n      preElement.value?.innerText.includes(\"import * as v from 'valibot'\")\n    ) {\n      isValibotCode.value = true;\n    }\n  });\n\n  /**\n   * Copies the current code of the <pre /> element to the clipboard.\n   */\n  const copyCode = $(() => {\n    // Copy code to clipboard\n    copied.value = true;\n    navigator.clipboard.writeText(preElement.value!.innerText);\n\n    // Track copy event\n    trackEvent('copy_code_snippet');\n  });\n\n  /**\n   * Opens the current code of the <pre /> in the playground.\n   */\n  const openPlayground = $(() => {\n    // Open playground\n    window.open(\n      `/playground/?code=${lz.compressToEncodedURIComponent(preElement.value!.innerText)}`,\n      '_blank'\n    );\n\n    // Track open event\n    trackEvent('open_code_snippet_in_playground');\n  });\n\n  return (\n    <div class=\"code-wrapper group/code relative overflow-hidden rounded-2xl border-2 border-slate-200 lg:rounded-3xl lg:border-[3px] dark:border-slate-800\">\n      <div class=\"absolute top-5 right-5 hidden gap-5 group-hover/code:flex lg:top-10 lg:right-10\">\n        <IconButton\n          type=\"button\"\n          variant=\"secondary\"\n          label=\"Copy code\"\n          hideLabel\n          onClick$={copyCode}\n        >\n          {copied.value ? (\n            <CheckIcon class=\"h-[18px]\" />\n          ) : (\n            <CopyIcon class=\"h-[18px]\" />\n          )}\n        </IconButton>\n        {isValibotCode.value && (\n          <IconButton\n            type=\"button\"\n            variant=\"secondary\"\n            label=\"Execute code\"\n            hideLabel\n            onClick$={openPlayground}\n          >\n            <PlayIcon class=\"h-[16px]\" />\n          </IconButton>\n        )}\n      </div>\n      <pre\n        ref={preElement}\n        class=\"flex min-h-20 items-center overflow-x-auto p-5 leading-relaxed text-slate-700 md:text-lg lg:min-h-[120px] lg:p-10 lg:text-xl dark:text-slate-300\"\n      >\n        <Slot />\n      </pre>\n    </div>\n  );\n});\n\n/**\n * Hook that provides custom MDX components.\n */\nexport function useMDXComponents() {\n  return { pre: Pre };\n}\n"
  },
  {
    "path": "website/src/hooks/useResetSignal.ts",
    "content": "import { useSignal, useTask$ } from '@builder.io/qwik';\n\n/**\n * Creates a signal that resets to its initial value after a delay.\n *\n * @param initialValue The initial value.\n * @param delay The delay in milliseconds.\n *\n * @returns The reset signal.\n */\nexport function useResetSignal<T>(initialValue: T, delay = 1000) {\n  // Use signal\n  const signal = useSignal<T>(initialValue);\n\n  // Reset signal after delay\n  useTask$(({ track, cleanup }) => {\n    if (track(signal)) {\n      const timeout = setTimeout(() => {\n        signal.value = initialValue;\n      }, delay);\n      cleanup(() => clearTimeout(timeout));\n    }\n  });\n\n  // Return signal\n  return signal;\n}\n"
  },
  {
    "path": "website/src/hooks/useStorageSignal.ts",
    "content": "import { useSignal, useTask$, useVisibleTask$ } from '@builder.io/qwik';\nimport { isBrowser } from '@builder.io/qwik/build';\n\n/**\n * Creates a signal that is synchronized with localStorage.\n *\n * @param key The storage key.\n * @param initialValue The initial value.\n *\n * @returns The storage signal.\n */\nexport function useStorageSignal<T>(key: string, initialValue: T) {\n  // Use signal\n  const signal = useSignal<T>(initialValue);\n\n  // Get initial value from local storage\n  // eslint-disable-next-line qwik/no-use-visible-task\n  useVisibleTask$(() => {\n    const value = localStorage.getItem(key);\n    if (value) {\n      signal.value = JSON.parse(value);\n    }\n  });\n\n  // Update local storage when signal changes\n  useTask$(({ track }) => {\n    const value = track(signal);\n    if (isBrowser) {\n      localStorage.setItem(key, JSON.stringify(value));\n    }\n  });\n\n  // Return signal\n  return signal;\n}\n"
  },
  {
    "path": "website/src/icons/AngleRightIcon.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const AngleRightIcon = component$<HTMLAttributes<SVGSVGElement>>(\n  (props) => (\n    <svg\n      viewBox=\"0 0 26 48\"\n      role=\"img\"\n      aria-label=\"Angle right icon\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      stroke-width={4}\n      {...props}\n    >\n      <path d=\"m3.72 42.4 18.57-18.5L3.72 5.6\" />\n    </svg>\n  )\n);\n"
  },
  {
    "path": "website/src/icons/AngleUpIcon.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const AngleUpIcon = component$<HTMLAttributes<SVGSVGElement>>(\n  (props) => (\n    <svg\n      viewBox=\"0 0 36 48\"\n      role=\"img\"\n      aria-label=\"Angle up icon\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      stroke-width={4}\n      {...props}\n    >\n      <path d=\"M4.15 30.96 18.07 17l13.76 13.96\" />\n    </svg>\n  )\n);\n"
  },
  {
    "path": "website/src/icons/ArrowLeftIcon.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const ArrowLeftIcon = component$<HTMLAttributes<SVGSVGElement>>(\n  (props) => (\n    <svg\n      viewBox=\"0 0 45 48\"\n      role=\"img\"\n      aria-label=\"Arrow left icon\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      stroke-width={4}\n      {...props}\n    >\n      <path d=\"M41.52 23.98H4.2\" />\n      <path d=\"M17.55 37.88 3.58 23.96 17.55 10.2\" />\n    </svg>\n  )\n);\n"
  },
  {
    "path": "website/src/icons/ArrowRrightIcon.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const ArrowRightIcon = component$<HTMLAttributes<SVGSVGElement>>(\n  (props) => (\n    <svg\n      viewBox=\"0 0 45 48\"\n      role=\"img\"\n      aria-label=\"Arrow right icon\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      stroke-linecap=\"round\"\n      stroke-linejoin=\"round\"\n      stroke-width={4}\n      {...props}\n    >\n      <path d=\"M3.58 23.98h37.33\" />\n      <path d=\"m27.56 37.88 13.97-13.92L27.56 10.2\" />\n    </svg>\n  )\n);\n"
  },
  {
    "path": "website/src/icons/BinIcon.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const BinIcon = component$<HTMLAttributes<SVGSVGElement>>((props) => (\n  <svg\n    viewBox=\"0 0 44 48\"\n    role=\"img\"\n    aria-label=\"Bin icon\"\n    fill=\"none\"\n    stroke=\"currentColor\"\n    stroke-linecap=\"round\"\n    stroke-linejoin=\"round\"\n    stroke-width={4}\n    {...props}\n  >\n    <path d=\"m8.4 16.41 1.37 22.74a4.94 4.94 0 0 0 4.57 4.5h14.87c4.15 0 4.88-2.77 5.08-4.5l1.5-22.74\" />\n    <path d=\"m17.57 16.41.5 21.56m8.42-21.56-.5 21.56\" />\n    <path d=\"M15.51 9.19v-3.1a1.8 1.8 0 0 1 1.82-1.8h9.1a1.9 1.9 0 0 1 2.03 1.8v3.1\" />\n    <path d=\"M5.22 10.37h33.56\" />\n  </svg>\n));\n"
  },
  {
    "path": "website/src/icons/CheckIcon.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const CheckIcon = component$<HTMLAttributes<SVGSVGElement>>((props) => (\n  <svg\n    viewBox=\"0 0 48 48\"\n    role=\"img\"\n    aria-label=\"Check icon\"\n    fill=\"none\"\n    stroke=\"currentColor\"\n    stroke-linecap=\"round\"\n    stroke-linejoin=\"round\"\n    stroke-width={4}\n    {...props}\n  >\n    <path d=\"M3.78 25.12 17.02 37.5l27.2-27\" />\n  </svg>\n));\n"
  },
  {
    "path": "website/src/icons/CloseIcon.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const CloseIcon = component$<HTMLAttributes<SVGSVGElement>>((props) => (\n  <svg\n    viewBox=\"0 0 40 48\"\n    role=\"img\"\n    aria-label=\"Close icon\"\n    fill=\"none\"\n    stroke=\"currentColor\"\n    stroke-linecap=\"round\"\n    stroke-width={4}\n    {...props}\n  >\n    <path d=\"M36.27 7.73 3.73 40.27m32.54 0L3.73 7.73\" />\n  </svg>\n));\n"
  },
  {
    "path": "website/src/icons/CopyIcon.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const CopyIcon = component$<HTMLAttributes<SVGSVGElement>>((props) => (\n  <svg\n    viewBox=\"0 0 43 48\"\n    role=\"img\"\n    aria-label=\"Copy icon\"\n    fill=\"none\"\n    stroke=\"currentColor\"\n    stroke-linecap=\"round\"\n    stroke-linejoin=\"round\"\n    stroke-width={4}\n    {...props}\n  >\n    <path d=\"M16.96 7.2h17.1a4.5 4.5 0 0 1 4.5 4.5v18a4.5 4.5 0 0 1-4.5 4.5h-17.1a4.5 4.5 0 0 1-4.5-4.5v-18a4.5 4.5 0 0 1 4.5-4.5Z\" />\n    <path d=\"M7.84 15.25c-.55 0-3.3.4-3.3 3.14v19.93c0 3.21 1.87 3.93 4.23 3.93h18.4c2.32 0 3.29-2.3 3.29-3.62\" />\n  </svg>\n));\n"
  },
  {
    "path": "website/src/icons/DiscordIcon.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const DiscordIcon = component$<HTMLAttributes<SVGSVGElement>>(\n  (props) => (\n    <svg\n      viewBox=\"0 0 48 48\"\n      role=\"img\"\n      aria-label=\"Discord icon\"\n      fill=\"currentColor\"\n      {...props}\n    >\n      <path d=\"M39.97 9.52a38.04 38.04 0 0 0-9.5-2.92 26.07 26.07 0 0 0-1.21 2.47 35.34 35.34 0 0 0-10.53 0A26.18 26.18 0 0 0 17.5 6.6 38.31 38.31 0 0 0 8 9.53a38.34 38.34 0 0 0-6.8 26.09 38.25 38.25 0 0 0 11.64 5.84 28.11 28.11 0 0 0 2.5-4.02 24.75 24.75 0 0 1-3.94-1.87l.96-.72a27.34 27.34 0 0 0 23.27 0c.32.25.64.5.97.72a24.85 24.85 0 0 1-3.94 1.88 27.86 27.86 0 0 0 2.5 4.01 38.08 38.08 0 0 0 11.64-5.84 38.32 38.32 0 0 0-6.83-26.1ZM16.36 30.37a4.4 4.4 0 0 1-4.14-4.6 4.37 4.37 0 0 1 4.13-4.6 4.36 4.36 0 0 1 4.15 4.6 4.4 4.4 0 0 1-4.14 4.6Zm15.28 0a4.4 4.4 0 0 1-4.14-4.6 4.37 4.37 0 0 1 4.14-4.6 4.34 4.34 0 0 1 4.13 4.6 4.4 4.4 0 0 1-4.13 4.6Z\" />\n    </svg>\n  )\n);\n"
  },
  {
    "path": "website/src/icons/GitHubIcon.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const GitHubIcon = component$<HTMLAttributes<SVGSVGElement>>((props) => (\n  <svg\n    viewBox=\"0 0 48 48\"\n    role=\"img\"\n    aria-label=\"GitHub icon\"\n    fill=\"currentColor\"\n    {...props}\n  >\n    <path d=\"M24 2.55a22 22 0 0 0-6.96 42.86c1.1.2 1.51-.47 1.51-1.04l-.02-4.1c-5.53 1.02-6.96-1.35-7.4-2.58a8 8 0 0 0-2.25-3.11c-.78-.41-1.88-1.43-.03-1.46 1.73-.03 2.97 1.6 3.38 2.26 1.98 3.32 5.14 2.39 6.4 1.81a4.63 4.63 0 0 1 1.4-2.94c-4.89-.55-10-2.45-10-10.86a8.56 8.56 0 0 1 2.25-5.91 7.9 7.9 0 0 1 .22-5.83s1.84-.58 6.05 2.25a20.74 20.74 0 0 1 11 0c4.21-2.85 6.05-2.25 6.05-2.25a7.9 7.9 0 0 1 .22 5.82 8.51 8.51 0 0 1 2.26 5.92c0 8.44-5.14 10.3-10.04 10.86a5.2 5.2 0 0 1 1.49 4.07c0 2.94-.03 5.3-.03 6.05 0 .57.41 1.26 1.51 1.04a22 22 0 0 0-7-42.86Z\" />\n  </svg>\n));\n"
  },
  {
    "path": "website/src/icons/HashtagIcon.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const HashtagIcon = component$<HTMLAttributes<SVGSVGElement>>(\n  (props) => (\n    <svg\n      viewBox=\"0 0 39 48\"\n      role=\"img\"\n      aria-label=\"Hashtag icon\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      stroke-linecap=\"round\"\n      stroke-width={4}\n      {...props}\n    >\n      <path d=\"m14.69 7.19-4.12 33.63M28.69 7.19l-4.12 33.63M4.29 16.73H35.7m-32.41 14H34.7\" />\n    </svg>\n  )\n);\n"
  },
  {
    "path": "website/src/icons/LogoIcon.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const LogoIcon = component$<HTMLAttributes<SVGSVGElement>>((props) => (\n  <svg viewBox=\"0 0 48 48\" role=\"img\" aria-label=\"Valibot icon\" {...props}>\n    <defs>\n      <linearGradient\n        id=\"nCrZ\"\n        x1=\".41\"\n        x2=\"0\"\n        y1=\".26\"\n        y2=\".93\"\n        gradientUnits=\"objectBoundingBox\"\n      >\n        <stop offset=\"0\" stop-color=\"#eab308\" />\n        <stop offset=\"1\" stop-color=\"#ca8a04\" />\n      </linearGradient>\n      <linearGradient\n        id=\"jgAy\"\n        x1=\".34\"\n        x2=\".66\"\n        y1=\".02\"\n        y2=\".97\"\n        gradientUnits=\"objectBoundingBox\"\n      >\n        <stop offset=\"0\" stop-color=\"#fde68a\" />\n        <stop offset=\"1\" stop-color=\"#fbbf24\" />\n      </linearGradient>\n      <linearGradient\n        id=\"YpWK\"\n        x2=\"1\"\n        y1=\".5\"\n        y2=\".5\"\n        gradientUnits=\"objectBoundingBox\"\n      >\n        <stop offset=\"0\" stop-color=\"#7dd3fc\" />\n        <stop offset=\"1\" stop-color=\"#0ea5e9\" />\n      </linearGradient>\n    </defs>\n    <path\n      fill=\"url(#nCrZ)\"\n      d=\"M629.38 987.02c-6.26 0-11.17 5.13-11.43 11.86l-.24 8.95c-.37 7.37 6.75 9.89 11.9 9.89Z\"\n      transform=\"translate(-615.34 -978.37)\"\n    />\n    <path\n      fill=\"url(#jgAy)\"\n      d=\"M8.68 0h21.3a9 9 0 0 1 9.23 8.75l.58 12.73c.07 6.31-4.51 8.9-9.8 8.94l-21.31.27c-5.49.04-8.78-4.1-8.68-9.21L.35 8.75C.7 3.15 3.13.1 8.69 0Z\"\n      transform=\"translate(5.85 8.65)\"\n    />\n    <path\n      fill=\"#111827\"\n      d=\"M15.73 9.63h19.98a8.4 8.4 0 0 1 8.65 8.14l.54 11.84c.06 5.88-4.23 8.28-9.19 8.32l-19.98.25c-5.14.04-8.24-3.81-8.14-8.57l.34-11.84c.31-5.21 2.59-8.04 7.8-8.14Z\"\n    />\n    <path\n      fill=\"url(#YpWK)\"\n      d=\"M2.59 0A2.59 2.59 0 1 1 0 2.59 2.59 2.59 0 0 1 2.59 0Z\"\n      transform=\"translate(34.23 19.25)\"\n    />\n    <path\n      fill=\"url(#YpWK)\"\n      d=\"M2.59 0A2.59 2.59 0 1 1 0 2.59 2.59 2.59 0 0 1 2.59 0Z\"\n      transform=\"translate(14.25 19.25)\"\n    />\n  </svg>\n));\n"
  },
  {
    "path": "website/src/icons/MarkdownIcon.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const MarkdownIcon = component$<HTMLAttributes<SVGSVGElement>>(\n  (props) => (\n    <svg\n      viewBox=\"0 0 48 48\"\n      role=\"img\"\n      aria-label=\"Markdown icon\"\n      fill=\"currentColor\"\n      {...props}\n    >\n      <path d=\"M28.59 24.64a2 2 0 0 1 .65-.47 2 2 0 0 1 1.53 0q.36.15.65.47L38 31.77l6.58-7.13a2 2 0 0 1 .65-.47 2 2 0 0 1 1.53 0q.38.16.65.47.29.3.44.7a2.3 2.3 0 0 1 0 1.66q-.15.4-.44.7l-8 8.67a2 2 0 0 1-.64.47 2 2 0 0 1-1.54 0 2 2 0 0 1-.65-.48l-8-8.66a2 2 0 0 1-.43-.7 2.3 2.3 0 0 1 0-1.66q.15-.4.44-.7\" />\n      <path d=\"M37.9 12a2.1 2.1 0 0 1 2.1 2.08v16.67c0 .55-.22 1.08-.62 1.47a2.1 2.1 0 0 1-2.97 0 2 2 0 0 1-.62-1.47V14.08c0-.55.22-1.08.62-1.47s.93-.61 1.49-.61M4.46 37V20.38h.24l6.01 13.5h3.26l5.98-13.5h.24V37h4.51V12h-5.05l-7.2 16.23h-.16L5.09 12H0v25z\" />\n    </svg>\n  )\n);\n"
  },
  {
    "path": "website/src/icons/MenuIcon.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const MenuIcon = component$<HTMLAttributes<SVGSVGElement>>((props) => (\n  <svg\n    viewBox=\"0 0 48 48\"\n    role=\"img\"\n    aria-label=\"Menu icon\"\n    fill=\"none\"\n    stroke=\"currentColor\"\n    stroke-linecap=\"round\"\n    stroke-width={4}\n    {...props}\n  >\n    <path d=\"M4 11h40M4 24h40M4 37h40\" />\n  </svg>\n));\n"
  },
  {
    "path": "website/src/icons/NightIcon.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const NightIcon = component$<HTMLAttributes<SVGSVGElement>>((props) => (\n  <svg\n    viewBox=\"0 0 48 48\"\n    role=\"img\"\n    aria-label=\"Night icon\"\n    fill=\"none\"\n    stroke=\"currentColor\"\n    stroke-linecap=\"round\"\n    stroke-linejoin=\"round\"\n    stroke-width={4}\n    {...props}\n  >\n    <path d=\"M16.74 9C9.06 10.82-2.41 26.42 8.45 38.85s28.14 2.17 30.61-5.63c0 0-12.55 5.25-20.65-3.68S16.74 9 16.74 9Zm13.03-.51h5.9l1.84-5.7 1.86 5.7h5.44l-4.35 3.24L42.63 18l-5.23-3.93-4.88 3.67 1.94-5.77Z\" />\n  </svg>\n));\n"
  },
  {
    "path": "website/src/icons/PageIcon.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const PageIcon = component$<HTMLAttributes<SVGSVGElement>>((props) => (\n  <svg\n    viewBox=\"0 0 39 48\"\n    role=\"img\"\n    aria-label=\"Page icon\"\n    fill=\"none\"\n    stroke=\"currentColor\"\n    stroke-linecap=\"round\"\n    stroke-linejoin=\"round\"\n    stroke-width={4}\n    {...props}\n  >\n    <path d=\"M10 5h14.35L35 16.06V37a6 6 0 0 1-6 6H10a6 6 0 0 1-6-6V11a6 6 0 0 1 6-6Z\" />\n    <path d=\"M19.5 12.89v6.05a2.33 2.33 0 0 0 2.17 2.37h5.55\" />\n  </svg>\n));\n"
  },
  {
    "path": "website/src/icons/PenIcon.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const PenIcon = component$<HTMLAttributes<SVGSVGElement>>((props) => (\n  <svg\n    viewBox=\"0 0 48 48\"\n    role=\"img\"\n    aria-label=\"Pen icon\"\n    fill=\"none\"\n    stroke=\"currentColor\"\n    stroke-linecap=\"round\"\n    stroke-linejoin=\"round\"\n    stroke-width={4}\n    {...props}\n  >\n    <path d=\"M42.5 14.24 13.25 43.17l-9.34.85.86-9.1 29.2-29.14c5.3-5.3 13.92 3.1 8.55 8.46Z\" />\n    <path d=\"m12.52 29.16 6.37 6.52\" />\n  </svg>\n));\n"
  },
  {
    "path": "website/src/icons/PlayIcon.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const PlayIcon = component$<HTMLAttributes<SVGSVGElement>>((props) => (\n  <svg\n    viewBox=\"0 0 47 48\"\n    role=\"img\"\n    aria-label=\"Play icon\"\n    fill=\"none\"\n    stroke=\"currentColor\"\n    stroke-linecap=\"round\"\n    stroke-linejoin=\"round\"\n    stroke-width={4}\n    {...props}\n  >\n    <path d=\"M5.4 39.15V8.8a5.14 5.14 0 0 1 7.79-4.29l26 15.17a4.93 4.93 0 0 1 0 8.58l-26 15.17a5.2 5.2 0 0 1-2.64.72 5.08 5.08 0 0 1-5.15-5.01Z\" />\n  </svg>\n));\n"
  },
  {
    "path": "website/src/icons/PlusIcon.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const PlusIcon = component$<HTMLAttributes<SVGSVGElement>>((props) => (\n  <svg\n    viewBox=\"0 0 40 48\"\n    role=\"img\"\n    aria-label=\"Plus icon\"\n    fill=\"none\"\n    stroke=\"currentColor\"\n    stroke-linecap=\"round\"\n    stroke-width={4}\n    {...props}\n  >\n    <path d=\"M20 7.7v32.5m16.25-16.25H3.75\" />\n  </svg>\n));\n"
  },
  {
    "path": "website/src/icons/SearchIcon.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const SearchIcon = component$<HTMLAttributes<SVGSVGElement>>((props) => (\n  <svg\n    viewBox=\"0 0 43 48\"\n    role=\"img\"\n    aria-label=\"Search icon\"\n    fill=\"none\"\n    stroke=\"currentColor\"\n    stroke-linecap=\"round\"\n    stroke-width={4}\n    {...props}\n  >\n    <path d=\"M18 5.57A14.15 14.15 0 1 1 3.86 19.72 14.15 14.15 0 0 1 18.01 5.57Zm21.14 36.86-11.7-11.72\" />\n  </svg>\n));\n"
  },
  {
    "path": "website/src/icons/ShareIcon.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const ShareIcon = component$<HTMLAttributes<SVGSVGElement>>((props) => (\n  <svg\n    viewBox=\"0 0 48 48\"\n    role=\"img\"\n    aria-label=\"Share icon\"\n    fill=\"none\"\n    stroke=\"currentColor\"\n    stroke-linecap=\"round\"\n    stroke-linejoin=\"round\"\n    stroke-width={4}\n    {...props}\n  >\n    <path d=\"M9.6 18.5a6 6 0 1 1-6 6 6 6 0 0 1 6-6Zm28.67-15a6 6 0 1 1-6 6 6 6 0 0 1 6-6Zm0 29a6 6 0 1 1-6 6 6 6 0 0 1 6-6Z\" />\n    <path d=\"m31.76 35.88-15.6-7.9m15.38-15.8-15.33 8.74\" />\n  </svg>\n));\n"
  },
  {
    "path": "website/src/icons/SunIcon.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const SunIcon = component$<HTMLAttributes<SVGSVGElement>>((props) => (\n  <svg\n    viewBox=\"0 0 48 48\"\n    role=\"img\"\n    aria-label=\"Sun icon\"\n    fill=\"none\"\n    stroke=\"currentColor\"\n    stroke-linecap=\"round\"\n    stroke-linejoin=\"round\"\n    stroke-width={4}\n    {...props}\n  >\n    <path d=\"m34.9 35 3.55 3.53Zm-21.75-.1L9.6 38.43ZM16.5 24a7.5 7.5 0 1 1 7.5 7.5 7.5 7.5 0 0 1-7.5-7.5Zm22-14.4-3.55 3.52Zm-29.05 0L13 13.11Z\" />\n    <path d=\"M24 2.5v6M45.5 24h-6m-31 0h-6M24 39.5v6\" />\n  </svg>\n));\n"
  },
  {
    "path": "website/src/icons/index.ts",
    "content": "export * from './AngleRightIcon';\nexport * from './AngleUpIcon';\nexport * from './ArrowLeftIcon';\nexport * from './ArrowRrightIcon';\nexport * from './BinIcon';\nexport * from './CheckIcon';\nexport * from './CloseIcon';\nexport * from './CopyIcon';\nexport * from './DiscordIcon';\nexport * from './GitHubIcon';\nexport * from './HashtagIcon';\nexport * from './LogoIcon';\nexport * from './MenuIcon';\nexport * from './NightIcon';\nexport * from './PageIcon';\nexport * from './PenIcon';\nexport * from './PlayIcon';\nexport * from './PlusIcon';\nexport * from './SearchIcon';\nexport * from './ShareIcon';\nexport * from './SunIcon';\nexport * from './MarkdownIcon';\n"
  },
  {
    "path": "website/src/images/index.ts",
    "content": "export { default as stainlessIconUrl } from './stainless-icon.webp';\nexport { default as valibotTalkDarkUrl } from './valibot-talk-dark.webp';\nexport { default as valibotTalkLigthUrl } from './valibot-talk-light.webp';\n"
  },
  {
    "path": "website/src/json/TypeScript.tmLanguage.json",
    "content": "{\n  \"name\": \"TypeScript\",\n  \"scopeName\": \"source.ts\",\n  \"fileTypes\": [\"ts\"],\n  \"uuid\": \"ef98eb90-bf9b-11e4-bb52-0800200c9a66\",\n  \"patterns\": [\n    {\n      \"include\": \"#directives\"\n    },\n    {\n      \"include\": \"#statements\"\n    },\n    {\n      \"name\": \"comment.line.shebang.ts\",\n      \"match\": \"\\\\A(#!).*(?=$)\",\n      \"captures\": {\n        \"1\": {\n          \"name\": \"punctuation.definition.comment.ts\"\n        }\n      }\n    }\n  ],\n  \"repository\": {\n    \"statements\": {\n      \"patterns\": [\n        {\n          \"include\": \"#string\"\n        },\n        {\n          \"include\": \"#template\"\n        },\n        {\n          \"include\": \"#comment\"\n        },\n        {\n          \"include\": \"#literal\"\n        },\n        {\n          \"include\": \"#declaration\"\n        },\n        {\n          \"include\": \"#switch-statement\"\n        },\n        {\n          \"include\": \"#for-loop\"\n        },\n        {\n          \"include\": \"#after-operator-block\"\n        },\n        {\n          \"include\": \"#decl-block\"\n        },\n        {\n          \"include\": \"#control-statement\"\n        },\n        {\n          \"include\": \"#expression\"\n        },\n        {\n          \"include\": \"#punctuation-semicolon\"\n        }\n      ]\n    },\n    \"var-expr\": {\n      \"name\": \"meta.var.expr.ts\",\n      \"begin\": \"(?<!\\\\.|\\\\$)(?:(\\\\bexport)\\\\s+)?\\\\b(var|let|const(?!\\\\s+enum\\\\b))\\\\b(?!\\\\$)\",\n      \"beginCaptures\": {\n        \"1\": {\n          \"name\": \"keyword.control.export.ts\"\n        },\n        \"2\": {\n          \"name\": \"storage.type.ts\"\n        }\n      },\n      \"end\": \"(?=$|;|}|(\\\\s+(of|in)\\\\s+))\",\n      \"patterns\": [\n        {\n          \"include\": \"#destructuring-variable\"\n        },\n        {\n          \"include\": \"#var-single-variable\"\n        },\n        {\n          \"include\": \"#variable-initializer\"\n        },\n        {\n          \"include\": \"#comment\"\n        },\n        {\n          \"include\": \"#punctuation-comma\"\n        }\n      ]\n    },\n    \"var-single-variable\": {\n      \"patterns\": [\n        {\n          \"name\": \"meta.var-single-variable.expr.ts\",\n          \"begin\": \"(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=\\\\s* (=\\\\s*( (async\\\\s+) | (function\\\\s*[(<]) | (function\\\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\\\s*=>) | ((<([^<>]|\\\\<[^<>]+\\\\>)+>\\\\s*)?\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)(\\\\s*:\\\\s*(.)*)?\\\\s*=>)) ) | (:\\\\s*( (<) | ([(]\\\\s*( ([)]) | (\\\\.\\\\.\\\\.) | ([_$[:alnum:]]+\\\\s*( ([:,?=])| ([)]\\\\s*=>) )) ))) ))\",\n          \"beginCaptures\": {\n            \"1\": {\n              \"name\": \"entity.name.function.ts\"\n            }\n          },\n          \"end\": \"(?=$|[;,=}]|(\\\\s+(of|in)\\\\s+))\",\n          \"patterns\": [\n            {\n              \"include\": \"#type-annotation\"\n            },\n            {\n              \"include\": \"#string\"\n            },\n            {\n              \"include\": \"#comment\"\n            }\n          ]\n        },\n        {\n          \"name\": \"meta.var-single-variable.expr.ts\",\n          \"begin\": \"([_$[:alpha:]][_$[:alnum:]]*)\",\n          \"beginCaptures\": {\n            \"1\": {\n              \"name\": \"variable.other.readwrite.ts\"\n            }\n          },\n          \"end\": \"(?=$|[;,=}]|(\\\\s+(of|in)\\\\s+))\",\n          \"patterns\": [\n            {\n              \"include\": \"#type-annotation\"\n            },\n            {\n              \"include\": \"#string\"\n            },\n            {\n              \"include\": \"#comment\"\n            }\n          ]\n        }\n      ]\n    },\n    \"destructuring-variable\": {\n      \"patterns\": [\n        {\n          \"name\": \"meta.object-binding-pattern-variable.ts\",\n          \"begin\": \"(?<!=|:|of|in)\\\\s*(?=\\\\{)\",\n          \"end\": \"(?=$|[;,=}]|(\\\\s+(of|in)\\\\s+))\",\n          \"patterns\": [\n            {\n              \"include\": \"#object-binding-pattern\"\n            },\n            {\n              \"include\": \"#type-annotation\"\n            },\n            {\n              \"include\": \"#comment\"\n            }\n          ]\n        },\n        {\n          \"name\": \"meta.array-binding-pattern-variable.ts\",\n          \"begin\": \"(?<!=|:|of|in)\\\\s*(?=\\\\[)\",\n          \"end\": \"(?=$|[;,=}]|(\\\\s+(of|in)\\\\s+))\",\n          \"patterns\": [\n            {\n              \"include\": \"#array-binding-pattern\"\n            },\n            {\n              \"include\": \"#type-annotation\"\n            },\n            {\n              \"include\": \"#comment\"\n            }\n          ]\n        }\n      ]\n    },\n    \"object-binding-element\": {\n      \"patterns\": [\n        {\n          \"include\": \"#comment\"\n        },\n        {\n          \"begin\": \"(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\\\\'[^']*\\\\')|(\\\\\\\"[^\\\"]*\\\\\\\")|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]+\\\\])+\\\\]))\\\\s*(:))\",\n          \"end\": \"(?=,|\\\\})\",\n          \"patterns\": [\n            {\n              \"include\": \"#object-binding-element-propertyName\"\n            },\n            {\n              \"include\": \"#binding-element\"\n            }\n          ]\n        },\n        {\n          \"include\": \"#object-binding-pattern\"\n        },\n        {\n          \"include\": \"#destructuring-variable-rest\"\n        },\n        {\n          \"include\": \"#variable-initializer\"\n        },\n        {\n          \"include\": \"#punctuation-comma\"\n        }\n      ]\n    },\n    \"object-binding-element-propertyName\": {\n      \"begin\": \"(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\\\\'[^']*\\\\')|(\\\\\\\"[^\\\"]*\\\\\\\")|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]+\\\\])+\\\\]))\\\\s*(:))\",\n      \"end\": \"(:)\",\n      \"endCaptures\": {\n        \"0\": {\n          \"name\": \"punctuation.destructuring.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#string\"\n        },\n        {\n          \"include\": \"#array-literal\"\n        },\n        {\n          \"name\": \"variable.object.property.ts\",\n          \"match\": \"([_$[:alpha:]][_$[:alnum:]]*)\"\n        }\n      ]\n    },\n    \"binding-element\": {\n      \"patterns\": [\n        {\n          \"include\": \"#comment\"\n        },\n        {\n          \"include\": \"#object-binding-pattern\"\n        },\n        {\n          \"include\": \"#array-binding-pattern\"\n        },\n        {\n          \"include\": \"#destructuring-variable-rest\"\n        },\n        {\n          \"include\": \"#variable-initializer\"\n        }\n      ]\n    },\n    \"destructuring-variable-rest\": {\n      \"match\": \"(?:(\\\\.\\\\.\\\\.)\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\",\n      \"captures\": {\n        \"1\": {\n          \"name\": \"keyword.operator.rest.ts\"\n        },\n        \"2\": {\n          \"name\": \"variable.other.readwrite.ts\"\n        }\n      }\n    },\n    \"object-binding-pattern\": {\n      \"begin\": \"(?:(\\\\.\\\\.\\\\.)\\\\s*)?(\\\\{)\",\n      \"beginCaptures\": {\n        \"1\": {\n          \"name\": \"keyword.operator.rest.ts\"\n        },\n        \"2\": {\n          \"name\": \"punctuation.definition.binding-pattern.object.ts\"\n        }\n      },\n      \"end\": \"\\\\}\",\n      \"endCaptures\": {\n        \"0\": {\n          \"name\": \"punctuation.definition.binding-pattern.object.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#object-binding-element\"\n        }\n      ]\n    },\n    \"array-binding-pattern\": {\n      \"begin\": \"(?:(\\\\.\\\\.\\\\.)\\\\s*)?(\\\\[)\",\n      \"beginCaptures\": {\n        \"1\": {\n          \"name\": \"keyword.operator.rest.ts\"\n        },\n        \"2\": {\n          \"name\": \"punctuation.definition.binding-pattern.array.ts\"\n        }\n      },\n      \"end\": \"\\\\]\",\n      \"endCaptures\": {\n        \"0\": {\n          \"name\": \"punctuation.definition.binding-pattern.array.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#binding-element\"\n        },\n        {\n          \"include\": \"#punctuation-comma\"\n        }\n      ]\n    },\n    \"ternary-expression\": {\n      \"begin\": \"(?=\\\\?)\",\n      \"end\": \"(?=$|[;,})\\\\]])\",\n      \"patterns\": [\n        {\n          \"include\": \"#ternary-operator\"\n        },\n        {\n          \"include\": \"#expression\"\n        }\n      ]\n    },\n    \"ternary-operator\": {\n      \"begin\": \"(\\\\?)\",\n      \"beginCaptures\": {\n        \"0\": {\n          \"name\": \"keyword.operator.ternary.ts\"\n        }\n      },\n      \"end\": \"(:)\",\n      \"endCaptures\": {\n        \"0\": {\n          \"name\": \"keyword.operator.ternary.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#expression\"\n        }\n      ]\n    },\n    \"expression\": {\n      \"name\": \"meta.expression.ts\",\n      \"patterns\": [\n        {\n          \"include\": \"#string\"\n        },\n        {\n          \"include\": \"#regex\"\n        },\n        {\n          \"include\": \"#template\"\n        },\n        {\n          \"include\": \"#comment\"\n        },\n        {\n          \"include\": \"#literal\"\n        },\n        {\n          \"include\": \"#function-declaration\"\n        },\n        {\n          \"include\": \"#class-or-interface-declaration\"\n        },\n        {\n          \"include\": \"#arrow-function\"\n        },\n        {\n          \"include\": \"#cast\"\n        },\n        {\n          \"include\": \"#ternary-expression\"\n        },\n        {\n          \"include\": \"#new-expr\"\n        },\n        {\n          \"include\": \"#object-literal\"\n        },\n        {\n          \"include\": \"#expression-operators\"\n        },\n        {\n          \"include\": \"#function-call\"\n        },\n        {\n          \"include\": \"#support-objects\"\n        },\n        {\n          \"include\": \"#identifiers\"\n        },\n        {\n          \"include\": \"#paren-expression\"\n        },\n        {\n          \"include\": \"#punctuation-comma\"\n        },\n        {\n          \"include\": \"#punctuation-accessor\"\n        }\n      ]\n    },\n    \"control-statement\": {\n      \"patterns\": [\n        {\n          \"name\": \"keyword.control.trycatch.ts\",\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\b(catch|finally|throw|try)\\\\b(?!\\\\$)\"\n        },\n        {\n          \"name\": \"keyword.control.loop.ts\",\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\b(break|continue|do|goto|while)\\\\b(?!\\\\$)\"\n        },\n        {\n          \"name\": \"keyword.control.flow.ts\",\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\b(return)\\\\b(?!\\\\$)\"\n        },\n        {\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\b(yield)\\\\b(?!\\\\$)(?:\\\\s*(\\\\*))?\",\n          \"captures\": {\n            \"1\": {\n              \"name\": \"keyword.control.flow.ts\"\n            },\n            \"2\": {\n              \"name\": \"keyword.generator.asterisk.ts\"\n            }\n          }\n        },\n        {\n          \"name\": \"keyword.control.switch.ts\",\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\b(case|default|switch)\\\\b(?!\\\\$)\"\n        },\n        {\n          \"name\": \"keyword.control.conditional.ts\",\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\b(else|if)\\\\b(?!\\\\$)\"\n        },\n        {\n          \"name\": \"keyword.control.with.ts\",\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\b(with)\\\\b(?!\\\\$)\"\n        },\n        {\n          \"name\": \"keyword.other.debugger.ts\",\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\b(debugger)\\\\b(?!\\\\$)\"\n        },\n        {\n          \"name\": \"storage.modifier.ts\",\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\b(declare)\\\\b(?!\\\\$)\"\n        }\n      ]\n    },\n    \"declaration\": {\n      \"name\": \"meta.declaration.ts\",\n      \"patterns\": [\n        {\n          \"include\": \"#decorator\"\n        },\n        {\n          \"include\": \"#var-expr\"\n        },\n        {\n          \"include\": \"#function-declaration\"\n        },\n        {\n          \"include\": \"#class-or-interface-declaration\"\n        },\n        {\n          \"include\": \"#type-declaration\"\n        },\n        {\n          \"include\": \"#enum-declaration\"\n        },\n        {\n          \"include\": \"#namespace-declaration\"\n        },\n        {\n          \"include\": \"#import-equals-declaration\"\n        },\n        {\n          \"include\": \"#import-declaration\"\n        },\n        {\n          \"include\": \"#export-declaration\"\n        }\n      ]\n    },\n    \"decorator\": {\n      \"name\": \"meta.decorator.ts\",\n      \"begin\": \"(?<!\\\\.|\\\\$)\\\\@\",\n      \"beginCaptures\": {\n        \"0\": {\n          \"name\": \"punctuation.decorator.ts\"\n        }\n      },\n      \"end\": \"(?=\\\\s)\",\n      \"patterns\": [\n        {\n          \"include\": \"#expression\"\n        }\n      ]\n    },\n    \"type-declaration\": {\n      \"name\": \"meta.type.declaration.ts\",\n      \"begin\": \"(?<!\\\\.|\\\\$)(?:(\\\\bexport)\\\\s+)?\\\\b(type)\\\\b\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\\\\s*\",\n      \"beginCaptures\": {\n        \"1\": {\n          \"name\": \"keyword.control.export.ts\"\n        },\n        \"2\": {\n          \"name\": \"storage.type.type.ts\"\n        },\n        \"3\": {\n          \"name\": \"entity.name.type.ts\"\n        }\n      },\n      \"end\": \"(?=[};]|\\\\bvar\\\\b|\\\\blet\\\\b|\\\\bconst\\\\b|\\\\btype\\\\b|\\\\bfunction\\\\b|\\\\bclass\\\\b|\\\\binterface\\\\b|\\\\bnamespace\\\\b|\\\\bmodule\\\\b|\\\\bimport\\\\b|\\\\benum\\\\b|\\\\bdeclare\\\\b|\\\\bexport\\\\b|\\\\babstract\\\\b|\\\\basync\\\\b)\",\n      \"patterns\": [\n        {\n          \"include\": \"#comment\"\n        },\n        {\n          \"include\": \"#type-parameters\"\n        },\n        {\n          \"include\": \"#type\"\n        },\n        {\n          \"match\": \"(=)\\\\s*\",\n          \"captures\": {\n            \"1\": {\n              \"name\": \"keyword.operator.assignment.ts\"\n            }\n          }\n        }\n      ]\n    },\n    \"enum-declaration\": {\n      \"name\": \"meta.enum.declaration.ts\",\n      \"begin\": \"(?<!\\\\.|\\\\$)(?:(\\\\bexport)\\\\s+)?(?:\\\\b(const)\\\\s+)?\\\\b(enum)\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\",\n      \"beginCaptures\": {\n        \"1\": {\n          \"name\": \"keyword.control.export.ts\"\n        },\n        \"2\": {\n          \"name\": \"storage.modifier.ts\"\n        },\n        \"3\": {\n          \"name\": \"storage.type.enum.ts\"\n        },\n        \"4\": {\n          \"name\": \"entity.name.type.enum.ts\"\n        }\n      },\n      \"end\": \"(?<=\\\\})\",\n      \"patterns\": [\n        {\n          \"include\": \"#comment\"\n        },\n        {\n          \"begin\": \"\\\\{\",\n          \"beginCaptures\": {\n            \"0\": {\n              \"name\": \"punctuation.definition.block.ts\"\n            }\n          },\n          \"end\": \"\\\\}\",\n          \"endCaptures\": {\n            \"0\": {\n              \"name\": \"punctuation.definition.block.ts\"\n            }\n          },\n          \"patterns\": [\n            {\n              \"include\": \"#comment\"\n            },\n            {\n              \"begin\": \"([_$[:alpha:]][_$[:alnum:]]*)\",\n              \"beginCaptures\": {\n                \"0\": {\n                  \"name\": \"variable.other.enummember.ts\"\n                }\n              },\n              \"end\": \"(?=,|\\\\}|$)\",\n              \"patterns\": [\n                {\n                  \"include\": \"#comment\"\n                },\n                {\n                  \"include\": \"#variable-initializer\"\n                }\n              ]\n            },\n            {\n              \"begin\": \"(?=((\\\\'[^']*\\\\')|(\\\\\\\"[^\\\"]*\\\\\\\")|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]+\\\\])+\\\\])))\",\n              \"end\": \"(?=,|\\\\}|$)\",\n              \"patterns\": [\n                {\n                  \"include\": \"#string\"\n                },\n                {\n                  \"include\": \"#array-literal\"\n                },\n                {\n                  \"include\": \"#comment\"\n                },\n                {\n                  \"include\": \"#variable-initializer\"\n                }\n              ]\n            },\n            {\n              \"include\": \"#punctuation-comma\"\n            }\n          ]\n        }\n      ]\n    },\n    \"namespace-declaration\": {\n      \"name\": \"meta.namespace.declaration.ts\",\n      \"begin\": \"(?<!\\\\.|\\\\$)(?:(\\\\bexport)\\\\s+)?\\\\b(namespace|module)\\\\s+\",\n      \"beginCaptures\": {\n        \"1\": {\n          \"name\": \"keyword.control.export.ts\"\n        },\n        \"2\": {\n          \"name\": \"storage.type.namespace.ts\"\n        }\n      },\n      \"end\": \"(?=$|\\\\{)\",\n      \"patterns\": [\n        {\n          \"include\": \"#comment\"\n        },\n        {\n          \"include\": \"#string\"\n        },\n        {\n          \"name\": \"entity.name.type.module.ts\",\n          \"match\": \"([_$[:alpha:]][_$[:alnum:]]*)\"\n        },\n        {\n          \"name\": \"punctuation.accessor.ts\",\n          \"match\": \"\\\\.\"\n        }\n      ]\n    },\n    \"import-equals-declaration\": {\n      \"patterns\": [\n        {\n          \"name\": \"meta.import-equals.external.ts\",\n          \"begin\": \"(?<!\\\\.|\\\\$)(?:(\\\\bexport)\\\\s+)?\\\\b(import)\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\\\\s*(=)\\\\s*(require)\\\\s*(\\\\()\",\n          \"beginCaptures\": {\n            \"1\": {\n              \"name\": \"keyword.control.export.ts\"\n            },\n            \"2\": {\n              \"name\": \"keyword.control.import.ts\"\n            },\n            \"3\": {\n              \"name\": \"variable.other.readwrite.alias.ts\"\n            },\n            \"4\": {\n              \"name\": \"keyword.operator.assignment.ts\"\n            },\n            \"5\": {\n              \"name\": \"keyword.control.require.ts\"\n            },\n            \"6\": {\n              \"name\": \"meta.brace.round.ts\"\n            }\n          },\n          \"end\": \"\\\\)\",\n          \"endCaptures\": {\n            \"0\": {\n              \"name\": \"meta.brace.round.ts\"\n            }\n          },\n          \"patterns\": [\n            {\n              \"include\": \"#comment\"\n            },\n            {\n              \"include\": \"#string\"\n            }\n          ]\n        },\n        {\n          \"name\": \"meta.import-equals.internal.ts\",\n          \"begin\": \"(?<!\\\\.|\\\\$)(?:(\\\\bexport)\\\\s+)?\\\\b(import)\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\\\\s*(=)\\\\s*(?!require\\\\b)\",\n          \"beginCaptures\": {\n            \"1\": {\n              \"name\": \"keyword.control.export.ts\"\n            },\n            \"2\": {\n              \"name\": \"keyword.control.import.ts\"\n            },\n            \"3\": {\n              \"name\": \"variable.other.readwrite.alias.ts\"\n            },\n            \"4\": {\n              \"name\": \"keyword.operator.assignment.ts\"\n            }\n          },\n          \"end\": \"(?=;|$)\",\n          \"patterns\": [\n            {\n              \"include\": \"#comment\"\n            },\n            {\n              \"match\": \"([_$[:alpha:]][_$[:alnum:]]*)\\\\s*(\\\\.)\",\n              \"captures\": {\n                \"1\": {\n                  \"name\": \"entity.name.type.module.ts\"\n                },\n                \"2\": {\n                  \"name\": \"punctuation.accessor.ts\"\n                }\n              }\n            },\n            {\n              \"name\": \"variable.other.readwrite.ts\",\n              \"match\": \"([_$[:alpha:]][_$[:alnum:]]*)\"\n            }\n          ]\n        }\n      ]\n    },\n    \"import-declaration\": {\n      \"name\": \"meta.import.ts\",\n      \"begin\": \"(?<!\\\\.|\\\\$)(?:(\\\\bexport)\\\\s+)?\\\\b(import)(?!(\\\\s*:)|(\\\\$))\\\\b\",\n      \"beginCaptures\": {\n        \"1\": {\n          \"name\": \"keyword.control.export.ts\"\n        },\n        \"2\": {\n          \"name\": \"keyword.control.import.ts\"\n        }\n      },\n      \"end\": \"(?=;|$)\",\n      \"patterns\": [\n        {\n          \"include\": \"#import-export-declaration\"\n        }\n      ]\n    },\n    \"export-declaration\": {\n      \"patterns\": [\n        {\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\b(export)\\\\s+(as)\\\\s+(namespace)\\\\s+([_$[:alpha:]][_$[:alnum:]]*)\",\n          \"captures\": {\n            \"1\": {\n              \"name\": \"keyword.control.export.ts\"\n            },\n            \"2\": {\n              \"name\": \"keyword.control.as.ts\"\n            },\n            \"3\": {\n              \"name\": \"storage.type.namespace.ts\"\n            },\n            \"4\": {\n              \"name\": \"entity.name.type.module.ts\"\n            }\n          }\n        },\n        {\n          \"name\": \"meta.export.default.ts\",\n          \"begin\": \"(?<!\\\\.|\\\\$)\\\\b(export)(?:(?:\\\\s*(=))|(?:\\\\s+(default)(?=\\\\s+)))\",\n          \"beginCaptures\": {\n            \"1\": {\n              \"name\": \"keyword.control.export.ts\"\n            },\n            \"2\": {\n              \"name\": \"keyword.operator.assignment.ts\"\n            },\n            \"3\": {\n              \"name\": \"keyword.control.default.ts\"\n            }\n          },\n          \"end\": \"(?=;|\\\\bexport\\\\b|\\\\bfunction\\\\b|\\\\bclass\\\\b|\\\\binterface\\\\b|\\\\blet\\\\b|\\\\bvar\\\\b|\\\\bconst\\\\b|\\\\bimport\\\\b|\\\\benum\\\\b|\\\\bnamespace\\\\b|\\\\bmodule\\\\b|\\\\btype\\\\b|\\\\babstract\\\\b|\\\\bdeclare\\\\b|\\\\basync\\\\b|$)\",\n          \"patterns\": [\n            {\n              \"include\": \"#expression\"\n            }\n          ]\n        },\n        {\n          \"name\": \"meta.export.ts\",\n          \"begin\": \"(?<!\\\\.|\\\\$)\\\\b(export)(?!(\\\\s*:)|(\\\\$))\\\\b\",\n          \"beginCaptures\": {\n            \"0\": {\n              \"name\": \"keyword.control.export.ts\"\n            }\n          },\n          \"end\": \"(?=;|\\\\bexport\\\\b|\\\\bfunction\\\\b|\\\\bclass\\\\b|\\\\binterface\\\\b|\\\\blet\\\\b|\\\\bvar\\\\b|\\\\bconst\\\\b|\\\\bimport\\\\b|\\\\benum\\\\b|\\\\bnamespace\\\\b|\\\\bmodule\\\\b|\\\\btype\\\\b|\\\\babstract\\\\b|\\\\bdeclare\\\\b|\\\\basync\\\\b|$)\",\n          \"patterns\": [\n            {\n              \"include\": \"#import-export-declaration\"\n            }\n          ]\n        }\n      ]\n    },\n    \"import-export-declaration\": {\n      \"patterns\": [\n        {\n          \"include\": \"#comment\"\n        },\n        {\n          \"include\": \"#string\"\n        },\n        {\n          \"include\": \"#import-export-block\"\n        },\n        {\n          \"name\": \"keyword.control.from.ts\",\n          \"match\": \"\\\\bfrom\\\\b\"\n        },\n        {\n          \"include\": \"#import-export-clause\"\n        }\n      ]\n    },\n    \"import-export-block\": {\n      \"name\": \"meta.block.ts\",\n      \"begin\": \"\\\\{\",\n      \"beginCaptures\": {\n        \"0\": {\n          \"name\": \"punctuation.definition.block.ts\"\n        }\n      },\n      \"end\": \"\\\\}\",\n      \"endCaptures\": {\n        \"0\": {\n          \"name\": \"punctuation.definition.block.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#import-export-clause\"\n        }\n      ]\n    },\n    \"import-export-clause\": {\n      \"patterns\": [\n        {\n          \"include\": \"#comment\"\n        },\n        {\n          \"comment\": \"(default|*|name) as alias\",\n          \"match\": \"(?x) (?: \\\\b(default)\\\\b | (\\\\*) | ([_$[:alpha:]][_$[:alnum:]]*)) \\\\s+  (as) \\\\s+ (?: (\\\\b default \\\\b | \\\\*) | ([_$[:alpha:]][_$[:alnum:]]*))\",\n          \"captures\": {\n            \"1\": {\n              \"name\": \"keyword.control.default.ts\"\n            },\n            \"2\": {\n              \"name\": \"constant.language.import-export-all.ts\"\n            },\n            \"3\": {\n              \"name\": \"variable.other.readwrite.ts\"\n            },\n            \"4\": {\n              \"name\": \"keyword.control.as.ts\"\n            },\n            \"5\": {\n              \"name\": \"invalid.illegal.ts\"\n            },\n            \"6\": {\n              \"name\": \"variable.other.readwrite.alias.ts\"\n            }\n          }\n        },\n        {\n          \"include\": \"#punctuation-comma\"\n        },\n        {\n          \"name\": \"constant.language.import-export-all.ts\",\n          \"match\": \"\\\\*\"\n        },\n        {\n          \"name\": \"keyword.control.default.ts\",\n          \"match\": \"\\\\b(default)\\\\b\"\n        },\n        {\n          \"name\": \"variable.other.readwrite.alias.ts\",\n          \"match\": \"([_$[:alpha:]][_$[:alnum:]]*)\"\n        }\n      ]\n    },\n    \"class-or-interface-declaration\": {\n      \"name\": \"meta.class.ts\",\n      \"begin\": \"(?<!\\\\.|\\\\$)\\\\b(?:(export)\\\\s+)?\\\\b(?:(abstract)\\\\s+)?\\\\b(?:(class)|(interface))\\\\b\",\n      \"beginCaptures\": {\n        \"1\": {\n          \"name\": \"keyword.control.export.ts\"\n        },\n        \"2\": {\n          \"name\": \"storage.modifier.ts\"\n        },\n        \"3\": {\n          \"name\": \"storage.type.class.ts\"\n        },\n        \"4\": {\n          \"name\": \"storage.type.interface.ts\"\n        }\n      },\n      \"end\": \"(?<=\\\\})\",\n      \"endCaptures\": {\n        \"1\": {\n          \"name\": \"punctuation.definition.block.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#comment\"\n        },\n        {\n          \"include\": \"#class-or-interface-heritage\"\n        },\n        {\n          \"match\": \"[_$[:alpha:]][_$[:alnum:]]*\",\n          \"captures\": {\n            \"0\": {\n              \"name\": \"entity.name.type.class.ts\"\n            }\n          }\n        },\n        {\n          \"include\": \"#type-parameters\"\n        },\n        {\n          \"include\": \"#class-or-interface-body\"\n        }\n      ]\n    },\n    \"class-or-interface-heritage\": {\n      \"begin\": \"(?<!\\\\.|\\\\$)(?:\\\\b(extends|implements)\\\\b)(?!\\\\$)\",\n      \"beginCaptures\": {\n        \"1\": {\n          \"name\": \"storage.modifier.ts\"\n        }\n      },\n      \"end\": \"(?=\\\\{)\",\n      \"endCaptures\": {\n        \"1\": {\n          \"name\": \"punctuation.definition.block.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#comment\"\n        },\n        {\n          \"include\": \"#class-or-interface-heritage\"\n        },\n        {\n          \"include\": \"#type-parameters\"\n        },\n        {\n          \"match\": \"([_$[:alpha:]][_$[:alnum:]]*)\\\\s*(\\\\.)(?=\\\\s*[_$[:alpha:]][_$[:alnum:]]*(\\\\s*\\\\.\\\\s*[_$[:alpha:]][_$[:alnum:]]*)*\\\\s*([,<{]|extends|implements|//|/\\\\*))\",\n          \"captures\": {\n            \"1\": {\n              \"name\": \"entity.name.type.module.ts\"\n            },\n            \"2\": {\n              \"name\": \"punctuation.accessor.ts\"\n            }\n          }\n        },\n        {\n          \"match\": \"([_$[:alpha:]][_$[:alnum:]]*)(?=\\\\s*([,<{]|extends|implements|//|/\\\\*))\",\n          \"captures\": {\n            \"1\": {\n              \"name\": \"entity.other.inherited-class.ts\"\n            }\n          }\n        },\n        {\n          \"include\": \"#expression\"\n        }\n      ]\n    },\n    \"class-or-interface-body\": {\n      \"begin\": \"\\\\{\",\n      \"beginCaptures\": {\n        \"0\": {\n          \"name\": \"punctuation.definition.block.ts\"\n        }\n      },\n      \"end\": \"\\\\}\",\n      \"endCaptures\": {\n        \"0\": {\n          \"name\": \"punctuation.definition.block.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#string\"\n        },\n        {\n          \"include\": \"#comment\"\n        },\n        {\n          \"include\": \"#decorator\"\n        },\n        {\n          \"include\": \"#method-declaration\"\n        },\n        {\n          \"include\": \"#indexer-declaration\"\n        },\n        {\n          \"include\": \"#field-declaration\"\n        },\n        {\n          \"include\": \"#type-annotation\"\n        },\n        {\n          \"include\": \"#variable-initializer\"\n        },\n        {\n          \"include\": \"#access-modifier\"\n        },\n        {\n          \"include\": \"#property-accessor\"\n        },\n        {\n          \"include\": \"#expression\"\n        },\n        {\n          \"include\": \"#punctuation-comma\"\n        },\n        {\n          \"include\": \"#punctuation-semicolon\"\n        }\n      ]\n    },\n    \"type-object\": {\n      \"name\": \"meta.object.type.ts\",\n      \"begin\": \"\\\\{\",\n      \"beginCaptures\": {\n        \"0\": {\n          \"name\": \"punctuation.definition.block.ts\"\n        }\n      },\n      \"end\": \"\\\\}\",\n      \"endCaptures\": {\n        \"0\": {\n          \"name\": \"punctuation.definition.block.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#type-object-members\"\n        }\n      ]\n    },\n    \"type-object-members\": {\n      \"patterns\": [\n        {\n          \"include\": \"#comment\"\n        },\n        {\n          \"include\": \"#method-declaration\"\n        },\n        {\n          \"include\": \"#indexer-declaration\"\n        },\n        {\n          \"include\": \"#field-declaration\"\n        },\n        {\n          \"include\": \"#type-annotation\"\n        },\n        {\n          \"begin\": \"\\\\.\\\\.\\\\.\",\n          \"beginCaptures\": {\n            \"0\": {\n              \"name\": \"keyword.operator.spread.ts\"\n            }\n          },\n          \"end\": \"(?=\\\\}|;|,|$)|(?<=\\\\})\",\n          \"patterns\": [\n            {\n              \"include\": \"#type\"\n            }\n          ]\n        },\n        {\n          \"include\": \"#punctuation-comma\"\n        },\n        {\n          \"include\": \"#punctuation-semicolon\"\n        }\n      ]\n    },\n    \"field-declaration\": {\n      \"name\": \"meta.field.declaration.ts\",\n      \"begin\": \"(?<!\\\\()(?:(?<!\\\\.|\\\\$)\\\\b(readonly)\\\\s+)?(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\\\\'[^']*\\\\')|(\\\\\\\"[^\\\"]*\\\\\\\")|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]+\\\\])+\\\\]))\\\\s*(\\\\?\\\\s*)?(=|:))\",\n      \"beginCaptures\": {\n        \"1\": {\n          \"name\": \"storage.modifier.ts\"\n        }\n      },\n      \"end\": \"(?=\\\\}|;|,|$)|(?<=\\\\})\",\n      \"patterns\": [\n        {\n          \"include\": \"#variable-initializer\"\n        },\n        {\n          \"begin\": \"(?=((?:[_$[:alpha:]][_$[:alnum:]]*)|(?:\\\\'[^']*\\\\')|(?:\\\\\\\"[^\\\"]*\\\\\\\")|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]+\\\\])+\\\\]))\\\\s*(\\\\?\\\\s*)?(=|:))\",\n          \"end\": \"(?=[};,=]|$)|(?<=\\\\})\",\n          \"patterns\": [\n            {\n              \"include\": \"#type-annotation\"\n            },\n            {\n              \"include\": \"#string\"\n            },\n            {\n              \"include\": \"#array-literal\"\n            },\n            {\n              \"include\": \"#comment\"\n            },\n            {\n              \"name\": \"entity.name.function.ts\",\n              \"match\": \"(?x)([_$[:alpha:]][_$[:alnum:]]*)(?=(\\\\?\\\\s*)?\\\\s* (=\\\\s*( (async\\\\s+) | (function\\\\s*[(<]) | (function\\\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\\\s*=>) | ((<([^<>]|\\\\<[^<>]+\\\\>)+>\\\\s*)?\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)(\\\\s*:\\\\s*(.)*)?\\\\s*=>)) ) | (:\\\\s*( (<) | ([(]\\\\s*( ([)]) | (\\\\.\\\\.\\\\.) | ([_$[:alnum:]]+\\\\s*( ([:,?=])| ([)]\\\\s*=>) )) ))) ))\"\n            },\n            {\n              \"name\": \"variable.object.property.ts\",\n              \"match\": \"[_$[:alpha:]][_$[:alnum:]]*\"\n            },\n            {\n              \"name\": \"keyword.operator.optional.ts\",\n              \"match\": \"\\\\?\"\n            }\n          ]\n        }\n      ]\n    },\n    \"method-declaration\": {\n      \"name\": \"meta.method.declaration.ts\",\n      \"begin\": \"(?<!\\\\.|\\\\$)(?:\\\\b(public|private|protected)\\\\s+)?(?:\\\\b(abstract)\\\\s+)?(?:\\\\b(async)\\\\s+)?(?:\\\\b(get|set)\\\\s+)?(?:(?:\\\\b(?:(new)|(constructor))\\\\b(?!\\\\$|:))|(?:(\\\\*)\\\\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\\\\'[^']*\\\\')|(\\\\\\\"[^\\\"]*\\\\\\\")|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]+\\\\])+\\\\]))\\\\s*(\\\\??))?\\\\s*[\\\\(\\\\<]))\",\n      \"beginCaptures\": {\n        \"1\": {\n          \"name\": \"storage.modifier.ts\"\n        },\n        \"2\": {\n          \"name\": \"storage.modifier.ts\"\n        },\n        \"3\": {\n          \"name\": \"storage.modifier.async.ts\"\n        },\n        \"4\": {\n          \"name\": \"storage.type.property.ts\"\n        },\n        \"5\": {\n          \"name\": \"keyword.operator.new.ts\"\n        },\n        \"6\": {\n          \"name\": \"storage.type.ts\"\n        },\n        \"7\": {\n          \"name\": \"keyword.generator.asterisk.ts\"\n        }\n      },\n      \"end\": \"(?=\\\\}|;|,)|(?<=\\\\})\",\n      \"patterns\": [\n        {\n          \"include\": \"#method-declaration-name\"\n        },\n        {\n          \"include\": \"#comment\"\n        },\n        {\n          \"include\": \"#type-parameters\"\n        },\n        {\n          \"include\": \"#function-parameters\"\n        },\n        {\n          \"include\": \"#return-type\"\n        },\n        {\n          \"include\": \"#method-overload-declaration\"\n        },\n        {\n          \"include\": \"#decl-block\"\n        }\n      ]\n    },\n    \"method-overload-declaration\": {\n      \"begin\": \"(?<!\\\\.|\\\\$)(?:\\\\b(public|private|protected)\\\\s+)?(?:\\\\b(abstract)\\\\s+)?(?:\\\\b(async)\\\\s+)?(?:\\\\b(get|set)\\\\s+)?(?:(?:\\\\b(?:(new)|(constructor))\\\\b(?!\\\\$|:))|(?:(\\\\*)\\\\s*)?(?=((([_$[:alpha:]][_$[:alnum:]]*)|(\\\\'[^']*\\\\')|(\\\\\\\"[^\\\"]*\\\\\\\")|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]+\\\\])+\\\\]))\\\\s*(\\\\??))?\\\\s*[\\\\(\\\\<]))\",\n      \"beginCaptures\": {\n        \"1\": {\n          \"name\": \"storage.modifier.ts\"\n        },\n        \"2\": {\n          \"name\": \"storage.modifier.ts\"\n        },\n        \"3\": {\n          \"name\": \"storage.modifier.async.ts\"\n        },\n        \"4\": {\n          \"name\": \"storage.type.property.ts\"\n        },\n        \"5\": {\n          \"name\": \"keyword.operator.new.ts\"\n        },\n        \"6\": {\n          \"name\": \"storage.type.ts\"\n        },\n        \"7\": {\n          \"name\": \"keyword.generator.asterisk.ts\"\n        }\n      },\n      \"end\": \"(?=\\\\(|\\\\<)\",\n      \"patterns\": [\n        {\n          \"include\": \"#method-declaration-name\"\n        }\n      ]\n    },\n    \"method-declaration-name\": {\n      \"begin\": \"(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\\\\'[^']*\\\\')|(\\\\\\\"[^\\\"]*\\\\\\\")|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]+\\\\])+\\\\]))\\\\s*(\\\\??)\\\\s*[\\\\(\\\\<])\",\n      \"end\": \"(?=\\\\(|\\\\<)\",\n      \"patterns\": [\n        {\n          \"include\": \"#string\"\n        },\n        {\n          \"include\": \"#array-literal\"\n        },\n        {\n          \"name\": \"entity.name.function.ts\",\n          \"match\": \"[_$[:alpha:]][_$[:alnum:]]*\"\n        },\n        {\n          \"name\": \"keyword.operator.optional.ts\",\n          \"match\": \"\\\\?\"\n        }\n      ]\n    },\n    \"indexer-declaration\": {\n      \"name\": \"meta.indexer.declaration.ts\",\n      \"begin\": \"(?:(?<!\\\\.|\\\\$)\\\\b(readonly)\\\\s*)?(\\\\[)\\\\s*([_$[:alpha:]][_$[:alnum:]]*)\\\\s*(?=:)\",\n      \"beginCaptures\": {\n        \"1\": {\n          \"name\": \"storage.modifier.ts\"\n        },\n        \"2\": {\n          \"name\": \"meta.brace.square.ts\"\n        },\n        \"3\": {\n          \"name\": \"variable.parameter.ts\"\n        }\n      },\n      \"end\": \"(\\\\])\\\\s*(\\\\?\\\\s*)?|$\",\n      \"endCaptures\": {\n        \"1\": {\n          \"name\": \"meta.brace.square.ts\"\n        },\n        \"2\": {\n          \"name\": \"keyword.operator.optional.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#type-annotation\"\n        }\n      ]\n    },\n    \"function-declaration\": {\n      \"name\": \"meta.function.ts\",\n      \"begin\": \"(?<!\\\\.|\\\\$)\\\\b(?:(export)\\\\s+)?(?:(async)\\\\s+)?(function\\\\b)(?:\\\\s*(\\\\*))?(?:(?:\\\\s+|(?<=\\\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\\\s*\",\n      \"beginCaptures\": {\n        \"1\": {\n          \"name\": \"keyword.control.export.ts\"\n        },\n        \"2\": {\n          \"name\": \"storage.modifier.async.ts\"\n        },\n        \"3\": {\n          \"name\": \"storage.type.function.ts\"\n        },\n        \"4\": {\n          \"name\": \"keyword.generator.asterisk.ts\"\n        },\n        \"5\": {\n          \"name\": \"entity.name.function.ts\"\n        }\n      },\n      \"end\": \"(?=;|\\\\})|(?<=\\\\})\",\n      \"patterns\": [\n        {\n          \"include\": \"#comment\"\n        },\n        {\n          \"include\": \"#type-parameters\"\n        },\n        {\n          \"include\": \"#function-parameters\"\n        },\n        {\n          \"include\": \"#return-type\"\n        },\n        {\n          \"include\": \"#function-overload-declaration\"\n        },\n        {\n          \"include\": \"#decl-block\"\n        }\n      ]\n    },\n    \"function-overload-declaration\": {\n      \"name\": \"meta.function.overload.ts\",\n      \"match\": \"(?<!\\\\.|\\\\$)\\\\b(?:(export)\\\\s+)?(?:(async)\\\\s+)?(function\\\\b)(?:\\\\s*(\\\\*))?(?:(?:\\\\s+|(?<=\\\\*))([_$[:alpha:]][_$[:alnum:]]*))?\\\\s*\",\n      \"captures\": {\n        \"1\": {\n          \"name\": \"keyword.control.export.ts\"\n        },\n        \"2\": {\n          \"name\": \"storage.modifier.async.ts\"\n        },\n        \"3\": {\n          \"name\": \"storage.type.function.ts\"\n        },\n        \"4\": {\n          \"name\": \"keyword.generator.asterisk.ts\"\n        },\n        \"5\": {\n          \"name\": \"entity.name.function.ts\"\n        }\n      }\n    },\n    \"object-literal\": {\n      \"name\": \"meta.objectliteral.ts\",\n      \"begin\": \"\\\\{\",\n      \"beginCaptures\": {\n        \"0\": {\n          \"name\": \"punctuation.definition.block.ts\"\n        }\n      },\n      \"end\": \"\\\\}\",\n      \"endCaptures\": {\n        \"0\": {\n          \"name\": \"punctuation.definition.block.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#object-member\"\n        }\n      ]\n    },\n    \"decl-block\": {\n      \"name\": \"meta.block.ts\",\n      \"begin\": \"\\\\{\",\n      \"beginCaptures\": {\n        \"0\": {\n          \"name\": \"punctuation.definition.block.ts\"\n        }\n      },\n      \"end\": \"\\\\}\",\n      \"endCaptures\": {\n        \"0\": {\n          \"name\": \"punctuation.definition.block.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#statements\"\n        }\n      ]\n    },\n    \"after-operator-block\": {\n      \"name\": \"meta.objectliteral.ts\",\n      \"begin\": \"(?<=[=(,\\\\[?+!]|await|return|yield|throw|in|of|typeof|&&|\\\\|\\\\||\\\\*)\\\\s*(\\\\{)\",\n      \"beginCaptures\": {\n        \"1\": {\n          \"name\": \"punctuation.definition.block.ts\"\n        }\n      },\n      \"end\": \"\\\\}\",\n      \"endCaptures\": {\n        \"0\": {\n          \"name\": \"punctuation.definition.block.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#object-member\"\n        }\n      ]\n    },\n    \"parameter-name\": {\n      \"patterns\": [\n        {\n          \"match\": \"(?x)(?:\\\\s*\\\\b(readonly)\\\\s+)?(?:\\\\s*\\\\b(public|private|protected)\\\\s+)?(\\\\.\\\\.\\\\.)?\\\\s*(?<!=|:)([_$[:alpha:]][_$[:alnum:]]*)\\\\s*(\\\\??)(?=\\\\s* (=\\\\s*( (async\\\\s+) | (function\\\\s*[(<]) | (function\\\\s+) | ([_$[:alpha:]][_$[:alnum:]]*\\\\s*=>) | ((<([^<>]|\\\\<[^<>]+\\\\>)+>\\\\s*)?\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)(\\\\s*:\\\\s*(.)*)?\\\\s*=>)) ) | (:\\\\s*( (<) | ([(]\\\\s*( ([)]) | (\\\\.\\\\.\\\\.) | ([_$[:alnum:]]+\\\\s*( ([:,?=])| ([)]\\\\s*=>) )) ))) ))\",\n          \"captures\": {\n            \"1\": {\n              \"name\": \"storage.modifier.ts\"\n            },\n            \"2\": {\n              \"name\": \"storage.modifier.ts\"\n            },\n            \"3\": {\n              \"name\": \"keyword.operator.rest.ts\"\n            },\n            \"4\": {\n              \"name\": \"entity.name.function.ts\"\n            },\n            \"5\": {\n              \"name\": \"keyword.operator.optional.ts\"\n            }\n          }\n        },\n        {\n          \"match\": \"(?:\\\\s*\\\\b(readonly)\\\\s+)?(?:\\\\s*\\\\b(public|private|protected)\\\\s+)?(\\\\.\\\\.\\\\.)?\\\\s*(?<!=|:)([_$[:alpha:]][_$[:alnum:]]*)\\\\s*(\\\\??)\",\n          \"captures\": {\n            \"1\": {\n              \"name\": \"storage.modifier.ts\"\n            },\n            \"2\": {\n              \"name\": \"storage.modifier.ts\"\n            },\n            \"3\": {\n              \"name\": \"keyword.operator.rest.ts\"\n            },\n            \"4\": {\n              \"name\": \"variable.parameter.ts\"\n            },\n            \"5\": {\n              \"name\": \"keyword.operator.optional.ts\"\n            }\n          }\n        }\n      ]\n    },\n    \"destructuring-parameter\": {\n      \"patterns\": [\n        {\n          \"name\": \"meta.parameter.object-binding-pattern.ts\",\n          \"begin\": \"(?<!=|:)\\\\s*(\\\\{)\",\n          \"beginCaptures\": {\n            \"1\": {\n              \"name\": \"punctuation.definition.binding-pattern.object.ts\"\n            }\n          },\n          \"end\": \"\\\\}\",\n          \"endCaptures\": {\n            \"0\": {\n              \"name\": \"punctuation.definition.binding-pattern.object.ts\"\n            }\n          },\n          \"patterns\": [\n            {\n              \"include\": \"#parameter-object-binding-element\"\n            }\n          ]\n        },\n        {\n          \"name\": \"meta.paramter.array-binding-pattern.ts\",\n          \"begin\": \"(?<!=|:)\\\\s*(\\\\[)\",\n          \"beginCaptures\": {\n            \"1\": {\n              \"name\": \"punctuation.definition.binding-pattern.array.ts\"\n            }\n          },\n          \"end\": \"\\\\]\",\n          \"endCaptures\": {\n            \"0\": {\n              \"name\": \"punctuation.definition.binding-pattern.array.ts\"\n            }\n          },\n          \"patterns\": [\n            {\n              \"include\": \"#parameter-binding-element\"\n            },\n            {\n              \"include\": \"#punctuation-comma\"\n            }\n          ]\n        }\n      ]\n    },\n    \"parameter-object-binding-element\": {\n      \"patterns\": [\n        {\n          \"include\": \"#comment\"\n        },\n        {\n          \"begin\": \"(?=(([_$[:alpha:]][_$[:alnum:]]*)|(\\\\'[^']*\\\\')|(\\\\\\\"[^\\\"]*\\\\\\\")|(\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]+\\\\])+\\\\]))\\\\s*(:))\",\n          \"end\": \"(?=,|\\\\})\",\n          \"patterns\": [\n            {\n              \"include\": \"#object-binding-element-propertyName\"\n            },\n            {\n              \"include\": \"#parameter-binding-element\"\n            }\n          ]\n        },\n        {\n          \"include\": \"#parameter-object-binding-pattern\"\n        },\n        {\n          \"include\": \"#destructuring-parameter-rest\"\n        },\n        {\n          \"include\": \"#variable-initializer\"\n        },\n        {\n          \"include\": \"#punctuation-comma\"\n        }\n      ]\n    },\n    \"parameter-binding-element\": {\n      \"patterns\": [\n        {\n          \"include\": \"#comment\"\n        },\n        {\n          \"include\": \"#parameter-object-binding-pattern\"\n        },\n        {\n          \"include\": \"#parameter-array-binding-pattern\"\n        },\n        {\n          \"include\": \"#destructuring-parameter-rest\"\n        },\n        {\n          \"include\": \"#variable-initializer\"\n        }\n      ]\n    },\n    \"destructuring-parameter-rest\": {\n      \"match\": \"(?:(\\\\.\\\\.\\\\.)\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\",\n      \"captures\": {\n        \"1\": {\n          \"name\": \"keyword.operator.rest.ts\"\n        },\n        \"2\": {\n          \"name\": \"variable.parameter.ts\"\n        }\n      }\n    },\n    \"parameter-object-binding-pattern\": {\n      \"begin\": \"(?:(\\\\.\\\\.\\\\.)\\\\s*)?(\\\\{)\",\n      \"beginCaptures\": {\n        \"1\": {\n          \"name\": \"keyword.operator.rest.ts\"\n        },\n        \"2\": {\n          \"name\": \"punctuation.definition.binding-pattern.object.ts\"\n        }\n      },\n      \"end\": \"\\\\}\",\n      \"endCaptures\": {\n        \"0\": {\n          \"name\": \"punctuation.definition.binding-pattern.object.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#parameter-object-binding-element\"\n        }\n      ]\n    },\n    \"parameter-array-binding-pattern\": {\n      \"begin\": \"(?:(\\\\.\\\\.\\\\.)\\\\s*)?(\\\\[)\",\n      \"beginCaptures\": {\n        \"1\": {\n          \"name\": \"keyword.operator.rest.ts\"\n        },\n        \"2\": {\n          \"name\": \"punctuation.definition.binding-pattern.array.ts\"\n        }\n      },\n      \"end\": \"\\\\]\",\n      \"endCaptures\": {\n        \"0\": {\n          \"name\": \"punctuation.definition.binding-pattern.array.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#parameter-binding-element\"\n        },\n        {\n          \"include\": \"#punctuation-comma\"\n        }\n      ]\n    },\n    \"return-type\": {\n      \"name\": \"meta.return.type.ts\",\n      \"begin\": \"(?<=\\\\))\\\\s*(:)\",\n      \"beginCaptures\": {\n        \"1\": {\n          \"name\": \"keyword.operator.type.annotation.ts\"\n        }\n      },\n      \"end\": \"(?<!:)((?=$)|(?=\\\\{|;|//|\\\\}))\",\n      \"patterns\": [\n        {\n          \"include\": \"#comment\"\n        },\n        {\n          \"name\": \"meta.object.type.ts\",\n          \"begin\": \"(?<=:)\\\\s*(\\\\{)\",\n          \"beginCaptures\": {\n            \"1\": {\n              \"name\": \"punctuation.definition.block.ts\"\n            }\n          },\n          \"end\": \"\\\\}\",\n          \"endCaptures\": {\n            \"0\": {\n              \"name\": \"punctuation.definition.block.ts\"\n            }\n          },\n          \"patterns\": [\n            {\n              \"include\": \"#type-object-members\"\n            }\n          ]\n        },\n        {\n          \"include\": \"#type-predicate-operator\"\n        },\n        {\n          \"include\": \"#type\"\n        }\n      ]\n    },\n    \"type-predicate-operator\": {\n      \"name\": \"keyword.operator.expression.is.ts\",\n      \"match\": \"(?<!\\\\.|\\\\$)\\\\bis\\\\b(?!\\\\$)\"\n    },\n    \"type-annotation\": {\n      \"name\": \"meta.type.annotation.ts\",\n      \"begin\": \":\",\n      \"beginCaptures\": {\n        \"0\": {\n          \"name\": \"keyword.operator.type.annotation.ts\"\n        }\n      },\n      \"end\": \"(?=$|[,);\\\\}\\\\]]|//)|(?==[^>])|(?<=[\\\\}>\\\\]\\\\)]|[_$[:alpha:]])\\\\s*(?=\\\\{)\",\n      \"patterns\": [\n        {\n          \"include\": \"#comment\"\n        },\n        {\n          \"include\": \"#type\"\n        }\n      ]\n    },\n    \"type\": {\n      \"name\": \"meta.type.ts\",\n      \"patterns\": [\n        {\n          \"include\": \"#comment\"\n        },\n        {\n          \"include\": \"#string\"\n        },\n        {\n          \"include\": \"#numeric-literal\"\n        },\n        {\n          \"include\": \"#type-primitive\"\n        },\n        {\n          \"include\": \"#type-builtin-literals\"\n        },\n        {\n          \"include\": \"#type-parameters\"\n        },\n        {\n          \"include\": \"#type-tuple\"\n        },\n        {\n          \"include\": \"#type-object\"\n        },\n        {\n          \"include\": \"#type-operators\"\n        },\n        {\n          \"include\": \"#type-fn-type-parameters\"\n        },\n        {\n          \"include\": \"#type-paren-or-function-parameters\"\n        },\n        {\n          \"include\": \"#type-function-return-type\"\n        },\n        {\n          \"include\": \"#type-name\"\n        }\n      ]\n    },\n    \"function-parameters\": {\n      \"name\": \"meta.parameters.ts\",\n      \"begin\": \"\\\\(\",\n      \"beginCaptures\": {\n        \"0\": {\n          \"name\": \"punctuation.definition.parameters.begin.ts\"\n        }\n      },\n      \"end\": \"\\\\)\",\n      \"endCaptures\": {\n        \"0\": {\n          \"name\": \"punctuation.definition.parameters.end.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#comment\"\n        },\n        {\n          \"include\": \"#decorator\"\n        },\n        {\n          \"include\": \"#destructuring-parameter\"\n        },\n        {\n          \"include\": \"#parameter-name\"\n        },\n        {\n          \"include\": \"#type-annotation\"\n        },\n        {\n          \"include\": \"#variable-initializer\"\n        },\n        {\n          \"name\": \"punctuation.separator.parameter.ts\",\n          \"match\": \",\"\n        }\n      ]\n    },\n    \"type-primitive\": {\n      \"name\": \"support.type.primitive.ts\",\n      \"match\": \"(?<!\\\\.|\\\\$)\\\\b(string|number|boolean|symbol|any|void|never)\\\\b(?!\\\\$)\"\n    },\n    \"type-builtin-literals\": {\n      \"name\": \"support.type.builtin.ts\",\n      \"match\": \"(?<!\\\\.|\\\\$)\\\\b(this|true|false|undefined|null)\\\\b(?!\\\\$)\"\n    },\n    \"type-paren-or-function-parameters\": {\n      \"name\": \"meta.type.paren.cover.ts\",\n      \"begin\": \"\\\\(\",\n      \"beginCaptures\": {\n        \"0\": {\n          \"name\": \"meta.brace.round.ts\"\n        }\n      },\n      \"end\": \"\\\\)\",\n      \"endCaptures\": {\n        \"0\": {\n          \"name\": \"meta.brace.round.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#type\"\n        },\n        {\n          \"include\": \"#function-parameters\"\n        }\n      ]\n    },\n    \"type-fn-type-parameters\": {\n      \"patterns\": [\n        {\n          \"name\": \"meta.type.constructor.ts\",\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\b(new)\\\\b(?=\\\\s*\\\\<)\",\n          \"captures\": {\n            \"1\": {\n              \"name\": \"keyword.control.new.ts\"\n            }\n          }\n        },\n        {\n          \"name\": \"meta.type.constructor.ts\",\n          \"begin\": \"(?<!\\\\.|\\\\$)\\\\b(new)\\\\b\\\\s*(?=\\\\()\",\n          \"beginCaptures\": {\n            \"1\": {\n              \"name\": \"keyword.control.new.ts\"\n            }\n          },\n          \"end\": \"(?<=\\\\))\",\n          \"patterns\": [\n            {\n              \"include\": \"#function-parameters\"\n            }\n          ]\n        },\n        {\n          \"name\": \"meta.type.function.ts\",\n          \"begin\": \"(?<=\\\\>)\\\\s*(?=\\\\()\",\n          \"end\": \"(?<=\\\\))\",\n          \"patterns\": [\n            {\n              \"include\": \"#function-parameters\"\n            }\n          ]\n        },\n        {\n          \"name\": \"meta.type.function.ts\",\n          \"begin\": \"(?x)( (?= [(]\\\\s*( ([)]) |  (\\\\.\\\\.\\\\.) | ([_$[:alnum:]]+\\\\s*( ([:,?=])| ([)]\\\\s*=>) )) ) ) )\",\n          \"end\": \"(?<=\\\\))\",\n          \"patterns\": [\n            {\n              \"include\": \"#function-parameters\"\n            }\n          ]\n        }\n      ]\n    },\n    \"type-operators\": {\n      \"patterns\": [\n        {\n          \"include\": \"#typeof-operator\"\n        },\n        {\n          \"name\": \"keyword.operator.type.ts\",\n          \"match\": \"[&|]\"\n        },\n        {\n          \"name\": \"keyword.operator.expression.keyof.ts\",\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\bkeyof\\\\b(?!\\\\$)\"\n        }\n      ]\n    },\n    \"type-function-return-type\": {\n      \"name\": \"meta.type.function.return.ts\",\n      \"begin\": \"=>\",\n      \"beginCaptures\": {\n        \"0\": {\n          \"name\": \"storage.type.function.arrow.ts\"\n        }\n      },\n      \"end\": \"(?<!=>)(?=[,\\\\]\\\\)\\\\{\\\\}=;>]|//|$)\",\n      \"patterns\": [\n        {\n          \"include\": \"#comment\"\n        },\n        {\n          \"name\": \"meta.object.type.ts\",\n          \"begin\": \"(?<==>)\\\\s*(\\\\{)\",\n          \"beginCaptures\": {\n            \"1\": {\n              \"name\": \"punctuation.definition.block.ts\"\n            }\n          },\n          \"end\": \"\\\\}\",\n          \"endCaptures\": {\n            \"0\": {\n              \"name\": \"punctuation.definition.block.ts\"\n            }\n          },\n          \"patterns\": [\n            {\n              \"include\": \"#type-object-members\"\n            }\n          ]\n        },\n        {\n          \"include\": \"#type-predicate-operator\"\n        },\n        {\n          \"include\": \"#type\"\n        }\n      ]\n    },\n    \"type-tuple\": {\n      \"name\": \"meta.type.tuple.ts\",\n      \"begin\": \"\\\\[\",\n      \"beginCaptures\": {\n        \"0\": {\n          \"name\": \"meta.brace.square.ts\"\n        }\n      },\n      \"end\": \"\\\\]\",\n      \"endCaptures\": {\n        \"0\": {\n          \"name\": \"meta.brace.square.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#type\"\n        },\n        {\n          \"include\": \"#punctuation-comma\"\n        }\n      ]\n    },\n    \"type-name\": {\n      \"patterns\": [\n        {\n          \"match\": \"([_$[:alpha:]][_$[:alnum:]]*)\\\\s*(\\\\.)\",\n          \"captures\": {\n            \"1\": {\n              \"name\": \"entity.name.type.module.ts\"\n            },\n            \"2\": {\n              \"name\": \"punctuation.accessor.ts\"\n            }\n          }\n        },\n        {\n          \"name\": \"entity.name.type.ts\",\n          \"match\": \"[_$[:alpha:]][_$[:alnum:]]*\"\n        }\n      ]\n    },\n    \"type-parameters\": {\n      \"name\": \"meta.type.parameters.ts\",\n      \"begin\": \"(<)\",\n      \"beginCaptures\": {\n        \"1\": {\n          \"name\": \"punctuation.definition.typeparameters.begin.ts\"\n        }\n      },\n      \"end\": \"(?=$)|(>)\",\n      \"endCaptures\": {\n        \"1\": {\n          \"name\": \"punctuation.definition.typeparameters.end.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#comment\"\n        },\n        {\n          \"name\": \"storage.modifier.ts\",\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\b(extends)\\\\b(?!\\\\$)\"\n        },\n        {\n          \"include\": \"#type\"\n        },\n        {\n          \"include\": \"#punctuation-comma\"\n        }\n      ]\n    },\n    \"variable-initializer\": {\n      \"begin\": \"(?<!=|!)(=)(?!=)\",\n      \"beginCaptures\": {\n        \"1\": {\n          \"name\": \"keyword.operator.assignment.ts\"\n        }\n      },\n      \"end\": \"(?=$|[,);}\\\\]])\",\n      \"patterns\": [\n        {\n          \"include\": \"#expression\"\n        }\n      ]\n    },\n    \"for-loop\": {\n      \"begin\": \"(?<!\\\\.|\\\\$)\\\\b(for)\\\\s*(\\\\()\",\n      \"beginCaptures\": {\n        \"1\": {\n          \"name\": \"keyword.control.loop.ts\"\n        },\n        \"2\": {\n          \"name\": \"meta.brace.round.ts\"\n        }\n      },\n      \"end\": \"\\\\)\",\n      \"endCaptures\": {\n        \"0\": {\n          \"name\": \"meta.brace.round.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#var-expr\"\n        },\n        {\n          \"include\": \"#expression\"\n        },\n        {\n          \"include\": \"#punctuation-semicolon\"\n        }\n      ]\n    },\n    \"switch-expression\": {\n      \"name\": \"switch-expression.expr.ts\",\n      \"begin\": \"(?<!\\\\.|\\\\$)\\\\b(switch)\\\\s*(\\\\()\",\n      \"beginCaptures\": {\n        \"1\": {\n          \"name\": \"keyword.control.switch.ts\"\n        },\n        \"2\": {\n          \"name\": \"meta.brace.round.ts\"\n        }\n      },\n      \"end\": \"\\\\)\",\n      \"endCaptures\": {\n        \"0\": {\n          \"name\": \"meta.brace.round.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#expression\"\n        }\n      ]\n    },\n    \"switch-block\": {\n      \"name\": \"switch-block.expr.ts\",\n      \"begin\": \"{\",\n      \"beginCaptures\": {\n        \"0\": {\n          \"name\": \"punctuation.definition.block.ts\"\n        }\n      },\n      \"end\": \"(?=\\\\})\",\n      \"patterns\": [\n        {\n          \"include\": \"#case-clause\"\n        },\n        {\n          \"include\": \"#statements\"\n        }\n      ]\n    },\n    \"case-clause\": {\n      \"name\": \"case-clause.expr.ts\",\n      \"begin\": \"(?<!\\\\.|\\\\$)\\\\b(case|default(?=:))\\\\b(?!\\\\$)\",\n      \"beginCaptures\": {\n        \"1\": {\n          \"name\": \"keyword.control.switch.ts\"\n        }\n      },\n      \"end\": \":\",\n      \"endCaptures\": {\n        \"0\": {\n          \"name\": \"punctuation.definition.section.case-statement.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#expression\"\n        }\n      ]\n    },\n    \"switch-statement\": {\n      \"name\": \"switch-statement.expr.ts\",\n      \"begin\": \"(?<!\\\\.|\\\\$)(?=\\\\bswitch\\\\s*\\\\()\",\n      \"end\": \"}\",\n      \"endCaptures\": {\n        \"0\": {\n          \"name\": \"punctuation.definition.block.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#switch-expression\"\n        },\n        {\n          \"include\": \"#switch-block\"\n        }\n      ]\n    },\n    \"support-objects\": {\n      \"patterns\": [\n        {\n          \"name\": \"variable.language.arguments.ts\",\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\b(arguments)\\\\b(?!\\\\$)\"\n        },\n        {\n          \"name\": \"support.class.builtin.ts\",\n          \"match\": \"(?x)(?<!\\\\.|\\\\$)\\\\b(Array|ArrayBuffer|Atomics|Boolean|DataView|Date|Float32Array|Float64Array|Function|Generator |GeneratorFunction|Int8Array|Int16Array|Int32Array|Intl|Map|Number|Object|Promise|Proxy |Reflect|RegExp|Set|SharedArrayBuffer|SIMD|String|Symbol|TypedArray |Uint8Array|Uint16Array|Uint32Array|Uint8ClampedArray|WeakMap|WeakSet)\\\\b(?!\\\\$)\"\n        },\n        {\n          \"name\": \"support.class.error.ts\",\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\b((Eval|Internal|Range|Reference|Syntax|Type|URI)?Error)\\\\b(?!\\\\$)\"\n        },\n        {\n          \"name\": \"support.function.ts\",\n          \"match\": \"(?x)(?<!\\\\.|\\\\$)\\\\b(clear(Interval|Timeout)|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|eval| isFinite|isNaN|parseFloat|parseInt|require|set(Interval|Timeout)|super|unescape|uneval)(?=\\\\s*\\\\()\"\n        },\n        {\n          \"match\": \"(?x)(?<!\\\\.|\\\\$)\\\\b(Math)(?:\\\\s*(\\\\.)\\\\s*(?:\\n  (abs|acos|acosh|asin|asinh|atan|atan2|atanh|cbrt|ceil|clz32|cos|cosh|exp|\\n  expm1|floor|fround|hypot|imul|log|log10|log1p|log2|max|min|pow|random|\\n  round|sign|sin|sinh|sqrt|tan|tanh|trunc)\\n  |\\n  (E|LN10|LN2|LOG10E|LOG2E|PI|SQRT1_2|SQRT2)))?\\\\b(?!\\\\$)\",\n          \"captures\": {\n            \"1\": {\n              \"name\": \"support.constant.math.ts\"\n            },\n            \"2\": {\n              \"name\": \"punctuation.accessor.ts\"\n            },\n            \"3\": {\n              \"name\": \"support.function.math.ts\"\n            },\n            \"4\": {\n              \"name\": \"support.constant.property.math.ts\"\n            }\n          }\n        },\n        {\n          \"match\": \"(?x)(?<!\\\\.|\\\\$)\\\\b(console)(?:\\\\s*(\\\\.)\\\\s*(\\n  assert|clear|count|debug|dir|error|group|groupCollapsed|groupEnd|info|log\\n  |profile|profileEnd|table|time|timeEnd|timeStamp|trace|warn))?\\\\b(?!\\\\$)\",\n          \"captures\": {\n            \"1\": {\n              \"name\": \"support.class.console.ts\"\n            },\n            \"2\": {\n              \"name\": \"punctuation.accessor.ts\"\n            },\n            \"3\": {\n              \"name\": \"support.function.console.ts\"\n            }\n          }\n        },\n        {\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\b(JSON)(?:\\\\s*(\\\\.)\\\\s*(parse|stringify))?\\\\b(?!\\\\$)\",\n          \"captures\": {\n            \"1\": {\n              \"name\": \"support.constant.json.ts\"\n            },\n            \"2\": {\n              \"name\": \"punctuation.accessor.ts\"\n            },\n            \"3\": {\n              \"name\": \"support.function.json.ts\"\n            }\n          }\n        },\n        {\n          \"match\": \"(?x) (\\\\.) \\\\s* (?:\\n  (constructor|length|prototype|__proto__) \\n  |\\n  (EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY))\\\\b(?!\\\\$)\",\n          \"captures\": {\n            \"1\": {\n              \"name\": \"punctuation.accessor.ts\"\n            },\n            \"2\": {\n              \"name\": \"support.variable.property.ts\"\n            },\n            \"3\": {\n              \"name\": \"support.constant.ts\"\n            }\n          }\n        },\n        {\n          \"match\": \"(?x) (?<!\\\\.|\\\\$) \\\\b (?:\\n  (document|event|navigator|performance|screen|window) \\n  |\\n  (AnalyserNode|ArrayBufferView|Attr|AudioBuffer|AudioBufferSourceNode|AudioContext|AudioDestinationNode|AudioListener\\n  |AudioNode|AudioParam|BatteryManager|BeforeUnloadEvent|BiquadFilterNode|Blob|BufferSource|ByteString|CSS|CSSConditionRule\\n  |CSSCounterStyleRule|CSSGroupingRule|CSSMatrix|CSSMediaRule|CSSPageRule|CSSPrimitiveValue|CSSRule|CSSRuleList|CSSStyleDeclaration\\n  |CSSStyleRule|CSSStyleSheet|CSSSupportsRule|CSSValue|CSSValueList|CanvasGradient|CanvasImageSource|CanvasPattern\\n  |CanvasRenderingContext2D|ChannelMergerNode|ChannelSplitterNode|CharacterData|ChromeWorker|CloseEvent|Comment|CompositionEvent\\n  |Console|ConvolverNode|Coordinates|Credential|CredentialsContainer|Crypto|CryptoKey|CustomEvent|DOMError|DOMException\\n  |DOMHighResTimeStamp|DOMImplementation|DOMString|DOMStringList|DOMStringMap|DOMTimeStamp|DOMTokenList|DataTransfer\\n  |DataTransferItem|DataTransferItemList|DedicatedWorkerGlobalScope|DelayNode|DeviceProximityEvent|DirectoryEntry\\n  |DirectoryEntrySync|DirectoryReader|DirectoryReaderSync|Document|DocumentFragment|DocumentTouch|DocumentType|DragEvent\\n  |DynamicsCompressorNode|Element|Entry|EntrySync|ErrorEvent|Event|EventListener|EventSource|EventTarget|FederatedCredential\\n  |FetchEvent|File|FileEntry|FileEntrySync|FileException|FileList|FileReader|FileReaderSync|FileSystem|FileSystemSync\\n  |FontFace|FormData|GainNode|Gamepad|GamepadButton|GamepadEvent|Geolocation|GlobalEventHandlers|HTMLAnchorElement\\n  |HTMLAreaElement|HTMLAudioElement|HTMLBRElement|HTMLBaseElement|HTMLBodyElement|HTMLButtonElement|HTMLCanvasElement\\n  |HTMLCollection|HTMLContentElement|HTMLDListElement|HTMLDataElement|HTMLDataListElement|HTMLDialogElement|HTMLDivElement\\n  |HTMLDocument|HTMLElement|HTMLEmbedElement|HTMLFieldSetElement|HTMLFontElement|HTMLFormControlsCollection|HTMLFormElement\\n  |HTMLHRElement|HTMLHeadElement|HTMLHeadingElement|HTMLHtmlElement|HTMLIFrameElement|HTMLImageElement|HTMLInputElement\\n  |HTMLKeygenElement|HTMLLIElement|HTMLLabelElement|HTMLLegendElement|HTMLLinkElement|HTMLMapElement|HTMLMediaElement\\n  |HTMLMetaElement|HTMLMeterElement|HTMLModElement|HTMLOListElement|HTMLObjectElement|HTMLOptGroupElement|HTMLOptionElement\\n  |HTMLOptionsCollection|HTMLOutputElement|HTMLParagraphElement|HTMLParamElement|HTMLPreElement|HTMLProgressElement\\n  |HTMLQuoteElement|HTMLScriptElement|HTMLSelectElement|HTMLShadowElement|HTMLSourceElement|HTMLSpanElement|HTMLStyleElement\\n  |HTMLTableCaptionElement|HTMLTableCellElement|HTMLTableColElement|HTMLTableDataCellElement|HTMLTableElement|HTMLTableHeaderCellElement\\n  |HTMLTableRowElement|HTMLTableSectionElement|HTMLTextAreaElement|HTMLTimeElement|HTMLTitleElement|HTMLTrackElement\\n  |HTMLUListElement|HTMLUnknownElement|HTMLVideoElement|HashChangeEvent|History|IDBCursor|IDBCursorWithValue|IDBDatabase\\n  |IDBEnvironment|IDBFactory|IDBIndex|IDBKeyRange|IDBMutableFile|IDBObjectStore|IDBOpenDBRequest|IDBRequest|IDBTransaction\\n  |IDBVersionChangeEvent|IIRFilterNode|IdentityManager|ImageBitmap|ImageBitmapFactories|ImageData|Index|InputDeviceCapabilities\\n  |InputEvent|InstallEvent|InstallTrigger|KeyboardEvent|LinkStyle|LocalFileSystem|LocalFileSystemSync|Location|MIDIAccess\\n  |MIDIConnectionEvent|MIDIInput|MIDIInputMap|MIDIOutputMap|MediaElementAudioSourceNode|MediaError|MediaKeyMessageEvent\\n  |MediaKeySession|MediaKeyStatusMap|MediaKeySystemAccess|MediaKeySystemConfiguration|MediaKeys|MediaRecorder|MediaStream\\n  |MediaStreamAudioDestinationNode|MediaStreamAudioSourceNode|MessageChannel|MessageEvent|MessagePort|MouseEvent\\n  |MutationObserver|MutationRecord|NamedNodeMap|Navigator|NavigatorConcurrentHardware|NavigatorGeolocation|NavigatorID\\n  |NavigatorLanguage|NavigatorOnLine|Node|NodeFilter|NodeIterator|NodeList|NonDocumentTypeChildNode|Notification\\n  |OfflineAudioCompletionEvent|OfflineAudioContext|OscillatorNode|PageTransitionEvent|PannerNode|ParentNode|PasswordCredential\\n  |Path2D|PaymentAddress|PaymentRequest|PaymentResponse|Performance|PerformanceEntry|PerformanceFrameTiming|PerformanceMark\\n  |PerformanceMeasure|PerformanceNavigation|PerformanceNavigationTiming|PerformanceObserver|PerformanceObserverEntryList\\n  |PerformanceResourceTiming|PerformanceTiming|PeriodicSyncEvent|PeriodicWave|Plugin|Point|PointerEvent|PopStateEvent\\n  |PortCollection|Position|PositionError|PositionOptions|PresentationConnectionClosedEvent|PresentationConnectionList\\n  |PresentationReceiver|ProcessingInstruction|ProgressEvent|PromiseRejectionEvent|PushEvent|PushRegistrationManager\\n  |RTCCertificate|RTCConfiguration|RTCPeerConnection|RTCSessionDescriptionCallback|RTCStatsReport|RadioNodeList|RandomSource\\n  |Range|ReadableByteStream|RenderingContext|SVGAElement|SVGAngle|SVGAnimateColorElement|SVGAnimateElement|SVGAnimateMotionElement\\n  |SVGAnimateTransformElement|SVGAnimatedAngle|SVGAnimatedBoolean|SVGAnimatedEnumeration|SVGAnimatedInteger|SVGAnimatedLength\\n  |SVGAnimatedLengthList|SVGAnimatedNumber|SVGAnimatedNumberList|SVGAnimatedPoints|SVGAnimatedPreserveAspectRatio\\n  |SVGAnimatedRect|SVGAnimatedString|SVGAnimatedTransformList|SVGAnimationElement|SVGCircleElement|SVGClipPathElement\\n  |SVGCursorElement|SVGDefsElement|SVGDescElement|SVGElement|SVGEllipseElement|SVGEvent|SVGFilterElement|SVGFontElement\\n  |SVGFontFaceElement|SVGFontFaceFormatElement|SVGFontFaceNameElement|SVGFontFaceSrcElement|SVGFontFaceUriElement\\n  |SVGForeignObjectElement|SVGGElement|SVGGlyphElement|SVGGradientElement|SVGHKernElement|SVGImageElement|SVGLength\\n  |SVGLengthList|SVGLineElement|SVGLinearGradientElement|SVGMPathElement|SVGMaskElement|SVGMatrix|SVGMissingGlyphElement\\n  |SVGNumber|SVGNumberList|SVGPathElement|SVGPatternElement|SVGPoint|SVGPolygonElement|SVGPolylineElement|SVGPreserveAspectRatio\\n  |SVGRadialGradientElement|SVGRect|SVGRectElement|SVGSVGElement|SVGScriptElement|SVGSetElement|SVGStopElement|SVGStringList\\n  |SVGStylable|SVGStyleElement|SVGSwitchElement|SVGSymbolElement|SVGTRefElement|SVGTSpanElement|SVGTests|SVGTextElement\\n  |SVGTextPositioningElement|SVGTitleElement|SVGTransform|SVGTransformList|SVGTransformable|SVGUseElement|SVGVKernElement\\n  |SVGViewElement|ServiceWorker|ServiceWorkerContainer|ServiceWorkerGlobalScope|ServiceWorkerRegistration|ServiceWorkerState\\n  |ShadowRoot|SharedWorker|SharedWorkerGlobalScope|SourceBufferList|StereoPannerNode|Storage|StorageEvent|StyleSheet\\n  |StyleSheetList|SubtleCrypto|SyncEvent|Text|TextMetrics|TimeEvent|TimeRanges|Touch|TouchEvent|TouchList|Transferable\\n  |TreeWalker|UIEvent|USVString|VRDisplayCapabilities|ValidityState|WaveShaperNode|WebGL|WebGLActiveInfo|WebGLBuffer\\n  |WebGLContextEvent|WebGLFramebuffer|WebGLProgram|WebGLRenderbuffer|WebGLRenderingContext|WebGLShader|WebGLShaderPrecisionFormat\\n  |WebGLTexture|WebGLTimerQueryEXT|WebGLTransformFeedback|WebGLUniformLocation|WebGLVertexArrayObject|WebGLVertexArrayObjectOES\\n  |WebSocket|WebSockets|WebVTT|WheelEvent|Window|WindowBase64|WindowEventHandlers|WindowTimers|Worker|WorkerGlobalScope\\n  |WorkerLocation|WorkerNavigator|XMLHttpRequest|XMLHttpRequestEventTarget|XMLSerializer|XPathExpression|XPathResult\\n  |XSLTProcessor))\\\\b(?!\\\\$)\",\n          \"captures\": {\n            \"1\": {\n              \"name\": \"support.variable.dom.ts\"\n            },\n            \"2\": {\n              \"name\": \"support.class.dom.ts\"\n            }\n          }\n        },\n        {\n          \"match\": \"(?x) (\\\\.) \\\\s* (?:\\n  (ATTRIBUTE_NODE|CDATA_SECTION_NODE|COMMENT_NODE|DOCUMENT_FRAGMENT_NODE|DOCUMENT_NODE|DOCUMENT_TYPE_NODE\\n  |DOMSTRING_SIZE_ERR|ELEMENT_NODE|ENTITY_NODE|ENTITY_REFERENCE_NODE|HIERARCHY_REQUEST_ERR|INDEX_SIZE_ERR\\n  |INUSE_ATTRIBUTE_ERR|INVALID_CHARACTER_ERR|NO_DATA_ALLOWED_ERR|NO_MODIFICATION_ALLOWED_ERR|NOT_FOUND_ERR\\n  |NOT_SUPPORTED_ERR|NOTATION_NODE|PROCESSING_INSTRUCTION_NODE|TEXT_NODE|WRONG_DOCUMENT_ERR)\\n  |\\n  (_content|[xyz]|abbr|above|accept|acceptCharset|accessKey|action|align|[av]Link(?:color)?|all|alt|anchors|appCodeName\\n  |appCore|applets|appMinorVersion|appName|appVersion|archive|areas|arguments|attributes|availHeight|availLeft|availTop\\n  |availWidth|axis|background|backgroundColor|backgroundImage|below|bgColor|body|border|borderBottomWidth|borderColor\\n  |borderLeftWidth|borderRightWidth|borderStyle|borderTopWidth|borderWidth|bottom|bufferDepth|callee|caller|caption\\n  |cellPadding|cells|cellSpacing|ch|characterSet|charset|checked|childNodes|chOff|cite|classes|className|clear\\n  |clientInformation|clip|clipBoardData|closed|code|codeBase|codeType|color|colorDepth|cols|colSpan|compact|complete\\n  |components|content|controllers|cookie|cookieEnabled|cords|cpuClass|crypto|current|data|dateTime|declare|defaultCharset\\n  |defaultChecked|defaultSelected|defaultStatus|defaultValue|defaultView|defer|description|dialogArguments|dialogHeight\\n  |dialogLeft|dialogTop|dialogWidth|dir|directories|disabled|display|docmain|doctype|documentElement|elements|embeds\\n  |enabledPlugin|encoding|enctype|entities|event|expando|external|face|fgColor|filename|firstChild|fontFamily|fontSize\\n  |fontWeight|form|formName|forms|frame|frameBorder|frameElement|frames|hasFocus|hash|headers|height|history|host\\n  |hostname|href|hreflang|hspace|htmlFor|httpEquiv|id|ids|ignoreCase|images|implementation|index|innerHeight|innerWidth\\n  |input|isMap|label|lang|language|lastChild|lastIndex|lastMatch|lastModified|lastParen|layer[sXY]|left|leftContext\\n  |lineHeight|link|linkColor|links|listStyleType|localName|location|locationbar|longDesc|lowsrc|lowSrc|marginBottom\\n  |marginHeight|marginLeft|marginRight|marginTop|marginWidth|maxLength|media|menubar|method|mimeTypes|multiline|multiple\\n  |name|nameProp|namespaces|namespaceURI|next|nextSibling|nodeName|nodeType|nodeValue|noHref|noResize|noShade|notationName\\n  |notations|noWrap|object|offscreenBuffering|onLine|onreadystatechange|opener|opsProfile|options|oscpu|outerHeight\\n  |outerWidth|ownerDocument|paddingBottom|paddingLeft|paddingRight|paddingTop|page[XY]|page[XY]Offset|parent|parentLayer\\n  |parentNode|parentWindow|pathname|personalbar|pixelDepth|pkcs11|platform|plugins|port|prefix|previous|previousDibling\\n  |product|productSub|profile|profileend|prompt|prompter|protocol|publicId|readOnly|readyState|referrer|rel|responseText\\n  |responseXML|rev|right|rightContext|rowIndex|rows|rowSpan|rules|scheme|scope|screen[XY]|screenLeft|screenTop|scripts\\n  |scrollbars|scrolling|sectionRowIndex|security|securityPolicy|selected|selectedIndex|selection|self|shape|siblingAbove\\n  |siblingBelow|size|source|specified|standby|start|status|statusbar|statusText|style|styleSheets|suffixes|summary\\n  |systemId|systemLanguage|tagName|tags|target|tBodies|text|textAlign|textDecoration|textIndent|textTransform|tFoot|tHead\\n  |title|toolbar|top|type|undefined|uniqueID|updateInterval|URL|URLUnencoded|useMap|userAgent|userLanguage|userProfile\\n  |vAlign|value|valueType|vendor|vendorSub|version|visibility|vspace|whiteSpace|width|X[MS]LDocument|zIndex))\\\\b(?!\\\\$|\\\\s*(<([^<>]|\\\\<[^<>]+\\\\>)+>\\\\s*)?\\\\()\",\n          \"captures\": {\n            \"1\": {\n              \"name\": \"punctuation.accessor.ts\"\n            },\n            \"2\": {\n              \"name\": \"support.constant.dom.ts\"\n            },\n            \"3\": {\n              \"name\": \"support.variable.property.dom.ts\"\n            }\n          }\n        },\n        {\n          \"name\": \"support.class.node.ts\",\n          \"match\": \"(?x)(?<!\\\\.|\\\\$)\\\\b(Buffer|EventEmitter|Server|Pipe|Socket|REPLServer|ReadStream|WriteStream|Stream\\n  |Inflate|Deflate|InflateRaw|DeflateRaw|GZip|GUnzip|Unzip|Zip)\\\\b(?!\\\\$)\"\n        },\n        {\n          \"name\": \"support.module.node.ts\",\n          \"match\": \"(?x)(?<!\\\\.|\\\\$)\\\\b(assert|buffer|child_process|cluster|constants|crypto|dgram|dns|domain|events|fs|http|https|net\\n  |os|path|punycode|querystring|readline|repl|stream|string_decoder|timers|tls|tty|url|util|vm|zlib)\\\\b(?!\\\\$)\"\n        },\n        {\n          \"match\": \"(?x)(?<!\\\\.|\\\\$)\\\\b(process)(?:(\\\\.)(?:\\n  (arch|argv|config|connected|env|execArgv|execPath|exitCode|mainModule|pid|platform|release|stderr|stdin|stdout|title|version|versions)\\n  |\\n  (abort|chdir|cwd|disconnect|exit|[sg]ete?[gu]id|send|[sg]etgroups|initgroups|kill|memoryUsage|nextTick|umask|uptime|hrtime)\\n))?\\\\b(?!\\\\$)\",\n          \"captures\": {\n            \"1\": {\n              \"name\": \"support.variable.object.process.ts\"\n            },\n            \"2\": {\n              \"name\": \"punctuation.accessor.ts\"\n            },\n            \"3\": {\n              \"name\": \"support.variable.property.process.ts\"\n            },\n            \"4\": {\n              \"name\": \"support.function.process.ts\"\n            }\n          }\n        },\n        {\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\b(?:(exports)|(module)(?:(\\\\.)(exports|id|filename|loaded|parent|children))?)\\\\b(?!\\\\$)\",\n          \"captures\": {\n            \"1\": {\n              \"name\": \"support.type.object.module.ts\"\n            },\n            \"2\": {\n              \"name\": \"support.type.object.module.ts\"\n            },\n            \"3\": {\n              \"name\": \"punctuation.accessor.ts\"\n            },\n            \"4\": {\n              \"name\": \"support.type.object.module.ts\"\n            }\n          }\n        },\n        {\n          \"name\": \"support.variable.object.node.ts\",\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\b(global|GLOBAL|root|__dirname|__filename)\\\\b(?!\\\\$)\"\n        },\n        {\n          \"match\": \"(?x) (\\\\.) \\\\s* \\n(?:\\n (on(?:Rowsinserted|Rowsdelete|Rowenter|Rowexit|Resize|Resizestart|Resizeend|Reset|\\n   Readystatechange|Mouseout|Mouseover|Mousedown|Mouseup|Mousemove|\\n   Before(?:cut|deactivate|unload|update|paste|print|editfocus|activate)|\\n   Blur|Scrolltop|Submit|Select|Selectstart|Selectionchange|Hover|Help|\\n   Change|Contextmenu|Controlselect|Cut|Cellchange|Clock|Close|Deactivate|\\n   Datasetchanged|Datasetcomplete|Dataavailable|Drop|Drag|Dragstart|Dragover|\\n   Dragdrop|Dragenter|Dragend|Dragleave|Dblclick|Unload|Paste|Propertychange|Error|\\n   Errorupdate|Keydown|Keyup|Keypress|Focus|Load|Activate|Afterupdate|Afterprint|Abort)\\n ) |\\n (shift|showModelessDialog|showModalDialog|showHelp|scroll|scrollX|scrollByPages|\\n   scrollByLines|scrollY|scrollTo|stop|strike|sizeToContent|sidebar|signText|sort|\\n   sup|sub|substr|substring|splice|split|send|set(?:Milliseconds|Seconds|Minutes|Hours|\\n   Month|Year|FullYear|Date|UTC(?:Milliseconds|Seconds|Minutes|Hours|Month|FullYear|Date)|\\n   Time|Hotkeys|Cursor|ZOptions|Active|Resizable|RequestHeader)|search|slice|\\n   savePreferences|small|home|handleEvent|navigate|char|charCodeAt|charAt|concat|\\n   contextual|confirm|compile|clear|captureEvents|call|createStyleSheet|createPopup|\\n   createEventObject|to(?:GMTString|UTCString|String|Source|UpperCase|LowerCase|LocaleString)|\\n   test|taint|taintEnabled|indexOf|italics|disableExternalCapture|dump|detachEvent|unshift|\\n   untaint|unwatch|updateCommands|join|javaEnabled|pop|push|plugins.refresh|paddings|parse|\\n   print|prompt|preference|enableExternalCapture|exec|execScript|valueOf|UTC|find|file|\\n   fileModifiedDate|fileSize|fileCreatedDate|fileUpdatedDate|fixed|fontsize|fontcolor|\\n   forward|fromCharCode|watch|link|load|lastIndexOf|anchor|attachEvent|atob|apply|alert|\\n   abort|routeEvents|resize|resizeBy|resizeTo|recalc|returnValue|replace|reverse|reload|\\n   releaseCapture|releaseEvents|go|get(?:Milliseconds|Seconds|Minutes|Hours|Month|Day|Year|FullYear|\\n   Time|Date|TimezoneOffset|UTC(?:Milliseconds|Seconds|Minutes|Hours|Day|Month|FullYear|Date)|\\n   Attention|Selection|ResponseHeader|AllResponseHeaders)|moveBy|moveBelow|moveTo|\\n   moveToAbsolute|moveAbove|mergeAttributes|match|margins|btoa|big|bold|borderWidths|blink|back\\n ) |\\n (acceptNode|add|addEventListener|addTextTrack|adoptNode|after|animate|append|\\n   appendChild|appendData|before|blur|canPlayType|captureStream|\\n   caretPositionFromPoint|caretRangeFromPoint|checkValidity|clear|click|\\n   cloneContents|cloneNode|cloneRange|close|closest|collapse|\\n   compareBoundaryPoints|compareDocumentPosition|comparePoint|contains|\\n   convertPointFromNode|convertQuadFromNode|convertRectFromNode|createAttribute|\\n   createAttributeNS|createCaption|createCDATASection|createComment|\\n   createContextualFragment|createDocument|createDocumentFragment|\\n   createDocumentType|createElement|createElementNS|createEntityReference|\\n   createEvent|createExpression|createHTMLDocument|createNodeIterator|\\n   createNSResolver|createProcessingInstruction|createRange|createShadowRoot|\\n   createTBody|createTextNode|createTFoot|createTHead|createTreeWalker|delete|\\n   deleteCaption|deleteCell|deleteContents|deleteData|deleteRow|deleteTFoot|\\n   deleteTHead|detach|disconnect|dispatchEvent|elementFromPoint|elementsFromPoint|\\n   enableStyleSheetsForSet|entries|evaluate|execCommand|exitFullscreen|\\n   exitPointerLock|expand|extractContents|fastSeek|firstChild|focus|forEach|get|\\n   getAll|getAnimations|getAttribute|getAttributeNames|getAttributeNode|\\n   getAttributeNodeNS|getAttributeNS|getBoundingClientRect|getBoxQuads|\\n   getClientRects|getContext|getDestinationInsertionPoints|getElementById|\\n   getElementsByClassName|getElementsByName|getElementsByTagName|\\n   getElementsByTagNameNS|getItem|getNamedItem|getSelection|getStartDate|\\n   getVideoPlaybackQuality|has|hasAttribute|hasAttributeNS|hasAttributes|\\n   hasChildNodes|hasFeature|hasFocus|importNode|initEvent|insertAdjacentElement|\\n   insertAdjacentHTML|insertAdjacentText|insertBefore|insertCell|insertData|\\n   insertNode|insertRow|intersectsNode|isDefaultNamespace|isEqualNode|\\n   isPointInRange|isSameNode|item|key|keys|lastChild|load|lookupNamespaceURI|\\n   lookupPrefix|matches|move|moveAttribute|moveAttributeNode|moveChild|\\n   moveNamedItem|namedItem|nextNode|nextSibling|normalize|observe|open|\\n   parentNode|pause|play|postMessage|prepend|preventDefault|previousNode|\\n   previousSibling|probablySupportsContext|queryCommandEnabled|\\n   queryCommandIndeterm|queryCommandState|queryCommandSupported|queryCommandValue|\\n   querySelector|querySelectorAll|registerContentHandler|registerElement|\\n   registerProtocolHandler|releaseCapture|releaseEvents|remove|removeAttribute|\\n   removeAttributeNode|removeAttributeNS|removeChild|removeEventListener|\\n   removeItem|replace|replaceChild|replaceData|replaceWith|reportValidity|\\n   requestFullscreen|requestPointerLock|reset|scroll|scrollBy|scrollIntoView|\\n   scrollTo|seekToNextFrame|select|selectNode|selectNodeContents|set|setAttribute|\\n   setAttributeNode|setAttributeNodeNS|setAttributeNS|setCapture|\\n   setCustomValidity|setEnd|setEndAfter|setEndBefore|setItem|setNamedItem|\\n   setRangeText|setSelectionRange|setSinkId|setStart|setStartAfter|setStartBefore|\\n   slice|splitText|stepDown|stepUp|stopImmediatePropagation|stopPropagation|\\n   submit|substringData|supports|surroundContents|takeRecords|terminate|toBlob|\\n   toDataURL|toggle|toString|values|write|writeln\\n )\\n)(?=\\\\s*\\\\()\",\n          \"captures\": {\n            \"1\": {\n              \"name\": \"punctuation.accessor.ts\"\n            },\n            \"2\": {\n              \"name\": \"support.function.event-handler.ts\"\n            },\n            \"3\": {\n              \"name\": \"support.function.ts\"\n            },\n            \"4\": {\n              \"name\": \"support.function.dom.ts\"\n            }\n          }\n        }\n      ]\n    },\n    \"function-call\": {\n      \"begin\": \"(?=(\\\\.\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\\\\s*(<([^<>]|\\\\<[^<>]+\\\\>)+>\\\\s*)?\\\\()\",\n      \"end\": \"(?<=\\\\))(?!(\\\\.\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\\\\s*(<([^<>]|\\\\<[^<>]+\\\\>)+>\\\\s*)?\\\\()\",\n      \"patterns\": [\n        {\n          \"include\": \"#support-objects\"\n        },\n        {\n          \"name\": \"punctuation.accessor.ts\",\n          \"match\": \"\\\\.\"\n        },\n        {\n          \"name\": \"entity.name.function.ts\",\n          \"match\": \"([_$[:alpha:]][_$[:alnum:]]*)\"\n        },\n        {\n          \"include\": \"#comment\"\n        },\n        {\n          \"name\": \"meta.type.parameters.ts\",\n          \"begin\": \"\\\\<\",\n          \"beginCaptures\": {\n            \"0\": {\n              \"name\": \"punctuation.definition.typeparameters.begin.ts\"\n            }\n          },\n          \"end\": \"\\\\>\",\n          \"endCaptures\": {\n            \"0\": {\n              \"name\": \"punctuation.definition.typeparameters.end.ts\"\n            }\n          },\n          \"patterns\": [\n            {\n              \"include\": \"#type\"\n            },\n            {\n              \"include\": \"#punctuation-comma\"\n            }\n          ]\n        },\n        {\n          \"include\": \"#paren-expression\"\n        }\n      ]\n    },\n    \"identifiers\": {\n      \"patterns\": [\n        {\n          \"name\": \"support.class.ts\",\n          \"match\": \"([_$[:alpha:]][_$[:alnum:]]*)(?=\\\\s*\\\\.\\\\s*prototype\\\\b(?!\\\\$))\"\n        },\n        {\n          \"match\": \"(?x)(\\\\.)\\\\s*(?:\\n  ([[:upper:]][_$[:digit:][:upper:]]*) |\\n  ([_$[:alpha:]][_$[:alnum:]]*)\\n)(?=\\\\s*\\\\.\\\\s*[_$[:alpha:]][_$[:alnum:]]*)\",\n          \"captures\": {\n            \"1\": {\n              \"name\": \"punctuation.accessor.ts\"\n            },\n            \"2\": {\n              \"name\": \"constant.other.object.property.ts\"\n            },\n            \"3\": {\n              \"name\": \"variable.other.object.property.ts\"\n            }\n          }\n        },\n        {\n          \"match\": \"(?x)(?:(\\\\.)\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)(?=\\\\s*=\\\\s*( (async\\\\s+)|(function\\\\s*[(<])|(function\\\\s+)| ([_$[:alpha:]][_$[:alnum:]]*\\\\s*=>)| ((<([^<>]|\\\\<[^<>]+\\\\>)+>\\\\s*)?\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)(\\\\s*:\\\\s*(.)*)?\\\\s*=>)))\",\n          \"captures\": {\n            \"1\": {\n              \"name\": \"punctuation.accessor.ts\"\n            },\n            \"2\": {\n              \"name\": \"entity.name.function.ts\"\n            }\n          }\n        },\n        {\n          \"match\": \"(\\\\.)\\\\s*([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])\",\n          \"captures\": {\n            \"1\": {\n              \"name\": \"punctuation.accessor.ts\"\n            },\n            \"2\": {\n              \"name\": \"constant.other.property.ts\"\n            }\n          }\n        },\n        {\n          \"match\": \"(\\\\.)\\\\s*([_$[:alpha:]][_$[:alnum:]]*)\",\n          \"captures\": {\n            \"1\": {\n              \"name\": \"punctuation.accessor.ts\"\n            },\n            \"2\": {\n              \"name\": \"variable.other.property.ts\"\n            }\n          }\n        },\n        {\n          \"match\": \"(?x)(?:\\n  ([[:upper:]][_$[:digit:][:upper:]]*) |\\n  ([_$[:alpha:]][_$[:alnum:]]*)\\n)(?=\\\\s*\\\\.\\\\s*[_$[:alpha:]][_$[:alnum:]]*)\",\n          \"captures\": {\n            \"1\": {\n              \"name\": \"constant.other.object.ts\"\n            },\n            \"2\": {\n              \"name\": \"variable.other.object.ts\"\n            }\n          }\n        },\n        {\n          \"name\": \"constant.other.ts\",\n          \"match\": \"([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])\"\n        },\n        {\n          \"name\": \"variable.other.readwrite.ts\",\n          \"match\": \"[_$[:alpha:]][_$[:alnum:]]*\"\n        }\n      ]\n    },\n    \"cast\": {\n      \"name\": \"cast.expr.ts\",\n      \"begin\": \"(?:(?<=return|throw|yield|await|default|[=(,:>*]))\\\\s*(<)(?!<?\\\\=)\",\n      \"beginCaptures\": {\n        \"1\": {\n          \"name\": \"meta.brace.angle.ts\"\n        }\n      },\n      \"end\": \">\",\n      \"endCaptures\": {\n        \"0\": {\n          \"name\": \"meta.brace.angle.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#type\"\n        }\n      ]\n    },\n    \"new-expr\": {\n      \"name\": \"new.expr.ts\",\n      \"begin\": \"(?<!\\\\.|\\\\$)\\\\b(new)\\\\b(?!\\\\$)\",\n      \"beginCaptures\": {\n        \"1\": {\n          \"name\": \"keyword.operator.new.ts\"\n        }\n      },\n      \"end\": \"(?<=\\\\))|(?=[;),]|$|((?<!\\\\.|\\\\$)\\\\bnew\\\\b(?!\\\\$)))\",\n      \"patterns\": [\n        {\n          \"include\": \"#paren-expression\"\n        },\n        {\n          \"include\": \"#class-or-interface-declaration\"\n        },\n        {\n          \"include\": \"#type\"\n        }\n      ]\n    },\n    \"object-member\": {\n      \"patterns\": [\n        {\n          \"include\": \"#comment\"\n        },\n        {\n          \"include\": \"#method-declaration\"\n        },\n        {\n          \"name\": \"meta.object.member.ts\",\n          \"begin\": \"(?=(?:(?:\\\\'[^']*\\\\')|(?:\\\\\\\"[^\\\"]*\\\\\\\")|(?:\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]+\\\\])+\\\\]))\\\\s*:)\",\n          \"end\": \"(?=,|\\\\})\",\n          \"patterns\": [\n            {\n              \"name\": \"meta.object-literal.key.ts\",\n              \"begin\": \"(?=(?:(?:\\\\'[^']*\\\\')|(?:\\\\\\\"[^\\\"]*\\\\\\\")|(?:\\\\[([^\\\\[\\\\]]|\\\\[[^\\\\[\\\\]]+\\\\])+\\\\]))\\\\s*:)\",\n              \"end\": \":\",\n              \"endCaptures\": {\n                \"0\": {\n                  \"name\": \"punctuation.separator.key-value.ts\"\n                }\n              },\n              \"patterns\": [\n                {\n                  \"include\": \"#string\"\n                },\n                {\n                  \"include\": \"#array-literal\"\n                }\n              ]\n            },\n            {\n              \"include\": \"#expression\"\n            }\n          ]\n        },\n        {\n          \"name\": \"meta.object.member.ts\",\n          \"begin\": \"(?x)(?:([_$[:alpha:]][_$[:alnum:]]*)\\\\s*(:)(?=\\\\s*( (async\\\\s+)|(function\\\\s*[(<])|(function\\\\s+)| ([_$[:alpha:]][_$[:alnum:]]*\\\\s*=>)| ((<([^<>]|\\\\<[^<>]+\\\\>)+>\\\\s*)?\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)(\\\\s*:\\\\s*(.)*)?\\\\s*=>))))\",\n          \"beginCaptures\": {\n            \"0\": {\n              \"name\": \"meta.object-literal.key.ts\"\n            },\n            \"1\": {\n              \"name\": \"entity.name.function.ts\"\n            },\n            \"2\": {\n              \"name\": \"punctuation.separator.key-value.ts\"\n            }\n          },\n          \"end\": \"(?=,|\\\\})\",\n          \"patterns\": [\n            {\n              \"include\": \"#expression\"\n            }\n          ]\n        },\n        {\n          \"name\": \"meta.object.member.ts\",\n          \"begin\": \"(?:[_$[:alpha:]][_$[:alnum:]]*)\\\\s*(:)\",\n          \"beginCaptures\": {\n            \"0\": {\n              \"name\": \"meta.object-literal.key.ts\"\n            },\n            \"1\": {\n              \"name\": \"punctuation.separator.key-value.ts\"\n            }\n          },\n          \"end\": \"(?=,|\\\\})\",\n          \"patterns\": [\n            {\n              \"include\": \"#expression\"\n            }\n          ]\n        },\n        {\n          \"name\": \"meta.object.member.ts\",\n          \"begin\": \"\\\\.\\\\.\\\\.\",\n          \"beginCaptures\": {\n            \"0\": {\n              \"name\": \"keyword.operator.spread.ts\"\n            }\n          },\n          \"end\": \"(?=,|\\\\})\",\n          \"patterns\": [\n            {\n              \"include\": \"#expression\"\n            }\n          ]\n        },\n        {\n          \"name\": \"meta.object.member.ts\",\n          \"match\": \"([_$[:alpha:]][_$[:alnum:]]*)\\\\s*(?=,|\\\\}|$)\",\n          \"captures\": {\n            \"1\": {\n              \"name\": \"variable.other.readwrite.ts\"\n            }\n          }\n        },\n        {\n          \"include\": \"#punctuation-comma\"\n        }\n      ]\n    },\n    \"expression-operators\": {\n      \"patterns\": [\n        {\n          \"name\": \"keyword.control.flow.ts\",\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\b(await)\\\\b(?!\\\\$)\"\n        },\n        {\n          \"name\": \"keyword.operator.expression.delete.ts\",\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\bdelete\\\\b(?!\\\\$)\"\n        },\n        {\n          \"name\": \"keyword.operator.expression.in.ts\",\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\bin\\\\b(?!\\\\$)\"\n        },\n        {\n          \"name\": \"keyword.operator.expression.of.ts\",\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\bof\\\\b(?!\\\\$)\"\n        },\n        {\n          \"name\": \"keyword.operator.expression.instanceof.ts\",\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\binstanceof\\\\b(?!\\\\$)\"\n        },\n        {\n          \"name\": \"keyword.operator.new.ts\",\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\bnew\\\\b(?!\\\\$)\"\n        },\n        {\n          \"include\": \"#typeof-operator\"\n        },\n        {\n          \"name\": \"keyword.operator.expression.void.ts\",\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\bvoid\\\\b(?!\\\\$)\"\n        },\n        {\n          \"begin\": \"(?<!\\\\.|\\\\$)\\\\bas\\\\b(?!\\\\$)\",\n          \"beginCaptures\": {\n            \"0\": {\n              \"name\": \"keyword.control.as.ts\"\n            }\n          },\n          \"end\": \"(?=$|[;,:})\\\\]])\",\n          \"patterns\": [\n            {\n              \"include\": \"#type\"\n            }\n          ]\n        },\n        {\n          \"name\": \"keyword.operator.spread.ts\",\n          \"match\": \"\\\\.\\\\.\\\\.\"\n        },\n        {\n          \"name\": \"keyword.operator.assignment.compound.ts\",\n          \"match\": \"\\\\*=|(?<!\\\\()/=|%=|\\\\+=|\\\\-=\"\n        },\n        {\n          \"name\": \"keyword.operator.assignment.compound.bitwise.ts\",\n          \"match\": \"\\\\&=|\\\\^=|<<=|>>=|>>>=|\\\\|=\"\n        },\n        {\n          \"name\": \"keyword.operator.bitwise.shift.ts\",\n          \"match\": \"<<|>>>|>>\"\n        },\n        {\n          \"name\": \"keyword.operator.comparison.ts\",\n          \"match\": \"===|!==|==|!=\"\n        },\n        {\n          \"name\": \"keyword.operator.relational.ts\",\n          \"match\": \"<=|>=|<>|<|>\"\n        },\n        {\n          \"name\": \"keyword.operator.logical.ts\",\n          \"match\": \"\\\\!|&&|\\\\|\\\\|\"\n        },\n        {\n          \"name\": \"keyword.operator.bitwise.ts\",\n          \"match\": \"\\\\&|~|\\\\^|\\\\|\"\n        },\n        {\n          \"name\": \"keyword.operator.assignment.ts\",\n          \"match\": \"\\\\=\"\n        },\n        {\n          \"name\": \"keyword.operator.decrement.ts\",\n          \"match\": \"--\"\n        },\n        {\n          \"name\": \"keyword.operator.increment.ts\",\n          \"match\": \"\\\\+\\\\+\"\n        },\n        {\n          \"name\": \"keyword.operator.arithmetic.ts\",\n          \"match\": \"%|\\\\*|/|-|\\\\+\"\n        },\n        {\n          \"match\": \"(?<=[_$[:alnum:]])\\\\s*(/)(?![/*])\",\n          \"captures\": {\n            \"1\": {\n              \"name\": \"keyword.operator.arithmetic.ts\"\n            }\n          }\n        }\n      ]\n    },\n    \"typeof-operator\": {\n      \"name\": \"keyword.operator.expression.typeof.ts\",\n      \"match\": \"(?<!\\\\.|\\\\$)\\\\btypeof\\\\b(?!\\\\$)\"\n    },\n    \"arrow-function\": {\n      \"patterns\": [\n        {\n          \"name\": \"meta.arrow.ts\",\n          \"match\": \"(?<!\\\\.|\\\\$)(\\\\basync)(?=\\\\s*[<(])\",\n          \"captures\": {\n            \"1\": {\n              \"name\": \"storage.modifier.async.ts\"\n            }\n          }\n        },\n        {\n          \"name\": \"meta.arrow.ts\",\n          \"match\": \"(?:(?<!\\\\.|\\\\$)(\\\\basync)\\\\s*)?([_$[:alpha:]][_$[:alnum:]]*)\\\\s*(?==>)\",\n          \"captures\": {\n            \"1\": {\n              \"name\": \"storage.modifier.async.ts\"\n            },\n            \"2\": {\n              \"name\": \"variable.parameter.ts\"\n            }\n          }\n        },\n        {\n          \"name\": \"meta.arrow.ts\",\n          \"begin\": \"(?x)\\\\s*(?=(<([^<>]|\\\\<[^<>]+\\\\>)+>\\\\s*)?\\\\(([^()]|\\\\([^()]*\\\\))*\\\\)(\\\\s*:\\\\s*(.)*)?\\\\s*=>)\",\n          \"end\": \"(?==>)\",\n          \"patterns\": [\n            {\n              \"include\": \"#comment\"\n            },\n            {\n              \"include\": \"#type-parameters\"\n            },\n            {\n              \"include\": \"#function-parameters\"\n            },\n            {\n              \"include\": \"#arrow-return-type\"\n            }\n          ]\n        },\n        {\n          \"name\": \"meta.arrow.ts\",\n          \"begin\": \"=>\",\n          \"beginCaptures\": {\n            \"0\": {\n              \"name\": \"storage.type.function.arrow.ts\"\n            }\n          },\n          \"end\": \"(?<=\\\\})|((?!\\\\{)(?=\\\\S))\",\n          \"patterns\": [\n            {\n              \"include\": \"#decl-block\"\n            },\n            {\n              \"include\": \"#expression\"\n            }\n          ]\n        }\n      ]\n    },\n    \"arrow-return-type\": {\n      \"name\": \"meta.return.type.arrow.ts\",\n      \"begin\": \"(?<=\\\\))\\\\s*(:)\",\n      \"beginCaptures\": {\n        \"1\": {\n          \"name\": \"keyword.operator.type.annotation.ts\"\n        }\n      },\n      \"end\": \"(?<!:)((?=$)|(?==>|;|//))\",\n      \"patterns\": [\n        {\n          \"include\": \"#type-predicate-operator\"\n        },\n        {\n          \"include\": \"#type\"\n        }\n      ]\n    },\n    \"punctuation-comma\": {\n      \"name\": \"punctuation.separator.comma.ts\",\n      \"match\": \",\"\n    },\n    \"punctuation-semicolon\": {\n      \"name\": \"punctuation.terminator.statement.ts\",\n      \"match\": \";\"\n    },\n    \"punctuation-accessor\": {\n      \"name\": \"punctuation.accessor.ts\",\n      \"match\": \"\\\\.\"\n    },\n    \"paren-expression\": {\n      \"begin\": \"\\\\(\",\n      \"beginCaptures\": {\n        \"0\": {\n          \"name\": \"meta.brace.round.ts\"\n        }\n      },\n      \"end\": \"\\\\)\",\n      \"endCaptures\": {\n        \"0\": {\n          \"name\": \"meta.brace.round.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#expression\"\n        },\n        {\n          \"include\": \"#punctuation-comma\"\n        }\n      ]\n    },\n    \"qstring-double\": {\n      \"name\": \"string.quoted.double.ts\",\n      \"begin\": \"\\\"\",\n      \"beginCaptures\": {\n        \"0\": {\n          \"name\": \"punctuation.definition.string.begin.ts\"\n        }\n      },\n      \"end\": \"(\\\")|((?:[^\\\\\\\\\\\\n])$)\",\n      \"endCaptures\": {\n        \"1\": {\n          \"name\": \"punctuation.definition.string.end.ts\"\n        },\n        \"2\": {\n          \"name\": \"invalid.illegal.newline.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#string-character-escape\"\n        }\n      ]\n    },\n    \"qstring-single\": {\n      \"name\": \"string.quoted.single.ts\",\n      \"begin\": \"'\",\n      \"beginCaptures\": {\n        \"0\": {\n          \"name\": \"punctuation.definition.string.begin.ts\"\n        }\n      },\n      \"end\": \"(\\\\')|((?:[^\\\\\\\\\\\\n])$)\",\n      \"endCaptures\": {\n        \"1\": {\n          \"name\": \"punctuation.definition.string.end.ts\"\n        },\n        \"2\": {\n          \"name\": \"invalid.illegal.newline.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#string-character-escape\"\n        }\n      ]\n    },\n    \"regex\": {\n      \"patterns\": [\n        {\n          \"name\": \"string.regex.ts\",\n          \"begin\": \"(?<=[=(:,\\\\[?+!]|return|case|=>|&&|\\\\|\\\\||\\\\*\\\\/)\\\\s*(/)(?![/*])(?=(?:[^/\\\\\\\\\\\\[]|\\\\\\\\.|\\\\[([^\\\\]\\\\\\\\]|\\\\\\\\.)+\\\\])+/(?![/*])[gimy]*(?!\\\\s*[a-zA-Z0-9_$]))\",\n          \"beginCaptures\": {\n            \"1\": {\n              \"name\": \"punctuation.definition.string.begin.ts\"\n            }\n          },\n          \"end\": \"(/)([gimuy]*)\",\n          \"endCaptures\": {\n            \"1\": {\n              \"name\": \"punctuation.definition.string.end.ts\"\n            },\n            \"2\": {\n              \"name\": \"keyword.other.ts\"\n            }\n          },\n          \"patterns\": [\n            {\n              \"include\": \"#regexp\"\n            }\n          ]\n        },\n        {\n          \"name\": \"string.regex.ts\",\n          \"begin\": \"/(?![/*])(?=(?:[^/\\\\\\\\\\\\[]|\\\\\\\\.|\\\\[([^\\\\]\\\\\\\\]|\\\\\\\\.)+\\\\])+/(?![/*])[gimy]*(?!\\\\s*[a-zA-Z0-9_$]))\",\n          \"beginCaptures\": {\n            \"0\": {\n              \"name\": \"punctuation.definition.string.begin.ts\"\n            }\n          },\n          \"end\": \"(/)([gimuy]*)\",\n          \"endCaptures\": {\n            \"1\": {\n              \"name\": \"punctuation.definition.string.end.ts\"\n            },\n            \"2\": {\n              \"name\": \"keyword.other.ts\"\n            }\n          },\n          \"patterns\": [\n            {\n              \"include\": \"#regexp\"\n            }\n          ]\n        }\n      ]\n    },\n    \"regexp\": {\n      \"patterns\": [\n        {\n          \"name\": \"keyword.control.anchor.regexp\",\n          \"match\": \"\\\\\\\\[bB]|\\\\^|\\\\$\"\n        },\n        {\n          \"name\": \"keyword.other.back-reference.regexp\",\n          \"match\": \"\\\\\\\\[1-9]\\\\d*\"\n        },\n        {\n          \"name\": \"keyword.operator.quantifier.regexp\",\n          \"match\": \"[?+*]|\\\\{(\\\\d+,\\\\d+|\\\\d+,|,\\\\d+|\\\\d+)\\\\}\\\\??\"\n        },\n        {\n          \"name\": \"keyword.operator.or.regexp\",\n          \"match\": \"\\\\|\"\n        },\n        {\n          \"name\": \"meta.group.assertion.regexp\",\n          \"begin\": \"(\\\\()((\\\\?=)|(\\\\?!))\",\n          \"beginCaptures\": {\n            \"1\": {\n              \"name\": \"punctuation.definition.group.regexp\"\n            },\n            \"2\": {\n              \"name\": \"punctuation.definition.group.assertion.regexp\"\n            },\n            \"3\": {\n              \"name\": \"meta.assertion.look-ahead.regexp\"\n            },\n            \"4\": {\n              \"name\": \"meta.assertion.negative-look-ahead.regexp\"\n            }\n          },\n          \"end\": \"(\\\\))\",\n          \"endCaptures\": {\n            \"1\": {\n              \"name\": \"punctuation.definition.group.regexp\"\n            }\n          },\n          \"patterns\": [\n            {\n              \"include\": \"#regexp\"\n            }\n          ]\n        },\n        {\n          \"name\": \"meta.group.regexp\",\n          \"begin\": \"\\\\((\\\\?:)?\",\n          \"beginCaptures\": {\n            \"0\": {\n              \"name\": \"punctuation.definition.group.regexp\"\n            },\n            \"1\": {\n              \"name\": \"punctuation.definition.group.capture.regexp\"\n            }\n          },\n          \"end\": \"\\\\)\",\n          \"endCaptures\": {\n            \"0\": {\n              \"name\": \"punctuation.definition.group.regexp\"\n            }\n          },\n          \"patterns\": [\n            {\n              \"include\": \"#regexp\"\n            }\n          ]\n        },\n        {\n          \"name\": \"constant.other.character-class.set.regexp\",\n          \"begin\": \"(\\\\[)(\\\\^)?\",\n          \"beginCaptures\": {\n            \"1\": {\n              \"name\": \"punctuation.definition.character-class.regexp\"\n            },\n            \"2\": {\n              \"name\": \"keyword.operator.negation.regexp\"\n            }\n          },\n          \"end\": \"(\\\\])\",\n          \"endCaptures\": {\n            \"1\": {\n              \"name\": \"punctuation.definition.character-class.regexp\"\n            }\n          },\n          \"patterns\": [\n            {\n              \"name\": \"constant.other.character-class.range.regexp\",\n              \"match\": \"(?:.|(\\\\\\\\(?:[0-7]{3}|x\\\\h\\\\h|u\\\\h\\\\h\\\\h\\\\h))|(\\\\\\\\c[A-Z])|(\\\\\\\\.))\\\\-(?:[^\\\\]\\\\\\\\]|(\\\\\\\\(?:[0-7]{3}|x\\\\h\\\\h|u\\\\h\\\\h\\\\h\\\\h))|(\\\\\\\\c[A-Z])|(\\\\\\\\.))\",\n              \"captures\": {\n                \"1\": {\n                  \"name\": \"constant.character.numeric.regexp\"\n                },\n                \"2\": {\n                  \"name\": \"constant.character.control.regexp\"\n                },\n                \"3\": {\n                  \"name\": \"constant.character.escape.backslash.regexp\"\n                },\n                \"4\": {\n                  \"name\": \"constant.character.numeric.regexp\"\n                },\n                \"5\": {\n                  \"name\": \"constant.character.control.regexp\"\n                },\n                \"6\": {\n                  \"name\": \"constant.character.escape.backslash.regexp\"\n                }\n              }\n            },\n            {\n              \"include\": \"#regex-character-class\"\n            }\n          ]\n        },\n        {\n          \"include\": \"#regex-character-class\"\n        }\n      ]\n    },\n    \"regex-character-class\": {\n      \"patterns\": [\n        {\n          \"name\": \"constant.other.character-class.regexp\",\n          \"match\": \"\\\\\\\\[wWsSdDtrnvf]|\\\\.\"\n        },\n        {\n          \"name\": \"constant.character.numeric.regexp\",\n          \"match\": \"\\\\\\\\([0-7]{3}|x\\\\h\\\\h|u\\\\h\\\\h\\\\h\\\\h)\"\n        },\n        {\n          \"name\": \"constant.character.control.regexp\",\n          \"match\": \"\\\\\\\\c[A-Z]\"\n        },\n        {\n          \"name\": \"constant.character.escape.backslash.regexp\",\n          \"match\": \"\\\\\\\\.\"\n        }\n      ]\n    },\n    \"string\": {\n      \"patterns\": [\n        {\n          \"include\": \"#qstring-single\"\n        },\n        {\n          \"include\": \"#qstring-double\"\n        }\n      ]\n    },\n    \"template\": {\n      \"name\": \"string.template.ts\",\n      \"begin\": \"([_$[:alpha:]][_$[:alnum:]]*)?(`)\",\n      \"beginCaptures\": {\n        \"1\": {\n          \"name\": \"entity.name.function.tagged-template.ts\"\n        },\n        \"2\": {\n          \"name\": \"punctuation.definition.string.template.begin.ts\"\n        }\n      },\n      \"end\": \"`\",\n      \"endCaptures\": {\n        \"0\": {\n          \"name\": \"punctuation.definition.string.template.end.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#template-substitution-element\"\n        },\n        {\n          \"include\": \"#string-character-escape\"\n        }\n      ]\n    },\n    \"string-character-escape\": {\n      \"name\": \"constant.character.escape.ts\",\n      \"match\": \"\\\\\\\\(x\\\\h{2}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)\"\n    },\n    \"template-substitution-element\": {\n      \"name\": \"meta.template.expression.ts\",\n      \"begin\": \"\\\\$\\\\{\",\n      \"beginCaptures\": {\n        \"0\": {\n          \"name\": \"punctuation.definition.template-expression.begin.ts\"\n        }\n      },\n      \"end\": \"\\\\}\",\n      \"endCaptures\": {\n        \"0\": {\n          \"name\": \"punctuation.definition.template-expression.end.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#expression\"\n        }\n      ]\n    },\n    \"literal\": {\n      \"name\": \"literal.ts\",\n      \"patterns\": [\n        {\n          \"include\": \"#numeric-literal\"\n        },\n        {\n          \"include\": \"#boolean-literal\"\n        },\n        {\n          \"include\": \"#null-literal\"\n        },\n        {\n          \"include\": \"#undefined-literal\"\n        },\n        {\n          \"include\": \"#numericConstant-literal\"\n        },\n        {\n          \"include\": \"#array-literal\"\n        },\n        {\n          \"include\": \"#this-literal\"\n        },\n        {\n          \"include\": \"#super-literal\"\n        }\n      ]\n    },\n    \"array-literal\": {\n      \"name\": \"meta.array.literal.ts\",\n      \"begin\": \"\\\\[\",\n      \"beginCaptures\": {\n        \"0\": {\n          \"name\": \"meta.brace.square.ts\"\n        }\n      },\n      \"end\": \"\\\\]\",\n      \"endCaptures\": {\n        \"0\": {\n          \"name\": \"meta.brace.square.ts\"\n        }\n      },\n      \"patterns\": [\n        {\n          \"include\": \"#expression\"\n        },\n        {\n          \"include\": \"#punctuation-comma\"\n        }\n      ]\n    },\n    \"numeric-literal\": {\n      \"patterns\": [\n        {\n          \"name\": \"constant.numeric.hex.ts\",\n          \"match\": \"\\\\b(?<!\\\\$)0(x|X)[0-9a-fA-F]+\\\\b(?!\\\\$)\"\n        },\n        {\n          \"name\": \"constant.numeric.binary.ts\",\n          \"match\": \"\\\\b(?<!\\\\$)0(b|B)[01]+\\\\b(?!\\\\$)\"\n        },\n        {\n          \"name\": \"constant.numeric.octal.ts\",\n          \"match\": \"\\\\b(?<!\\\\$)0(o|O)?[0-7]+\\\\b(?!\\\\$)\"\n        },\n        {\n          \"match\": \"(?x)\\n(?<!\\\\$)(?:\\n  (?:\\\\b[0-9]+(\\\\.)[0-9]+[eE][+-]?[0-9]+\\\\b)| # 1.1E+3\\n  (?:\\\\b[0-9]+(\\\\.)[eE][+-]?[0-9]+\\\\b)|       # 1.E+3\\n  (?:\\\\B(\\\\.)[0-9]+[eE][+-]?[0-9]+\\\\b)|       # .1E+3\\n  (?:\\\\b[0-9]+[eE][+-]?[0-9]+\\\\b)|            # 1E+3\\n  (?:\\\\b[0-9]+(\\\\.)[0-9]+\\\\b)|                # 1.1\\n  (?:\\\\b[0-9]+(\\\\.)\\\\B)|                      # 1.\\n  (?:\\\\B(\\\\.)[0-9]+\\\\b)|                      # .1\\n  (?:\\\\b[0-9]+\\\\b(?!\\\\.))                     # 1\\n)(?!\\\\$)\",\n          \"captures\": {\n            \"0\": {\n              \"name\": \"constant.numeric.decimal.ts\"\n            },\n            \"1\": {\n              \"name\": \"meta.delimiter.decimal.period.ts\"\n            },\n            \"2\": {\n              \"name\": \"meta.delimiter.decimal.period.ts\"\n            },\n            \"3\": {\n              \"name\": \"meta.delimiter.decimal.period.ts\"\n            },\n            \"4\": {\n              \"name\": \"meta.delimiter.decimal.period.ts\"\n            },\n            \"5\": {\n              \"name\": \"meta.delimiter.decimal.period.ts\"\n            },\n            \"6\": {\n              \"name\": \"meta.delimiter.decimal.period.ts\"\n            }\n          }\n        }\n      ]\n    },\n    \"boolean-literal\": {\n      \"patterns\": [\n        {\n          \"name\": \"constant.language.boolean.true.ts\",\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\btrue\\\\b(?!\\\\$)\"\n        },\n        {\n          \"name\": \"constant.language.boolean.false.ts\",\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\bfalse\\\\b(?!\\\\$)\"\n        }\n      ]\n    },\n    \"null-literal\": {\n      \"name\": \"constant.language.null.ts\",\n      \"match\": \"(?<!\\\\.|\\\\$)\\\\bnull\\\\b(?!\\\\$)\"\n    },\n    \"this-literal\": {\n      \"name\": \"variable.language.this.ts\",\n      \"match\": \"(?<!\\\\.|\\\\$)\\\\bthis\\\\b(?!\\\\$)\"\n    },\n    \"super-literal\": {\n      \"name\": \"variable.language.super.ts\",\n      \"match\": \"(?<!\\\\.|\\\\$)\\\\bsuper\\\\b(?!\\\\$)\"\n    },\n    \"undefined-literal\": {\n      \"name\": \"constant.language.undefined.ts\",\n      \"match\": \"(?<!\\\\.|\\\\$)\\\\bundefined\\\\b(?!\\\\$)\"\n    },\n    \"numericConstant-literal\": {\n      \"patterns\": [\n        {\n          \"name\": \"constant.language.nan.ts\",\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\bNaN\\\\b(?!\\\\$)\"\n        },\n        {\n          \"name\": \"constant.language.infinity.ts\",\n          \"match\": \"(?<!\\\\.|\\\\$)\\\\bInfinity\\\\b(?!\\\\$)\"\n        }\n      ]\n    },\n    \"access-modifier\": {\n      \"name\": \"storage.modifier.ts\",\n      \"match\": \"(?<!\\\\.|\\\\$)\\\\b(abstract|public|protected|private|readonly|static)\\\\b(?!\\\\$)\"\n    },\n    \"property-accessor\": {\n      \"name\": \"storage.type.property.ts\",\n      \"match\": \"(?<!\\\\.|\\\\$)\\\\b(get|set)\\\\b(?!\\\\$)\"\n    },\n    \"comment\": {\n      \"patterns\": [\n        {\n          \"name\": \"comment.block.documentation.ts\",\n          \"begin\": \"/\\\\*\\\\*(?!/)\",\n          \"beginCaptures\": {\n            \"0\": {\n              \"name\": \"punctuation.definition.comment.ts\"\n            }\n          },\n          \"end\": \"\\\\*/\",\n          \"endCaptures\": {\n            \"0\": {\n              \"name\": \"punctuation.definition.comment.ts\"\n            }\n          },\n          \"patterns\": [\n            {\n              \"include\": \"#docblock\"\n            }\n          ]\n        },\n        {\n          \"name\": \"comment.block.ts\",\n          \"begin\": \"/\\\\*\",\n          \"beginCaptures\": {\n            \"0\": {\n              \"name\": \"punctuation.definition.comment.ts\"\n            }\n          },\n          \"end\": \"\\\\*/\",\n          \"endCaptures\": {\n            \"0\": {\n              \"name\": \"punctuation.definition.comment.ts\"\n            }\n          }\n        },\n        {\n          \"begin\": \"(^[ \\\\t]+)?(?=//)\",\n          \"beginCaptures\": {\n            \"1\": {\n              \"name\": \"punctuation.whitespace.comment.leading.ts\"\n            }\n          },\n          \"end\": \"(?=$)\",\n          \"patterns\": [\n            {\n              \"name\": \"comment.line.double-slash.ts\",\n              \"begin\": \"//\",\n              \"beginCaptures\": {\n                \"0\": {\n                  \"name\": \"punctuation.definition.comment.ts\"\n                }\n              },\n              \"end\": \"(?=$)\"\n            }\n          ]\n        }\n      ]\n    },\n    \"directives\": {\n      \"name\": \"comment.line.triple-slash.directive.ts\",\n      \"begin\": \"^(///)\\\\s*(?=<(reference|amd-dependency|amd-module)(\\\\s+(path|types|no-default-lib|name)\\\\s*=\\\\s*((\\\\'[^']*\\\\')|(\\\\\\\"[^\\\"]*\\\\\\\")))+\\\\s*/>\\\\s*$)\",\n      \"beginCaptures\": {\n        \"1\": {\n          \"name\": \"punctuation.definition.comment.ts\"\n        }\n      },\n      \"end\": \"(?=$)\",\n      \"patterns\": [\n        {\n          \"name\": \"meta.tag.ts\",\n          \"begin\": \"(<)(reference|amd-dependency|amd-module)\",\n          \"beginCaptures\": {\n            \"1\": {\n              \"name\": \"punctuation.definition.tag.directive.ts\"\n            },\n            \"2\": {\n              \"name\": \"entity.name.tag.directive.ts\"\n            }\n          },\n          \"end\": \"/>\",\n          \"endCaptures\": {\n            \"0\": {\n              \"name\": \"punctuation.definition.tag.directive.ts\"\n            }\n          },\n          \"patterns\": [\n            {\n              \"name\": \"entity.other.attribute-name.directive.ts\",\n              \"match\": \"path|types|no-default-lib|name\"\n            },\n            {\n              \"name\": \"keyword.operator.assignment.ts\",\n              \"match\": \"=\"\n            },\n            {\n              \"include\": \"#string\"\n            }\n          ]\n        }\n      ]\n    },\n    \"docblock\": {\n      \"patterns\": [\n        {\n          \"name\": \"storage.type.class.jsdoc\",\n          \"match\": \"(?<!\\\\w)@(abstract|access|alias|arg|argument|async|attribute|augments|author|beta|borrows|bubbes|callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright|default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exports?|extends|extension|extension_for|extensionfor|external|file|fileoverview|final|fires|for|function|global|host|ignore|implements|inherit[Dd]oc|inner|instance|interface|kind|lends|license|listens|main|member|memberof|method|mixex|mixins?|module|name|namespace|nocollapse|nosideeffects|override|overview|package|param|preserve|private|prop|property|protected|public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation|version|virtual|writeOnce)\\\\b\"\n        },\n        {\n          \"match\": \"(?x)\\n(?:(?<=@param)|(?<=@arg)|(?<=@argument)|(?<=@type))\\n\\\\s+\\n({(?:\\n  \\\\* |                                        # {*} any type\\n  \\\\? |                                        # {?} unknown type\\n  (?:                                         # Check for a prefix\\n    \\\\? |                                      # {?string} nullable type\\n    !   |                                     # {!string} non-nullable type\\n    \\\\.{3}                                     # {...string} variable number of parameters\\n  )?\\n  (?:\\n    \\\\(                                        # Opening bracket of multiple types with parenthesis {(string|number)}\\n      [a-zA-Z_$]+\\n      (?:\\n        (?:\\n          [\\\\w$]*\\n          (?:\\\\[\\\\])?                           # {(string[]|number)} type application, an array of strings or a number\\n        ) |\\n        \\\\.?<[\\\\w$]+(?:,\\\\s+[\\\\w$]+)*>            # {Array<string>} or {Object<string, number>} type application (optional .)\\n      )\\n      (?:\\n        [\\\\.|~]                                # {Foo.bar} namespaced, {string|number} multiple, {Foo~bar} class-specific callback\\n        [a-zA-Z_$]+\\n        (?:\\n          (?:\\n            [\\\\w$]*\\n            (?:\\\\[\\\\])?                        # {(string|number[])} type application, a string or an array of numbers\\n          ) |\\n          \\\\.?<[\\\\w$]+(?:,\\\\s+[\\\\w$]+)*>         # {Array<string>} or {Object<string, number>} type application (optional .)\\n        )\\n      )*\\n    \\\\) |\\n    [a-zA-Z_$]+\\n    (?:\\n      (?:\\n        [\\\\w$]*\\n        (?:\\\\[\\\\])?                            # {string[]|number} type application, an array of strings or a number\\n      ) |\\n      \\\\.?<[\\\\w$]+(?:,\\\\s+[\\\\w$]+)*>             # {Array<string>} or {Object<string, number>} type application (optional .)\\n    )\\n    (?:\\n      [\\\\.|~]                                 # {Foo.bar} namespaced, {string|number} multiple, {Foo~bar} class-specific callback\\n      [a-zA-Z_$]+\\n      (?:\\n        [\\\\w$]* |\\n        \\\\.?<[\\\\w$]+(?:,\\\\s+[\\\\w$]+)*>           # {Array<string>} or {Object<string, number>} type application (optional .)\\n      )\\n    )*\\n  )\\n                                             # Check for suffix\\n  (?:\\\\[\\\\])?                                  # {string[]} type application, an array of strings\\n  =?                                         # {string=} optional parameter\\n)})\\n\\\\s+\\n(\\n  \\\\[                                         # [foo] optional parameter\\n    \\\\s*\\n    (?:\\n      [a-zA-Z_$][\\\\w$]*\\n      (?:\\n        (?:\\\\[\\\\])?                            # Foo[].bar properties within an array\\n        \\\\.                                   # Foo.Bar namespaced parameter\\n        [a-zA-Z_$][\\\\w$]*\\n      )*\\n      (?:\\n        \\\\s*\\n        =                                    # [foo=bar] Default parameter value\\n        \\\\s*\\n        [\\\\w$\\\\s]*\\n      )?\\n    )\\n    \\\\s*\\n  \\\\] |\\n  (?:\\n    [a-zA-Z_$][\\\\w$]*\\n    (?:\\n      (?:\\\\[\\\\])?                              # Foo[].bar properties within an array\\n      \\\\.                                     # Foo.Bar namespaced parameter\\n      [a-zA-Z_$][\\\\w$]*\\n    )*\\n  )?\\n)\\n\\\\s+\\n(?:-\\\\s+)?                                    # optional hyphen before the description\\n((?:(?!\\\\*\\\\/).)*)                             # The type description\",\n          \"captures\": {\n            \"0\": {\n              \"name\": \"other.meta.jsdoc\"\n            },\n            \"1\": {\n              \"name\": \"entity.name.type.instance.jsdoc\"\n            },\n            \"2\": {\n              \"name\": \"variable.other.jsdoc\"\n            },\n            \"3\": {\n              \"name\": \"other.description.jsdoc\"\n            }\n          }\n        },\n        {\n          \"match\": \"(?x)\\n({(?:\\n  \\\\* |                                       # {*} any type\\n  \\\\? |                                       # {?} unknown type\\n\\n  (?:                                        # Check for a prefix\\n    \\\\? |                                     # {?string} nullable type\\n    !   |                                    # {!string} non-nullable type\\n    \\\\.{3}                                    # {...string} variable number of parameters\\n  )?\\n\\n  (?:\\n    \\\\(                                       # Opening bracket of multiple types with parenthesis {(string|number)}\\n      [a-zA-Z_$]+\\n      (?:\\n        [\\\\w$]* |\\n        \\\\.?<[\\\\w$]+(?:,\\\\s+[\\\\w$]+)*>           # {Array<string>} or {Object<string, number>} type application (optional .)\\n      )\\n      (?:\\n        [\\\\.|~]                               # {Foo.bar} namespaced, {string|number} multiple, {Foo~bar} class-specific callback\\n        [a-zA-Z_$]+\\n        (?:\\n          [\\\\w$]* |\\n          \\\\.?<[\\\\w$]+(?:,\\\\s+[\\\\w$]+)*>         # {Array<string>} or {Object<string, number>} type application (optional .)\\n        )\\n      )*\\n    \\\\) |\\n    [a-zA-Z_$]+\\n    (?:\\n      [\\\\w$]* |\\n      \\\\.?<[\\\\w$]+(?:,\\\\s+[\\\\w$]+)*>             # {Array<string>} or {Object<string, number>} type application (optional .)\\n    )\\n    (?:\\n      [\\\\.|~]                                 # {Foo.bar} namespaced, {string|number} multiple, {Foo~bar} class-specific callback\\n      [a-zA-Z_$]+\\n      (?:\\n        [\\\\w$]* |\\n        \\\\.?<[\\\\w$]+(?:,\\\\s+[\\\\w$]+)*>           # {Array<string>} or {Object<string, number>} type application (optional .)\\n      )\\n    )*\\n  )\\n                                             # Check for suffix\\n  (?:\\\\[\\\\])?                                  # {string[]} type application, an array of strings\\n  =?                                         # {string=} optional parameter\\n)})\\n\\\\s+\\n(?:-\\\\s+)?                                    # optional hyphen before the description\\n((?:(?!\\\\*\\\\/).)*)                             # The type description\",\n          \"captures\": {\n            \"0\": {\n              \"name\": \"other.meta.jsdoc\"\n            },\n            \"1\": {\n              \"name\": \"entity.name.type.instance.jsdoc\"\n            },\n            \"2\": {\n              \"name\": \"other.description.jsdoc\"\n            }\n          }\n        }\n      ]\n    }\n  },\n  \"version\": \"https://github.com/Microsoft/TypeScript-TmLanguage/commit/4d0bdebb93aadc25ecbb903ebc897e9cd5fab69c\"\n}\n"
  },
  {
    "path": "website/src/logos/AlgoliaLogo.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\nimport clsx from 'clsx';\n\nexport const AlgoliaLogo = component$<HTMLAttributes<SVGSVGElement>>(\n  ({ class: className, ...props }) => (\n    <svg\n      viewBox=\"0 0 135 64\"\n      role=\"img\"\n      aria-label=\"Algolia logo\"\n      class={clsx('text-[#003dff] dark:text-white', className)}\n      fill=\"currentColor\"\n      {...props}\n    >\n      <path d=\"M65.88 33.92V17.95a.35.35 0 0 0-.4-.34l-2.99.47a.35.35 0 0 0-.3.34l.01 16.2c0 .76 0 5.49 5.7 5.65a.35.35 0 0 0 .35-.35v-2.41a.35.35 0 0 0-.3-.35c-2.06-.24-2.06-2.82-2.06-3.24Z\" />\n      <path d=\"M112.2 23.8h3a.35.35 0 0 1 .35.36v15.77a.35.35 0 0 1-.35.35h-3a.35.35 0 0 1-.36-.35V24.16a.35.35 0 0 1 .35-.35Z\" />\n      <path d=\"M112.2 21.83h3a.35.35 0 0 0 .35-.35v-3.53a.35.35 0 0 0-.4-.34l-3 .47a.35.35 0 0 0-.3.34v3.06a.35.35 0 0 0 .34.35ZM107 33.92V17.95a.35.35 0 0 0-.4-.34l-3 .47a.35.35 0 0 0-.3.34l.01 16.2c0 .76 0 5.49 5.69 5.65a.35.35 0 0 0 .36-.35v-2.41a.35.35 0 0 0-.3-.35c-2.07-.24-2.07-2.82-2.07-3.24Zm-7.84-7.86a6.72 6.72 0 0 0-2.41-1.68 8.05 8.05 0 0 0-3.09-.58 7.82 7.82 0 0 0-3.08.58 7.08 7.08 0 0 0-2.41 1.68 7.66 7.66 0 0 0-1.59 2.6 10.05 10.05 0 0 0-.55 3.47 8.74 8.74 0 0 0 .57 3.21 7.78 7.78 0 0 0 1.57 2.63 7.03 7.03 0 0 0 2.4 1.69 9.64 9.64 0 0 0 3.1.62 9.83 9.83 0 0 0 3.13-.62 6.88 6.88 0 0 0 2.42-1.69 7.61 7.61 0 0 0 1.55-2.63 8.92 8.92 0 0 0 .55-3.21 9.64 9.64 0 0 0-.6-3.46 7.78 7.78 0 0 0-1.56-2.61Zm-2.63 9.7a3.6 3.6 0 0 1-5.7 0 5.76 5.76 0 0 1-1.02-3.63 6.49 6.49 0 0 1 1.01-3.84 3.6 3.6 0 0 1 5.7 0 6.47 6.47 0 0 1 1.03 3.84 5.78 5.78 0 0 1-1.02 3.63ZM55.46 23.8h-2.92a8.16 8.16 0 0 0-6.86 3.8 8.64 8.64 0 0 0 1.7 11.26 4.95 4.95 0 0 0 .54.42 4.77 4.77 0 0 0 2.64.8h.28l.16-.02h.06l.16-.02h.04a5.35 5.35 0 0 0 4.2-3.73v3.43a.35.35 0 0 0 .35.35h2.98a.35.35 0 0 0 .35-.35V24.16a.35.35 0 0 0-.35-.35Zm0 12.27a4.52 4.52 0 0 1-2.66.9h-.23a4.67 4.67 0 0 1-4.57-4.7 4.76 4.76 0 0 1 .33-1.71 4.54 4.54 0 0 1 4.2-2.95h2.93Zm73.45-12.27H126a8.16 8.16 0 0 0-6.86 3.8 8.64 8.64 0 0 0 1.7 11.26 4.97 4.97 0 0 0 .55.42 4.77 4.77 0 0 0 2.64.8h.28l.15-.02h.06l.17-.02h.03a5.35 5.35 0 0 0 4.2-3.73v3.43a.35.35 0 0 0 .35.35h3a.35.35 0 0 0 .34-.35V24.16a.35.35 0 0 0-.35-.35Zm0 12.27a4.51 4.51 0 0 1-2.65.9h-.23a4.67 4.67 0 0 1-4.57-4.7 4.76 4.76 0 0 1 .32-1.71 4.53 4.53 0 0 1 4.21-2.95h2.92ZM80.32 23.8H77.4a8.16 8.16 0 0 0-6.86 3.8 8.58 8.58 0 0 0-1.31 3.72 8.8 8.8 0 0 0 0 1.94 8.52 8.52 0 0 0 3 5.6 4.93 4.93 0 0 0 .55.42 4.77 4.77 0 0 0 2.64.8 4.78 4.78 0 0 0 2.85-.95 5.36 5.36 0 0 0 2.04-2.83v3.64a3.85 3.85 0 0 1-1.03 2.92 4.92 4.92 0 0 1-3.45.99c-.66 0-1.7-.04-2.76-.15a.35.35 0 0 0-.37.25l-.76 2.56a.35.35 0 0 0 .28.44 25.78 25.78 0 0 0 3.24.28q4.35 0 6.46-1.9A7.25 7.25 0 0 0 84 40.07V24.16a.35.35 0 0 0-.35-.35h-3.34Zm0 3.8s.04 8.25 0 8.5a4.45 4.45 0 0 1-2.57.88h-.46a4.72 4.72 0 0 1-4.1-6.42 4.54 4.54 0 0 1 4.2-2.95h2.93Z\" />\n      <path d=\"M17.25 17.6a14.8 14.8 0 1 0 7.05 27.83.35.35 0 0 0 .06-.56l-1.38-1.23a.98.98 0 0 0-1.03-.17 12.01 12.01 0 1 1-4.7-23.07h12.02v21.35l-6.82-6.06a.5.5 0 0 0-.73.08 5.58 5.58 0 1 1 1.1-3.86 1 1 0 0 0 .32.66l1.78 1.58a.35.35 0 0 0 .57-.2 8.4 8.4 0 1 0-3.32 5.23l8.9 7.9a.6.6 0 0 0 .98-.45V18.16a.56.56 0 0 0-.55-.56Z\" />\n    </svg>\n  )\n);\n"
  },
  {
    "path": "website/src/logos/BoltLogo.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\nimport clsx from 'clsx';\n\nexport const BoltLogo = component$<HTMLAttributes<SVGSVGElement>>(\n  ({ class: className, ...props }) => (\n    <svg\n      viewBox=\"0 0 132 64\"\n      role=\"img\"\n      aria-label=\"Bolt logo\"\n      class={clsx('text-[#0a0a0a] dark:text-white', className)}\n      fill=\"currentColor\"\n      {...props}\n    >\n      <path d=\"M42.14 38.57c-7.38 0-11.14-4.3-11.14-9.68a12.2 12.2 0 0 1 12.47-12.14c7.39 0 11.14 4.3 11.14 9.68a12.2 12.2 0 0 1-12.47 12.14Zm.3-6.84c2.59 0 4.23-2.33 4.23-4.91 0-2.07-1.34-3.23-3.5-3.23-2.59 0-4.23 2.33-4.23 4.9 0 2.07 1.34 3.24 3.5 3.24Zm20.03 6.32H54.7l6.35-28.7h7.77l-6.35 28.7Z\" />\n      <path\n        clip-rule=\"evenodd\"\n        fill-rule=\"evenodd\"\n        d=\"M19.23 38.57c-2.38 0-4.7-.86-6.04-2.71l-.48 2.18L4 42.66l.94-4.62 6.35-28.7h7.77L16.8 19.46c1.81-1.98 3.5-2.71 5.66-2.71 4.66 0 7.77 3.05 7.77 8.65 0 5.77-3.59 13.17-11.01 13.17Zm2.98-11.54c0 2.67-1.9 4.7-4.36 4.7a4.62 4.62 0 0 1-3.46-1.42L15.6 25a4.4 4.4 0 0 1 3.15-1.42 3.38 3.38 0 0 1 3.46 3.45Z\"\n      />\n      <path d=\"M76.9 38.57c-4.49 0-7.68-1.64-7.68-5.25 0-.3.04-1.03.17-1.64l1.69-7.7h-3.46l1.51-6.72h3.46l1.25-5.68L82.54 8l-.93 3.6-1.25 5.66h4.23l-1.51 6.72h-4.23l-1.13 5.08c-.08.39-.13.82-.13.99 0 .99.6 1.68 1.95 1.68.38 0 .95-.13 1.07-.22v6.2c-.82.56-2.28.86-3.7.86Zm9.58.47a1.92 1.92 0 0 1-1.89-1.93 2.3 2.3 0 0 1 2.28-2.26c1.06 0 1.9.88 1.9 1.93a2.3 2.3 0 0 1-2.29 2.26Zm13.24-.26H96.2l1.09-4.94c.04-.18.12-.49.12-.72 0-.64-.57-.88-1.14-.88-.76 0-1.28.4-1.65.72l-1.3 5.82h-3.5l2.08-9.4h3.52l-.26 1.07a4.16 4.16 0 0 1 2.97-1.3c1.97 0 3.1 1.07 3.1 2.47 0 .16-.06.59-.1.76l-1.42 6.4Zm7.28.24c-3.04 0-5.15-1.52-5.15-4.28 0-3 2.3-5.59 5.6-5.59 2.35 0 4.42 1.42 4.42 4.28 0 .64-.12 1.38-.22 1.73h-6.32v.02c0 .14.56 1.17 1.93 1.17a4.2 4.2 0 0 0 2.05-.47l1.07 2.28c-.95.6-2.24.86-3.37.86Zm-1.34-6.08h3.1v-.05c0-.28-.33-1.07-1.44-1.07a1.8 1.8 0 0 0-1.66 1.13Zm18.46 5.84h-3.82l-.4-5.25-2.67 5.25h-3.82l-.65-9.4h3.52l.1 5.18 2.8-5.18h3.15l.48 5.18 2.4-5.18h3.73l-4.82 9.4Zm-95.6 15.09V47.9h1.06v2.23h.04a1.45 1.45 0 0 1 .63-.67c.18-.09.4-.13.65-.13a1.72 1.72 0 0 1 1.61 1.04c.17.35.25.77.25 1.26 0 .5-.08.91-.24 1.26-.17.34-.39.6-.67.78-.27.18-.59.28-.94.28a1.3 1.3 0 0 1-1.05-.44 2 2 0 0 1-.24-.35h-.06v.7h-1.04Zm1.04-2.24c0 .29.04.54.12.76a1 1 0 0 0 .36.5c.16.13.35.19.57.19.24 0 .43-.06.59-.19.16-.12.28-.3.36-.51.08-.22.12-.47.12-.75s-.04-.53-.12-.74c-.08-.22-.2-.39-.36-.51a.93.93 0 0 0-.59-.18.93.93 0 0 0-.57.17 1.1 1.1 0 0 0-.36.5 2.2 2.2 0 0 0-.12.76Zm4.6 3.92a2.15 2.15 0 0 1-.69-.12l.25-.82c.15.05.29.07.41.07a.5.5 0 0 0 .32-.12.8.8 0 0 0 .24-.36l.09-.24-1.63-4.57h1.12l1.04 3.38h.04l1.04-3.38h1.13l-1.8 5.02c-.09.24-.2.44-.33.6-.14.18-.31.3-.51.4-.2.09-.44.14-.72.14Zm13.16-3.33a.1.1 0 0 0-.1-.14h-3.48a.1.1 0 0 1-.08-.18l6.56-7.06c.08-.08.22 0 .18.11l-1.67 4.64a.1.1 0 0 0 .1.14h3.48c.1 0 .14.12.08.18l-6.57 7.06c-.08.08-.22 0-.18-.11l1.68-4.64Zm9.72.76 1.46-.84c.27.6.72 1.01 1.56 1.01.8 0 1-.3 1-.59 0-.45-.42-.63-1.53-.93-1.1-.3-2.18-.82-2.18-2.22 0-1.4 1.2-2.21 2.49-2.21 1.21 0 2.17.57 2.7 1.64l-1.42.82c-.26-.52-.6-.84-1.28-.84-.53 0-.8.26-.8.55 0 .34.18.57 1.34.9 1.12.34 2.38.73 2.38 2.27 0 1.4-1.15 2.24-2.75 2.24-1.56 0-2.56-.73-2.97-1.8Zm8.36-2.06v1.85c0 .45.4.49 1.1.45v1.41c-2.08.21-2.68-.4-2.68-1.86v-1.85h-.85v-1.5h.85v-.98l1.58-.47v1.45h1.1v1.5h-1.1Zm7.32-1.49v5.2h-1.6v-.49a2 2 0 0 1-1.57.64c-1.39 0-2.53-1.2-2.53-2.75s1.14-2.75 2.53-2.75a2 2 0 0 1 1.58.63v-.48h1.59Zm-1.6 2.6c0-.78-.52-1.27-1.25-1.27s-1.26.49-1.26 1.27.53 1.27 1.26 1.27 1.26-.49 1.26-1.27Zm2.49 0c0-1.55 1.2-2.75 2.8-2.75 1.04 0 1.95.53 2.4 1.33l-1.39.8a1.09 1.09 0 0 0-1.02-.59c-.69 0-1.2.49-1.2 1.2 0 .73.51 1.22 1.2 1.22.46 0 .85-.22 1.02-.59l1.4.78a2.71 2.71 0 0 1-2.4 1.35c-1.61 0-2.8-1.2-2.8-2.75Zm9.12 2.6-1.7-2.3v2.3h-1.58v-7.29h1.58v4.37l1.6-2.28h1.84l-1.92 2.6 1.98 2.6h-1.8Zm7.93-2.13c0 1.29-1.06 2.13-2.39 2.13h-3.1v-7.29h2.9c1.28 0 2.33.82 2.33 2.09 0 .6-.24 1.08-.65 1.42.56.35.91.9.91 1.65Zm-3.8-3.6v1.3h1.2c.38 0 .65-.28.65-.65a.61.61 0 0 0-.65-.65h-1.2Zm2.11 3.47c0-.4-.27-.7-.7-.7h-1.41v1.4h1.41c.43 0 .7-.3.7-.7Zm2.49-5.34h1.59v7.6h-1.6v-7.6Zm2.59 1a.95.95 0 0 1 1.9 0 .95.95 0 0 1-1.9 0Zm.16 1.4h1.59v5.2h-1.6v-5.2Zm4.76 1.49v1.85c0 .45.4.49 1.1.45v1.41c-2.08.21-2.69-.4-2.69-1.86v-1.85h-.84v-1.5h.84v-.98l1.6-.47v1.45h1.08v1.5h-1.09Zm6.07 2.25v1.46h-4.24V53.6l2-2.7h-1.9v-1.46h4.03v1.04l-2 2.7h2.1Z\" />\n    </svg>\n  )\n);\n"
  },
  {
    "path": "website/src/logos/BuilderLogo.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const BuilderLogo = component$<HTMLAttributes<SVGSVGElement>>(\n  (props) => (\n    <svg\n      viewBox=\"0 0 157 64\"\n      role=\"img\"\n      aria-label=\"Builder.io logo\"\n      {...props}\n    >\n      <path\n        fill=\"#18b4f4\"\n        d=\"M30.72 24.82A9.22 9.22 0 0 1 27.29 32L2.65 18a1.35 1.35 0 0 1-.26-.19 1.3 1.3 0 0 1 .91-2.23h18.19a9.23 9.23 0 0 1 9.23 9.24\"\n      />\n      <path\n        fill=\"#fd6b3c\"\n        d=\"M30.72 39.18a9.23 9.23 0 0 1-9.23 9.24H3.3a1.3 1.3 0 0 1-.9-2.23 1.29 1.29 0 0 1 .25-.2l9.7-5.5L27.29 32a9.22 9.22 0 0 1 3.43 7.19\"\n      />\n      <path\n        fill=\"#a97ff2\"\n        d=\"m27.3 32-14.95 8.49-9.7 5.5a1.24 1.24 0 0 0-.26.2 20.3 20.3 0 0 0 5.77-14.2A20.29 20.29 0 0 0 2.4 17.82a1.33 1.33 0 0 0 .26.2Z\"\n      />\n      <path\n        class=\"text-black dark:text-white\"\n        fill=\"currentColor\"\n        d=\"M50.92 27.62c4.26 0 6.66 3.4 6.66 7.53s-2.4 7.5-6.66 7.5a5.42 5.42 0 0 1-4.85-2.39l-.38 2.05h-2.67V22.53h3.3v7.3a5.32 5.32 0 0 1 4.6-2.2m-.66 12.12c2.49 0 4.04-2.02 4.04-4.6 0-2.63-1.55-4.62-4.04-4.62s-4.04 1.99-4.04 4.62c0 2.58 1.52 4.6 4.04 4.6m18.91-3.35v-8.44h3.3v8.27c0 3.7-1.69 6.42-6.34 6.42s-6.33-2.74-6.33-6.42v-8.27h3.29v8.44c0 2.24 1.05 3.34 3.04 3.34s3.04-1.1 3.04-3.34m5.93-12.87a2.17 2.17 0 1 1 4.33 0 2.04 2.04 0 0 1-2.15 2.13 2.09 2.09 0 0 1-2.18-2.13m58.74 0a2.16 2.16 0 1 1 4.32 0 2.04 2.04 0 0 1-2.15 2.13 2.08 2.08 0 0 1-2.17-2.13m-4.16 14.61a2.08 2.08 0 0 1 2.15 2.17 2.04 2.04 0 0 1-2.16 2.13 2.07 2.07 0 0 1-2.16-2.13 2.09 2.09 0 0 1 2.17-2.17m-1.13-10.32.47.03v3.07a5.95 5.95 0 0 0-.75-.06c-2.32 0-3.7 1.22-3.7 4v7.46h-3.3V27.96h2.66l.39 1.99a4.55 4.55 0 0 1 4.23-2.13m-52.93.14h3.3v14.36h-3.3Zm6.59 14.36v-19.8h3.29v19.8Zm16.88-19.8h3.28v19.8h-2.65l-.39-2.05a5.38 5.38 0 0 1-4.84 2.4c-4.24 0-6.64-3.4-6.64-7.5s2.4-7.54 6.64-7.54a5.3 5.3 0 0 1 4.6 2.22Zm-3.91 8c-2.5 0-4.04 2-4.04 4.63 0 2.58 1.55 4.6 4.04 4.6s4.04-2.02 4.04-4.6c0-2.64-1.52-4.63-4.04-4.63Zm23.27 7.87a6.75 6.75 0 0 1-6.53 4.26c-4.34 0-7.16-3.24-7.16-7.53 0-4.18 2.88-7.5 7.14-7.5s7.05 3.24 7.05 7.45a4.07 4.07 0 0 1-.09 1.02H108a3.85 3.85 0 0 0 4.01 3.73 3.6 3.6 0 0 0 3.49-2.2Zm-10.4-4.74h7.64a3.65 3.65 0 0 0-3.8-3.35 3.75 3.75 0 0 0-3.84 3.35m26.31-5.7h3.3v14.37h-3.3Zm5.65 7.2a7.46 7.46 0 1 1 14.91 0 7.46 7.46 0 1 1-14.91 0m7.44 4.6c2.4 0 4.18-1.83 4.18-4.6s-1.77-4.62-4.18-4.62-4.16 1.83-4.16 4.62 1.78 4.6 4.16 4.6\"\n      />\n    </svg>\n  )\n);\n"
  },
  {
    "path": "website/src/logos/DailyDevLogo.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\nimport clsx from 'clsx';\n\nexport const DailyDevLogo = component$<HTMLAttributes<SVGSVGElement>>(\n  ({ class: className, ...props }) => (\n    <svg\n      viewBox=\"0 0 163 64\"\n      role=\"img\"\n      aria-label=\"daily.dev logo\"\n      class={clsx('text-[#0D1217] dark:text-white', className)}\n      fill=\"currentColor\"\n      {...props}\n    >\n      <path\n        fill-rule=\"evenodd\"\n        d=\"m44.84 32.01-5.5-5.5L42.09 21l8.95 8.94a2.92 2.92 0 0 1 0 4.13L40.02 45.08a2.92 2.92 0 0 1-4.13-4.12Z\"\n        opacity=\".5\"\n      />\n      <path\n        fill-rule=\"evenodd\"\n        d=\"M35.9 18.92a2.92 2.92 0 0 1 4.13 0l2.07 2.06L18 45.08a2.92 2.92 0 0 1-4.13 0L11.8 43Zm-10.32 7.57-4.13 4.13-5.51-5.5-6.89 6.87 5.51 5.51L11.8 43l-8.94-8.94a2.92 2.92 0 0 1 0-4.13l11-11.01a2.92 2.92 0 0 1 4.14 0Zm38.57 1.02v9.36h5.15l1.1 3.12h-6.25a3.12 3.12 0 0 1-3.11-3.12v-9.36a3.12 3.12 0 0 1 3.11-3.11h5.15v3.11h1.1v-6.23a1.56 1.56 0 0 1 1.55-1.56h1.57v18.7A1.56 1.56 0 0 1 71.96 40H70.4V27.5ZM79.75 40a3.12 3.12 0 0 1-3.12-3.12v-3.12a3.12 3.12 0 0 1 3.11-3.12h5.15v3.12H86v-6.24h-8.6v-1.55a1.56 1.56 0 0 1 1.56-1.56h7.01a3.12 3.12 0 0 1 3.12 3.11v10.92A1.56 1.56 0 0 1 87.53 40h-1.56v-6.24h-6.24v3.12h5.15l1.1 3.12Zm12.47 0V25.96a1.56 1.56 0 0 1 1.56-1.56h1.56v14.03a1.56 1.56 0 0 1-1.56 1.56Zm3.12-18.7a1.53 1.53 0 0 1-1.55 1.55 1.53 1.53 0 0 1-1.11-.45 1.48 1.48 0 0 1-.46-1.1 1.5 1.5 0 0 1 .46-1.12 1.53 1.53 0 0 1 1.1-.45 1.5 1.5 0 0 1 1.1.45 1.52 1.52 0 0 1 .46 1.12ZM98.46 40V21.28a1.56 1.56 0 0 1 1.55-1.56h1.56v18.7a1.56 1.56 0 0 1-1.56 1.57Zm10.5 0-4.2-13.2a1.57 1.57 0 0 1 1.05-1.94l1.48-.45 3.43 11.2 3.08-10.1a1.54 1.54 0 0 1 1.94-1.03l1.43.45-5.3 17.54a3.12 3.12 0 0 1-2.98 2.2h-2.57a1.56 1.56 0 0 1-1.56-1.55v-1.57h2.59a1.61 1.61 0 0 0 1.62-1.55Z\"\n      />\n      <path\n        fill-rule=\"evenodd\"\n        d=\"M131.81 39.51a4.64 4.64 0 0 1-2.79.82 5.12 5.12 0 0 1-2.67-.7 4.84 4.84 0 0 1-1.85-2 7.44 7.44 0 0 1 0-6.17 4.83 4.83 0 0 1 1.85-2.02 5.12 5.12 0 0 1 2.67-.7 4.64 4.64 0 0 1 2.8.82 4.3 4.3 0 0 1 1.6 2.2v-6.81h1.87v15.24h-1.88v-2.88a4.3 4.3 0 0 1-1.6 2.2Zm-9.56-1.52v2.2h-2.27v-2.2Zm7.3.7a3.63 3.63 0 0 1-2.76-1.1 4.95 4.95 0 0 1 0-6.08 3.63 3.63 0 0 1 2.77-1.1 3.9 3.9 0 0 1 1.99.5 3.5 3.5 0 0 1 1.37 1.45 4.65 4.65 0 0 1 .49 2.19 4.59 4.59 0 0 1-.5 2.17 3.58 3.58 0 0 1-1.36 1.45 3.84 3.84 0 0 1-2 .52Zm16.27 1.13a6.1 6.1 0 0 1-2.55.51 5.82 5.82 0 0 1-2.88-.7 4.95 4.95 0 0 1-1.97-2 7.05 7.05 0 0 1 0-6.17 4.93 4.93 0 0 1 1.97-2.02 5.82 5.82 0 0 1 2.88-.7 5.69 5.69 0 0 1 2.87.7 4.82 4.82 0 0 1 1.88 1.88 5.27 5.27 0 0 1 .64 2.59 5.6 5.6 0 0 1-.08 1.03h-9.04a3.96 3.96 0 0 0 1.1 2.9 3.6 3.6 0 0 0 2.55.97 3.67 3.67 0 0 0 2.27-.7 2.85 2.85 0 0 0 1.12-1.84h2a4.72 4.72 0 0 1-2.76 3.55Zm.95-5.79h-7.23a3.86 3.86 0 0 1 1.14-2.8 3.7 3.7 0 0 1 2.59-.97 3.95 3.95 0 0 1 1.79.42 3.01 3.01 0 0 1 1.3 1.25 3.85 3.85 0 0 1 .41 2.1Zm14.25-5.14-4.43 11.3h-2.22l-4.43-11.3h2.02l3.54 9.3 3.5-9.3Z\"\n        opacity=\".5\"\n      />\n    </svg>\n  )\n);\n"
  },
  {
    "path": "website/src/logos/DigitalOceanLogo.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const DigitalOceanLogo = component$<HTMLAttributes<SVGSVGElement>>(\n  ({ ...props }) => (\n    <svg\n      viewBox=\"0 0 200 64\"\n      role=\"img\"\n      aria-label=\"DigitalOcean logo\"\n      fill=\"#0069ff\"\n      {...props}\n    >\n      <path d=\"M60.87 25.06a12.05 12.05 0 0 0-6.98-2h-5.96V42h5.96a11.42 11.42 0 0 0 6.98-2.08 7 7 0 0 0 2.4-3.03 11.13 11.13 0 0 0 .86-4.47 11.08 11.08 0 0 0-.85-4.43 6.72 6.72 0 0 0-2.41-2.93Zm-9.45 1.24h1.88a9.9 9.9 0 0 1 5.12 1.2c1.43.88 2.18 2.54 2.18 4.92 0 2.48-.75 4.2-2.18 5.15a9.24 9.24 0 0 1-5.08 1.24h-1.9V26.29Zm16.88-3.46a2.06 2.06 0 0 0-2.09 2.02 1.9 1.9 0 0 0 .62 1.47 2.02 2.02 0 0 0 1.47.62 1.9 1.9 0 0 0 1.46-.62 2.07 2.07 0 0 0 .62-1.47 1.79 1.79 0 0 0-.62-1.43 2.04 2.04 0 0 0-1.46-.59Zm-1.73 5.83h3.36v13.37h-3.36Zm15.58 1.11a5.01 5.01 0 0 0-3.36-1.43 6.17 6.17 0 0 0-4.6 1.89 6.62 6.62 0 0 0-1.8 4.79 6.78 6.78 0 0 0 1.8 4.8 6.17 6.17 0 0 0 4.6 1.88 5.21 5.21 0 0 0 3.32-1.07v.32a3.58 3.58 0 0 1-.88 2.58 3.28 3.28 0 0 1-2.4.88c-1.57 0-2.52-.62-3.72-2.22l-2.28 2.18.06.1a8.18 8.18 0 0 0 2.25 2.03 6.75 6.75 0 0 0 3.75.97 6.43 6.43 0 0 0 4.79-1.82 6.57 6.57 0 0 0 1.8-4.86V28.67h-3.3v1.11Zm-.88 7.89a2.93 2.93 0 0 1-2.32.98 2.82 2.82 0 0 1-2.28-.98 3.77 3.77 0 0 1-.88-2.6 3.85 3.85 0 0 1 .88-2.65 2.94 2.94 0 0 1 2.28-1 2.86 2.86 0 0 1 2.32 1 3.85 3.85 0 0 1 .88 2.64 3.93 3.93 0 0 1-.88 2.6Zm7.03-9h3.36v13.37h-3.35Zm1.73-5.83a2.06 2.06 0 0 0-2.08 2.02 1.9 1.9 0 0 0 .62 1.47 2.02 2.02 0 0 0 1.46.62 1.9 1.9 0 0 0 1.47-.62 2.07 2.07 0 0 0 .62-1.47 1.79 1.79 0 0 0-.62-1.43 2.04 2.04 0 0 0-1.47-.59Zm9 2.25h-3.3v3.62h-1.92v3.06h1.93v5.54a5.29 5.29 0 0 0 1.04 3.68 4.9 4.9 0 0 0 3.62 1.08c.55 0 1.1-.03 1.63-.07h.16v-3.06l-1.14.07a2.13 2.13 0 0 1-1.6-.43 2.79 2.79 0 0 1-.4-1.76v-5.08h3.14v-3.07h-3.13V25.1Zm18.87-2.02h3.35V42h-3.35Zm37.28 14.18a7.97 7.97 0 0 1-1.7 1.56 3.17 3.17 0 0 1-1.72.46 3.1 3.1 0 0 1-2.44-1.1 4.61 4.61 0 0 1-.04-5.65 3.03 3.03 0 0 1 2.41-1.1 4.5 4.5 0 0 1 3.2 1.82l2.21-2.12a6.6 6.6 0 0 0-5.5-2.77 6.52 6.52 0 0 0-4.76 1.99 7.33 7.33 0 0 0 0 9.97 6.4 6.4 0 0 0 4.76 1.99 6.59 6.59 0 0 0 5.7-2.97Zm13.78-6.72a5.44 5.44 0 0 0-1.92-1.6 6.29 6.29 0 0 0-2.77-.59 5.65 5.65 0 0 0-4.56 2.06 7.72 7.72 0 0 0-1.7 5.02 6.95 6.95 0 0 0 1.86 4.98 6.45 6.45 0 0 0 4.86 1.93 6.6 6.6 0 0 0 5.5-2.74l.07-.1-2.19-2.11a8.33 8.33 0 0 1-.75.78 3.74 3.74 0 0 1-.97.72 3.6 3.6 0 0 1-1.7.35 3.16 3.16 0 0 1-2.28-.81 2.9 2.9 0 0 1-.94-2.02h8.9l.03-1.24a8.75 8.75 0 0 0-.36-2.48 7.39 7.39 0 0 0-1.08-2.15Zm-7.33 3.16a3.33 3.33 0 0 1 .88-1.6 2.38 2.38 0 0 1 1.76-.68 2.41 2.41 0 0 1 1.86.68 2.65 2.65 0 0 1 .68 1.57h-5.18Zm20.24-4.01a6.15 6.15 0 0 0-4.17-1.3 7.08 7.08 0 0 0-3.1.72 5.54 5.54 0 0 0-2.28 2.15l.03.03 2.15 2.06a3.44 3.44 0 0 1 3.16-1.9 2.68 2.68 0 0 1 1.73.56 1.72 1.72 0 0 1 .65 1.43v.65a8.34 8.34 0 0 0-2.48-.39 6.47 6.47 0 0 0-4.04 1.17A4.01 4.01 0 0 0 172 38.2a3.8 3.8 0 0 0 1.3 3.03 4.96 4.96 0 0 0 3.23 1.1 5.62 5.62 0 0 0 3.55-1.4v1.11h3.3v-8.6a4.43 4.43 0 0 0-1.5-3.75Zm-5.96 7.24a2.82 2.82 0 0 1 1.6-.4 7.3 7.3 0 0 1 2.54.5v1.3a4.04 4.04 0 0 1-2.9 1 1.98 1.98 0 0 1-1.34-.39 1.22 1.22 0 0 1-.45-.97 1.26 1.26 0 0 1 .55-1.04Zm20.43-6.97a5.01 5.01 0 0 0-3.91-1.57 4.59 4.59 0 0 0-3.23 1.14v-.81h-3.29v13.36h3.36v-7.4a3.52 3.52 0 0 1 .71-2.38 2.37 2.37 0 0 1 2-.85 2.22 2.22 0 0 1 1.75.75 3.2 3.2 0 0 1 .65 2.09V42h3.36v-7.72a6.25 6.25 0 0 0-1.4-4.34Zm-82.64-.27a6.15 6.15 0 0 0-4.18-1.3 7.08 7.08 0 0 0-3.1.72 5.54 5.54 0 0 0-2.28 2.15l.03.03 2.15 2.05a3.44 3.44 0 0 1 3.16-1.88 2.68 2.68 0 0 1 1.73.55 1.72 1.72 0 0 1 .65 1.43v.65a8.35 8.35 0 0 0-2.48-.39 6.47 6.47 0 0 0-4.04 1.17 4.01 4.01 0 0 0-1.53 3.33 3.8 3.8 0 0 0 1.3 3.03 4.96 4.96 0 0 0 3.23 1.1 5.62 5.62 0 0 0 3.55-1.4v1.11h3.29v-8.6a4.62 4.62 0 0 0-1.49-3.75Zm-5.97 7.24a2.82 2.82 0 0 1 1.6-.4 7.3 7.3 0 0 1 2.54.5v1.3a4.04 4.04 0 0 1-2.9 1 1.98 1.98 0 0 1-1.34-.39 1.22 1.22 0 0 1-.45-.97 1.18 1.18 0 0 1 .55-1.04Zm25.71 5.38a9.78 9.78 0 1 1 9.78-9.78 9.78 9.78 0 0 1-9.78 9.78Zm0-16.07a6.32 6.32 0 1 0 6.32 6.32 6.33 6.33 0 0 0-6.32-6.32ZM18.7 48.49V42.1a10.14 10.14 0 0 0 9.4-13.8 9.58 9.58 0 0 0-5.7-5.7A10.14 10.14 0 0 0 8.58 32H2.21a16.55 16.55 0 0 1 21.73-15.67 15.86 15.86 0 0 1 10.4 10.4A16.55 16.55 0 0 1 18.7 48.5Z\" />\n      <path d=\"M18.7 42.1h-6.36v-6.35h6.36Zm-6.36 4.89H7.45V42.1h4.9ZM7.45 42.1h-4.1v-4.07h4.1Z\" />\n    </svg>\n  )\n);\n"
  },
  {
    "path": "website/src/logos/HdmLogo.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const HdmLogo = component$<HTMLAttributes<SVGSVGElement>>((props) => (\n  <svg\n    viewBox=\"0 0 67 64\"\n    role=\"img\"\n    aria-label=\"Stuttgart Media University logo\"\n    {...props}\n  >\n    <path\n      fill=\"#e51433\"\n      d=\"M6.05 3.8v28.33H2V3.8Zm9.25 10.41v17.91h-4.05V14.21Zm10.98 0v17.91h-4.05V14.21ZM35.52 3.8v28.33h-4.04V3.8ZM46.5 14.21v17.91h-4.04V14.21Zm9.25 0v17.91h-4.04V14.21Zm9.25 0v17.91h-4.05V14.21Z\"\n    />\n    <path\n      class=\"text-[#3F4847] dark:text-white\"\n      fill=\"currentColor\"\n      d=\"M3.31 42.71h2.58v4.62H7.2v-9.95H5.9v4.18H3.3v-4.19H2v9.96h1.31Zm8-5.47c-1.9 0-2.87 1.72-2.87 5.11s.97 5.11 2.87 5.11 2.87-1.72 2.87-5.1-.97-5.12-2.87-5.12Zm0 9.07c-.67 0-1.56-.4-1.56-3.96s.9-3.96 1.56-3.96 1.56.41 1.56 3.96-.9 3.96-1.56 3.96Zm6.78 1.15c1.71 0 2.72-1.27 2.74-3.48v-.14h-1.3v.13c-.03 1.62-.47 2.34-1.44 2.34-1.17 0-1.63-1.1-1.63-3.96s.46-3.96 1.63-3.96c.76 0 1.18.65 1.3 2.05v.12h1.32l-.01-.14c-.16-2.08-1.07-3.18-2.62-3.18-1.97 0-2.93 1.67-2.93 5.11s.96 5.11 2.94 5.11Zm9.24-.13v-9.95h-1.31v4.18h-2.58v-4.19h-1.31v9.96h1.3V42.7h2.59v4.62Zm4.04-5.76c-.87-.6-1.63-1.1-1.63-2.04a1.1 1.1 0 0 1 1.2-1.14c.82 0 1.27.55 1.36 1.62l.01.12h1.23V40c-.09-1.73-1.03-2.76-2.53-2.76a2.3 2.3 0 0 0-2.47 2.38c0 1.53 1.1 2.3 2.17 3.05.89.62 1.72 1.2 1.72 2.17 0 .92-.48 1.47-1.3 1.47-.91 0-1.43-.62-1.46-1.73v-.12h-1.24v.13a2.6 2.6 0 0 0 2.59 2.87 2.37 2.37 0 0 0 2.61-2.6c0-1.76-1.2-2.58-2.26-3.3Zm7.53 2.4c-.02 1.62-.47 2.34-1.44 2.34-1.17 0-1.63-1.1-1.63-3.96s.46-3.96 1.63-3.96c.77 0 1.18.65 1.3 2.05l.01.12h1.31v-.14c-.17-2.08-1.07-3.18-2.62-3.18-1.98 0-2.94 1.67-2.94 5.11s.96 5.11 2.94 5.11c1.72 0 2.72-1.27 2.75-3.48v-.14H38.9Zm3.91-1.26h2.58v4.62h1.31v-9.95h-1.3v4.18h-2.6v-4.19h-1.3v9.96h1.3Zm10.58 1.94v-7.27h-1.31v7.24c0 1.17-.4 1.7-1.3 1.7s-1.28-.53-1.28-1.7v-7.24h-1.31v7.27c0 1.81.92 2.81 2.6 2.81s2.6-1 2.6-2.81Zm5.99 1.53h-3.14v-8.8h-1.31v9.95h4.45Zm2.08 0V42.7h2.5v-1.15h-2.5v-3.04h3.38v-1.15h-4.7v9.96H65v-1.15ZM3.93 50.24H2v9.95h1.93c2.35 0 3.4-1.53 3.4-4.97s-1.04-4.98-3.4-4.98Zm-.62 1.15h.43c1.45 0 2.28.63 2.28 3.83s-.83 3.83-2.28 3.83h-.43Zm7.31 4.19h2.5v-1.15h-2.5v-3.04H14v-1.15H9.3v9.95h4.86v-1.15h-3.54Zm10.82-2.7a2.55 2.55 0 0 0-2.8-2.64h-2.46v9.95h1.31v-4.54l1.14-.04 1.53 4.5.03.09h1.38l-1.66-4.86a2.44 2.44 0 0 0 1.53-2.46Zm-3.95-1.49h.78c1.34 0 1.86.44 1.86 1.55s-.52 1.54-1.86 1.54h-.78Zm11.91 4.44-1.6-5.59h-1.9v9.95h1.22v-7.95l1.8 5.95h.9l1.8-5.95v7.95h1.23v-9.95h-1.9Zm6.92-.25h2.5v-1.15h-2.5v-3.04h3.38v-1.15h-4.69v9.95h4.85v-1.15h-3.54Zm7.46-5.34h-1.93v9.95h1.93c2.35 0 3.4-1.53 3.4-4.97s-1.05-4.98-3.4-4.98Zm-.62 1.15h.43c1.45 0 2.28.63 2.28 3.83s-.83 3.83-2.28 3.83h-.43Zm6-1.15h1.31v9.95h-1.31zM54 55.58h2.5v-1.15H54v-3.04h3.38v-1.15H52.7v9.95h4.86v-1.15H54Zm9.69 1.23-2.3-6.57h-1.85v9.95h1.3v-7.87l2.8 7.87H65v-9.95h-1.31Z\"\n    />\n  </svg>\n));\n"
  },
  {
    "path": "website/src/logos/LambdaTestLogo.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const LambdaTestLogo = component$<HTMLAttributes<SVGSVGElement>>(\n  (props) => (\n    <svg\n      viewBox=\"0 0 196 64\"\n      role=\"img\"\n      aria-label=\"LambdaTest logo\"\n      {...props}\n    >\n      <path\n        fill=\"#0ebac5\"\n        fill-rule=\"evenodd\"\n        d=\"M13.37 45.73V42.8a.8.8 0 0 0-.32-.63l-.09-.12-.1-.1c-.34-.19-.41-.23-.45-.24l-5.23-3V26.55l5.01-2.86.37-.21.08-.05 5.21-2.98 5.02 2.87.43.24 5.23 2.99v3.98c0 .28.15.54.4.68l2.57 1.47a.8.8 0 0 0 1.2-.69v-6.62a2 2 0 0 0-1.04-1.8l-.33-.19-6.05-3.45-.33-.19-5.96-3.4a2.1 2.1 0 0 0-2.18-.06l-.33.2-5.73 3.27-.24.13-.09.05-.32.19-5.98 3.41c-.3.15-.6.41-.8.74q-.31.5-.32 1.09V39.9a2 2 0 0 0 1.05 1.8l.32.18 6.06 3.46.33.18 1.38.87a.8.8 0 0 0 1.23-.67M29.73 34.6a.8.8 0 0 0-1.2.7v.73l-13.28-7.57-.45-.26c-.4-.23-.9-.2-1.28.06l-.35.2-1.96 1.11-.72.41-.07.04a1.17 1.17 0 0 0-.42 1.62l.45.76.46.78a1.2 1.2 0 0 0 1.64.4l.84-.48.82-.46 1.6.92v14.26a1.2 1.2 0 0 0 1.99.86l1.76-1.4v-.01c.31-.25.47-.62.44-1.01v-10.3l9.55 5.46c.6.34 1.26.11 1.72-.46l1.2-1.22a.8.8 0 0 0 .24-.56v-2.42a.8.8 0 0 0-.4-.68zm11.55 4.66a.6.6 0 0 1-.4-.17.5.5 0 0 1-.17-.38V24.26q0-.25.17-.4t.4-.16h3.16q.25 0 .41.16t.16.4v11.51h6.78a.57.57 0 0 1 .59.58v2.36q0 .24-.17.4a.6.6 0 0 1-.42.15zm12.11 0a.5.5 0 0 1-.33-.14.4.4 0 0 1-.14-.33q0-.12.02-.2l5.26-14.24q.24-.65.9-.65h3.53q.69 0 .9.65l5.27 14.24q.03.08.03.2 0 .18-.15.33-.14.14-.33.14h-2.94a.8.8 0 0 1-.76-.49l-.82-2.15h-5.92l-.81 2.15a.8.8 0 0 1-.77.5zm5.47-5.98h4.02l-2-5.66zm12.27 5.98a.6.6 0 0 1-.42-.15.5.5 0 0 1-.17-.4V24.28q0-.25.17-.4a.6.6 0 0 1 .42-.18h2.56q.56 0 .8.5l3.9 6.84 3.9-6.85a.9.9 0 0 1 .82-.49h2.55a.57.57 0 0 1 .59.58v14.43q0 .24-.17.4a.6.6 0 0 1-.42.15H82.8a.6.6 0 0 1-.4-.17.5.5 0 0 1-.16-.38v-8.1l-2.44 4.4q-.3.52-.8.52h-1.21q-.45 0-.8-.51l-2.41-4.4v8.09q0 .24-.17.4a.6.6 0 0 1-.42.15zm18.76 0a.6.6 0 0 1-.4-.17.5.5 0 0 1-.17-.38V24.28q0-.25.16-.4.16-.18.4-.18h7q2.86 0 4.26 1.16t1.4 3.29q0 1.07-.57 1.84-.58.78-1.28 1.14.93.39 1.56 1.32.63.91.63 2.08 0 2.25-1.5 3.49t-4.3 1.24zm6.5-9.4q.84 0 1.3-.44.45-.45.45-1.16 0-.69-.44-1.12-.45-.45-1.3-.44h-2.83v3.16zm.21 6.4q.88 0 1.37-.5.48-.5.48-1.23 0-.76-.5-1.26-.49-.5-1.35-.5h-3.03v3.5zm9.27 3a.6.6 0 0 1-.4-.17.5.5 0 0 1-.17-.38V24.28q0-.25.16-.4.15-.18.4-.18h5.95q3.34 0 5.2 1.57 1.85 1.58 1.94 4.5a52 52 0 0 1 0 3.4q-.23 6.1-7.03 6.1zm5.94-3.33q1.43 0 2.1-.67t.72-2.13a24 24 0 0 0 0-3.31q-.04-1.42-.77-2.1-.74-.68-2.16-.68h-2.15v8.89zm8.86 3.33a.5.5 0 0 1-.33-.14.4.4 0 0 1-.15-.33q0-.12.03-.2l5.26-14.24q.22-.65.9-.65h3.53q.68 0 .9.65l5.27 14.24q.03.08.02.2 0 .18-.14.33-.15.14-.33.14h-2.94a.8.8 0 0 1-.77-.49l-.81-2.15h-5.92l-.82 2.15a.8.8 0 0 1-.76.5zm5.47-5.98h4.02l-2.01-5.66z\"\n        clip-rule=\"evenodd\"\n      />\n      <path\n        class=\"text-black dark:text-white\"\n        fill=\"currentColor\"\n        fill-rule=\"evenodd\"\n        d=\"M140.8 39.48a.6.6 0 0 1-.42-.15.5.5 0 0 1-.17-.4V27.55h-3.98a.6.6 0 0 1-.42-.16.5.5 0 0 1-.17-.4V24.5q0-.25.17-.4a.6.6 0 0 1 .42-.17h12.27a.57.57 0 0 1 .59.57V27q0 .24-.17.4a.6.6 0 0 1-.42.15h-3.97v11.38q0 .24-.17.4a.6.6 0 0 1-.42.15zm10.84 0a.6.6 0 0 1-.4-.16.5.5 0 0 1-.16-.4V24.5q0-.25.16-.4.16-.18.4-.17h10.67a.57.57 0 0 1 .59.57v2.2q0 .25-.17.4a.6.6 0 0 1-.42.16h-7.14v2.82h6.64a.57.57 0 0 1 .59.58v2.02q0 .25-.17.41a.6.6 0 0 1-.42.17h-6.64v2.89h7.32a.57.57 0 0 1 .59.58v2.2q0 .24-.17.4a.6.6 0 0 1-.42.15zm19.94.23q-2.2 0-3.73-.63a5.4 5.4 0 0 1-2.33-1.64 4 4 0 0 1-.84-2.22q0-.2.15-.34a.5.5 0 0 1 .35-.13h3q.28 0 .45.09t.37.3q.3.55.91.89.63.34 1.66.34a4 4 0 0 0 1.88-.36q.66-.37.66-1.02a1 1 0 0 0-.34-.76q-.34-.3-1.09-.54a24 24 0 0 0-2.14-.52 9.4 9.4 0 0 1-4.1-1.62 3.8 3.8 0 0 1-1.35-3.11q0-1.38.78-2.46a5 5 0 0 1 2.21-1.68 9 9 0 0 1 3.34-.6q1.98 0 3.44.68a6 6 0 0 1 2.24 1.7q.78 1 .83 1.98 0 .2-.14.34t-.34.15h-3.16a.9.9 0 0 1-.77-.4q-.15-.47-.7-.79a3 3 0 0 0-1.4-.32q-.95 0-1.47.33t-.52.98.68 1.01 2.53.74q2.12.39 3.38.95 1.25.57 1.85 1.47t.6 2.27q0 1.52-.88 2.63-.89 1.1-2.44 1.7-1.56.59-3.58.59m13.13-.23a.6.6 0 0 1-.42-.15.5.5 0 0 1-.17-.4V27.55h-3.98a.6.6 0 0 1-.42-.16.5.5 0 0 1-.17-.4V24.5q0-.25.17-.4a.6.6 0 0 1 .42-.17h12.27a.57.57 0 0 1 .59.57V27q0 .24-.17.4a.6.6 0 0 1-.42.15h-3.97v11.38q0 .24-.18.4a.6.6 0 0 1-.41.15z\"\n        clip-rule=\"evenodd\"\n      />\n    </svg>\n  )\n);\n"
  },
  {
    "path": "website/src/logos/MotionLogo.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const MotionLogo = component$<HTMLAttributes<SVGSVGElement>>((props) => (\n  <svg\n    viewBox=\"0 0 152 64\"\n    role=\"img\"\n    aria-label=\"Motion logo\"\n    fill=\"currentColor\"\n    {...props}\n  >\n    <g class=\"text-[#151515] dark:text-[#EFEFEF]\">\n      <path d=\"M23.08 10.04a21.85 21.85 0 0 0-16.96 10.6c0 .03 1.19.05 2.76.05 1.56 0 2.95.03 3.2.05 1.28.15 2.3.64 3.12 1.49.74.76 1.18 1.6 1.48 2.78.25.98.26 1.16.29 4.57L17 32.8l.99-4.25c.54-2.34 1.05-4.46 1.13-4.72.5-1.7 1.3-2.86 2.27-3.24.22-.09.38-.11.76-.11.44 0 .52 0 .76.13.51.25.9.8 1.12 1.57.27.96.26.65.29 9.07.02 7.22.03 7.8.11 8.04.18.54.57.72.84.4.18-.22.46-.84.65-1.42.08-.26.89-3.53 1.78-7.27l1.77-7.3c.65-2.18 1.78-3.34 3.2-3.24.99.07 1.56.85 1.85 2.54.08.41.1 1.24.12 7.3l.03 6.82.1.4c.29 1.1.94 1.78 1.86 1.93.21.03 1.7.05 4.5.04l4.19-.02.16-.46a22.64 22.64 0 0 0 .93-10.03 21.87 21.87 0 0 0-19.97-18.94 33.4 33.4 0 0 0-3.36 0Z\" />\n      <path d=\"M21.9 22.6c-.3.13-.64.7-.96 1.64-.1.29-1.05 4.23-2.12 8.78a384.45 384.45 0 0 1-2.04 8.44c-.05.1-.17.27-.27.36-.17.16-.2.17-.49.17-.3 0-.32 0-.5-.2-.4-.38-.37.28-.4-8.07-.03-7.32-.03-7.45-.13-7.88-.3-1.3-.91-2.19-1.83-2.62-.8-.38-.99-.4-4.89-.4h-3.3l-.27.65a22.08 22.08 0 0 0 8.06 26.88A21.8 21.8 0 0 0 27.8 53.8a21.86 21.86 0 0 0 16.37-11.7l.25-.49h-3.79c-2.36 0-3.94-.02-4.2-.05-1.69-.21-2.84-1.28-3.35-3.1-.27-.97-.26-.78-.3-8.29-.01-4.8-.04-7-.08-7.13-.14-.5-.21-.56-.46-.46-.37.16-.77.83-1.06 1.75-.08.26-.88 3.5-1.77 7.21-.9 3.71-1.72 7.01-1.83 7.34a5.92 5.92 0 0 1-1.37 2.47c-.5.45-.95.6-1.56.51-.95-.14-1.56-.78-1.9-1.97-.25-.86-.25-.65-.28-8.96-.03-8.22-.02-8-.25-8.29-.1-.15-.11-.15-.31-.06Z\" />\n    </g>\n    <path\n      class=\"text-black dark:text-white\"\n      d=\"M64.58 42.29c-.78 0-1.17-.41-1.17-1.23V28.82c0-.8.38-1.2 1.14-1.2.77 0 1.16.4 1.16 1.2v1.41a4.59 4.59 0 0 1 1.77-1.96c.76-.47 1.64-.7 2.65-.7 2.21 0 3.62.96 4.24 2.9a5.26 5.26 0 0 1 4.77-2.9c3.14 0 4.71 1.87 4.71 5.63v7.86c0 .82-.4 1.23-1.19 1.23-.77 0-1.16-.41-1.16-1.23V33.3c0-1.3-.23-2.27-.7-2.87-.45-.63-1.2-.94-2.24-.94-1.14 0-2.05.41-2.73 1.23a5 5 0 0 0-1.02 3.29v7.04c0 .82-.4 1.23-1.2 1.23-.77 0-1.15-.41-1.15-1.23V33.3c0-1.3-.24-2.27-.7-2.87-.45-.63-1.2-.94-2.24-.94a3.4 3.4 0 0 0-2.76 1.23 5.1 5.1 0 0 0-1 3.29v7.04c0 .82-.39 1.23-1.18 1.23Zm29.26.06a6.8 6.8 0 0 1-3.58-.91c-1-.6-1.8-1.46-2.35-2.55a8.89 8.89 0 0 1-.82-3.93c0-1.51.27-2.81.82-3.9a6.18 6.18 0 0 1 2.35-2.59c1.01-.6 2.2-.9 3.58-.9 1.35 0 2.54.3 3.54.9a5.94 5.94 0 0 1 2.36 2.58c.56 1.1.84 2.4.84 3.9a8.7 8.7 0 0 1-.84 3.94 5.97 5.97 0 0 1-2.36 2.55c-1 .6-2.19.9-3.54.9Zm0-1.9c1.32 0 2.37-.48 3.17-1.42.8-.96 1.19-2.31 1.19-4.07 0-1.78-.4-3.14-1.2-4.08a3.94 3.94 0 0 0-3.16-1.41 4 4 0 0 0-3.2 1.4c-.78.95-1.16 2.3-1.16 4.09 0 1.76.38 3.11 1.16 4.07.8.94 1.86 1.41 3.2 1.41Zm15.52 1.9c-1.67 0-2.92-.44-3.75-1.32-.84-.9-1.25-2.2-1.25-3.87v-7.48h-1.95c-.68 0-1.02-.32-1.02-.94 0-.6.34-.91 1.02-.91h1.95v-3.38c0-.8.4-1.2 1.19-1.2.77 0 1.16.4 1.16 1.2v3.38h3.66c.68 0 1.02.3 1.02.9 0 .63-.34.95-1.02.95h-3.66v7.24c0 1.12.23 1.97.7 2.55.46.57 1.22.85 2.27.85.36 0 .67-.04.93-.11.25-.08.47-.12.67-.12.17-.02.31.04.43.17.12.14.18.38.18.7 0 .24-.05.46-.15.65a.7.7 0 0 1-.44.41 5.7 5.7 0 0 1-.93.21c-.36.08-.7.12-1.01.12Zm5.54-17.95c-1.03 0-1.55-.5-1.55-1.47 0-.96.52-1.44 1.54-1.44 1.03 0 1.54.48 1.54 1.44 0 .98-.5 1.47-1.54 1.47Zm0 17.83c-.78 0-1.17-.43-1.17-1.3V28.95c0-.84.39-1.26 1.16-1.26.8 0 1.2.42 1.2 1.26v12c0 .86-.4 1.29-1.2 1.29Zm11.17.12a6.23 6.23 0 0 1-5.93-3.46 8.9 8.9 0 0 1-.81-3.93c0-1.51.27-2.81.8-3.9a6.2 6.2 0 0 1 5.94-3.5c1.36 0 2.54.3 3.55.91a5.93 5.93 0 0 1 2.35 2.58c.56 1.1.84 2.4.84 3.9a8.7 8.7 0 0 1-.84 3.94 5.97 5.97 0 0 1-2.35 2.55c-1.01.6-2.2.9-3.55.9Zm0-1.9c1.32 0 2.37-.48 3.17-1.42.8-.96 1.2-2.31 1.2-4.07 0-1.78-.4-3.14-1.2-4.08a3.94 3.94 0 0 0-3.17-1.41 4 4 0 0 0-3.2 1.4c-.77.95-1.16 2.3-1.16 4.09 0 1.76.39 3.11 1.16 4.07.8.94 1.86 1.41 3.2 1.41Zm11.15 1.84c-.77 0-1.16-.41-1.16-1.23V28.82c0-.8.38-1.2 1.13-1.2.78 0 1.17.4 1.17 1.2v1.44a4.62 4.62 0 0 1 1.97-2.02 6.08 6.08 0 0 1 2.88-.68c3.36 0 5.03 1.88 5.03 5.64v7.86c0 .82-.39 1.23-1.16 1.23-.8 0-1.2-.41-1.2-1.23v-7.72c0-1.33-.25-2.3-.78-2.9-.5-.63-1.31-.94-2.44-.94-1.3 0-2.34.41-3.11 1.23a4.51 4.51 0 0 0-1.13 3.23v7.1c0 .82-.4 1.23-1.2 1.23Z\"\n    />\n  </svg>\n));\n"
  },
  {
    "path": "website/src/logos/NetlifyLogo.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const NetlifyLogo = component$<HTMLAttributes<SVGSVGElement>>(\n  (props) => (\n    <svg viewBox=\"0 0 128 64\" role=\"img\" aria-label=\"Netlify logo\" {...props}>\n      <path\n        class=\"text-[#05BDBA] dark:text-[#32e6e2]\"\n        fill=\"currentColor\"\n        d=\"M30.33 57V44.22l.26-.26h3.2l.26.26V57l-.27.27H30.6Zm0-37.23V7l.26-.27h3.2l.26.27v12.76l-.27.26H30.6ZM19.35 48.02h-.44l-2.2-2.2v-.43l4.12-4.12h2.32l.31.3v2.33Zm-2.63-29.29v-.45l2.19-2.19h.44l4.11 4.11v2.32l-.31.32h-2.32ZM2.28 30.14h18.08l.26.26v3.2l-.26.26H2.28L2 33.59V30.4Zm123.44 0 .27.27v3.19l-.27.26h-18.34l-.27-.26 1.33-3.2.27-.26Z\"\n      />\n      <path\n        class=\"text-[#014847] dark:text-white\"\n        fill=\"currentColor\"\n        d=\"M38.17 38.65h-3.19l-.26-.27v-7.46c0-1.33-.52-2.36-2.13-2.4-.82-.01-1.76 0-2.77.05l-.16.15v9.66l-.26.26h-3.19l-.26-.26V25.62l.26-.26h7.18a5.05 5.05 0 0 1 5.05 5.05v7.97l-.27.26Zm15.46-5.59-.27.27h-8.25l-.26.26a2.4 2.4 0 0 0 2.66 2.13 2.08 2.08 0 0 0 1.86-.8l.27-.27h3.19l.26.27c-.26 1.6-1.6 3.99-5.59 3.99-4.52 0-6.64-3.2-6.64-6.92s2.12-6.92 6.38-6.92 6.39 3.2 6.39 6.92Zm-4-2.66a2.4 2.4 0 0 0-4.78 0l.26.27h4.26Zm11.44 4.26a.7.7 0 0 0 .8.8h2.4l.26.26v2.66l-.27.26h-2.39c-2.4 0-4.52-1.06-4.52-3.99V28.8l-.26-.26h-1.87l-.26-.27v-2.66l.26-.26h1.87l.26-.27v-2.4l.26-.26h3.2l.26.27v2.4l.26.26h2.93l.26.26v2.66l-.26.27h-2.93l-.26.26v5.85Zm9.85 3.99h-3.2l-.26-.26v-18.1l.27-.26h3.19l.26.26v18.1l-.26.25Zm7.18-15.43h-3.2l-.26-.27V20.3l.27-.26h3.19l.26.26v2.66Zm0 15.43h-3.2l-.26-.26V25.62l.27-.27h3.19l.26.27v12.77ZM90.6 20.3v2.65l-.26.27h-2.4a.7.7 0 0 0-.8.8v1.06l.27.27h2.66l.27.26v2.66l-.27.27h-2.66l-.26.26v9.58l-.27.26H83.7l-.26-.26V28.8l-.27-.27H81.3l-.27-.26V25.6l.27-.26h1.86l.27-.27v-1.06c0-2.93 2.13-4 4.52-4h2.39l.27.27Zm9.84 18.61c-1.06 2.66-2.12 4.26-5.85 4.26h-1.33l-.26-.26v-2.66l.26-.27h1.33c1.33 0 1.6-.26 1.87-1.06v-.27L92.2 28.28V25.6l.26-.26h2.4l.26.26 3.2 9.05h.26l3.19-9.05.26-.26h2.4l.26.26v2.67l-4.26 10.64Z\"\n      />\n    </svg>\n  )\n);\n"
  },
  {
    "path": "website/src/logos/PaceLogo.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\n\nexport const PaceLogo = component$<HTMLAttributes<SVGSVGElement>>((props) => (\n  <svg\n    viewBox=\"0 0 95 64\"\n    role=\"img\"\n    aria-label=\"Pace University logo\"\n    {...props}\n  >\n    <path\n      class=\"text-[#4780B5] dark:text-[#ffb81a]\"\n      fill=\"currentColor\"\n      d=\"m86.85 44.05-.98 1.59-.98 1.77-.92-1.71-.98-1.66h-1.4v.13l2.69 4.34v3.05h1.22v-3.05l2.7-4.34v-.12Zm-7.52 0h-5.57v1.16h2.14v6.3h1.22v-6.36h2.15v-1.1ZM67.59 51.5h3.6v-.99h-1.16v-5.5h1.1v-.97h-3.42v.97h1.1v5.5h-1.16v.98Zm-5.69.12c1.77 0 2.94-.86 2.94-2.27 0-1.22-.92-1.95-2.88-2.2-1.22-.12-1.71-.42-1.71-1.1 0-.6.55-.97 1.53-.97 1.04 0 1.53.42 1.65 1.1h1.16a2.53 2.53 0 0 0-2.81-2.27c-1.72 0-2.82.86-2.82 2.14s.92 2.02 2.76 2.2c1.28.13 1.83.5 1.83 1.1 0 .68-.67 1.1-1.71 1.1-1.1 0-1.71-.42-1.78-1.22h-1.22c.13 1.4 1.23 2.38 3.06 2.38Zm-10.64-6.55h1.83a1.27 1.27 0 0 1 1.41 1.35 1.24 1.24 0 0 1-1.4 1.34h-1.84Zm3 3.67a2.29 2.29 0 0 0 1.53-2.32 2.33 2.33 0 0 0-2.57-2.38H50.1v7.46h1.22v-2.57h1.71l1.84 2.57h1.4v-.07ZM43.13 50.4v-2.14h3.12v-1.1h-3.12v-1.95h3.3v-1.16H41.9v7.46h4.64v-1.17h-3.42Zm-5.57-6.35-1.1 2.56-.97 2.75-1.05-2.75-1.1-2.63H32v.13l3.24 7.46h.43l3.24-7.46v-.13h-1.35ZM25.88 51.5h3.61v-.99h-1.16v-5.5h1.1v-.97h-3.42v.97h1.04v5.5h-1.17Zm-4.52-7.46v2.75l.06 2.2-4.52-4.96h-.43v7.46h1.22V48.8l-.06-2.26 4.53 4.96h.42v-7.46ZM9.8 51.62a2.71 2.71 0 0 0 2.88-2.93v-4.64h-1.22v4.7a1.58 1.58 0 0 1-1.66 1.77 1.62 1.62 0 0 1-1.7-1.77v-4.7H6.86v4.64a2.76 2.76 0 0 0 2.93 2.93Z\"\n    />\n    <path\n      class=\"text-[#002D73] dark:text-white\"\n      fill=\"currentColor\"\n      d=\"M82.93 33.34V29.2h9v-6.12h-9V19.1h9.79v-6.3H75.96v26.78h17.06v-6.23Zm-22.62 6.67c7.34 0 11.98-4.28 13.2-10.64h-6.9a6.19 6.19 0 0 1-6.06 3.98c-3.97 0-6.6-2.88-6.6-7.16 0-4.34 2.63-7.15 6.6-7.15a6.1 6.1 0 0 1 5.81 3.48h6.97c-1.4-6.11-5.93-10.15-13.02-10.15-7.89 0-13.45 5.69-13.45 13.82s5.56 13.82 13.45 13.82ZM33.89 23.62l2.39 6.54h-4.95Zm1.53-11.13h-3.05l-12.6 26.72v.37h7.52l1.46-3.42h10.1l1.53 3.42h7.52v-.36ZM13.04 26.2H9.01v-7.34h4.03a3.28 3.28 0 0 1 3.61 3.61 3.38 3.38 0 0 1-3.6 3.73Zm.68-13.39H1.98v26.78H9v-7.4h4.77c5.99 0 10.02-3.85 10.02-9.72-.06-5.8-3.97-9.66-10.08-9.66Z\"\n    />\n  </svg>\n));\n"
  },
  {
    "path": "website/src/logos/StainlessLogo.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\nimport clsx from 'clsx';\nimport { stainlessIconUrl } from '~/images';\n\nexport const StainlessLogo = component$<HTMLAttributes<SVGSVGElement>>(\n  ({ class: className, ...props }) => (\n    <svg\n      viewBox=\"0 0 175 64\"\n      role=\"img\"\n      aria-label=\"Stainless logo\"\n      class={clsx('text-black dark:text-white', className)}\n      fill=\"currentColor\"\n      {...props}\n    >\n      <path d=\"M169.48 32.18a3.55 3.55 0 0 0-1.44-2.25 4.32 4.32 0 0 0-2.62-.86c-.96 0-1.75.24-2.39.72a2.15 2.15 0 0 0-.96 1.84c.03.73.4 1.3 1.13 1.7.75.4 1.72.71 2.9.96 1.64.3 2.98.66 4.03 1.1a5.8 5.8 0 0 1 2.45 1.7c.6.7.89 1.63.89 2.76 0 1.12-.34 2.06-1.03 2.83a5.98 5.98 0 0 1-2.7 1.74c-1.1.37-2.33.55-3.67.55a10.6 10.6 0 0 1-4.1-.75 7.12 7.12 0 0 1-2.9-2.12 5.99 5.99 0 0 1-1.2-3.24l3.73-.24a3.7 3.7 0 0 0 2.25 2.94c.64.27 1.36.4 2.18.4.98 0 1.83-.17 2.56-.54.75-.38 1.13-.96 1.13-1.74 0-.52-.16-.94-.48-1.26a2.98 2.98 0 0 0-1.2-.72 14.5 14.5 0 0 0-1.84-.47 29.17 29.17 0 0 1-4.54-1.23 6.53 6.53 0 0 1-2.42-1.6 3.83 3.83 0 0 1-.92-2.67c0-1.16.3-2.16.89-3a5.77 5.77 0 0 1 2.56-1.98 10.4 10.4 0 0 1 3.92-.68 7.9 7.9 0 0 1 5.01 1.6 6.62 6.62 0 0 1 2.5 4.3l-3.72.2Zm-17.57 0a3.55 3.55 0 0 0-1.43-2.25 4.32 4.32 0 0 0-2.63-.86c-.95 0-1.75.24-2.38.72a2.15 2.15 0 0 0-.96 1.84c.02.73.4 1.3 1.13 1.7.75.4 1.71.71 2.9.96 1.63.3 2.97.66 4.02 1.1a5.8 5.8 0 0 1 2.46 1.7c.59.7.88 1.63.88 2.76 0 1.12-.34 2.06-1.02 2.83a5.97 5.97 0 0 1-2.7 1.74 11.6 11.6 0 0 1-3.68.55c-1.52 0-2.89-.25-4.1-.75a7.12 7.12 0 0 1-2.9-2.12 5.98 5.98 0 0 1-1.19-3.24l3.72-.24c.14.69.39 1.28.75 1.78.39.5.89.89 1.5 1.16.64.27 1.37.4 2.19.4.97 0 1.83-.17 2.56-.54.75-.38 1.12-.96 1.12-1.74 0-.52-.16-.94-.48-1.26a3 3 0 0 0-1.2-.72c-.44-.16-1.06-.31-1.83-.47A29.2 29.2 0 0 1 144.1 36a6.54 6.54 0 0 1-2.42-1.6 3.83 3.83 0 0 1-.92-2.67c0-1.16.3-2.16.89-3a5.77 5.77 0 0 1 2.55-1.98 10.5 10.5 0 0 1 3.93-.68c1.97 0 3.65.54 5.01 1.6a6.61 6.61 0 0 1 2.49 4.3l-3.72.2Zm-30.39 3.34c0-1.89.35-3.55 1.06-4.98a7.94 7.94 0 0 1 3.03-3.3 8.69 8.69 0 0 1 4.54-1.17c1.48 0 2.82.34 4.02 1.03a7.29 7.29 0 0 1 2.94 3.13c.72 1.4 1.12 3.1 1.19 5.15l.03 1.16h-13c.12 1.69.6 3 1.44 3.96.84.93 1.97 1.4 3.38 1.4a4.5 4.5 0 0 0 4.13-2.8l3.78.28a7.6 7.6 0 0 1-2.97 4.09 8.42 8.42 0 0 1-4.94 1.5 8.69 8.69 0 0 1-4.54-1.16 7.94 7.94 0 0 1-3.03-3.3c-.7-1.44-1.06-3.1-1.06-4.99Zm13-1.67c-.21-1.62-.71-2.8-1.5-3.55a3.9 3.9 0 0 0-2.87-1.16c-1.32 0-2.39.42-3.2 1.26a5.85 5.85 0 0 0-1.54 3.45h9.1ZM117.7 20.34v20.02c0 .41.1.72.3.93.23.2.54.3.92.3h1.47v2.97h-2.25c-1.2 0-2.18-.36-2.94-1.1a3.9 3.9 0 0 1-1.12-2.93V20.34h3.62Zm-18.67 6.14.14 4.85-.44-.35c.3-1.66.96-2.88 2-3.68a6.21 6.21 0 0 1 3.9-1.23c1.95 0 3.47.64 4.53 1.91a7.34 7.34 0 0 1 1.6 4.95v11.63h-3.6v-10.5c0-1.67-.28-2.9-.83-3.72-.54-.82-1.44-1.23-2.7-1.23a4 4 0 0 0-3.13 1.3c-.77.84-1.16 2.05-1.16 3.64v10.51h-3.62V26.48h3.31Zm-6.93 0v18.08h-3.6V26.48h3.61Zm.1-6.1v3.44h-3.78v-3.44h3.78ZM81.45 34.22v-.85c0-1.45-.35-2.54-1.06-3.27a3.9 3.9 0 0 0-2.93-1.1 4 4 0 0 0-2.6.86 3.95 3.95 0 0 0-1.32 2.28l-3.82-.23a6.84 6.84 0 0 1 2.62-4.27 8.25 8.25 0 0 1 5.12-1.57c2.41 0 4.28.65 5.6 1.95 1.34 1.3 2 3.2 2 5.73v10.81h-3.23l-.17-3.92h.37a3.9 3.9 0 0 1-.89 2.08 5.62 5.62 0 0 1-2.14 1.6 8.1 8.1 0 0 1-6.41 0 5.63 5.63 0 0 1-2.33-1.8 4.63 4.63 0 0 1-.85-2.77c0-1.16.27-2.1.82-2.8a5.05 5.05 0 0 1 2.22-1.6 18.6 18.6 0 0 1 3.65-.99l6.07-1.16-.72 1.02Zm-8.29 5.5c0 .72.3 1.35.92 1.87.62.53 1.5.75 2.63.68a5.5 5.5 0 0 0 2.46-.68 4.5 4.5 0 0 0 1.7-1.8 5.5 5.5 0 0 0 .65-2.73v-1.78l.51.68-4.36.82-.93.17c-.84.16-1.5.32-1.97.48a2.7 2.7 0 0 0-1.16.79c-.3.34-.45.84-.45 1.5ZM63.13 22.39v16.99c0 .72.18 1.28.55 1.67.36.36.88.54 1.57.54h2.62v2.97h-3c-1.75 0-3.08-.44-4-1.33-.9-.89-1.36-2.17-1.36-3.85v-17h3.62Zm4.78 4.1v2.93H56.75v-2.94h11.16ZM40.55 36.51a6.63 6.63 0 0 0 1.09 2.73A5.74 5.74 0 0 0 43.75 41c.89.41 1.91.62 3.07.62.96 0 1.79-.13 2.5-.38a3.47 3.47 0 0 0 1.66-1.12c.4-.5.58-1.12.58-1.85a3.3 3.3 0 0 0-1.5-2.76c-1-.73-2.63-1.37-4.9-1.94a15.22 15.22 0 0 1-5.77-2.56 5.34 5.34 0 0 1-2.12-4.4 6.21 6.21 0 0 1 4-5.97c1.24-.57 2.69-.85 4.32-.85 1.73 0 3.27.34 4.61 1.02a8.08 8.08 0 0 1 3.2 2.76 8.9 8.9 0 0 1 1.5 4.1l-3.74.2a5.57 5.57 0 0 0-.96-2.46 4.94 4.94 0 0 0-1.94-1.67c-.8-.4-1.71-.61-2.73-.61a5.1 5.1 0 0 0-3.24.99 2.95 2.95 0 0 0-1.2 2.52c0 .78.25 1.42.75 1.95.53.5 1.17.9 1.95 1.19a30.95 30.95 0 0 0 3.37 1.06c2.55.66 4.55 1.58 6 2.76a5.37 5.37 0 0 1 2.22 4.4 6.2 6.2 0 0 1-1.19 3.79 7.46 7.46 0 0 1-3.2 2.38c-1.32.53-2.78.79-4.37.79-1.82 0-3.46-.33-4.91-.99a8.59 8.59 0 0 1-4.95-7.23l3.79-.24Z\" />\n      <image href={stainlessIconUrl} width=\"26\" height=\"29\" y=\"18\" x=\"1\" />\n    </svg>\n  )\n);\n"
  },
  {
    "path": "website/src/logos/TestMuAiLogo.tsx",
    "content": "import { component$, HTMLAttributes } from '@builder.io/qwik';\nimport { clsx } from 'clsx';\n\nexport const TestMuAiLogo = component$<HTMLAttributes<SVGSVGElement>>(\n  ({ class: className, ...props }) => (\n    <svg\n      viewBox=\"0 0 176 64\"\n      role=\"img\"\n      aria-label=\"TestMu AI logo\"\n      fill=\"currentColor\"\n      class={clsx('text-[#0a0a0a] dark:text-white', className)}\n      {...props}\n    >\n      <path d=\"M27.05 19h-6.92v16.76h6.92zm-16.14 0H4v9.53l6.91 7.23z\" />\n      <path d=\"M10.91 35.76H4V45h6.91zm9.22 0h-9.21l5.47 6.93h3.74zm13.79-16.22h17.21v2.55h-7.22v19.78h-2.77V22.09h-7.22zm16.35 14.2q0-2.5.95-4.37a7 7 0 0 1 2.74-2.9 7.6 7.6 0 0 1 4-1.06q2.24 0 3.95.93a6.7 6.7 0 0 1 2.7 2.68 9 9 0 0 1 .99 5.23H53v.22q.07 2.4 1.47 3.83a5 5 0 0 0 3.66 1.43q1.74 0 2.95-.86a4.3 4.3 0 0 0 1.66-2.46h2.64a6.84 6.84 0 0 1-7.06 5.65 8.5 8.5 0 0 1-4.23-1.02 7.4 7.4 0 0 1-2.83-2.94 9.4 9.4 0 0 1-.99-4.37m12.69-1.66a4.6 4.6 0 0 0-1.56-3.22A5 5 0 0 0 58 27.7a4.8 4.8 0 0 0-4.84 4.37zm7.65 4.44q.07 1.46 1.27 2.4 1.25.91 3.18.92 1.72 0 2.77-.67 1.08-.7 1.08-1.82 0-.96-.5-1.47a2.7 2.7 0 0 0-1.34-.7q-.8-.2-2.3-.38-2.1-.26-3.43-.67a5 5 0 0 1-2.16-1.31 3.6 3.6 0 0 1-.83-2.52q0-1.43.8-2.55a5.4 5.4 0 0 1 2.22-1.72 7.5 7.5 0 0 1 3.15-.64q2.86 0 4.65 1.34t2 3.83h-2.6a3 3 0 0 0-1.25-2.1 4.3 4.3 0 0 0-2.7-.84q-1.66 0-2.67.7a2 2 0 0 0-1.02 1.79q0 .83.48 1.28.47.45 1.2.6.77.15 2.3.35 2.13.25 3.5.7 1.4.45 2.22 1.44.86.99.86 2.68 0 1.47-.86 2.58a5.5 5.5 0 0 1-2.32 1.72q-1.47.6-3.25.6-3.17 0-5.12-1.46A5 5 0 0 1 68 36.51zM85.53 28H82.6v-2.4h2.93v-4.56h2.6v4.56h4.1V28h-4.1v9.6q0 1 .39 1.46.4.42 1.4.42h2.83v2.39h-3q-2.28 0-3.27-1.02-.95-1.02-.95-3.22zm9.45-8.46h3.5l7.89 18.53 7.8-18.53h3.43v22.33h-2.7v-17.6l-7.39 17.6h-2.44l-7.38-17.6v17.6h-2.7zm40.52 6.06v16.27h-2.27l-.35-2.17a6.2 6.2 0 0 1-5.18 2.36 6.2 6.2 0 0 1-4.64-1.79q-1.75-1.78-1.75-5.61V25.6h2.6v8.9q0 2.52 1.09 3.86a3.9 3.9 0 0 0 3.14 1.3q2.23 0 3.47-1.59 1.27-1.59 1.27-4.34V25.6zm10.44 16.27 8.49-22.33h3.28l8.45 22.33h-2.95l-2.36-6.03h-9.7l-2.35 6.03zm6.04-8.55h8.05l-4.04-10.75zm16.7-13.78h2.77v22.33h-2.77z\" />\n      <path\n        stroke=\"currentColor\"\n        stroke-width=\".5\"\n        d=\"M33.92 19.54h17.21v2.55h-7.22v19.78h-2.77V22.09h-7.22zm16.35 14.2q0-2.5.95-4.37a7 7 0 0 1 2.74-2.9 7.6 7.6 0 0 1 4-1.06q2.24 0 3.95.93a6.7 6.7 0 0 1 2.7 2.68 9 9 0 0 1 .99 5.23H53v.22q.07 2.4 1.47 3.83a5 5 0 0 0 3.66 1.43q1.74 0 2.95-.86a4.3 4.3 0 0 0 1.66-2.46h2.64a6.84 6.84 0 0 1-7.06 5.65 8.5 8.5 0 0 1-4.23-1.02 7.4 7.4 0 0 1-2.83-2.94 9.4 9.4 0 0 1-.99-4.37Zm12.69-1.66a4.6 4.6 0 0 0-1.56-3.22A5 5 0 0 0 58 27.7a4.8 4.8 0 0 0-4.84 4.37zm7.65 4.43q.07 1.46 1.27 2.4 1.25.91 3.18.92 1.72 0 2.77-.67 1.08-.7 1.08-1.82 0-.96-.5-1.47a2.7 2.7 0 0 0-1.34-.7q-.8-.2-2.3-.38-2.1-.26-3.43-.67a5 5 0 0 1-2.16-1.31 3.6 3.6 0 0 1-.83-2.52q0-1.43.8-2.55a5.4 5.4 0 0 1 2.22-1.72 7.5 7.5 0 0 1 3.15-.64q2.86 0 4.65 1.34t2 3.83h-2.6a3 3 0 0 0-1.25-2.1 4.3 4.3 0 0 0-2.7-.84q-1.66 0-2.67.7a2 2 0 0 0-1.02 1.79q0 .83.48 1.28.47.45 1.2.6.77.15 2.3.35 2.13.25 3.5.7 1.4.45 2.22 1.44.86.99.86 2.68 0 1.47-.86 2.58a5.5 5.5 0 0 1-2.32 1.72q-1.47.6-3.25.6-3.17 0-5.12-1.46A5 5 0 0 1 68 36.51zM85.53 28H82.6v-2.4h2.93v-4.56h2.6v4.56h4.1V28h-4.1v9.6q0 1 .39 1.46.4.42 1.4.42h2.83v2.39h-3q-2.28 0-3.27-1.02-.95-1.02-.95-3.22zm9.45-8.46h3.5l7.89 18.53 7.8-18.53h3.43v22.33h-2.7v-17.6l-7.39 17.6h-2.44l-7.38-17.6v17.6h-2.7zm40.52 6.06v16.27h-2.27l-.35-2.17a6.2 6.2 0 0 1-5.18 2.36 6.2 6.2 0 0 1-4.64-1.79q-1.75-1.78-1.75-5.61V25.6h2.6v8.9q0 2.52 1.09 3.86a3.9 3.9 0 0 0 3.14 1.3q2.23 0 3.47-1.59 1.27-1.59 1.27-4.34V25.6zm10.44 16.27 8.49-22.33h3.28l8.45 22.33h-2.95l-2.36-6.03h-9.7l-2.35 6.03zm6.04-8.55h8.05l-4.04-10.75zm16.7-13.78h2.77v22.33h-2.77z\"\n      />\n    </svg>\n  )\n);\n"
  },
  {
    "path": "website/src/logos/VercelLogo.tsx",
    "content": "import { component$, type HTMLAttributes } from '@builder.io/qwik';\nimport clsx from 'clsx';\n\nexport const VercelLogo = component$<HTMLAttributes<SVGSVGElement>>(\n  ({ class: className, ...props }) => (\n    <svg\n      viewBox=\"0 0 139 64\"\n      role=\"img\"\n      aria-label=\"Vercel logo\"\n      class={clsx('text-black dark:text-white', className)}\n      fill=\"currentColor\"\n      {...props}\n    >\n      <path d=\"M33.04 45 17.52 18 2 45h31.04Zm15.66-1.23 12.97-24.54h-5.61L47.1 37.05l-8.95-17.82h-5.61l12.97 24.54h3.18Zm88.4-24.54v24.54h-4.65V19.23h4.64ZM111.23 34.6c0-1.91.4-3.6 1.2-5.05a8.3 8.3 0 0 1 3.33-3.35 10.3 10.3 0 0 1 5.01-1.18c1.7 0 3.22.37 4.57 1.11a8.05 8.05 0 0 1 3.23 3.28c.8 1.46 1.21 3.23 1.23 5.33v1.07h-13.67a5.7 5.7 0 0 0 1.34 3.6 4.37 4.37 0 0 0 3.3 1.27 4.38 4.38 0 0 0 4.03-2.55l4.75.34a7.8 7.8 0 0 1-3.27 4.15 9.9 9.9 0 0 1-5.51 1.56c-1.91 0-3.58-.4-5-1.18a8.3 8.3 0 0 1-3.35-3.35 10.3 10.3 0 0 1-1.2-5.05Zm13.79-1.73c-.17-1.5-.65-2.6-1.42-3.28a4.02 4.02 0 0 0-2.83-1.07c-1.28 0-2.32.38-3.12 1.14a5.3 5.3 0 0 0-1.49 3.21h8.86ZM103.4 29.6a4.1 4.1 0 0 1 1.45 2.59l4.8-.24a7.15 7.15 0 0 0-1.5-3.67 7.94 7.94 0 0 0-3.19-2.38c-1.28-.58-2.7-.87-4.24-.87-1.92 0-3.58.4-5.01 1.18a8.3 8.3 0 0 0-3.34 3.35 10.3 10.3 0 0 0-1.2 5.05c0 1.91.4 3.6 1.2 5.05A8.3 8.3 0 0 0 95.71 43a10.3 10.3 0 0 0 5 1.18c1.6 0 3.05-.3 4.36-.87a8.25 8.25 0 0 0 3.2-2.52 7.61 7.61 0 0 0 1.48-3.8l-4.83-.21a4.39 4.39 0 0 1-1.41 2.83 4.2 4.2 0 0 1-2.8.97 4.2 4.2 0 0 1-3.48-1.56C96.41 38 96 36.53 96 34.61c0-1.91.4-3.39 1.23-4.42a4.2 4.2 0 0 1 3.48-1.56 4 4 0 0 1 2.7.97Zm-23.56-4.15h4.32l.13 3.52c.3-1 .73-1.77 1.28-2.32.79-.8 1.9-1.2 3.3-1.2h1.77v3.77h-1.8c-1 0-1.83.14-2.48.41a3 3 0 0 0-1.44 1.3 4.8 4.8 0 0 0-.47 2.27v10.57h-4.61V25.45ZM59.9 29.56a10.3 10.3 0 0 0-1.2 5.05c0 1.91.4 3.6 1.2 5.05A8.3 8.3 0 0 0 63.24 43a10.3 10.3 0 0 0 5 1.18 9.9 9.9 0 0 0 5.52-1.56 7.8 7.8 0 0 0 3.27-4.15l-4.75-.34a4.38 4.38 0 0 1-4.03 2.56 4.38 4.38 0 0 1-3.3-1.28 5.7 5.7 0 0 1-1.35-3.6h13.68v-1.07c-.02-2.1-.43-3.87-1.23-5.33a8.04 8.04 0 0 0-3.23-3.28 9.4 9.4 0 0 0-4.57-1.1c-1.91 0-3.58.39-5.01 1.17a8.3 8.3 0 0 0-3.34 3.35Zm11.18.04c.77.69 1.24 1.78 1.41 3.28h-8.85a5.3 5.3 0 0 1 1.49-3.21 4.34 4.34 0 0 1 3.12-1.14 4 4 0 0 1 2.83 1.07Z\" />\n    </svg>\n  )\n);\n"
  },
  {
    "path": "website/src/logos/index.ts",
    "content": "export * from './AlgoliaLogo';\nexport * from './BoltLogo';\nexport * from './BuilderLogo';\nexport * from './DailyDevLogo';\nexport * from './DigitalOceanLogo';\nexport * from './HdmLogo';\nexport * from './LambdaTestLogo';\nexport * from './MotionLogo';\nexport * from './NetlifyLogo';\nexport * from './PaceLogo';\nexport * from './StainlessLogo';\nexport * from './TestMuAiLogo';\nexport * from './VercelLogo';\n"
  },
  {
    "path": "website/src/root.tsx",
    "content": "import { component$ } from '@builder.io/qwik';\nimport { QwikCityProvider, RouterOutlet } from '@builder.io/qwik-city';\nimport { Head } from './components';\nimport './styles/root.css';\nimport { disableTransitions } from './utils';\n\nexport default component$(() => (\n  <QwikCityProvider>\n    <Head />\n    <body\n      class=\"font-lexend flex min-h-screen flex-col bg-white text-slate-600 dark:bg-gray-900 dark:text-slate-400\"\n      window:onResize$={() => disableTransitions()}\n    >\n      <RouterOutlet />\n      {/* {!isDev && <SpeedInsights />} */}\n    </body>\n  </QwikCityProvider>\n));\n"
  },
  {
    "path": "website/src/routes/(legal)/contact/index.mdx",
    "content": "---\ntitle: Contact\nmeta:\n  - name: robots\n    content: noindex, nofollow\n---\n\n# Contact\n\nValibot is an open source project led by Fabian Hiller and developed publicly on GitHub by more than 100 contributors. The project is non-commercial and the source code is available under the MIT licence.\n\n## General inquiries\n\nFor general inquiries, such as bug reports and feature requests, please [create an issue](https://github.com/open-circle/valibot/issues/new) on GitHub. If you have any questions or need help with Valibot, you can [ask the community](https://discord.gg/tkMjQACf2P) on our Discord server.\n\n## Security issues\n\nTo report a vulnerability, please contact us via hello@fabianhiller.com. We recommend that you use the latest versions of the library to ensure that your application remains as secure as possible.\n\n## Partner requests\n\nIf you are interested in a partnership with Valibot, please contact us at hello@fabianhiller.com. We are open to collaborations that help us improve the project and make it more accessible to a wider audience.\n"
  },
  {
    "path": "website/src/routes/(legal)/layout.tsx",
    "content": "import { component$, Slot } from '@builder.io/qwik';\n\nexport default component$(() => (\n  <main class=\"mdx flex w-full max-w-(--breakpoint-lg) flex-1 flex-col self-center py-12 md:py-20 lg:py-32\">\n    <Slot />\n  </main>\n));\n"
  },
  {
    "path": "website/src/routes/(legal)/privacy/index.mdx",
    "content": "---\ntitle: Privacy policy\nmeta:\n  - name: robots\n    content: noindex, nofollow\n---\n\n# Privacy policy\n\n## 1. An overview of data protection\n\n### General\n\nThe following gives a simple overview of what happens to your personal information when you visit our website. Personal information is any data with which you could be personally identified. Detailed information on the subject of data protection can be found in our privacy policy found below.\n\n### Data collection on our website\n\n#### Who is responsible for the data collection on this website?\n\nThe data collected on this website are processed by the website operator. The operator's contact details can be found on the website's contact page.\n\n#### How do we collect your data?\n\nSome data are collected when you provide it to us. This could, for example, be data you enter on the registration or contact form.\n\nOther data are collected automatically by our IT systems when you visit the website. These data are primarily technical data such as the browser and operating system you are using or when you accessed the page. These data are collected automatically as soon as you enter our website.\n\n#### What do we use your data for?\n\nPart of the data is collected to ensure the proper functioning of the website. Other data can be used to analyze how visitors use the site.\n\n#### What rights do you have regarding your data?\n\nYou always have the right to request information about your stored data, its origin, its recipients and the purpose of its collection at no charge. You also have the right to request that it be corrected, blocked or deleted. You can contact us at any time using the address given in the legal notice if you have further questions about the issue of privacy and data protection. You may also, of course, file a complaint with the competent regulatory authorities.\n\n### Analytics\n\nWhen visiting our website, statistical analyses may be made of your surfing behavior. This happens without cookies and the analysis of your surfing behavior is anonymous, i.e. we will not be able to identify you from this data.\n\n## 2. General information and mandatory information\n\n### Data protection\n\nThe operators of this website take the protection of your personal data very seriously. We treat your personal data as confidentially and in accordance with the statutory data protection regulations and this privacy policy.\n\nIf you use this website, various pieces of personal data will be collected. Personal information is any data with which you could be personally identified. This privacy policy explains what information we collect and what we use it for. It also explains how and for what purpose this happens.\n\nPlease note that data transmitted via the internet (e.g. via email communication) may be subject to security breaches. Complete protection of your data from third-party access is not possible.\n\n### Notice concerning the party responsible for this website\n\nThe party responsible for processing data on this website is the Valibot project and its contributors. You can contact us via [GitHub](https://github.com/open-circle/valibot) or [Discord](https://discord.gg/tkMjQACf2P).\n\nThe responsible party is the natural or legal person who alone or jointly with others decides on the purposes and means of processing personal data (names, email addresses, etc.).\n\n### Revocation of your consent to the processing of your data\n\nMany data processing operations are only possible with your express consent. You may revoke your consent at any time with future effect. An informal email making this request is sufficent. The data processed before we receive your request may still be legally processed.\n\n### Right to file complaints with regulatory authorities\n\nIf there has been a breach of data protection legislation, the person affected may file a complaint with the competent regulatory authorities. The competent regulatory authority for matters related to data protection legislation is the data protection officer of the German state in which our company is headquartered. A list of data protection officers and their contact details can be found [here](https://www.bfdi.bund.de/DE/Infothek/Anschriften_Links/anschriften_links-node.html).\n\n### Right to data portability\n\nYou have the right to have data which we process based on your consent or in fullfilment of a contract automatically delivered to yourself or to a third party in a standard, machine-readable format. If you require the direct transfer of data to another responsible party, this will only be done to the extent technically feasible.\n\n### SSL or TLS encryption\n\nThis site uses SSL or TLS encryption for security reasons and for the protection of the transmission of confidential content, such as the inquiries you send to us as the site operator. You can recognize an encrypted connection in your browser's address line when it changes from \"http://\" to \"https://\" and the lock icon is displayed in your browser's address bar.\n\nIf SSL or TLS encryption is activated, the data you transfer to us cannot be read by third parties.\n\n### Information, blocking, deletion\n\nAs permitted by law, you have the right to be provided at any time with information free of charge about any of your personal data that is stored as well as its origin, the recipient and the purpose for which it has been processed. You also have the right to have this data corrected, blocked or deleted. You can contact us at any time using the address given in our legal notice if you have further questions on the topic of personal data.\n\n## 3. Data collection on our website\n\n### Server log files\n\nThe website provider automatically collects and stores information that your browser automatically transmits to us in \"server log files\". These are:\n\n- Browser type and browser version\n- Operating system used\n- Referrer URL\n- Host name of the accessing computer\n- Time of the server request\n- IP address\n\nThese data will not be combined with data from other sources.\n\nThe basis for data processing is Art. 6 (1) (b) GDPR, which allows the processing of data to fulfill a contract or for measures preliminary to a contract.\n\n### Vercel\n\nWe use Vercel, a service of Vercel Inc., Inc., 440 N Barranca Avenue #4133, Covina, CA 91723, United States (\"Vercel\") for the hosting of our website. Your personal data may be processed and stored in the Member States of the United States. To counter these risks, we have agreed the standard data protection clauses of the EU Commission with Vercel for this data transfer and have also defined appropriate protective measures therein, which, depending on the need to protect the data, can also include its encryption and can be improved in accordance with the legal and technical conditions for appropriate data protection. If data is transferred to Vercel in the United States, this is based on Art. 46(2)(c) GDPR.\n\nFor more information see Vercel's [Privacy Policy](https://vercel.com/legal/privacy-policy) and [Terms of Service](https://vercel.com/legal/terms).\n\n### Algolia\n\nWe use Algolia, a service of Algolia, Inc., 301 Howard Street, Suite 300, San Francisco, California 94105, United States (\"Algolia\") for the search on our website. By default, a connection to Algolia is established only when an entry is actively made in the search field. If you do, your personal data may be processed and stored in the Member States of the United States. To counter these risks, we have agreed the standard data protection clauses of the EU Commission with Algolia for this data transfer and have also defined appropriate protective measures therein, which, depending on the need to protect the data, can also include its encryption and can be improved in accordance with the legal and technical conditions for appropriate data protection. If data is transferred to Algolia in the United States, this is based on Art. 46(2)(c) GDPR.\n\nFor more information see Algolia's [Privacy Policy](https://www.algolia.com/policies/privacy/) and [Terms of Service](https://www.algolia.com/policies/terms/).\n"
  },
  {
    "path": "website/src/routes/404.tsx",
    "content": "import { component$ } from '@builder.io/qwik';\nimport { type DocumentHead } from '@builder.io/qwik-city';\nimport { ActionButton, ButtonGroup } from '~/components';\n\nexport const head: DocumentHead = {\n  title: 'Page not found',\n  meta: [\n    {\n      name: 'description',\n      content:\n        \"Sorry, the page you are looking for could not be found. You can write us a message if you can't find what you are looking for or return to the home page.\",\n    },\n  ],\n};\n\nexport default component$(() => (\n  <main class=\"flex w-full max-w-(--breakpoint-lg) flex-1 flex-col self-center py-12 md:py-20 lg:py-32\">\n    <div class=\"mdx\">\n      <h1>Page not found</h1>\n      <p>\n        Sorry, the page you are looking for could not be found. You can create\n        an issue if you can't find what you are looking for or return to the\n        home page.\n      </p>\n    </div>\n\n    <ButtonGroup class=\"mt-10 px-8 md:mt-12 lg:mt-14 lg:px-10\">\n      <ActionButton\n        variant=\"primary\"\n        label=\"Create issue\"\n        type=\"link\"\n        href=\"https://github.com/open-circle/valibot/issues/new\"\n        target=\"_blank\"\n      />\n      <ActionButton\n        variant=\"secondary\"\n        label=\"Home page\"\n        type=\"link\"\n        href=\"/\"\n      />\n    </ButtonGroup>\n  </main>\n));\n"
  },
  {
    "path": "website/src/routes/api/(actions)/args/index.mdx",
    "content": "---\ntitle: args\ndescription: Creates a function arguments transformation action.\nsource: /actions/args/args.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# args\n\nCreates a function arguments transformation action.\n\n```ts\nconst Action = v.args<TInput, TSchema>(schema);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TSchema` <Property {...properties.TSchema} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n\n### Explanation\n\nWith `args` you can force the arguments of a function to match the given `schema`.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `args` can be used.\n\n### Function schema\n\nSchema of a function that transforms a string to a number.\n\n```ts\nconst FunctionSchema = v.pipe(\n  v.function(),\n  v.args(v.tuple([v.pipe(v.string(), v.decimal())])),\n  v.returns(v.number())\n);\n```\n\n## Related\n\nThe following APIs can be combined with `args`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'custom',\n    'looseTuple',\n    'function',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/args/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'function',\n      params: [\n        {\n          spread: true,\n          name: 'args',\n          type: {\n            type: 'array',\n            item: 'any',\n          },\n        },\n      ],\n      return: 'unknown',\n    },\n  },\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'LooseTupleSchema',\n          href: '../LooseTupleSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleItems',\n              href: '../TupleItems/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'LooseTupleIssue',\n                      href: '../LooseTupleIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'StrictTupleSchema',\n          href: '../StrictTupleSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleItems',\n              href: '../TupleItems/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'StrictTupleIssue',\n                      href: '../StrictTupleIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'TupleSchema',\n          href: '../TupleSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleItems',\n              href: '../TupleItems/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'TupleIssue',\n                      href: '../TupleIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'TupleWithRestSchema',\n          href: '../TupleWithRestSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleItems',\n              href: '../TupleItems/',\n            },\n            {\n              type: 'custom',\n              name: 'BaseSchema',\n              href: '../BaseSchema/',\n              generics: [\n                'unknown',\n                'unknown',\n                {\n                  type: 'custom',\n                  name: 'BaseIssue',\n                  href: '../BaseIssue/',\n                  generics: ['unknown'],\n                },\n              ],\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'TupleWithRestIssue',\n                      href: '../TupleWithRestIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'ArgsAction',\n      href: '../ArgsAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/base64/index.mdx",
    "content": "---\ntitle: base64\ndescription: Creates a Base64 validation action.\nsource: /actions/base64/base64.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n  - morinokami\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# base64\n\nCreates a [Base64](https://en.wikipedia.org/wiki/Base64) validation action.\n\n```ts\nconst Action = v.base64<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `base64` you can validate the formatting of a string. If the input is not a Base64 string, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `base64` can be used.\n\n### Base64 schema\n\nSchema to validate a Base64 string.\n\n```ts\nconst Base64Schema = v.pipe(v.string(), v.base64('The data is badly encoded.'));\n```\n\n## Related\n\nThe following APIs can be combined with `base64`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/base64/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'Base64Issue',\n              href: '../Base64Issue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'Base64Action',\n      href: '../Base64Action/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/bic/index.mdx",
    "content": "---\ntitle: bic\ndescription: Creates a BIC validation action.\nsource: /actions/bic/bic.ts\ncontributors:\n  - fabian-hiller\n  - ariskemper\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# bic\n\nCreates a [BIC](https://en.wikipedia.org/wiki/ISO_9362) validation action.\n\n```ts\nconst Action = v.bic<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `bic` you can validate the formatting of a string. If the input is not a BIC, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `bic` can be used.\n\n### BIC schema\n\nSchema to validate a BIC.\n\n```ts\nconst BicSchema = v.pipe(\n  v.string(),\n  v.toUpperCase(),\n  v.bic('The BIC is badly formatted.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `bic`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/bic/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'BicIssue',\n              href: '../BicIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'BicAction',\n      href: '../BicAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/brand/index.mdx",
    "content": "---\ntitle: brand\ndescription: Creates a brand transformation action.\nsource: /actions/brand/brand.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# brand\n\nCreates a brand transformation action.\n\n```ts\nconst Action = v.brand<TInput, TName>(name);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TName` <Property {...properties.TName} />\n\n## Parameters\n\n- `name` <Property {...properties.name} />\n\n### Explanation\n\n`brand` allows you to brand the output type of a schema with a `name`. This ensures that data can only be considered valid if it has been validated by a particular branded schema.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `brand` can be used.\n\n### Branded fruit schema\n\nSchema to ensure that only a validated fruit is accepted.\n\n```ts\n// Create schema and infer output type\nconst FruitSchema = v.pipe(v.object({ name: v.string() }), v.brand('Fruit'));\ntype FruitOutput = v.InferOutput<typeof FruitSchema>;\n\n// This works because output is branded\nconst apple: FruitOutput = v.parse(FruitSchema, { name: 'apple' });\n\n// But this will result in a type error\nconst banana: FruitOutput = { name: 'banana' };\n```\n\n## Related\n\nThe following APIs can be combined with `brand`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/brand/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TName: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BrandName',\n      href: '../BrandName/',\n    },\n  },\n  name: {\n    type: {\n      type: 'custom',\n      name: 'TName',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'BrandAction',\n      href: '../BrandAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TName',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/bytes/index.mdx",
    "content": "---\ntitle: bytes\ndescription: Creates a bytes validation action.\nsource: /actions/bytes/bytes.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# bytes\n\nCreates a [bytes](https://en.wikipedia.org/wiki/Byte) validation action.\n\n```ts\nconst Action = v.bytes<TInput, TRequirement, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `bytes` you can validate the bytes of a string. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `bytes` can be used.\n\n### Bytes schema\n\nSchema to validate a string with 8 bytes.\n\n```ts\nconst BytesSchema = v.pipe(\n  v.string(),\n  v.bytes(8, 'Exactly 8 bytes are required.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `bytes`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/bytes/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'BytesIssue',\n              href: '../BytesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'BytesAction',\n      href: '../BytesAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/check/index.mdx",
    "content": "---\ntitle: check\ndescription: Creates a check validation action.\nsource: /actions/check/check.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# check\n\nCreates a check validation action.\n\n```ts\nconst Action = v.check<TInput, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `check` you can freely validate the input and return `true` if it is valid or `false` otherwise. If the input does not match your `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `check` can be used.\n\n### Check object properties\n\nSchema to check the properties of an object.\n\n```ts\nconst CustomObjectSchema = v.pipe(\n  v.object({\n    list: v.array(v.string()),\n    length: v.number(),\n  }),\n  v.check(\n    (input) => input.list.length === input.length,\n    'The list does not match the length.'\n  )\n);\n```\n\n## Related\n\nThe following APIs can be combined with `check`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['forward', 'pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/check/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'CheckIssue',\n              href: '../CheckIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: {\n            type: 'custom',\n            name: 'TInput',\n          },\n        },\n      ],\n      return: 'boolean',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'CheckAction',\n      href: '../CheckAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/checkItems/index.mdx",
    "content": "---\ntitle: checkItems\ndescription: Creates a check items validation action.\nsource: /actions/checkItems/checkItems.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# checkItems\n\nCreates a check items validation action.\n\n```ts\nconst Action = v.checkItems<TInput, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `checkItems` you can freely validate the items of an array and return `true` if they are valid or `false` otherwise. If an item does not match your `requirement`, you can use `message` to customize the error message.\n\n> The special thing about `checkItems` is that it automatically forwards each issue to the appropriate item.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `checkItems` can be used.\n\n### No duplicate items\n\nSchema to validate that an array has no duplicate items.\n\n```ts\nconst ArraySchema = v.pipe(\n  v.array(v.string()),\n  v.checkItems(\n    (item, index, array) => array.indexOf(item) === index,\n    'Duplicate items are not allowed.'\n  )\n);\n```\n\n## Related\n\nThe following APIs can be combined with `checkItems`.\n\n### Schemas\n\n<ApiList items={['any', 'array', 'custom', 'instance', 'tuple', 'unknown']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/checkItems/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ArrayInput',\n      href: '../ArrayInput/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'CheckItemsIssue',\n              href: '../CheckItemsIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'ArrayRequirement',\n      href: '../ArrayRequirement/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'CheckItemsAction',\n      href: '../CheckItemsAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/creditCard/index.mdx",
    "content": "---\ntitle: creditCard\ndescription: Creates a credit card validation action.\nsource: /actions/creditCard/creditCard.ts\ncontributors:\n  - fabian-hiller\n  - ariskemper\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# creditCard\n\nCreates a [credit card](https://en.wikipedia.org/wiki/Payment_card_number) validation action.\n\n```ts\nconst Action = v.creditCard<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `creditCard` you can validate the formatting of a string. If the input is not a credit card, you can use `message` to customize the error message.\n\n> The following credit card providers are currently supported: American Express, Diners Card, Discover, JCB, Union Pay, Master Card, and Visa.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `creditCard` can be used.\n\n### Credit Card schema\n\nSchema to validate a credit card.\n\n```ts\nconst CreditCardSchema = v.pipe(\n  v.string(),\n  v.creditCard('The credit card is badly formatted.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `creditCard`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/creditCard/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'CreditCardIssue',\n              href: '../CreditCardIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'CreditCardAction',\n      href: '../CreditCardAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/cuid2/index.mdx",
    "content": "---\ntitle: cuid2\ndescription: Creates a Cuid2 validation action.\nsource: /actions/cuid2/cuid2.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# cuid2\n\nCreates a [Cuid2](https://github.com/paralleldrive/cuid2) validation action.\n\n```ts\nconst Action = v.cuid2<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `cuid2` you can validate the formatting of a string. If the input is not an Cuid2, you can use `message` to customize the error message.\n\n> Since Cuid2s are not limited to a fixed length, it is recommended to combine `cuid2` with <Link href=\"../length/\">`length`</Link> to ensure the correct length.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `cuid2` can be used.\n\n### Cuid2 schema\n\nSchema to validate an Cuid2.\n\n```ts\nconst Cuid2Schema = v.pipe(\n  v.string(),\n  v.cuid2('The Cuid2 is badly formatted.'),\n  v.length(10, 'The Cuid2 must be 10 characters long.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `cuid2`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/cuid2/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'Cuid2Issue',\n              href: '../Cuid2Issue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'Cuid2Action',\n      href: '../Cuid2Action/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/decimal/index.mdx",
    "content": "---\ntitle: decimal\ndescription: Creates a decimal validation action.\nsource: /actions/decimal/decimal.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# decimal\n\nCreates a [decimal](https://en.wikipedia.org/wiki/Decimal) validation action.\n\n> The difference between `decimal` and <Link href=\"../digits/\">`digits`</Link> is that `decimal` accepts floating point numbers and negative numbers, while <Link href=\"../digits/\">`digits`</Link> accepts only the digits 0-9.\n\n```ts\nconst Action = v.decimal<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `decimal` you can validate the formatting of a string. If the input is not a decimal, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `decimal` can be used.\n\n### Decimal schema\n\nSchema to validate a decimal.\n\n```ts\nconst DecimalSchema = v.pipe(\n  v.string(),\n  v.decimal('The decimal is badly formatted.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `decimal`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/decimal/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'DecimalIssue',\n              href: '../DecimalIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'DecimalAction',\n      href: '../DecimalAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/description/index.mdx",
    "content": "---\ntitle: description\ndescription: Creates a description metadata action.\nsource: /actions/description/description.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# description\n\nCreates a description metadata action.\n\n```ts\nconst Action = v.description<TInput, TDescription>(description_);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TDescription` <Property {...properties.TDescription} />\n\n## Parameters\n\n- `description_` <Property {...properties['description_']} />\n\n### Explanation\n\nWith `description` you can describe the purpose of a schema. This can be useful when working with AI tools or for documentation purposes.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `description` can be used.\n\n### Username schema\n\nSchema to validate a user name.\n\n```ts\nconst UsernameSchema = v.pipe(\n  v.string(),\n  v.regex(/^[a-z0-9_-]{4,16}$/iu),\n  v.title('Username'),\n  v.description(\n    'A username must be between 4 and 16 characters long and can only contain letters, numbers, underscores and hyphens.'\n  )\n);\n```\n\n## Related\n\nThe following APIs can be combined with `description`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['getDescription', 'pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/description/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TDescription: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  description_: {\n    type: {\n      type: 'custom',\n      name: 'TDescription',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'DescriptionAction',\n      href: '../DescriptionAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TDescription',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/digits/index.mdx",
    "content": "---\ntitle: digits\ndescription: Creates a digits validation action.\nsource: /actions/digits/digits.ts\ncontributors:\n  - fabian-hiller\n  - andrew-3kb\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# digits\n\nCreates a [digits](https://en.wikipedia.org/wiki/Numerical_digit) validation action.\n\n> The difference between `digits` and <Link href=\"../decimal/\">`decimal`</Link> is that `digits` accepts only the digits 0-9, while <Link href=\"../decimal/\">`decimal`</Link> accepts floating point numbers and negative numbers.\n\n```ts\nconst Action = v.digits<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `digits` you can validate the formatting of a string. If the input does not soley consist of numerical digits, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `digits` can be used.\n\n### Digits schema\n\nSchema to validate a digits.\n\n```ts\nconst DigitsSchema = v.pipe(\n  v.string(),\n  v.digits('The string contains something other than digits.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `digits`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/digits/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'DigitsIssue',\n              href: '../DigitsIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'DigitsAction',\n      href: '../DigitsAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/domain/index.mdx",
    "content": "---\ntitle: domain\ndescription: Creates a domain validation action.\nsource: /actions/domain/domain.ts\ncontributors:\n  - yslpn\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# domain\n\nCreates a [domain name](https://en.wikipedia.org/wiki/Domain_name) validation action.\n\n```ts\nconst Action = v.domain<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `domain` you can validate the formatting of a domain string.\nIf the input is not a valid domain, you can use `message` to customize the error message.\n\n> Validates ASCII domains. Limits: 63 chars per label, 253 chars total. <Link href=\"https://en.wikipedia.org/wiki/Internationalized_domain_name\">Internationalized domain names</Link> (IDNs) are not supported, including Punycode-encoded labels.\n> If you need to validate a full URL (including protocol, path, query, etc.), use the <Link href=\"../url/\">`url`</Link> action.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `domain` can be used.\n\n### Domain schema\n\nSchema to validate a domain.\n\n```ts\nconst DomainSchema = v.pipe(\n  v.string(),\n  v.nonEmpty('Please enter your domain.'),\n  v.domain('The domain is badly formatted.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `domain`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/domain/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'DomainIssue',\n              href: '../DomainIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'DomainAction',\n      href: '../DomainAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/email/index.mdx",
    "content": "---\ntitle: email\ndescription: Creates an email validation action.\nsource: /actions/email/email.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# email\n\nCreates an [email](https://en.wikipedia.org/wiki/Email_address) validation action.\n\n```ts\nconst Action = v.email<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `email` you can validate the formatting of a string. If the input is not an email, you can use `message` to customize the error message.\n\n> This validation action intentionally only validates common email addresses. If you are interested in an action that covers the entire specification, please use the <Link href=\"../rfcEmail/\">`rfcEmail`</Link> action instead.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `email` can be used.\n\n### Email schema\n\nSchema to validate an email.\n\n```ts\nconst EmailSchema = v.pipe(\n  v.string(),\n  v.nonEmpty('Please enter your email.'),\n  v.email('The email is badly formatted.'),\n  v.maxLength(30, 'Your email is too long.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `email`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/email/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'EmailIssue',\n              href: '../EmailIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'EmailAction',\n      href: '../EmailAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/emoji/index.mdx",
    "content": "---\ntitle: emoji\ndescription: Creates an emoji validation action.\nsource: /actions/emoji/emoji.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# emoji\n\nCreates an [emoji](https://en.wikipedia.org/wiki/Emoji) validation action.\n\n```ts\nconst Action = v.emoji<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `emoji` you can validate the formatting of a string. If the input is not an emoji, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `emoji` can be used.\n\n### Emoji schema\n\nSchema to validate an emoji.\n\n```ts\nconst EmojiSchema = v.pipe(\n  v.string(),\n  v.emoji('Please provide a valid emoji.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `emoji`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/emoji/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'EmojiIssue',\n              href: '../EmojiIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'EmojiAction',\n      href: '../EmojiAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/empty/index.mdx",
    "content": "---\ntitle: empty\ndescription: Creates an empty validation action.\nsource: /actions/empty/empty.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# empty\n\nCreates an empty validation action.\n\n```ts\nconst Action = v.empty<TInput, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `empty` you can validate that a string or array is empty. If the input is not empty, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `empty` can be used.\n\n### String schema\n\nSchema to validate that a string is empty.\n\n```ts\nconst StringSchema = v.pipe(v.string(), v.empty('The string must be empty.'));\n```\n\n### Array schema\n\nSchema to validate that an array is empty.\n\n```ts\nconst ArraySchema = v.pipe(\n  v.array(v.number()),\n  v.empty('The array must be empty.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `empty`.\n\n### Schemas\n\n<ApiList\n  items={['any', 'array', 'custom', 'instance', 'string', 'tuple', 'unknown']}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/empty/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'LengthInput',\n      href: '../LengthInput/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'EmptyIssue',\n              href: '../EmptyIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'EmptyAction',\n      href: '../EmptyAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/endsWith/index.mdx",
    "content": "---\ntitle: endsWith\ndescription: Creates an ends with validation action.\nsource: /actions/endsWith/endsWith.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# endsWith\n\nCreates an ends with validation action.\n\n```ts\nconst Action = v.endsWith<TInput, TRequirement, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `endsWith` you can validate the end of a string. If the end does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `endsWith` can be used.\n\n### Email schema\n\nSchema to validate an email with a specific domain.\n\n```ts\nconst EmailSchema = v.pipe(v.string(), v.email(), v.endsWith('@example.com'));\n```\n\n## Related\n\nThe following APIs can be combined with `endsWith`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/endsWith/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'EndsWithIssue',\n              href: '../EndsWithIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'EndsWithAction',\n      href: '../EndsWithAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/entries/index.mdx",
    "content": "---\ntitle: Entries\ndescription: Creates an entries validation action.\nsource: /actions/entries/entries.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# entries\n\nCreates an entries validation action.\n\n```ts\nconst Action = v.entries<TInput, TRequirement, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `entries` you can validate the number of entries of an object. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `entries` can be used.\n\n### Exact object entries\n\nSchema to validate an object that does have 5 entries.\n\n```ts\nconst EntriesSchema = v.pipe(\n  v.record(v.string(), v.number()),\n  v.entries(5, 'Object must have 5 entries')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `entries`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'looseObject',\n    'object',\n    'objectWithRest',\n    'record',\n    'strictObject',\n    'variant',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/entries/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'EntriesInput',\n      href: '../EntriesInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'EntriesIssue',\n              href: '../EntriesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'EntriesAction',\n      href: '../EntriesAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/everyItem/index.mdx",
    "content": "---\ntitle: everyItem\ndescription: Creates an every item validation action.\nsource: /actions/everyItem/everyItem.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# everyItem\n\nCreates an every item validation action.\n\n```ts\nconst Action = v.everyItem<TInput, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `everyItem` you can freely validate the items of an array and return `true` if they are valid or `false` otherwise. If not every item matches your `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `everyItem` can be used.\n\n### Sorted array schema\n\nSchema to validate that an array is sorted.\n\n```ts\nconst SortedArraySchema = v.pipe(\n  v.array(v.number()),\n  v.everyItem(\n    (item, index, array) => index === 0 || item >= array[index - 1],\n    'The numbers must be sorted in ascending order.'\n  )\n);\n```\n\n## Related\n\nThe following APIs can be combined with `everyItem`.\n\n### Schemas\n\n<ApiList items={['any', 'array', 'custom', 'instance', 'tuple', 'unknown']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/everyItem/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ArrayInput',\n      href: '../ArrayInput/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'EveryItemIssue',\n              href: '../EveryItemIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'ArrayRequirement',\n      href: '../ArrayRequirement/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'EveryItemAction',\n      href: '../EveryItemAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/examples/index.mdx",
    "content": "---\ntitle: examples\ndescription: Creates an examples metadata action.\nsource: /actions/examples/examples.ts\ncontributors:\n  - EskiMojo14\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# examples\n\nCreates an examples metadata action.\n\n```ts\nconst Action = v.examples<TInput, TExamples>(examples_);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TExamples` <Property {...properties.TExamples} />\n\n## Parameters\n\n- `examples_` <Property {...properties['examples_']} />\n\n### Explanation\n\nWith `examples` you can provide examples for a schema. This can be useful when working with AI tools or for documentation purposes.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `examples` can be used.\n\n### String schema\n\nSchema to validate a string with examples.\n\n```ts\nconst StringSchema = v.pipe(v.string(), v.examples(['foo', 'bar', 'baz']));\n```\n\n### Number schema\n\nSchema to validate a number with examples.\n\n```ts\nconst NumberSchema = v.pipe(v.number(), v.examples([1, 2, 3]));\n```\n\n## Related\n\nThe following APIs can be combined with `examples`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['getExamples', 'pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/examples/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TExamples: {\n    modifier: 'extends',\n    type: {\n      modifier: 'readonly',\n      type: 'array',\n      item: {\n        type: 'custom',\n        name: 'TInput',\n      },\n    },\n  },\n  examples_: {\n    type: {\n      type: 'custom',\n      name: 'TExamples',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'ExamplesAction',\n      href: '../ExamplesAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TExamples',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/excludes/index.mdx",
    "content": "---\ntitle: excludes\ndescription: Creates an excludes validation action.\nsource: /actions/excludes/excludes.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# excludes\n\nCreates an excludes validation action.\n\n```ts\nconst Action = v.excludes<TInput, TRequirement, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `excludes` you can validate the content of a string or array. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `excludes` can be used.\n\n### String schema\n\nSchema to validate that a string does not contain a specific substring.\n\n```ts\nconst StringSchema = v.pipe(\n  v.string(),\n  v.excludes('foo', 'The string must not contain \"foo\".')\n);\n```\n\n### Array schema\n\nSchema to validate that an array does not contain a specific string.\n\n```ts\nconst ArraySchema = v.pipe(\n  v.array(v.string()),\n  v.excludes('foo', 'The array must not contain \"foo\".')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `excludes`.\n\n### Schemas\n\n<ApiList\n  items={['any', 'array', 'custom', 'instance', 'string', 'tuple', 'unknown']}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/excludes/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ContentInput',\n      href: '../ContentInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ContentRequirement',\n      href: '../ContentRequirement/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'ContentInput',\n          href: '../ContentInput/',\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ExcludesIssue',\n              href: '../ExcludesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'ExcludesAction',\n      href: '../ExcludesAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/filterItems/index.mdx",
    "content": "---\ntitle: filterItems\ndescription: Creates a filter items transformation action.\nsource: /actions/filterItems/filterItems.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# filterItems\n\nCreates a filter items transformation action.\n\n```ts\nconst Action = v.filterItems<TInput>(operation);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Parameters\n\n- `operation` <Property {...properties.operation} />\n\n### Explanation\n\nWith `filterItems` you can filter the items of an array. Returning `true` for an item will keep it in the array and returning `false` will remove it.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `filterItems` can be used.\n\n### Filter duplicate items\n\nSchema to filter duplicate items from an array.\n\n```ts\nconst FilteredArraySchema = v.pipe(\n  v.array(v.string()),\n  v.filterItems((item, index, array) => array.indexOf(item) === index)\n);\n```\n\n## Related\n\nThe following APIs can be combined with `filterItems`.\n\n### Schemas\n\n<ApiList items={['any', 'array', 'custom', 'instance', 'tuple', 'unknown']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/filterItems/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ArrayInput',\n      href: '../ArrayInput/',\n    },\n  },\n  operation: {\n    type: {\n      type: 'custom',\n      name: 'ArrayRequirement',\n      href: '../ArrayRequirement/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'FilterItemsAction',\n      href: '../FilterItemsAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/findItem/index.mdx",
    "content": "---\ntitle: findItem\ndescription: Creates a find item transformation action.\nsource: /actions/findItem/findItem.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# findItem\n\nCreates a find item transformation action.\n\n```ts\nconst Action = v.findItem<TInput>(operation);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Parameters\n\n- `operation` <Property {...properties.operation} />\n\n### Explanation\n\nWith `findItem` you can extract the first item of an array that matches the given `operation`.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `findItem` can be used.\n\n### Find duplicate item\n\nSchema to find the first duplicate item in an array.\n\n```ts\nconst DuplicateItemSchema = v.pipe(\n  v.array(v.string()),\n  v.findItem((item, index, array) => array.indexOf(item) !== index)\n);\n```\n\n## Related\n\nThe following APIs can be combined with `findItem`.\n\n### Schemas\n\n<ApiList items={['any', 'array', 'custom', 'instance', 'tuple', 'unknown']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/findItem/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ArrayInput',\n      href: '../ArrayInput/',\n    },\n  },\n  operation: {\n    type: {\n      type: 'custom',\n      name: 'ArrayRequirement',\n      href: '../ArrayRequirement/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'FindItemAction',\n      href: '../FindItemAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/finite/index.mdx",
    "content": "---\ntitle: finite\ndescription: Creates a finite validation action.\nsource: /actions/finite/finite.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# finite\n\nCreates a [finite](https://en.wikipedia.org/wiki/Finite) validation action.\n\n```ts\nconst Action = v.finite<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `finite` you can validate the value of a number. If the input is not a finite number, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `finite` can be used.\n\n### Finite number schema\n\nSchema to validate a finite number.\n\n```ts\nconst FiniteNumberSchema = v.pipe(\n  v.number(),\n  v.finite('The number must be finite.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `finite`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'number', 'unknown']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/finite/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'FiniteIssue',\n              href: '../FiniteIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'unknown',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'FiniteAction',\n      href: '../FiniteAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/flavor/index.mdx",
    "content": "---\ntitle: flavor\ndescription: Creates a flavor transformation action.\nsource: /actions/flavor/flavor.ts\ncontributors:\n  - vktrl\n  - fabian-hiller\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# flavor\n\nCreates a flavor transformation action.\n\n```ts\nconst Action = v.flavor<TInput, TName>(name);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TName` <Property {...properties.TName} />\n\n## Parameters\n\n- `name` <Property {...properties.name} />\n\n### Explanation\n\n`flavor` is a less strict version of <Link href='../brand/'>`brand`</Link> that allows you to flavor the output type of a schema with a `name`. Data is considered valid if it's type is unflavored or has been validated by a schema that has the same flavor.\n\n> `flavor` can also be used as a TypeScript DX hack to improve the editor's autocompletion by displaying only literal types, but still allowing the unflavored root type to be passed.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `flavor` can be used.\n\n### Flavored ID schemas\n\nSchema to ensure that different types of IDs are not mixed up.\n\n```ts\n// Create user ID and order ID schema\nconst UserIdSchema = v.pipe(v.string(), v.flavor('UserId'));\nconst OrderIdSchema = v.pipe(v.string(), v.flavor('OrderId'));\n\n// Infer output types of both schemas\ntype UserId = v.InferOutput<typeof UserIdSchema>;\ntype OrderId = v.InferOutput<typeof OrderIdSchema>;\n\n// This works because output is flavored\nconst userId: UserId = v.parse(UserIdSchema, 'c28443ef...');\nconst orderId: OrderId = v.parse(OrderIdSchema, '4b717520...');\n\n// You can also use unflavored strings\nconst newUserId1: UserId = '2d80cd94...';\n\n// But this will result in a type error\nconst newUserId2: UserId = orderId;\n```\n\n## Related\n\nThe following APIs can be combined with `flavor`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/flavor/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TName: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'FlavorName',\n      href: '../FlavorName/',\n    },\n  },\n  name: {\n    type: {\n      type: 'custom',\n      name: 'TName',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'FlavorAction',\n      href: '../FlavorAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TName',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/graphemes/index.mdx",
    "content": "---\ntitle: graphemes\ndescription: Creates a graphemes validation action.\nsource: /actions/graphemes/graphemes.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# graphemes\n\nCreates a [graphemes](https://en.wikipedia.org/wiki/Grapheme) validation action.\n\n```ts\nconst Action = v.graphemes<TInput, TRequirement, TMessage>(\n  requirement,\n  message\n);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `graphemes` you can validate the graphemes of a string. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `graphemes` can be used.\n\n### Graphemes schema\n\nSchema to validate a string with 8 graphemes.\n\n```ts\nconst GraphemesSchema = v.pipe(\n  v.string(),\n  v.graphemes(8, 'Exactly 8 graphemes are required.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `graphemes`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/graphemes/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'GraphemesIssue',\n              href: '../GraphemesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'GraphemesAction',\n      href: '../GraphemesAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/gtValue/index.mdx",
    "content": "---\ntitle: gtValue\ndescription: Creates a greater than value validation action.\nsource: /actions/gtValue/gtValue.ts\ncontributors:\n  - EltonLobo07\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# gtValue\n\nCreates a greater than value validation action.\n\n```ts\nconst Action = v.gtValue<TInput, TRequirement, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `gtValue` you can validate the value of a string, number, boolean or date. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `gtValue` can be used.\n\n### Number schema\n\nSchema to validate a number with a greater than value.\n\n```ts\nconst NumberSchema = v.pipe(\n  v.number(),\n  v.gtValue(100, 'The number must be greater than 100.')\n);\n```\n\n### Date schema\n\nSchema to validate a date with a greater than year.\n\n```ts\nconst DateSchema = v.pipe(\n  v.date(),\n  v.gtValue(\n    new Date('2000-01-01'),\n    'The date must be greater than 1st January 2000.'\n  )\n);\n```\n\n## Related\n\nThe following APIs can be combined with `gtValue`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'bigint',\n    'boolean',\n    'custom',\n    'date',\n    'number',\n    'string',\n    'unknown',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/gtValue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ValueInput',\n      href: '../ValueInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'GtValueIssue',\n              href: '../GtValueIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'GtValueAction',\n      href: '../GtValueAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/guard/index.mdx",
    "content": "---\ntitle: guard\ndescription: Creates a guard transformation action.\nsource: /actions/guard/guard.ts\ncontributors:\n  - EskiMojo14\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# guard\n\nCreates a guard transformation action.\n\n```ts\nconst Action = v.guard<TInput, TGuard, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TGuard` <Property {...properties.TGuard} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `guard` you can freely validate the input and return `true` if it is valid or `false` otherwise. If the input does not match your `requirement`, you can use `message` to customize the error message.\n\nThis is especially useful if you have an existing type predicate (for example, from an external library).\n\n> `guard` is useful for narrowing known types. For validating completely unknown values, consider [`custom`](../custom/) instead.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `guard` can be used.\n\n### Pixel string schema\n\nSchema to validate a pixel string.\n\n```ts\nconst PixelStringSchema = v.pipe(\n  v.string(),\n  v.guard((input): input is `${number}px` => /^\\d+px$/.test(input))\n);\n```\n\n### Axios Error schema\n\nSchema to validate an object containing an Axios error.\n\n```ts\nimport { isAxiosError } from 'axios';\n\nconst AxiosErrorSchema = v.object({\n  error: v.pipe(\n    v.instance(Error),\n    v.guard(isAxiosError, 'The error is not an Axios error.')\n  ),\n});\n```\n\n## Related\n\nThe following APIs can be combined with `guard`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['forward', 'pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/guard/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TGuard: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'GuardFunction',\n      href: '../GuardFunction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'GuardIssue',\n              href: '../GuardIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TGuard',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TGuard',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'GuardAction',\n      href: '../GuardAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TGuard',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/hash/index.mdx",
    "content": "---\ntitle: hash\ndescription: Creates a hash validation action.\nsource: /actions/hash/hash.ts\ncontributors:\n  - fabian-hiller\n  - ariskemper\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# hash\n\nCreates a [hash](https://en.wikipedia.org/wiki/Hash_function) validation action.\n\n```ts\nconst Action = v.hash<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `types` <Property {...properties.types} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `hash` you can validate the formatting of a string. If the input is not a hash, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `hash` can be used.\n\n### Hash schema\n\nSchema to validate a hash.\n\n```ts\nconst HashSchema = v.pipe(\n  v.string(),\n  v.hash(['md5', 'sha1'], 'The specified hash is invalid.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `hash`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/hash/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'HashIssue',\n              href: '../HashIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  types: {\n    type: {\n      type: 'tuple',\n      items: [\n        {\n          type: 'custom',\n          name: 'HashType',\n          href: '../HashType/',\n        },\n        {\n          type: 'array',\n          spread: true,\n          item: {\n            type: 'custom',\n            name: 'HashType',\n            href: '../HashType/',\n          },\n        },\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'HashAction',\n      href: '../HashAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/hexColor/index.mdx",
    "content": "---\ntitle: hexColor\ndescription: Creates a hex color validation action.\nsource: /actions/hexColor/hexColor.ts\ncontributors:\n  - fabian-hiller\n  - ariskemper\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# hexColor\n\nCreates a [hex color](https://en.wikipedia.org/wiki/Web_colors#Hex_triplet) validation action.\n\n```ts\nconst Action = v.hexColor<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `hexColor` you can validate the formatting of a string. If the input is not a hex color, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `hexColor` can be used.\n\n### Hex color schema\n\nSchema to validate a hex color.\n\n```ts\nconst HexColorSchema = v.pipe(\n  v.string(),\n  v.hexColor('The hex color is badly formatted.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `hexColor`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/hexColor/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'HexColorIssue',\n              href: '../HexColorIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'HexColorAction',\n      href: '../HexColorAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/hexadecimal/index.mdx",
    "content": "---\ntitle: hexadecimal\ndescription: Creates a hexadecimal validation action.\nsource: /actions/hexadecimal/hexadecimal.ts\ncontributors:\n  - fabian-hiller\n  - ariskemper\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# hexadecimal\n\nCreates a [hexadecimal](https://en.wikipedia.org/wiki/Hexadecimal) validation action.\n\n```ts\nconst Action = v.hexadecimal<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `hexadecimal` you can validate the formatting of a string. If the input is not a hexadecimal, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `hexadecimal` can be used.\n\n### Hexadecimal schema\n\nSchema to validate a Hexadecimal string.\n\n```ts\nconst HexadecimalSchema = v.pipe(\n  v.string(),\n  v.hexadecimal('The hexadecimal is badly formatted.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `hexadecimal`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/hexadecimal/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'HexadecimalIssue',\n              href: '../HexadecimalIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'HexadecimalAction',\n      href: '../HexadecimalAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/imei/index.mdx",
    "content": "---\ntitle: imei\ndescription: Creates an IMEI validation action.\nsource: /actions/imei/imei.ts\ncontributors:\n  - fabian-hiller\n  - Danielwinkelmann\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# imei\n\nCreates an [IMEI](https://en.wikipedia.org/wiki/International_Mobile_Equipment_Identity) validation action.\n\n```ts\nconst Action = v.imei<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `imei` you can validate the formatting of a string. If the input is not an imei, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `imei` can be used.\n\n### IMEI schema\n\nSchema to validate an IMEI.\n\n```ts\nconst ImeiSchema = v.pipe(v.string(), v.imei('The imei is badly formatted.'));\n```\n\n## Related\n\nThe following APIs can be combined with `imei`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/imei/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ImeiIssue',\n              href: '../ImeiIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'ImeiAction',\n      href: '../ImeiAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/includes/index.mdx",
    "content": "---\ntitle: includes\ndescription: Creates an includes validation action.\nsource: /actions/includes/includes.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# includes\n\nCreates an includes validation action.\n\n```ts\nconst Action = v.includes<TInput, TRequirement, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `includes` you can validate the content of a string or array. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `includes` can be used.\n\n### String schema\n\nSchema to validate that a string contains a specific substring.\n\n```ts\nconst StringSchema = v.pipe(\n  v.string(),\n  v.includes('foo', 'The string must contain \"foo\".')\n);\n```\n\n### Array schema\n\nSchema to validate that an array contains a specific string.\n\n```ts\nconst ArraySchema = v.pipe(\n  v.array(v.string()),\n  v.includes('foo', 'The array must contain \"foo\".')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `includes`.\n\n### Schemas\n\n<ApiList\n  items={['any', 'array', 'custom', 'instance', 'string', 'tuple', 'unknown']}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/includes/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ContentInput',\n      href: '../ContentInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ContentRequirement',\n      href: '../ContentRequirement/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'ContentInput',\n          href: '../ContentInput/',\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'IncludesIssue',\n              href: '../IncludesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'IncludesAction',\n      href: '../IncludesAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/integer/index.mdx",
    "content": "---\ntitle: integer\ndescription: Creates an integer validation action.\nsource: /actions/integer/integer.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# integer\n\nCreates an [integer](https://en.wikipedia.org/wiki/Integer) validation action.\n\n```ts\nconst Action = v.integer<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `integer` you can validate the value of a number. If the input is not an integer, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `integer` can be used.\n\n### Integer schema\n\nSchema to validate an integer.\n\n```ts\nconst IntegerSchema = v.pipe(\n  v.number(),\n  v.integer('The number must be an integer.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `integer`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'number', 'unknown']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/integer/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'IntegerIssue',\n              href: '../IntegerIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'IntegerAction',\n      href: '../IntegerAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/ip/index.mdx",
    "content": "---\ntitle: ip\ndescription: Creates an IP address validation action.\nsource: /actions/ip/ip.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# ip\n\nCreates an [IP address](https://en.wikipedia.org/wiki/IP_address) validation action.\n\n> This validation action accepts IPv4 and IPv6 addresses. For a more specific validation, you can also use <Link href=\"../ipv4/\">`ipv4`</Link> or <Link href=\"../ipv6/\">`ipv6`</Link>.\n\n```ts\nconst Action = v.ip<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `ip` you can validate the formatting of a string. If the input is not an IP address, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `ip` can be used.\n\n### IP address schema\n\nSchema to validate an IP address.\n\n```ts\nconst IpAddressSchema = v.pipe(\n  v.string(),\n  v.ip('The IP address is badly formatted.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `ip`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/ip/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'IpIssue',\n              href: '../IpIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'IpAction',\n      href: '../IpAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/ipv4/index.mdx",
    "content": "---\ntitle: ipv4\ndescription: Creates an IPv4 address validation action.\nsource: /actions/ipv4/ipv4.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# ipv4\n\nCreates an [IPv4](https://en.wikipedia.org/wiki/IPv4) address validation action.\n\n```ts\nconst Action = v.ipv4<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `ipv4` you can validate the formatting of a string. If the input is not an IPv4 address, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `ipv4` can be used.\n\n### IPv4 schema\n\nSchema to validate an IPv4 address.\n\n```ts\nconst Ipv4Schema = v.pipe(\n  v.string(),\n  v.ipv4('The IP address is badly formatted.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `ipv4`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/ipv4/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'Ipv4Issue',\n              href: '../Ipv4Issue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'Ipv4Action',\n      href: '../Ipv4Action/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/ipv6/index.mdx",
    "content": "---\ntitle: ipv6\ndescription: Creates an IPv6 address validation action.\nsource: /actions/ipv6/ipv6.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# ipv6\n\nCreates an [IPv6](https://en.wikipedia.org/wiki/IPv6) address validation action.\n\n```ts\nconst Action = v.ipv6<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `ipv6` you can validate the formatting of a string. If the input is not an IPv6 address, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `ipv6` can be used.\n\n### IPv6 schema\n\nSchema to validate an IPv6 address.\n\n```ts\nconst Ipv6Schema = v.pipe(\n  v.string(),\n  v.ipv6('The IP address is badly formatted.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `ipv6`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/ipv6/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'Ipv6Issue',\n              href: '../Ipv6Issue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'Ipv6Action',\n      href: '../Ipv6Action/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/isbn/index.mdx",
    "content": "---\ntitle: isbn\ndescription: Creates an ISBN validation action.\nsource: /actions/isbn/isbn.ts\ncontributors:\n  - ysknsid25\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# isbn\n\nCreates an [ISBN](https://en.wikipedia.org/wiki/ISBN) validation action.\n\n```ts\nconst Action = v.isbn<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `isbn` you can validate the formatting of a string. If the input is not an ISBN, you can use `message` to customize the error message.\n\nThis action supports both ISBN-10 and ISBN-13 formats and accepts hyphens and spaces as separators.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `isbn` can be used.\n\n### ISBN schema\n\nSchema to validate an ISBN.\n\n```ts\nconst IsbnSchema = v.pipe(v.string(), v.isbn('The ISBN is badly formatted'));\n\n// Valid ISBN-10 formats:\n// '0-306-40615-2'\n// '0306406152'\n// '0 306 40615 2'\n\n// Valid ISBN-13 formats:\n// '978-0-306-40615-7'\n// '9780306406157'\n// '978 0 306 40615 7'\n```\n\n## Related\n\nThe following APIs can be combined with `isbn`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/isbn/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'IsbnIssue',\n              href: '../IsbnIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'IsbnAction',\n      href: '../IsbnAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/isoDate/index.mdx",
    "content": "---\ntitle: isoDate\ndescription: Creates an ISO date validation action.\nsource: /actions/isoDate/isoDate.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# isoDate\n\nCreates an [ISO date](https://en.wikipedia.org/wiki/ISO_8601) validation action.\n\nFormat: `yyyy-mm-dd`\n\n> The regex used cannot validate the maximum number of days based on year and month. For example, \"2023-06-31\" is valid although June has only 30 days.\n\n```ts\nconst Action = v.isoDate<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `isoDate` you can validate the formatting of a string. If the input is not an ISO date, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `isoDate` can be used.\n\n### ISO date schema\n\nSchema to validate an ISO date.\n\n```ts\nconst IsoDateSchema = v.pipe(\n  v.string(),\n  v.isoDate('The date is badly formatted.')\n);\n```\n\n### Minimum value schema\n\nSchema to validate an ISO date is after a certain date.\n\n```ts\nconst MinValueSchema = v.pipe(\n  v.string(),\n  v.isoDate(),\n  v.minValue('2000-01-01', 'The date must be after the year 1999.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `isoDate`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/isoDate/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'IsoDateIssue',\n              href: '../IsoDateIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'IsoDateAction',\n      href: '../IsoDateAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/isoDateTime/index.mdx",
    "content": "---\ntitle: isoDateTime\ndescription: Creates an ISO date time validation action.\nsource: /actions/isoDateTime/isoDateTime.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# isoDateTime\n\nCreates an [ISO date time](https://en.wikipedia.org/wiki/ISO_8601) validation action.\n\nFormat: `yyyy-mm-ddThh:mm`\n\n> The regex used cannot validate the maximum number of days based on year and month. For example, \"2023-06-31T00:00\" is valid although June has only 30 days.\n\n> The regex also allows a space as a separator between the date and time parts instead of the \"T\" character.\n\n```ts\nconst Action = v.isoDateTime<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `isoDateTime` you can validate the formatting of a string. If the input is not an ISO date time, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `isoDateTime` can be used.\n\n### ISO date time schema\n\nSchema to validate an ISO date time.\n\n```ts\nconst IsoDateTimeSchema = v.pipe(\n  v.string(),\n  v.isoDateTime('The date is badly formatted.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `isoDateTime`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/isoDateTime/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'IsoDateTimeIssue',\n              href: '../IsoDateTimeIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'IsoDateTimeAction',\n      href: '../IsoDateTimeAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/isoTime/index.mdx",
    "content": "---\ntitle: isoTime\ndescription: Creates an ISO time validation action.\nsource: /actions/isoTime/isoTime.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# isoTime\n\nCreates an [ISO time](https://en.wikipedia.org/wiki/ISO_8601) validation action.\n\nFormat: `hh:mm`\n\n```ts\nconst Action = v.isoTime<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `isoTime` you can validate the formatting of a string. If the input is not an ISO time, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `isoTime` can be used.\n\n### ISO time schema\n\nSchema to validate an ISO time.\n\n```ts\nconst IsoTimeSchema = v.pipe(\n  v.string(),\n  v.isoTime('The time is badly formatted.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `isoTime`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/isoTime/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'IsoTimeIssue',\n              href: '../IsoTimeIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'IsoTimeAction',\n      href: '../IsoTimeAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/isoTimeSecond/index.mdx",
    "content": "---\ntitle: isoTimeSecond\ndescription: Creates an ISO time second validation action.\nsource: /actions/isoTimeSecond/isoTimeSecond.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# isoTimeSecond\n\nCreates an [ISO time second](https://en.wikipedia.org/wiki/ISO_8601) validation action.\n\nFormat: `hh:mm:ss`\n\n```ts\nconst Action = v.isoTimeSecond<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `isoTimeSecond` you can validate the formatting of a string. If the input is not an ISO time second, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `isoTimeSecond` can be used.\n\n### ISO time second schema\n\nSchema to validate an ISO time second.\n\n```ts\nconst IsoTimeSecondSchema = v.pipe(\n  v.string(),\n  v.isoTimeSecond('The time is badly formatted.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `isoTimeSecond`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/isoTimeSecond/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'IsoTimeSecondIssue',\n              href: '../IsoTimeSecondIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'IsoTimeSecondAction',\n      href: '../IsoTimeSecondAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/isoTimestamp/index.mdx",
    "content": "---\ntitle: isoTimestamp\ndescription: Creates an ISO timestamp validation action.\nsource: /actions/isoTimestamp/isoTimestamp.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# isoTimestamp\n\nCreates an [ISO timestamp](https://en.wikipedia.org/wiki/ISO_8601) validation action.\n\nFormats: `yyyy-mm-ddThh:mm:ss.sssZ`, `yyyy-mm-ddThh:mm:ss.sss±hh:mm`, `yyyy-mm-ddThh:mm:ss.sss±hhmm`\n\n> To support timestamps with lower or higher accuracy, the millisecond specification can be removed or contain up to 9 digits.\n\n> The regex used cannot validate the maximum number of days based on year and month. For example, \"2023-06-31T00:00:00.000Z\" is valid although June has only 30 days.\n\n> The regex also allows a space as a separator between the date and time parts instead of the \"T\" character.\n\n> The regex also allows a space before the UTC offset (e.g., \" +00:00\") to support PostgreSQL's `timestamptz` output format.\n\n```ts\nconst Action = v.isoTimestamp<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `isoTimestamp` you can validate the formatting of a string. If the input is not an ISO timestamp, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `isoTimestamp` can be used.\n\n### ISO timestamp schema\n\nSchema to validate an ISO timestamp.\n\n```ts\nconst IsoTimestampSchema = v.pipe(\n  v.string(),\n  v.isoTimestamp('The timestamp is badly formatted.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `isoTimestamp`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/isoTimestamp/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'IsoTimestampIssue',\n              href: '../IsoTimestampIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'IsoTimestampAction',\n      href: '../IsoTimestampAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/isoWeek/index.mdx",
    "content": "---\ntitle: isoWeek\ndescription: Creates an ISO week validation action.\nsource: /actions/isoWeek/isoWeek.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# isoWeek\n\nCreates an [ISO week](https://en.wikipedia.org/wiki/ISO_8601) validation action.\n\nFormat: `yyyy-Www`\n\n> The regex used cannot validate the maximum number of weeks based on the year. For example, \"2021W53\" is valid although 2021 has only 52 weeks.\n\n```ts\nconst Action = v.isoWeek<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `isoWeek` you can validate the formatting of a string. If the input is not an ISO week, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `isoWeek` can be used.\n\n### ISO week schema\n\nSchema to validate an ISO week.\n\n```ts\nconst IsoWeekSchema = v.pipe(\n  v.string(),\n  v.isoWeek('The week is badly formatted.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `isoWeek`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/isoWeek/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'IsoWeekIssue',\n              href: '../IsoWeekIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'IsoWeekAction',\n      href: '../IsoWeekAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/isrc/index.mdx",
    "content": "---\ntitle: isrc\ndescription: Creates an ISRC validation action.\nsource: /actions/isrc/isrc.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# isrc\n\nCreates an [ISRC](https://en.wikipedia.org/wiki/International_Standard_Recording_Code) validation action.\n\n```ts\nconst Action = v.isrc<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `isrc` you can validate the formatting of a string. If the input is not an ISRC, you can use `message` to customize the error message.\n\nThis action supports both compact (`CCXXXYYNNNNN`) and hyphenated (`CC-XXX-YY-NNNNN`) formats.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `isrc` can be used.\n\n### ISRC schema\n\nSchema to validate an ISRC.\n\n```ts\nconst IsrcSchema = v.pipe(v.string(), v.isrc('The ISRC is badly formatted.'));\n\n// Valid ISRC formats:\n// 'USRC17607839'\n// 'US-RC1-76-07839'\n```\n\n## Related\n\nThe following APIs can be combined with `isrc`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/isrc/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'IsrcIssue',\n              href: '../IsrcIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'IsrcAction',\n      href: '../IsrcAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/jwsCompact/index.mdx",
    "content": "---\ntitle: jwsCompact\ndescription: Creates a validation action for JWS compact strings.\nsource: /actions/jwsCompact/jwsCompact.ts\ncontributors:\n  - yslpn\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# jwsCompact\n\nCreates a [JWS compact serialization](https://datatracker.ietf.org/doc/html/rfc7515#section-3.1) validation action.\n\n```ts\nconst Action = v.jwsCompact<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `jwsCompact` you can validate that a string matches the three-part compact string shape used by JWS compact serialization with unpadded Base64URL-like segments. If the input does not match this JWS compact string shape, you can use `message` to customize the error message.\n\n> Hint: This validation action only checks the three-part compact string shape. It does not decode the segments, verify the signature, or validate claims. Empty payload and signature segments are accepted when they appear as valid compact-serialization segments. If you need full JWT validation, signature verification, or claim checks, use a dedicated library such as one from [jwt.io/libraries](https://www.jwt.io/libraries).\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `jwsCompact` can be used.\n\n### Access token schema\n\nSchema to validate that an access token string matches the JWS compact string shape.\n\n```ts\nconst AccessTokenSchema = v.pipe(\n  v.string(),\n  v.nonEmpty('Provide an access token.'),\n  v.jwsCompact('The token must be a valid JWS compact string.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `jwsCompact`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/jwsCompact/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'JwsCompactIssue',\n              href: '../JwsCompactIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'JwsCompactAction',\n      href: '../JwsCompactAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/length/index.mdx",
    "content": "---\ntitle: length\ndescription: Creates a length validation action.\nsource: /actions/length/length.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# length\n\nCreates a length validation action.\n\n```ts\nconst Action = v.length<TInput, TRequirement, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `length` you can validate the length of a string or array. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `length` can be used.\n\n### String schema\n\nSchema to validate the length of a string.\n\n```ts\nconst StringSchema = v.pipe(\n  v.string(),\n  v.length(8, 'The string must be 8 characters long.')\n);\n```\n\n### Array schema\n\nSchema to validate the length of an array.\n\n```ts\nconst ArraySchema = v.pipe(\n  v.array(v.number()),\n  v.length(100, 'The array must contain 100 numbers.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `length`.\n\n### Schemas\n\n<ApiList\n  items={['any', 'array', 'custom', 'instance', 'string', 'tuple', 'unknown']}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/length/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'LengthInput',\n      href: '../LengthInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'LengthIssue',\n              href: '../LengthIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'LengthAction',\n      href: '../LengthAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/ltValue/index.mdx",
    "content": "---\ntitle: ltValue\ndescription: Creates a less than value validation action.\nsource: /actions/ltValue/ltValue.ts\ncontributors:\n  - EltonLobo07\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# ltValue\n\nCreates a less than value validation action.\n\n```ts\nconst Action = v.ltValue<TInput, TRequirement, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `ltValue` you can validate the value of a string, number, boolean or date. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `ltValue` can be used.\n\n### Number schema\n\nSchema to validate a number with a less than value.\n\n```ts\nconst NumberSchema = v.pipe(\n  v.number(),\n  v.ltValue(100, 'The number must be less than 100.')\n);\n```\n\n### Date schema\n\nSchema to validate a date with a less than value.\n\n```ts\nconst DateSchema = v.pipe(\n  v.date(),\n  v.ltValue(\n    new Date('2000-01-01'),\n    'The date must be less than 1st January 2000.'\n  )\n);\n```\n\n## Related\n\nThe following APIs can be combined with `ltValue`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'bigint',\n    'boolean',\n    'custom',\n    'date',\n    'number',\n    'string',\n    'unknown',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/ltValue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ValueInput',\n      href: '../ValueInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'LtValueIssue',\n              href: '../LtValueIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'LtValueAction',\n      href: '../LtValueAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/mac/index.mdx",
    "content": "---\ntitle: mac\ndescription: Creates a MAC address validation action.\nsource: /actions/mac/mac.ts\ncontributors:\n  - fabian-hiller\n  - ariskemper\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# mac\n\nCreates a [MAC address](https://en.wikipedia.org/wiki/MAC_address) validation action.\n\n> This validation action accepts 48-bit and 64-bit MAC addresses. For a more specific validation, you can also use <Link href=\"../mac48/\">`mac48`</Link> or <Link href=\"../mac64/\">`mac64`</Link>.\n\n```ts\nconst Action = v.mac<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `mac` you can validate the formatting of a string. If the input is not a MAC address, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `mac` can be used.\n\n### MAC schema\n\nSchema to validate a MAC address.\n\n```ts\nconst MacSchema = v.pipe(\n  v.string(),\n  v.mac('The MAC address is badly formatted.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `mac`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/mac/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MacIssue',\n              href: '../MacIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'MacAction',\n      href: '../MacAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/mac48/index.mdx",
    "content": "---\ntitle: mac48\ndescription: Creates a 48-bit MAC address validation action.\nsource: /actions/mac48/mac48.ts\ncontributors:\n  - fabian-hiller\n  - ariskemper\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# mac48\n\nCreates a 48-bit [MAC address](https://en.wikipedia.org/wiki/MAC_address) validation action.\n\n```ts\nconst Action = v.mac48<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `mac48` you can validate the formatting of a string. If the input is not a 48-bit MAC address, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `mac48` can be used.\n\n### 48-bit MAC schema\n\nSchema to validate a 48-bit MAC address.\n\n```ts\nconst Mac48Schema = v.pipe(\n  v.string(),\n  v.mac48('The MAC address is badly formatted.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `mac48`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/mac48/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'Mac48Issue',\n              href: '../Mac48Issue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'Mac48Action',\n      href: '../Mac48Action/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/mac64/index.mdx",
    "content": "---\ntitle: mac64\ndescription: Creates a 64-bit MAC address validation action.\nsource: /actions/mac64/mac64.ts\ncontributors:\n  - fabian-hiller\n  - ariskemper\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# mac64\n\nCreates a 64-bit [MAC address](https://en.wikipedia.org/wiki/MAC_address) validation action.\n\n```ts\nconst Action = v.mac64<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `mac64` you can validate the formatting of a string. If the input is not a 64-bit MAC address, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `mac64` can be used.\n\n### 64-bit MAC schema\n\nSchema to validate a 64-bit MAC address.\n\n```ts\nconst Mac64Schema = v.pipe(\n  v.string(),\n  v.mac64('The MAC address is badly formatted.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `mac64`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/mac64/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'Mac64Issue',\n              href: '../Mac64Issue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'Mac64Action',\n      href: '../Mac64Action/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/mapItems/index.mdx",
    "content": "---\ntitle: mapItems\ndescription: Creates a map items transformation action.\nsource: /actions/mapItems/mapItems.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# mapItems\n\nCreates a map items transformation action.\n\n```ts\nconst Action = v.mapItems<TInput, TOutput>(operation);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n\n## Parameters\n\n- `operation` <Property {...properties.operation} />\n\n### Explanation\n\nWith `mapItems` you can apply an `operation` to each item in an array to transform it.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `mapItems` can be used.\n\n### Mark duplicates\n\n```ts\nconst MarkedArraySchema = v.pipe(\n  v.array(v.string()),\n  v.mapItems((item, index, array) => {\n    const isDuplicate = array.indexOf(item) !== index;\n    return { item, isDuplicate };\n  })\n);\n```\n\n## Related\n\nThe following APIs can be combined with `mapItems`.\n\n### Schemas\n\n<ApiList items={['any', 'array', 'custom', 'instance', 'tuple', 'unknown']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/mapItems/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ArrayInput',\n      href: '../ArrayInput/',\n    },\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  operation: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'item',\n          type: {\n            type: 'custom',\n            name: 'TInput',\n            indexes: ['number'],\n          },\n        },\n        {\n          name: 'index',\n          type: 'number',\n        },\n        {\n          name: 'array',\n          type: {\n            type: 'custom',\n            name: 'TInput',\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'TOutput',\n      },\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'MapItemsAction',\n      href: '../MapItemsAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TOutput',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/maxBytes/index.mdx",
    "content": "---\ntitle: maxBytes\ndescription: Creates a max bytes validation action.\nsource: /actions/maxBytes/maxBytes.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# maxBytes\n\nCreates a max [bytes](https://en.wikipedia.org/wiki/Byte) validation action.\n\n```ts\nconst Action = v.maxBytes<TInput, TRequirement, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `maxBytes` you can validate the bytes of a string. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `maxBytes` can be used.\n\n### Max bytes schema\n\nSchema to validate a string with a maximum of 64 bytes.\n\n```ts\nconst MaxBytesSchema = v.pipe(\n  v.string(),\n  v.maxBytes(64, 'The string must not exceed 64 bytes.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `maxBytes`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/maxBytes/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MaxBytesIssue',\n              href: '../MaxBytesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'MaxBytesAction',\n      href: '../MaxBytesAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/maxEntries/index.mdx",
    "content": "---\ntitle: maxEntries\ndescription: Creates a max entries validation action.\nsource: /actions/maxEntries/maxEntries.ts\ncontributors:\n  - EltonLobo07\n  - fabian-hiller\n  - muningis\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# maxEntries\n\nCreates a max entries validation action.\n\n```ts\nconst Action = v.maxEntries<TInput, TRequirement, TMessage>(\n  requirement,\n  message\n);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `maxEntries` you can validate the number of entries of an object. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `maxEntries` can be used.\n\n### Maximum object entries\n\nSchema to validate an object with a maximum of 5 entries.\n\n```ts\nconst MaxEntriesSchema = v.pipe(\n  v.record(v.string(), v.number()),\n  v.maxEntries(5, 'Object must not exceed 5 entries.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `maxEntries`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'looseObject',\n    'object',\n    'objectWithRest',\n    'record',\n    'strictObject',\n    'variant',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/maxEntries/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'EntriesInput',\n      href: '../EntriesInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MaxEntriesIssue',\n              href: '../MaxEntriesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'MaxEntriesAction',\n      href: '../MaxEntriesAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/maxGraphemes/index.mdx",
    "content": "---\ntitle: maxGraphemes\ndescription: Creates a max graphemes validation action.\nsource: /actions/maxGraphemes/maxGraphemes.ts\ncontributors:\n  - fabian-hiller\n  - tats-u\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# maxGraphemes\n\nCreates a max [graphemes](https://en.wikipedia.org/wiki/Grapheme) validation action.\n\n```ts\nconst Action = v.maxGraphemes<TInput, TRequirement, TMessage>(\n  requirement,\n  message\n);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `maxGraphemes` you can validate the graphemes of a string. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n> Hint: The number of characters per grapheme is not limited. You may want to consider combining `maxGraphemes` with <Link href=\"../maxLength/\">`maxLength`</Link> or <Link href=\"../maxBytes/\">`maxBytes`</Link> to set a stricter limit.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `maxGraphemes` can be used.\n\n### Max graphemes schema\n\nSchema to validate a string with a maximum of 8 graphemes.\n\n```ts\nconst MaxGraphemesSchema = v.pipe(\n  v.string(),\n  v.maxGraphemes(8, 'The string must not exceed 8 graphemes.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `maxGraphemes`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/maxGraphemes/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MaxGraphemesIssue',\n              href: '../MaxGraphemesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'MaxGraphemesAction',\n      href: '../MaxGraphemesAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/maxLength/index.mdx",
    "content": "---\ntitle: maxLength\ndescription: Creates a max length validation action.\nsource: /actions/maxLength/maxLength.ts\ncontributors:\n  - fabian-hiller\n  - depsimon\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# maxLength\n\nCreates a max length validation action.\n\n```ts\nconst Action = v.maxLength<TInput, TRequirement, TMessage>(\n  requirement,\n  message\n);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `maxLength` you can validate the length of a string or array. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `maxLength` can be used.\n\n### Maximum string length\n\nSchema to validate a string with a maximum length of 32 characters.\n\n```ts\nconst MaxStringSchema = v.pipe(\n  v.string(),\n  v.maxLength(32, 'The string must not exceed 32 characters.')\n);\n```\n\n### Maximum array length\n\nSchema to validate an array with a maximum length of 5 items.\n\n```ts\nconst MaxArraySchema = v.pipe(\n  v.array(v.number()),\n  v.maxLength(5, 'The array must not exceed 5 numbers.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `maxLength`.\n\n### Schemas\n\n<ApiList\n  items={['any', 'array', 'custom', 'instance', 'string', 'tuple', 'unknown']}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/maxLength/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'LengthInput',\n      href: '../LengthInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MaxLengthIssue',\n              href: '../MaxLengthIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'MaxLengthAction',\n      href: '../MaxLengthAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/maxSize/index.mdx",
    "content": "---\ntitle: maxSize\ndescription: Creates a max size validation action.\nsource: /actions/maxSize/maxSize.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# maxSize\n\nCreates a max size validation action.\n\n```ts\nconst Action = v.maxSize<TInput, TRequirement, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `maxSize` you can validate the size of a map, set or blob. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `maxSize` can be used.\n\n### Blob size schema\n\nSchema to validate a blob with a maximum size of 10 MB.\n\n```ts\nconst BlobSchema = v.pipe(\n  v.blob(),\n  v.maxSize(10 * 1024 * 1024, 'The blob must not exceed 10 MB.')\n);\n```\n\n### Set size schema\n\nSchema to validate a set with a maximum of 8 numbers.\n\n```ts\nconst SetSchema = v.pipe(\n  v.set(number()),\n  v.maxSize(8, 'The set must not exceed 8 numbers.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `maxSize`.\n\n### Schemas\n\n<ApiList\n  items={['any', 'blob', 'custom', 'file', 'instance', 'map', 'set', 'unknown']}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/maxSize/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'SizeInput',\n      href: '../SizeInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MaxSizeIssue',\n              href: '../MaxSizeIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'MaxSizeAction',\n      href: '../MaxSizeAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/maxValue/index.mdx",
    "content": "---\ntitle: maxValue\ndescription: Creates a max value validation action.\nsource: /actions/maxValue/maxValue.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# maxValue\n\nCreates a max value validation action.\n\n```ts\nconst Action = v.maxValue<TInput, TRequirement, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `maxValue` you can validate the value of a string, number, boolean or date. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `maxValue` can be used.\n\n### Number schema\n\nSchema to validate a number with a maximum value.\n\n```ts\nconst NumberSchema = v.pipe(\n  v.number(),\n  v.maxValue(100, 'The number must not exceed 100.')\n);\n```\n\n### Date schema\n\nSchema to validate a date with a maximum year.\n\n```ts\nconst DateSchema = v.pipe(\n  v.date(),\n  v.maxValue(new Date('1999-12-31'), 'The date must not exceed the year 1999.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `maxValue`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'bigint',\n    'boolean',\n    'custom',\n    'date',\n    'number',\n    'string',\n    'unknown',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/maxValue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ValueInput',\n      href: '../ValueInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MaxValueIssue',\n              href: '../MaxValueIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'MaxValueAction',\n      href: '../MaxValueAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/maxWords/index.mdx",
    "content": "---\ntitle: maxWords\ndescription: Creates a max words validation action.\nsource: /actions/maxWords/maxWords.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# maxWords\n\nCreates a max [words](https://en.wikipedia.org/wiki/Word) validation action.\n\n```ts\nconst Action = v.maxWords<TInput, TLocales, TRequirement, TMessage>(\n  locales,\n  requirement,\n  message\n);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TLocales` <Property {...properties.TLocales} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `locales` <Property {...properties.locales} />\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `maxWords` you can validate the words of a string based on the specified `locales`. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `maxWords` can be used.\n\n### Max words schema\n\nSchema to validate a string with a maximum of 300 words.\n\n```ts\nconst MaxWordsSchema = v.pipe(\n  v.string(),\n  v.maxWords('en', 300, 'The string must not exceed 300 words.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `maxWords`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/maxWords/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TLocales: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Intl.LocalesArgument',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MaxWordsIssue',\n              href: '../MaxWordsIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  locales: {\n    type: {\n      type: 'custom',\n      name: 'TLocales',\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'MaxWordsAction',\n      href: '../MaxWordsAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TLocales',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/metadata/index.mdx",
    "content": "---\ntitle: metadata\ndescription: Creates a custom metadata action.\nsource: /actions/metadata/metadata.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# metadata\n\nCreates a custom metadata action.\n\n```ts\nconst Action = v.metadata<TInput, TMetadata>(metadata_);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMetadata` <Property {...properties.TMetadata} />\n\n## Parameters\n\n- `metadata_` <Property {...properties['metadata_']} />\n\n### Explanation\n\nWith `metadata` you can attach custom metadata to a schema. This can be useful when working with AI tools or for documentation purposes.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `metadata` can be used.\n\n### Profile table schema\n\nSchema to describe a profile table.\n\n```ts\nconst ProfileTableSchema = v.pipe(\n  v.object({\n    username: v.pipe(v.string(), v.nonEmpty()),\n    email: v.pipe(v.string(), v.email()),\n    avatar: v.pipe(v.string(), v.url()),\n    description: v.pipe(v.string(), v.maxLength(500)),\n  }),\n  v.metadata({\n    table: 'profiles',\n    primaryKey: 'username',\n    indexes: ['email'],\n  })\n);\n```\n\n## Related\n\nThe following APIs can be combined with `metadata`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['getMetadata', 'pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/metadata/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TMetadata: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Record',\n      generics: ['string', 'unknown'],\n    },\n  },\n  metadata_: {\n    type: {\n      type: 'custom',\n      name: 'TMetadata',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'MetadataAction',\n      href: '../MetadataAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMetadata',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/mimeType/index.mdx",
    "content": "---\ntitle: mimeType\ndescription: Creates a MIME type validation action.\nsource: /actions/mimeType/mimeType.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# mimeType\n\nCreates a [MIME type](https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/MIME_types) validation action.\n\n```ts\nconst Action = v.mimeType<TInput, TRequirement, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `mimeType` you can validate the MIME type of a blob. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `mimeType` can be used.\n\n### Image schema\n\nSchema to validate an image file.\n\n```ts\nconst ImageSchema = v.pipe(\n  v.blob(),\n  v.mimeType(['image/jpeg', 'image/png'], 'Please select a JPEG or PNG file.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `mimeType`.\n\n### Schemas\n\n<ApiList items={['any', 'blob', 'custom', 'file', 'instance', 'unknown']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/mimeType/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Blob',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'array',\n      item: 'string',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MimeTypeIssue',\n              href: '../MimeTypeIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'MimeTypeAction',\n      href: '../MimeTypeAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/minBytes/index.mdx",
    "content": "---\ntitle: minBytes\ndescription: Creates a min bytes validation action.\nsource: /actions/minBytes/minBytes.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# minBytes\n\nCreates a min [bytes](https://en.wikipedia.org/wiki/Byte) validation action.\n\n```ts\nconst Action = v.minBytes<TInput, TRequirement, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `minBytes` you can validate the bytes of a string. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `minBytes` can be used.\n\n### Min bytes schema\n\nSchema to validate a string with a minimum of 64 bytes.\n\n```ts\nconst MinBytesSchema = v.pipe(\n  v.string(),\n  v.minBytes(64, 'The string must contain at least 64 bytes.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `minBytes`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/minBytes/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MinBytesIssue',\n              href: '../MinBytesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'MinBytesAction',\n      href: '../MinBytesAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/minEntries/index.mdx",
    "content": "---\ntitle: minEntries\ndescription: Creates a min entries validation action.\nsource: /actions/minEntries/minEntries.ts\ncontributors:\n  - EltonLobo07\n  - fabian-hiller\n  - muningis\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# minEntries\n\nCreates a min entries validation action.\n\n```ts\nconst Action = v.minEntries<TInput, TRequirement, TMessage>(\n  requirement,\n  message\n);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `minEntries` you can validate the number of entries of an object. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `minEntries` can be used.\n\n### Minimum object entries\n\nSchema to validate an object with a minimum of 5 entries.\n\n```ts\nconst MinEntriesSchema = v.pipe(\n  v.record(v.string(), v.number()),\n  v.minEntries(5, 'The object should have at least 5 entries.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `minEntries`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'looseObject',\n    'object',\n    'objectWithRest',\n    'record',\n    'strictObject',\n    'variant',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/minEntries/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'EntriesInput',\n      href: '../EntriesInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MinEntriesIssue',\n              href: '../MinEntriesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'MinEntriesAction',\n      href: '../MinEntriesAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/minGraphemes/index.mdx",
    "content": "---\ntitle: minGraphemes\ndescription: Creates a min graphemes validation action.\nsource: /actions/minGraphemes/minGraphemes.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# minGraphemes\n\nCreates a min [graphemes](https://en.wikipedia.org/wiki/Grapheme) validation action.\n\n```ts\nconst Action = v.minGraphemes<TInput, TRequirement, TMessage>(\n  requirement,\n  message\n);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `minGraphemes` you can validate the graphemes of a string. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `minGraphemes` can be used.\n\n### Min graphemes schema\n\nSchema to validate a string with a minimum of 8 graphemes.\n\n```ts\nconst MinGraphemesSchema = v.pipe(\n  v.string(),\n  v.minGraphemes(8, 'The string must contain at least 8 graphemes.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `minGraphemes`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/minGraphemes/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MinGraphemesIssue',\n              href: '../MinGraphemesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'MinGraphemesAction',\n      href: '../MinGraphemesAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/minLength/index.mdx",
    "content": "---\ntitle: minLength\ndescription: Creates a min length validation action.\nsource: /actions/minLength/minLength.ts\ncontributors:\n  - fabian-hiller\n  - depsimon\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# minLength\n\nCreates a min length validation action.\n\n```ts\nconst Action = v.minLength<TInput, TRequirement, TMessage>(\n  requirement,\n  message\n);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `minLength` you can validate the length of a string or array. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `minLength` can be used.\n\n### Minimum string length\n\nSchema to validate a string with a minimum length of 3 characters.\n\n```ts\nconst MinStringSchema = v.pipe(\n  v.string(),\n  v.minLength(3, 'The string must be 3 or more characters long.')\n);\n```\n\n### Minimum array length\n\nSchema to validate an array with a minimum length of 5 items.\n\n```ts\nconst MinArraySchema = v.pipe(\n  v.array(v.number()),\n  v.minLength(5, 'The array must contain 5 numbers or more.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `minLength`.\n\n### Schemas\n\n<ApiList\n  items={['any', 'array', 'custom', 'instance', 'string', 'tuple', 'unknown']}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/minLength/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'LengthInput',\n      href: '../LengthInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MinLengthIssue',\n              href: '../MinLengthIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'MinLengthAction',\n      href: '../MinLengthAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/minSize/index.mdx",
    "content": "---\ntitle: minSize\ndescription: Creates a min size validation action.\nsource: /actions/minSize/minSize.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# minSize\n\nCreates a min size validation action.\n\n```ts\nconst Action = v.minSize<TInput, TRequirement, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `minSize` you can validate the size of a map, set or blob. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `minSize` can be used.\n\n### Blob size schema\n\nSchema to validate a blob with a minimum size of 10 MB.\n\n```ts\nconst BlobSchema = v.pipe(\n  v.blob(),\n  v.minSize(10 * 1024 * 1024, 'The blob must be at least 10 MB.')\n);\n```\n\n### Set size schema\n\nSchema to validate a set with a minimum of 8 numbers.\n\n```ts\nconst SetSchema = v.pipe(\n  v.set(number()),\n  v.minSize(8, 'The set must contain at least 8 numbers.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `minSize`.\n\n### Schemas\n\n<ApiList\n  items={['any', 'blob', 'custom', 'file', 'instance', 'map', 'set', 'unknown']}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/minSize/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'SizeInput',\n      href: '../SizeInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MinSizeIssue',\n              href: '../MinSizeIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'MinSizeAction',\n      href: '../MinSizeAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/minValue/index.mdx",
    "content": "---\ntitle: minValue\ndescription: Creates a min value validation action.\nsource: /actions/minValue/minValue.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# minValue\n\nCreates a min value validation action.\n\n```ts\nconst Action = v.minValue<TInput, TRequirement, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `minValue` you can validate the value of a string, number, boolean or date. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `minValue` can be used.\n\n### Number schema\n\nSchema to validate a number with a minimum value.\n\n```ts\nconst NumberSchema = v.pipe(\n  v.number(),\n  v.minValue(100, 'The number must be at least 100.')\n);\n```\n\n### Date schema\n\nSchema to validate a date with a minimum year.\n\n```ts\nconst DateSchema = v.pipe(\n  v.date(),\n  v.minValue(new Date('2000-01-01'), 'The date must be after the year 1999.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `minValue`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'bigint',\n    'boolean',\n    'custom',\n    'date',\n    'number',\n    'string',\n    'unknown',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/minValue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ValueInput',\n      href: '../ValueInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MaxValueIssue',\n              href: '../MaxValueIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'MinValueAction',\n      href: '../MinValueAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/minWords/index.mdx",
    "content": "---\ntitle: minWords\ndescription: Creates a min words validation action.\nsource: /actions/minWords/minWords.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# minWords\n\nCreates a min [words](https://en.wikipedia.org/wiki/Word) validation action.\n\n```ts\nconst Action = v.minWords<TInput, TLocales, TRequirement, TMessage>(\n  locales,\n  requirement,\n  message\n);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TLocales` <Property {...properties.TLocales} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `locales` <Property {...properties.locales} />\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `minWords` you can validate the words of a string based on the specified `locales`. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `minWords` can be used.\n\n### Min words schema\n\nSchema to validate a string with a minimum of 50 words.\n\n```ts\nconst MinWordsSchema = v.pipe(\n  v.string(),\n  v.minWords('en', 50, 'The string must contain at least 50 words.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `minWords`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/minWords/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TLocales: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Intl.LocalesArgument',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MinWordsIssue',\n              href: '../MinWordsIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  locales: {\n    type: {\n      type: 'custom',\n      name: 'TLocales',\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'MinWordsAction',\n      href: '../MinWordsAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TLocales',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/multipleOf/index.mdx",
    "content": "---\ntitle: multipleOf\ndescription: Creates a multiple of validation action.\nsource: /actions/multipleOf/multipleOf.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# multipleOf\n\nCreates a [multiple](<https://en.wikipedia.org/wiki/Multiple_(mathematics)>) of validation action.\n\n```ts\nconst Action = v.multipleOf<TInput, TRequirement, TMessage>(\n  requirement,\n  message\n);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `multipleOf` you can validate the value of a number. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `multipleOf` can be used.\n\n### Even number schema\n\nSchema to validate an even number.\n\n```ts\nconst EvenNumberSchema = v.pipe(\n  v.number(),\n  v.multipleOf(2, 'The number must be even.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `multipleOf`.\n\n### Schemas\n\n<ApiList items={['any', 'bigint', 'custom', 'number', 'unknown']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/multipleOf/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: ['number', 'bigint'],\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: ['number', 'bigint'],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MultipleOfIssue',\n              href: '../MultipleOfIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'MultipleOfAction',\n      href: '../MultipleOfAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/nanoid/index.mdx",
    "content": "---\ntitle: nanoid\ndescription: Creates a Nano ID validation action.\nsource: /actions/nanoid/nanoid.ts\ncontributors:\n  - jasperteo\n  - fabian-hiller\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# nanoid\n\nCreates a [Nano ID](https://github.com/ai/nanoid) validation action.\n\n```ts\nconst Action = v.nanoid<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `nanoid` you can validate the formatting of a string. If the input is not an Nano ID, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `nanoid` can be used.\n\n> Since Nano IDs are not limited to a fixed length, it is recommended to combine `nanoid` with <Link href=\"../length/\">`length`</Link> to ensure the correct length.\n\n### Nano ID schema\n\nSchema to validate a Nano ID.\n\n```ts\nconst NanoIdSchema = v.pipe(\n  v.string(),\n  v.nanoid('The Nano ID is badly formatted.'),\n  v.length(21, 'The Nano ID must be 21 characters long.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `nanoid`.\n\n### Schemas\n\n<ApiList items={['any', 'string', 'unknown']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/nanoid/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NanoIdIssue',\n              href: '../NanoIdIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'NanoIdAction',\n      href: '../NanoIdAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/nonEmpty/index.mdx",
    "content": "---\ntitle: nonEmpty\ndescription: Creates a non-empty validation action.\nsource: /actions/nonEmpty/nonEmpty.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# nonEmpty\n\nCreates a non-empty validation action.\n\n```ts\nconst Action = v.nonEmpty<TInput, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `nonEmpty` you can validate that a string or array is non-empty. If the input is empty, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `nonEmpty` can be used.\n\n### String schema\n\nSchema to validate that a string is non-empty.\n\n```ts\nconst StringSchema = v.pipe(\n  v.string(),\n  v.nonEmpty('The string should contain at least one character.')\n);\n```\n\n### Array schema\n\nSchema to validate that an array is non-empty.\n\n```ts\nconst ArraySchema = v.pipe(\n  v.array(v.number()),\n  v.nonEmpty('The array should contain at least one item.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `nonEmpty`.\n\n### Schemas\n\n<ApiList\n  items={['any', 'array', 'custom', 'instance', 'string', 'tuple', 'unknown']}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/nonEmpty/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'LengthInput',\n      href: '../LengthInput/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NonEmptyIssue',\n              href: '../NonEmptyIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'NonEmptyAction',\n      href: '../NonEmptyAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/normalize/index.mdx",
    "content": "---\ntitle: normalize\ndescription: Creates a normalize transformation action.\nsource: /actions/normalize/normalize.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# normalize\n\nCreates a normalize transformation action.\n\n```ts\nconst Action = v.normalize<TForm>(form);\n```\n\n## Generics\n\n- `TForm` <Property {...properties.TForm} />\n\n## Parameters\n\n- `form` <Property {...properties.form} />\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `normalize` can be used.\n\n### Normalized string\n\nSchema to normalize a string.\n\n```ts\nconst StringSchema = v.pipe(v.string(), v.normalize());\n```\n\n## Related\n\nThe following APIs can be combined with `normalize`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/normalize/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TForm: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'NormalizeForm',\n          href: '../NormalizeForm/',\n        },\n        'undefined',\n      ],\n    },\n  },\n  form: {\n    type: {\n      type: 'custom',\n      name: 'TForm',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'NormalizeAction',\n      href: '../NormalizeAction/',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/notBytes/index.mdx",
    "content": "---\ntitle: notBytes\ndescription: Creates a not bytes validation action.\nsource: /actions/notBytes/notBytes.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# notBytes\n\nCreates a not [bytes](https://en.wikipedia.org/wiki/Byte) validation action.\n\n```ts\nconst Action = v.notBytes<TInput, TRequirement, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `notBytes` you can validate the bytes of a string. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `notBytes` can be used.\n\n### Not bytes schema\n\nSchema to validate a string with more or less than 8 bytes.\n\n```ts\nconst NotBytesSchema = v.pipe(\n  v.string(),\n  v.notBytes(8, 'The string must not have 8 bytes.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `notBytes`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/notBytes/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NotBytesIssue',\n              href: '../NotBytesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'NotBytesAction',\n      href: '../NotBytesAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/notEntries/index.mdx",
    "content": "---\ntitle: notEntries\ndescription: Creates a not entries validation action.\nsource: /actions/notEntries/notEntries.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# notEntries\n\nCreates a not entries validation action.\n\n```ts\nconst Action = v.notEntries<TInput, TRequirement, TMessage>(\n  requirement,\n  message\n);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `notEntries` you can validate the number of entries of an object. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `notEntries` can be used.\n\n### Not object entries\n\nSchema to validate an object that does not have 5 entries.\n\n```ts\nconst NotEntriesSchema = v.pipe(\n  v.record(v.string(), v.number()),\n  v.notEntries(5, 'Object must not have 5 entries')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `notEntries`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'looseObject',\n    'object',\n    'objectWithRest',\n    'record',\n    'strictObject',\n    'variant',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/notEntries/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'EntriesInput',\n      href: '../EntriesInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NotEntriesIssue',\n              href: '../NotEntriesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'NotEntriesAction',\n      href: '../NotEntriesAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/notGraphemes/index.mdx",
    "content": "---\ntitle: notGraphemes\ndescription: Creates a not graphemes validation action.\nsource: /actions/notGraphemes/notGraphemes.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# notGraphemes\n\nCreates a not [graphemes](https://en.wikipedia.org/wiki/Grapheme) validation action.\n\n```ts\nconst Action = v.notGraphemes<TInput, TRequirement, TMessage>(\n  requirement,\n  message\n);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `notGraphemes` you can validate the graphemes of a string. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `notGraphemes` can be used.\n\n### Not graphemes schema\n\nSchema to validate a string with more or less than 8 graphemes.\n\n```ts\nconst NotGraphemesSchema = v.pipe(\n  v.string(),\n  v.notGraphemes(8, 'The string must not have 8 graphemes.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `notGraphemes`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/notGraphemes/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NotGraphemesIssue',\n              href: '../NotGraphemesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'NotGraphemesAction',\n      href: '../NotGraphemesAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/notLength/index.mdx",
    "content": "---\ntitle: notLength\ndescription: Creates a not length validation action.\nsource: /actions/notLength/notLength.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# notLength\n\nCreates a not length validation action.\n\n```ts\nconst Action = v.notLength<TInput, TRequirement, TMessage>(\n  requirement,\n  message\n);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `notLength` you can validate the length of a string or array. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `notLength` can be used.\n\n### String schema\n\nSchema to validate the length of a string.\n\n```ts\nconst StringSchema = v.pipe(\n  v.string(),\n  v.notLength(8, 'The string must not be 8 characters long.')\n);\n```\n\n### Array schema\n\nSchema to validate the length of an array.\n\n```ts\nconst ArraySchema = v.pipe(\n  v.array(number()),\n  v.notLength(10, 'The array must not contain 10 numbers.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `notLength`.\n\n### Schemas\n\n<ApiList\n  items={['any', 'array', 'custom', 'instance', 'string', 'tuple', 'unknown']}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/notLength/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'LengthInput',\n      href: '../LengthInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NotLengthIssue',\n              href: '../NotLengthIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'NotLengthAction',\n      href: '../NotLengthAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/notSize/index.mdx",
    "content": "---\ntitle: notSize\ndescription: Creates a not size validation action.\nsource: /actions/notSize/notSize.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# notSize\n\nCreates a not size validation action.\n\n```ts\nconst Action = v.notSize<TInput, TRequirement, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `notSize` you can validate the size of a map, set or blob. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `notSize` can be used.\n\n### Blob size schema\n\nSchema to validate a blob with less ore more then 10 MB.\n\n```ts\nconst BlobSchema = v.pipe(\n  v.blob(),\n  v.notSize(10 * 1024 * 1024, 'The blob must not be 10 MB in size.')\n);\n```\n\n### Set size schema\n\nSchema to validate a set with less ore more then 8 numbers.\n\n```ts\nconst SetSchema = v.pipe(\n  v.set(number()),\n  v.notSize(8, 'The set must not contain 8 numbers.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `notSize`.\n\n### Schemas\n\n<ApiList\n  items={['any', 'blob', 'custom', 'file', 'instance', 'map', 'set', 'unknown']}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/notSize/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'SizeInput',\n      href: '../SizeInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NotSizeIssue',\n              href: '../NotSizeIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'NotSizeAction',\n      href: '../NotSizeAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/notValue/index.mdx",
    "content": "---\ntitle: notValue\ndescription: Creates a not value validation action.\nsource: /actions/notValue/notValue.ts\ncontributors:\n  - fabian-hiller\n  - lo1tuma\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# notValue\n\nCreates a not value validation action.\n\n```ts\nconst Action = v.notValue<TInput, TRequirement, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `notValue` you can validate the value of a string, number, boolean or date. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `notValue` can be used.\n\n### Number schema\n\nSchema to validate a number that is more or less than 100.\n\n```ts\nconst NumberSchema = v.pipe(\n  v.number(),\n  v.notValue(100, 'The number must not be 100.')\n);\n```\n\n### Date schema\n\nSchema to validate a date that is before or after the start of 2000.\n\n```ts\nconst DateSchema = v.pipe(\n  v.date(),\n  v.notValue(new Date('2000-01-01'), 'The date must not be the start of 2000.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `notValue`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'bigint',\n    'boolean',\n    'custom',\n    'date',\n    'number',\n    'string',\n    'unknown',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/notValue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ValueInput',\n      href: '../ValueInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NotValueIssue',\n              href: '../NotValueIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'NotValueAction',\n      href: '../NotValueAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/notValues/index.mdx",
    "content": "---\ntitle: notValues\ndescription: Creates a not values validation action.\nsource: /actions/notValues/notValues.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# notValues\n\nCreates a not values validation action.\n\n```ts\nconst Action = v.notValues<TInput, TRequirement, TMessage>(\n  requirement,\n  message\n);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `notValues` you can validate the value of a string, number, boolean or date. If the input matches one of the values in the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `notValues` can be used.\n\n### Number schema\n\nSchema to validate a number that is not 10, 11 or 12.\n\n```ts\nconst NumberSchema = v.pipe(\n  v.number(),\n  v.notValues([10, 11, 12], 'The number must not be 10, 11 or 12.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `notValues`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'bigint',\n    'boolean',\n    'custom',\n    'date',\n    'number',\n    'string',\n    'unknown',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/notValues/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ValueInput',\n      href: '../ValueInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      modifier: 'readonly',\n      type: 'array',\n      item: {\n        type: 'custom',\n        name: 'TInput',\n      },\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NotValuesIssue',\n              href: '../NotValuesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'NotValuesAction',\n      href: '../NotValuesAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/notWords/index.mdx",
    "content": "---\ntitle: notWords\ndescription: Creates a not words validation action.\nsource: /actions/notWords/notWords.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# notWords\n\nCreates a not [words](https://en.wikipedia.org/wiki/Word) validation action.\n\n```ts\nconst Action = v.notWords<TInput, TLocales, TRequirement, TMessage>(\n  locales,\n  requirement,\n  message\n);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TLocales` <Property {...properties.TLocales} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `locales` <Property {...properties.locales} />\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `notWords` you can validate the words of a string based on the specified `locales`. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `notWords` can be used.\n\n### Not words schema\n\nSchema to validate a string with more or less than 5 words.\n\n```ts\nconst NotWordsSchema = v.pipe(\n  v.string(),\n  v.notWords('en', 5, 'The string must not have 5 words.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `notWords`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/notWords/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TLocales: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Intl.LocalesArgument',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NotWordsIssue',\n              href: '../NotWordsIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  locales: {\n    type: {\n      type: 'custom',\n      name: 'TLocales',\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'NotWordsAction',\n      href: '../NotWordsAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TLocales',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/octal/index.mdx",
    "content": "---\ntitle: octal\ndescription: Creates an octal validation action.\nsource: /actions/octal/octal.ts\ncontributors:\n  - fabian-hiller\n  - ariskemper\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# octal\n\nCreates an [octal](https://en.wikipedia.org/wiki/Octal) validation action.\n\n```ts\nconst Action = v.octal<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `octal` you can validate the formatting of a string. If the input is not an octal, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `octal` can be used.\n\n### Octal schema\n\nSchema to validate a octal string.\n\n```ts\nconst OctalSchema = v.pipe(\n  v.string(),\n  v.octal('The octal is badly formatted.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `octal`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/octal/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'OctalIssue',\n              href: '../OctalIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'OctalAction',\n      href: '../OctalAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/parseBoolean/index.mdx",
    "content": "---\ntitle: parseBoolean\ndescription: Creates a parse boolean transformation action.\nsource: /actions/parseBoolean/parseBoolean.ts\ncontributors:\n  - alexilyaev\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# parseBoolean\n\nCreates a parse boolean transformation action.\n\n```ts\nconst Action = v.parseBoolean<TInput, TConfig, TMessage>(config, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TConfig` <Property {...properties.TConfig} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `config` <Property {...properties.config} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `parseBoolean` you can parse certain \"boolish\" values into a plain boolean value (e.g. parsing environment variables). It supports both string and non-string values and the comparison is case-insensitive for strings.\n\nBy default, the truthy values are `true`, `1`, `\"true\"`, `\"1\"`, `\"yes\"`, `\"y\"`, `\"on\"`, and `\"enabled\"`. The falsy values are `false`, `0`, `\"false\"`, `\"0\"`, `\"no\"`, `\"n\"`, `\"off\"`, and `\"disabled\"`. You can override these defaults via the `config` argument.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `parseBoolean` can be used.\n\n```ts\nconst EnvSchema = v.object({\n  // Default behavior\n  PROD_MODE: v.pipe(v.string(), v.parseBoolean()),\n\n  // With custom config\n  LOG_MODE: v.pipe(\n    v.string(),\n    v.parseBoolean({\n      truthy: ['verbose', 'chatty', 'record'],\n      falsy: ['silent', 'quiet', 'mute'],\n    })\n  ),\n});\n```\n\n## Related\n\nThe following APIs can be combined with `parseBoolean`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/parseBoolean/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TConfig: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ParseBooleanConfig',\n          href: '../ParseBooleanConfig/',\n        },\n        'undefined',\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ParseBooleanIssue',\n              href: '../ParseBooleanIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  config: {\n    type: {\n      type: 'custom',\n      name: 'TConfig',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'ParseBooleanAction',\n      href: '../ParseBooleanAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TConfig',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/parseJson/index.mdx",
    "content": "---\ntitle: parseJson\ndescription: Creates a JSON parse transformation action.\nsource: /actions/parseJson/parseJson.ts\ncontributors:\n  - EskiMojo14\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# parseJson\n\nCreates a JSON parse transformation action.\n\n```ts\nconst Action = v.parseJson<TInput, TConfig, TMessage>(config, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TConfig` <Property {...properties.TConfig} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `config` <Property {...properties.config} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `parseJson` you can parse a JSON string. If the input is not valid JSON, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `parseJson` can be used.\n\n### Parse and validate JSON\n\nParse a JSON string and validate the result.\n\n```ts\nconst StringifiedObjectSchema = v.pipe(\n  v.string(),\n  v.parseJson(),\n  v.object({ key: v.string() })\n);\n```\n\n### Parse JSON with reviver\n\nParse a JSON string with a reviver function.\n\n```ts\nconst StringifiedObjectSchema = v.pipe(\n  v.string(),\n  v.parseJson({\n    reviver: (key, value) =>\n      typeof value === 'string' ? value.toUpperCase() : value,\n  }),\n  v.object({ key: v.string() })\n);\n```\n\n## Related\n\nThe following APIs can be combined with `parseJson`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/parseJson/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TConfig: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ParseJsonConfig',\n          href: '../ParseJsonConfig/',\n        },\n        'undefined',\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ParseJsonIssue',\n              href: '../ParseJsonIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  config: {\n    type: {\n      type: 'custom',\n      name: 'TConfig',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'ParseJsonAction',\n      href: '../ParseJsonAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TConfig',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/partialCheck/ValidPaths/index.mdx",
    "content": "---\ntitle: ValidPaths\ndescription: Returns a valid path for any given path based on the given value.\ncontributors:\n  - fabian-hiller\n---\n\n# ValidPaths\n\nReturns a valid path for any given path based on the given value.\n\n> This type is too complex to display. Please refer to the [source code](https://github.com/open-circle/valibot/blob/main/library/src/actions/partialCheck/types.ts).\n"
  },
  {
    "path": "website/src/routes/api/(actions)/partialCheck/index.mdx",
    "content": "---\ntitle: partialCheck\ndescription: Creates a partial check validation action.\nsource: /actions/partialCheck/partialCheck.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# partialCheck\n\nCreates a partial check validation action.\n\n```ts\nconst Action = v.partialCheck<TInput, TPaths, TSelection, TMessage>(\n  paths,\n  requirement,\n  message\n);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TPaths` <Property {...properties.TPaths} />\n- `TSelection` <Property {...properties.TSelection} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `paths` <Property {...properties.paths} />\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `partialCheck` you can freely validate the selected input and return `true` if it is valid or `false` otherwise. If the input does not match your `requirement`, you can use `message` to customize the error message.\n\n> The difference to <Link href='../check/'>`check`</Link> is that `partialCheck` can be executed whenever the selected part of the data is valid, while <Link href='../check/'>`check`</Link> is executed only when the entire dataset is typed. This can be an important advantage when working with forms.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `partialCheck` can be used.\n\n### Register schema\n\nSchema that ensures that the two passwords match.\n\n```ts\nconst RegisterSchema = v.pipe(\n  v.object({\n    email: v.pipe(\n      v.string(),\n      v.nonEmpty('Please enter your email.'),\n      v.email('The email address is badly formatted.')\n    ),\n    password1: v.pipe(\n      v.string(),\n      v.nonEmpty('Please enter your password.'),\n      v.minLength(8, 'Your password must have 8 characters or more.')\n    ),\n    password2: v.string(),\n  }),\n  v.forward(\n    v.partialCheck(\n      [['password1'], ['password2']],\n      (input) => input.password1 === input.password2,\n      'The two passwords do not match.'\n    ),\n    ['password2']\n  )\n);\n```\n\n## Related\n\nThe following APIs can be combined with `partialCheck`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'custom',\n    'instance',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'object',\n    'objectWithRest',\n    'record',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'union',\n    'variant',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['forward', 'pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/partialCheck/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'Record',\n          generics: ['string', 'unknown'],\n        },\n        {\n          type: 'custom',\n          name: 'ArrayLike',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TPaths: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'RequiredPaths',\n      href: '../RequiredPaths/',\n    },\n  },\n  TSelection: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'DeepPickN',\n      href: '../DeepPickN/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TPaths',\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'PartialCheckIssue',\n              href: '../PartialCheckIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TSelection',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  paths: {\n    type: {\n      type: 'custom',\n      name: 'ValidPaths',\n      href: './ValidPaths/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TPaths',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: {\n            type: 'custom',\n            name: 'TSelection',\n          },\n        },\n      ],\n      return: 'boolean',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'PartialCheckAction',\n      href: '../PartialCheckAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TPaths',\n        },\n        {\n          type: 'custom',\n          name: 'TSelection',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/rawCheck/index.mdx",
    "content": "---\ntitle: rawCheck\ndescription: Creates a raw check validation action.\nsource: /actions/rawCheck/rawCheck.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# rawCheck\n\nCreates a raw check validation action.\n\n```ts\nconst Action = v.rawCheck<TInput>(action);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Parameters\n\n- `action` <Property {...properties.action} />\n\n### Explanation\n\nWith `rawCheck` you can freely validate the input with a custom `action` and add issues if necessary.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `rawCheck` can be used.\n\n### Emails schema\n\nObject schema that ensures that the primary email is not the same as any of the other emails.\n\n> This `rawCheck` validation action adds an issue for any invalid other email and forwards it via `path` to the appropriate nested field.\n\n```ts\nconst EmailsSchema = v.pipe(\n  v.object({\n    primaryEmail: v.pipe(v.string(), v.email()),\n    otherEmails: v.array(v.pipe(v.string(), v.email())),\n  }),\n  v.rawCheck(({ dataset, addIssue }) => {\n    if (dataset.typed) {\n      dataset.value.otherEmails.forEach((otherEmail, index) => {\n        if (otherEmail === dataset.value.primaryEmail) {\n          addIssue({\n            message: 'This email is already being used as the primary email.',\n            path: [\n              {\n                type: 'object',\n                origin: 'value',\n                input: dataset.value,\n                key: 'otherEmails',\n                value: dataset.value.otherEmails,\n              },\n              {\n                type: 'array',\n                origin: 'value',\n                input: dataset.value.otherEmails,\n                key: index,\n                value: otherEmail,\n              },\n            ],\n          });\n        }\n      });\n    }\n  })\n);\n```\n\n## Related\n\nThe following APIs can be combined with `rawCheck`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['forward', 'pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/rawCheck/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  action: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'context',\n          type: {\n            type: 'custom',\n            name: 'RawCheckContext',\n            href: '../RawCheckContext/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'TInput',\n              },\n            ],\n          },\n        },\n      ],\n      return: 'void',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'RawCheckAction',\n      href: '../RawCheckAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/rawTransform/index.mdx",
    "content": "---\ntitle: rawTransform\ndescription: Creates a raw transformation action.\nsource: /actions/rawTransform/rawTransform.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# rawTransform\n\nCreates a raw transformation action.\n\n```ts\nconst Action = v.rawTransform<TInput, TOutput>(action);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n\n## Parameters\n\n- `action` <Property {...properties.action} />\n\n### Explanation\n\nWith `rawTransform` you can freely transform and validate the input with a custom `action` and add issues if necessary.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `rawTransform` can be used.\n\n### Calculate game result\n\nSchema that calculates the total score of a game based on the scores and a multiplier.\n\n> This `rawTransform` validation action adds an issue for points that exceed a certain maximum and forwards it via `path` to the appropriate nested score.\n\n```ts\nconst GameResultSchema = v.pipe(\n  v.object({\n    scores: v.array(v.pipe(v.number(), v.integer())),\n    multiplier: v.number(),\n  }),\n  v.rawTransform(({ dataset, addIssue, NEVER }) => {\n    // Create total variable\n    let total = 0;\n\n    // Iterate over scores and check points\n    for (let index = 0; index < dataset.value.scores.length; index++) {\n      // Calculate points by multiplying score with multiplier\n      const score = dataset.value.scores[index];\n      const points = score * dataset.value.multiplier;\n\n      // Add issue if points exceed maximum of 1,000 points\n      if (points > 1_000) {\n        addIssue({\n          message:\n            'The score exceeds the maximum allowed value of 1,000 points.',\n          path: [\n            {\n              type: 'object',\n              origin: 'value',\n              input: dataset.value,\n              key: 'scores',\n              value: dataset.value.scores,\n            },\n            {\n              type: 'array',\n              origin: 'value',\n              input: dataset.value.scores,\n              key: index,\n              value: score,\n            },\n          ],\n        });\n\n        // Abort transformation\n        return NEVER;\n      }\n\n      // Add points to total\n      total += points;\n    }\n\n    // Add calculated total to dataset\n    return { ...dataset.value, total };\n  })\n);\n```\n\n## Related\n\nThe following APIs can be combined with `rawTransform`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['forward', 'pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/rawTransform/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  action: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'context',\n          type: {\n            type: 'custom',\n            name: 'RawTransformContext',\n            href: '../RawTransformContext/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'TInput',\n              },\n            ],\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'TOutput',\n      },\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'RawTransformAction',\n      href: '../RawTransformAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TOutput',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/readonly/index.mdx",
    "content": "---\ntitle: readonly\ndescription: Creates a readonly transformation action.\nsource: /actions/readonly/readonly.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# readonly\n\nCreates a readonly transformation action.\n\n```ts\nconst Action = v.readonly<TInput>();\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `readonly` can be used.\n\n### Readonly array\n\nSchema for a readonly array of numbers.\n\n```ts\nconst ArraySchema = v.pipe(v.array(v.number()), v.readonly());\n```\n\n### Readonly entry\n\nObject schema with an entry marked as readonly.\n\n```ts\nconst ObjectSchema = v.object({\n  name: v.string(),\n  username: v.pipe(v.string(), v.readonly()),\n  age: v.number(),\n});\n```\n\n## Related\n\nThe following APIs can be combined with `readonly`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/readonly/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'ReadonlyAction',\n      href: '../ReadonlyAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/reduceItems/index.mdx",
    "content": "---\ntitle: reduceItems\ndescription: Creates a reduce items transformation action.\nsource: /actions/reduceItems/reduceItems.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# reduceItems\n\nCreates a reduce items transformation action.\n\n```ts\nconst Action = v.reduceItems<TInput, TOutput>(operation, initial);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n\n## Parameters\n\n- `operation` <Property {...properties.operation} />\n- `initial` <Property {...properties.initial} />\n\n### Explanation\n\nWith `reduceItems` you can apply an `operation` to each item in an array to reduce it to a single value.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `reduceItems` can be used.\n\n### Sum all numbers\n\nSchema that sums all the numbers in an array.\n\n```ts\nconst SumArraySchema = v.pipe(\n  v.array(v.number()),\n  v.reduceItems((sum, item) => sum + item, 0)\n);\n```\n\n## Related\n\nThe following APIs can be combined with `reduceItems`.\n\n### Schemas\n\n<ApiList items={['any', 'array', 'custom', 'instance', 'tuple', 'unknown']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/reduceItems/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ArrayInput',\n      href: '../ArrayInput/',\n    },\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  operation: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'output',\n          type: {\n            type: 'custom',\n            name: 'TOutput',\n          },\n        },\n        {\n          name: 'item',\n          type: {\n            type: 'custom',\n            name: 'TInput',\n            indexes: ['number'],\n          },\n        },\n        {\n          name: 'index',\n          type: 'number',\n        },\n        {\n          name: 'array',\n          type: {\n            type: 'custom',\n            name: 'TInput',\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'TOutput',\n      },\n    },\n  },\n  initial: {\n    type: {\n      type: 'custom',\n      name: 'TOutput',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'ReduceItemsAction',\n      href: '../ReduceItemsAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TOutput',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/regex/index.mdx",
    "content": "---\ntitle: regex\ndescription: Creates a regex validation action.\nsource: /actions/regex/regex.ts\ncontributors:\n  - fabian-hiller\n  - CanRau\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# regex\n\nCreates a [regex](https://en.wikipedia.org/wiki/Regular_expression) validation action.\n\n```ts\nconst Action = v.regex<TInput, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `regex` you can validate the formatting of a string. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n> Hint: Be careful with the global flag `g` in your regex pattern, as it can lead to unexpected results. See [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test#using_test_on_a_regex_with_the_global_flag) for more information.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `regex` can be used.\n\n### Pixel string schema\n\nSchema to validate a pixel string.\n\n```ts\nconst PixelStringSchema = v.pipe(\n  v.string(),\n  v.regex(/^\\d+px$/, 'The pixel string is badly formatted.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `regex`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/regex/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'RegexIssue',\n              href: '../RegexIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'RegexAction',\n      href: '../RegexAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/returns/index.mdx",
    "content": "---\ntitle: returns\ndescription: Creates a function return transformation action.\nsource: /actions/returns/returns.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# returns\n\nCreates a function return transformation action.\n\n```ts\nconst Action = v.returns<TInput, TSchema>(schema);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TSchema` <Property {...properties.TSchema} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n\n### Explanation\n\nWith `returns` you can force the returned value of a function to match the given `schema`.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `returns` can be used.\n\n### Function schema\n\nSchema of a function that transforms a string to a number.\n\n```ts\nconst FunctionSchema = v.pipe(\n  v.function(),\n  v.args(v.tuple([v.pipe(v.string(), v.decimal())])),\n  v.returns(v.number())\n);\n```\n\n## Related\n\nThe following APIs can be combined with `returns`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/returns/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'function',\n      params: [\n        {\n          spread: true,\n          name: 'args',\n          type: {\n            type: 'array',\n            item: 'any',\n          },\n        },\n      ],\n      return: 'unknown',\n    },\n  },\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'ReturnsAction',\n      href: '../ReturnsAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/rfcEmail/index.mdx",
    "content": "---\ntitle: rfcEmail\ndescription: Creates a RFC email validation action.\nsource: /actions/rfcEmail/rfcEmail.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# rfcEmail\n\nCreates a [RFC email](https://datatracker.ietf.org/doc/html/rfc5322#section-3.4.1) validation action.\n\n```ts\nconst Action = v.rfcEmail<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `rfcEmail` you can validate the formatting of a string. If the input is not an email, you can use `message` to customize the error message.\n\n> This validation action intentionally validates the entire RFC 5322 specification. If you are interested in an action that only covers common email addresses, please use the <Link href=\"../email/\">`email`</Link> action instead.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `rfcEmail` can be used.\n\n### Email schema\n\nSchema to validate an email.\n\n```ts\nconst EmailSchema = v.pipe(\n  v.string(),\n  v.nonEmpty('Please enter your email.'),\n  v.rfcEmail('The email is badly formatted.'),\n  v.maxLength(30, 'Your email is too long.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `rfcEmail`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/rfcEmail/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'RfcEmailIssue',\n              href: '../RfcEmailIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'RfcEmailAction',\n      href: '../RfcEmailAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/safeInteger/index.mdx",
    "content": "---\ntitle: safeInteger\ndescription: Creates a safe integer validation action.\nsource: /actions/safeInteger/safeInteger.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# safeInteger\n\nCreates a safe integer validation action.\n\n```ts\nconst Action = v.safeInteger<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `safeInteger` you can validate the value of a number. If the input is not a safe integer, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `safeInteger` can be used.\n\n### Safe integer schema\n\nSchema to validate an safe integer.\n\n```ts\nconst SafeIntegerSchema = v.pipe(\n  v.number(),\n  v.safeInteger('The number must be a safe integer.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `safeInteger`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'number', 'unknown']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/safeInteger/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'SafeIntegerIssue',\n              href: '../SafeIntegerIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'SafeIntegerAction',\n      href: '../SafeIntegerAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/size/index.mdx",
    "content": "---\ntitle: size\ndescription: Creates a size validation action.\nsource: /actions/size/size.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# size\n\nCreates a size validation action.\n\n```ts\nconst Action = v.size<TInput, TRequirement, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `size` you can validate the size of a map, set or blob. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `size` can be used.\n\n### Blob size schema\n\nSchema to validate a blob with a size of 256 bytes.\n\n```ts\nconst BlobSchema = v.pipe(\n  v.blob(),\n  v.size(256, 'The blob must be 256 bytes in size.')\n);\n```\n\n### Set size schema\n\nSchema to validate a set of 8 numbers.\n\n```ts\nconst SetSchema = v.pipe(\n  v.set(number()),\n  v.size(8, 'The set must contain 8 numbers.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `size`.\n\n### Schemas\n\n<ApiList\n  items={['any', 'array', 'custom', 'instance', 'string', 'tuple', 'unknown']}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/size/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'SizeInput',\n      href: '../SizeInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'SizeIssue',\n              href: '../SizeIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'SizeAction',\n      href: '../SizeAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/slug/index.mdx",
    "content": "---\ntitle: slug\ndescription: Creates a slug validation action.\nsource: /actions/slug/slug.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# slug\n\nCreates an [slug](https://en.wikipedia.org/wiki/Clean_URL#Slug) validation action.\n\n```ts\nconst Action = v.slug<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `slug` you can validate the formatting of a string. If the input is not a URL slug, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `slug` can be used.\n\n### Slug schema\n\nSchema to validate a slug.\n\n```ts\nconst SlugSchema = v.pipe(\n  v.string(),\n  v.nonEmpty('Please provide a slug.'),\n  v.slug('The slug is badly formatted.'),\n  v.maxLength(100, 'Your slug is too long.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `slug`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/slug/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'SlugIssue',\n              href: '../SlugIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'SlugAction',\n      href: '../SlugAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/someItem/index.mdx",
    "content": "---\ntitle: someItem\ndescription: Creates a some item validation action.\nsource: /actions/someItem/someItem.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# someItem\n\nCreates a some item validation action.\n\n```ts\nconst Action = v.someItem<TInput, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `someItem` you can freely validate the items of an array and return `true` if they are valid or `false` otherwise. If not some item matches your `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `someItem` can be used.\n\n### Unsorted array schema\n\nSchema to validate that an array is not sorted.\n\n```ts\nconst UnsortedArraySchema = v.pipe(\n  v.array(v.number()),\n  v.someItem(\n    (item, index, array) => array.length === 1 || item < array[index - 1],\n    'The numbers must not be sorted in ascending order.'\n  )\n);\n```\n\n## Related\n\nThe following APIs can be combined with `someItem`.\n\n### Schemas\n\n<ApiList items={['any', 'array', 'custom', 'instance', 'tuple', 'unknown']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/someItem/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ArrayInput',\n      href: '../ArrayInput/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'SomeItemIssue',\n              href: '../SomeItemIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'ArrayRequirement',\n      href: '../ArrayRequirement/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'SomeItemAction',\n      href: '../SomeItemAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/sortItems/index.mdx",
    "content": "---\ntitle: sortItems\ndescription: Creates a sort items transformation action.\nsource: /actions/sortItems/sortItems.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# sortItems\n\nCreates a sort items transformation action.\n\n```ts\nconst Action = v.sortItems<TInput>(operation);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Parameters\n\n- `operation` <Property {...properties.operation} />\n\n### Explanation\n\nWith `sortItems` you can sort the items of an array based on a custom `operation`. This is a function that takes two items and returns a number. If the number is less than 0, the first item is sorted before the second item. If the number is greater than 0, the second item is sorted before the first. If the number is 0, the order of the items is not changed.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `sortItems` can be used.\n\n### Sort numbers\n\nSchema that sorts the numbers in an array in ascending order.\n\n```ts\nconst SortedArraySchema = v.pipe(v.array(v.number()), v.sortItems());\n```\n\n## Related\n\nThe following APIs can be combined with `sortItems`.\n\n### Schemas\n\n<ApiList items={['any', 'array', 'custom', 'instance', 'tuple', 'unknown']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/sortItems/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ArrayInput',\n      href: '../ArrayInput/',\n    },\n  },\n  operation: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'function',\n          params: [\n            {\n              name: 'itemA',\n              type: {\n                type: 'custom',\n                name: 'TInput',\n                indexes: ['number'],\n              },\n            },\n            {\n              name: 'itemB',\n              type: {\n                type: 'custom',\n                name: 'TInput',\n                indexes: ['number'],\n              },\n            },\n          ],\n          return: 'number',\n        },\n        'undefined',\n      ],\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'SortItemsAction',\n      href: '../SortItemsAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/startsWith/index.mdx",
    "content": "---\ntitle: startsWith\ndescription: Creates a starts with validation action.\nsource: /actions/startsWith/startsWith.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# startsWith\n\nCreates a starts with validation action.\n\n```ts\nconst Action = v.startsWith<TInput, TRequirement, TMessage>(\n  requirement,\n  message\n);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `startsWith` you can validate the start of a string. If the start does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `startsWith` can be used.\n\n### HTTPS URL schema\n\nSchema to validate a HTTPS URL.\n\n```ts\nconst HttpsUrlSchema = v.pipe(v.string(), v.url(), v.startsWith('https://'));\n```\n\n## Related\n\nThe following APIs can be combined with `startsWith`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/startsWith/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'StartsWithIssue',\n              href: '../StartsWithIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'StartsWithAction',\n      href: '../StartsWithAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/stringifyJson/index.mdx",
    "content": "---\ntitle: stringifyJson\ndescription: JSON stringify transformation action.\nsource: /actions/stringifyJson/stringifyJson.ts\ncontributors:\n  - EskiMojo14\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# stringifyJson\n\nCreates a JSON stringify transformation action.\n\n```ts\nconst Action = v.stringifyJson<TInput, TConfig, TMessage>(config, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TConfig` <Property {...properties.TConfig} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `config` <Property {...properties.config} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `stringifyJson` you can stringify a JSON object. If the input is unable to be stringified, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `stringifyJson` can be used.\n\n### Stringify JSON\n\nStringify a JSON object.\n\n```ts\nconst StringifiedObjectSchema = v.pipe(\n  v.object({ key: v.string() }),\n  v.stringifyJson()\n);\n```\n\n### Stringify JSON with replacer\n\nStringify a JSON object with a replacer function.\n\n```ts\nconst StringifiedObjectSchema = v.pipe(\n  v.object({ key: v.string() }),\n  v.stringifyJson({\n    replacer: (key, value) =>\n      typeof value === 'string' ? value.toUpperCase() : value,\n  })\n);\n```\n\n## Related\n\nThe following APIs can be combined with `stringifyJson`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'picklist',\n    'record',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'tuple',\n    'tupleWithRest',\n    'union',\n    'unknown',\n    'variant',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/stringifyJson/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TConfig: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'StringifyJsonConfig',\n          href: '../StringifyJsonConfig/',\n        },\n        'undefined',\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'StringifyJsonIssue',\n              href: '../StringifyJsonIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  config: {\n    type: {\n      type: 'custom',\n      name: 'TConfig',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'StringifyJsonAction',\n      href: '../StringifyJsonAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TConfig',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/title/index.mdx",
    "content": "---\ntitle: title\ndescription: Creates a title metadata action.\nsource: /actions/title/title.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# title\n\nCreates a title metadata action.\n\n```ts\nconst Action = v.title<TInput, TTitle>(title_);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TTitle` <Property {...properties.TTitle} />\n\n## Parameters\n\n- `title_` <Property {...properties['title_']} />\n\n### Explanation\n\nWith `title` you can give a title to a schema. This can be useful when working with AI tools or for documentation purposes.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `title` can be used.\n\n### Username schema\n\nSchema to validate a user name.\n\n```ts\nconst UsernameSchema = v.pipe(\n  v.string(),\n  v.regex(/^[a-z0-9_-]{4,16}$/iu),\n  v.title('Username'),\n  v.description(\n    'A username must be between 4 and 16 characters long and can only contain letters, numbers, underscores and hyphens.'\n  )\n);\n```\n\n## Related\n\nThe following APIs can be combined with `title`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['getTitle', 'pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/title/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TTitle: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  title_: {\n    type: {\n      type: 'custom',\n      name: 'TTitle',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'TitleAction',\n      href: '../TitleAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TTitle',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/toBigint/index.mdx",
    "content": "---\ntitle: toBigint\ndescription: Creates a to bigint transformation action.\nsource: /actions/toBigint/toBigint.ts\ncontributors:\n  - EskiMojo14\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# toBigint\n\nCreates a to bigint transformation action.\n\n```ts\nconst Action = v.toBigint<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `toBigint` you can transform the input to a bigint. If the input cannot be transformed, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `toBigint` can be used.\n\n### Number schema\n\nSchema to validate a number and transform it to a bigint.\n\n```ts\nconst NumberSchema = v.pipe(v.number(), v.toBigint());\n```\n\n## Related\n\nThe following APIs can be combined with `toBigint`.\n\n### Schemas\n\n<ApiList items={['any', 'boolean', 'custom', 'number', 'string', 'unknown']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/toBigint/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ToBigintIssue',\n              href: '../ToBigintIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'ToBigintAction',\n      href: '../ToBigintAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/toBoolean/index.mdx",
    "content": "---\ntitle: toBoolean\ndescription: Creates a to boolean transformation action.\nsource: /actions/toBoolean/toBoolean.ts\ncontributors:\n  - EskiMojo14\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# toBoolean\n\nCreates a to boolean transformation action.\n\n```ts\nconst Action = v.toBoolean<TInput>();\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `toBoolean` can be used.\n\n### Boolean schema\n\nSchema to validate a string and transform it to a boolean.\n\n```ts\nconst BooleanSchema = v.pipe(v.string(), v.toBoolean());\n```\n\n## Related\n\nThe following APIs can be combined with `toBoolean`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'bigint',\n    'custom',\n    'date',\n    'null',\n    'number',\n    'string',\n    'symbol',\n    'undefined',\n    'unknown',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/toBoolean/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'ToBooleanAction',\n      href: '../ToBooleanAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/toDate/index.mdx",
    "content": "---\ntitle: toDate\ndescription: Creates a to date transformation action.\nsource: /actions/toDate/toDate.ts\ncontributors:\n  - EskiMojo14\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# toDate\n\nCreates a to date transformation action.\n\n```ts\nconst Action = v.toDate<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `toDate` you can transform the input to a date. If the input cannot be transformed, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `toDate` can be used.\n\n### Date schema\n\nSchema to validate a string and transform it to a date.\n\n```ts\nconst DateSchema = v.pipe(v.string(), v.toDate());\n```\n\n## Related\n\nThe following APIs can be combined with `toDate`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'number', 'string', 'unknown']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/toDate/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ToDateIssue',\n              href: '../ToDateIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'ToDateAction',\n      href: '../ToDateAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/toLowerCase/index.mdx",
    "content": "---\ntitle: toLowerCase\ndescription: Creates a to lower case transformation action.\nsource: /actions/toLowerCase/toLowerCase.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# toLowerCase\n\nCreates a to lower case transformation action.\n\n```ts\nconst Action = v.toLowerCase();\n```\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `toLowerCase` can be used.\n\n### Lower case string\n\nSchema that transforms a string to lower case.\n\n```ts\nconst StringSchema = v.pipe(v.string(), v.toLowerCase());\n```\n\n## Related\n\nThe following APIs can be combined with `toLowerCase`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/toLowerCase/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'ToLowerCaseAction',\n      href: '../ToLowerCaseAction/',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/toMaxValue/index.mdx",
    "content": "---\ntitle: toMaxValue\ndescription: Creates a to max value transformation action.\nsource: /actions/toMaxValue/toMaxValue.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# toMaxValue\n\nCreates a to max value transformation action.\n\n```ts\nconst Action = v.toMaxValue<TInput, TRequirement>(requirement);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n\n### Explanation\n\nWith `toMaxValue` you can enforce a maximum value for a number, date or string. If the input does not meet the `requirement`, it will be changed to its value.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `toMaxValue` can be used.\n\n### Number schema\n\nSchema to enforce a maximum value for a number.\n\n```ts\nconst NumberSchema = v.pipe(v.number(), v.toMaxValue(100));\n```\n\n### Date schema\n\nSchema to enforce a maximum value for a date.\n\n```ts\nconst DateSchema = v.pipe(v.date(), v.toMaxValue(new Date('1999-12-31')));\n```\n\n## Related\n\nThe following APIs can be combined with `toMaxValue`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'bigint',\n    'boolean',\n    'custom',\n    'date',\n    'number',\n    'string',\n    'unknown',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/toMaxValue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ValueInput',\n      href: '../ValueInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'ToMaxValueAction',\n      href: '../ToMaxValueAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/toMinValue/index.mdx",
    "content": "---\ntitle: toMinValue\ndescription: Creates a to min value transformation action.\nsource: /actions/toMinValue/toMinValue.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# toMinValue\n\nCreates a to min value transformation action.\n\n```ts\nconst Action = v.toMinValue<TInput, TRequirement>(requirement);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n\n### Explanation\n\nWith `toMinValue` you can enforce a minimum value for a number, date or string. If the input does not meet the `requirement`, it will be changed to its value.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `toMinValue` can be used.\n\n### Number schema\n\nSchema to enforce a minimum value for a number.\n\n```ts\nconst NumberSchema = v.pipe(v.number(), v.toMinValue(100));\n```\n\n### Date schema\n\nSchema to enforce a minimum value for a date.\n\n```ts\nconst DateSchema = v.pipe(v.date(), v.toMinValue(new Date('1999-12-31')));\n```\n\n## Related\n\nThe following APIs can be combined with `toMinValue`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'bigint',\n    'boolean',\n    'custom',\n    'date',\n    'number',\n    'string',\n    'unknown',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/toMinValue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ValueInput',\n      href: '../ValueInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'ToMinValueAction',\n      href: '../ToMinValueAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/toNumber/index.mdx",
    "content": "---\ntitle: toNumber\ndescription: Creates a to number transformation action.\nsource: /actions/toNumber/toNumber.ts\ncontributors:\n  - EskiMojo14\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# toNumber\n\nCreates a to number transformation action.\n\n```ts\nconst Action = v.toNumber<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `toNumber` you can transform the input to a number. If the input cannot be transformed, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `toNumber` can be used.\n\n### Number schema\n\nSchema to validate a string and transform it to a number.\n\n```ts\nconst NumberSchema = v.pipe(v.string(), v.toNumber());\n```\n\n## Related\n\nThe following APIs can be combined with `toNumber`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'bigint',\n    'boolean',\n    'custom',\n    'date',\n    'null',\n    'string',\n    'unknown',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/toNumber/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ToNumberIssue',\n              href: '../ToNumberIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'ToNumberAction',\n      href: '../ToNumberAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/toString/index.mdx",
    "content": "---\ntitle: toString\ndescription: Creates a to string transformation action.\nsource: /actions/toString/toString.ts\ncontributors:\n  - EskiMojo14\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# toString\n\nCreates a to string transformation action.\n\n```ts\nconst Action = v.toString<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `toString` you can transform the input to a string. If the input cannot be transformed, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `toString` can be used.\n\n### String schema\n\nSchema to validate a number and transform it to a string.\n\n```ts\nconst StringSchema = v.pipe(v.number(), v.toString());\n```\n\n## Related\n\nThe following APIs can be combined with `toString`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'bigint',\n    'boolean',\n    'custom',\n    'date',\n    'null',\n    'number',\n    'symbol',\n    'undefined',\n    'unknown',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/toString/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ToStringIssue',\n              href: '../ToStringIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'ToStringAction',\n      href: '../ToStringAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/toUpperCase/index.mdx",
    "content": "---\ntitle: toUpperCase\ndescription: Creates a to upper case transformation action.\nsource: /actions/toUpperCase/toUpperCase.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# toUpperCase\n\nCreates a to upper case transformation action.\n\n```ts\nconst Action = v.toUpperCase();\n```\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `toUpperCase` can be used.\n\n### Lower case string\n\nSchema that transforms a string to upper case.\n\n```ts\nconst StringSchema = v.pipe(v.string(), v.toUpperCase());\n```\n\n## Related\n\nThe following APIs can be combined with `toUpperCase`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/toUpperCase/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'ToUpperCaseAction',\n      href: '../ToUpperCaseAction/',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/transform/index.mdx",
    "content": "---\ntitle: transform\ndescription: Creates a custom transformation action.\nsource: /actions/transform/transform.ts\ncontributors:\n  - fabian-hiller\n  - HJGreen\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# transform\n\nCreates a custom transformation action.\n\n```ts\nconst Action = v.transform<TInput, TOutput>(action);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n\n## Parameters\n\n- `action` <Property {...properties.action} />\n\n### Explanation\n\n`transform` can be used to freely transform the input. The `action` parameter is a function that takes the input and returns the transformed output.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `transform` can be used.\n\n### Transform to length\n\nSchema that transforms a string to its length.\n\n```ts\nconst StringLengthSchema = v.pipe(\n  v.string(),\n  v.transform((input) => input.length)\n);\n```\n\n### Add object entry\n\nSchema that transforms an object to add an entry.\n\n```ts\nconst UserSchema = v.pipe(\n  v.object({ name: v.string(), age: v.number() }),\n  v.transform((input) => ({\n    ...input,\n    created: new Date().toISOString(),\n  }))\n);\n```\n\n## Related\n\nThe following APIs can be combined with `transform`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/transform/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  action: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: {\n            type: 'custom',\n            name: 'TInput',\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'TOutput',\n      },\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'TransformAction',\n      href: '../TransformAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TOutput',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/trim/index.mdx",
    "content": "---\ntitle: trim\ndescription: Creates a trim transformation action.\nsource: /actions/trim/trim.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# trim\n\nCreates a trim transformation action.\n\n```ts\nconst Action = v.trim();\n```\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `trim` can be used.\n\n### Trimmed string\n\nSchema to trim the start and end of a string.\n\n```ts\nconst StringSchema = v.pipe(v.string(), v.trim());\n```\n\n## Related\n\nThe following APIs can be combined with `trim`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/trim/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'TrimAction',\n      href: '../TrimAction/',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/trimEnd/index.mdx",
    "content": "---\ntitle: trimEnd\ndescription: Creates a trim end transformation action.\nsource: /actions/trimEnd/trimEnd.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# trimEnd\n\nCreates a trim end transformation action.\n\n```ts\nconst Action = v.trimEnd();\n```\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `trimEnd` can be used.\n\n### Trimmed string\n\nSchema to trimEnd the end of a string.\n\n```ts\nconst StringSchema = v.pipe(v.string(), v.trimEnd());\n```\n\n## Related\n\nThe following APIs can be combined with `trimEnd`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/trimEnd/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'TrimEndAction',\n      href: '../TrimEndAction/',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/trimStart/index.mdx",
    "content": "---\ntitle: trimStart\ndescription: Creates a trim start transformation action.\nsource: /actions/trimStart/trimStart.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# trimStart\n\nCreates a trim start transformation action.\n\n```ts\nconst Action = v.trimStart();\n```\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `trimStart` can be used.\n\n### Trimmed string\n\nSchema to trimStart the start of a string.\n\n```ts\nconst StringSchema = v.pipe(v.string(), v.trimStart());\n```\n\n## Related\n\nThe following APIs can be combined with `trimStart`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/trimStart/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'TrimStartAction',\n      href: '../TrimStartAction/',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/ulid/index.mdx",
    "content": "---\ntitle: ulid\ndescription: Creates an ULID validation action.\nsource: /actions/ulid/ulid.ts\ncontributors:\n  - fabian-hiller\n  - jmcdo29\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# ulid\n\nCreates an [ULID](https://github.com/ulid/spec) validation action.\n\n```ts\nconst Action = v.ulid<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `ulid` you can validate the formatting of a string. If the input is not an ULID, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `ulid` can be used.\n\n### ULID schema\n\nSchema to validate an ULID.\n\n```ts\nconst UlidSchema = v.pipe(v.string(), v.ulid('The ULID is badly formatted.'));\n```\n\n## Related\n\nThe following APIs can be combined with `ulid`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/ulid/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'UlidIssue',\n              href: '../UlidIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'UlidAction',\n      href: '../UlidAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/url/index.mdx",
    "content": "---\ntitle: url\ndescription: Creates an URL validation action.\nsource: /actions/url/url.ts\ncontributors:\n  - fabian-hiller\n  - depsimon\n  - yslpn\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# url\n\nCreates an [URL](https://en.wikipedia.org/wiki/URL) validation action.\n\n```ts\nconst Action = v.url<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `url` you can validate the formatting of a string. If the input is not an URL, you can use `message` to customize the error message.\n\n> If you only need to validate an ASCII domain name, consider the <Link href=\"../domain/\">`domain`</Link> action.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `url` can be used.\n\n### URL schema\n\nSchema to validate an URL.\n\n```ts\nconst UrlSchema = v.pipe(\n  v.string(),\n  v.nonEmpty('Please enter your url.'),\n  v.url('The url is badly formatted.'),\n  v.endsWith('.com', 'Only \".com\" domains are allowed.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `url`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/url/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'UrlIssue',\n              href: '../UrlIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'UrlAction',\n      href: '../UrlAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/uuid/index.mdx",
    "content": "---\ntitle: uuid\ndescription: Creates an UUID validation action.\nsource: /actions/uuid/uuid.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# uuid\n\nCreates an [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) validation action.\n\n```ts\nconst Action = v.uuid<TInput, TMessage>(message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `uuid` you can validate the formatting of a string. If the input is not an UUID, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `uuid` can be used.\n\n### UUID schema\n\nSchema to validate an UUID.\n\n```ts\nconst UuidSchema = v.pipe(v.string(), v.uuid('The UUID is badly formatted.'));\n```\n\n## Related\n\nThe following APIs can be combined with `uuid`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/uuid/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'UuidIssue',\n              href: '../UuidIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'UuidAction',\n      href: '../UuidAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/value/index.mdx",
    "content": "---\ntitle: value\ndescription: Creates a value validation action.\nsource: /actions/value/value.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# value\n\nCreates a value validation action.\n\n```ts\nconst Action = v.value<TInput, TRequirement, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `value` you can validate the value of a string, number, boolean or date. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n> This action does not change the type of the pipeline. Use the <Link href=\"../literal/\">`literal`</Link> schema instead if you want the type to match a specific value.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `value` can be used.\n\n### Number schema\n\nSchema to validate a number with a specific value.\n\n```ts\nconst NumberSchema = v.pipe(\n  v.number(),\n  v.value(100, 'The number must be 100.')\n);\n```\n\n### Date schema\n\nSchema to validate a date with a specific value.\n\n```ts\nconst DateSchema = v.pipe(\n  v.date(),\n  v.value(new Date('2000-01-01'), 'The date must be the first day of 2000.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `value`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'bigint',\n    'boolean',\n    'custom',\n    'date',\n    'number',\n    'string',\n    'unknown',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/value/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ValueInput',\n      href: '../ValueInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ValueIssue',\n              href: '../ValueIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'ValueAction',\n      href: '../ValueAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/values/index.mdx",
    "content": "---\ntitle: values\ndescription: Creates a values validation action.\nsource: /actions/values/values.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# values\n\nCreates a values validation action.\n\n```ts\nconst Action = v.values<TInput, TRequirement, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `values` you can validate the value of a string, number, boolean or date. If the input does not match one of the values in the `requirement`, you can use `message` to customize the error message.\n\n> This action does not change the type of the pipeline. Use the <Link href=\"../picklist/\">`picklist`</Link> schema instead if you want the type to match the union of specific values.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `values` can be used.\n\n### Number schema\n\nSchema to validate a number with specific values.\n\n```ts\nconst NumberSchema = v.pipe(\n  v.number(),\n  v.values([5, 15, 20], 'The number must be one of the allowed numbers.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `values`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'bigint',\n    'boolean',\n    'custom',\n    'date',\n    'number',\n    'string',\n    'unknown',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/values/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ValueInput',\n      href: '../ValueInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      modifier: 'readonly',\n      type: 'array',\n      item: {\n        type: 'custom',\n        name: 'TInput',\n      },\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ValuesIssue',\n              href: '../ValuesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'ValuesAction',\n      href: '../ValuesAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(actions)/words/index.mdx",
    "content": "---\ntitle: words\ndescription: Creates a words validation action.\nsource: /actions/words/words.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# words\n\nCreates a [words](https://en.wikipedia.org/wiki/Word) validation action.\n\n```ts\nconst Action = v.words<TInput, TLocales, TRequirement, TMessage>(\n  locales,\n  requirement,\n  message\n);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TLocales` <Property {...properties.TLocales} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `locales` <Property {...properties.locales} />\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `words` you can validate the words of a string based on the specified `locales`. If the input does not match the `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `words` can be used.\n\n### Words schema\n\nSchema to validate a string with 3 words.\n\n```ts\nconst WordsSchema = v.pipe(\n  v.string(),\n  v.words('en', 3, 'Exactly 3 words are required.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `words`.\n\n### Schemas\n\n<ApiList items={['any', 'custom', 'string']} />\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(actions)/words/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TLocales: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Intl.LocalesArgument',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'WordsIssue',\n              href: '../WordsIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  locales: {\n    type: {\n      type: 'custom',\n      name: 'TLocales',\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'WordsAction',\n      href: '../WordsAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TLocales',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/argsAsync/index.mdx",
    "content": "---\ntitle: argsAsync\ndescription: Creates a function arguments transformation action.\nsource: /actions/args/argsAsync.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# argsAsync\n\nCreates a function arguments transformation action.\n\n```ts\nconst Action = v.argsAsync<TInput, TSchema>(schema);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TSchema` <Property {...properties.TSchema} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n\n### Explanation\n\nWith `argsAsync` you can force the arguments of a function to match the given `schema`.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `argsAsync` can be used.\n\n### Product function schema\n\nSchema of a function that returns a product by its ID.\n\n```ts\nimport { isValidProductId } from '~/api';\n\nconst ProductFunctionSchema = v.pipeAsync(\n  v.function(),\n  v.argsAsync(\n    v.tupleAsync([v.pipeAsync(v.string(), v.checkAsync(isValidProductId))])\n  ),\n  v.returnsAsync(\n    v.pipeAsync(\n      v.promise(),\n      v.awaitAsync(),\n      v.object({\n        id: v.string(),\n        name: v.string(),\n        price: v.number(),\n      })\n    )\n  )\n);\n```\n\n## Related\n\nThe following APIs can be combined with `argsAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'custom',\n    'looseTuple',\n    'function',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'customAsync',\n    'looseTupleAsync',\n    'pipeAsync',\n    'returnsAsync',\n    'strictTupleAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/argsAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'function',\n      params: [\n        {\n          spread: true,\n          name: 'args',\n          type: {\n            type: 'array',\n            item: 'any',\n          },\n        },\n      ],\n      return: 'unknown',\n    },\n  },\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'LooseTupleSchema',\n          href: '../LooseTupleSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleItems',\n              href: '../TupleItems/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'LooseTupleIssue',\n                      href: '../LooseTupleIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'LooseTupleSchemaAsync',\n          href: '../LooseTupleSchemaAsync/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleItemsAsync',\n              href: '../TupleItemsAsync/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'LooseTupleIssue',\n                      href: '../LooseTupleIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'StrictTupleSchema',\n          href: '../StrictTupleSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleItems',\n              href: '../TupleItems/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'StrictTupleIssue',\n                      href: '../StrictTupleIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'StrictTupleSchemaAsync',\n          href: '../StrictTupleSchemaAsync/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleItemsAsync',\n              href: '../TupleItemsAsync/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'StrictTupleIssue',\n                      href: '../StrictTupleIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'TupleSchema',\n          href: '../TupleSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleItems',\n              href: '../TupleItems/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'TupleIssue',\n                      href: '../TupleIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'TupleSchemaAsync',\n          href: '../TupleSchemaAsync/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleItemsAsync',\n              href: '../TupleItemsAsync/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'TupleIssue',\n                      href: '../TupleIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'TupleWithRestSchema',\n          href: '../TupleWithRestSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleItems',\n              href: '../TupleItems/',\n            },\n            {\n              type: 'custom',\n              name: 'BaseSchema',\n              href: '../BaseSchema/',\n              generics: [\n                'unknown',\n                'unknown',\n                {\n                  type: 'custom',\n                  name: 'BaseIssue',\n                  href: '../BaseIssue/',\n                  generics: ['unknown'],\n                },\n              ],\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'TupleWithRestIssue',\n                      href: '../TupleWithRestIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'TupleWithRestSchemaAsync',\n          href: '../TupleWithRestSchemaAsync/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleItemsAsync',\n              href: '../TupleItemsAsync/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'BaseSchema',\n                  href: '../BaseSchema/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n                {\n                  type: 'custom',\n                  name: 'BaseSchemaAsync',\n                  href: '../BaseSchemaAsync/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'TupleWithRestIssue',\n                      href: '../TupleWithRestIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'ArgsActionAsync',\n      href: '../ArgsActionAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/arrayAsync/index.mdx",
    "content": "---\ntitle: arrayAsync\ndescription: Creates an array schema.\nsource: /schemas/array/arrayAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# arrayAsync\n\nCreates an array schema.\n\n```ts\nconst Schema = v.arrayAsync<TItem, TMessage>(item, message);\n```\n\n## Generics\n\n- `TItem` <Property {...properties.TItem} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `item` <Property {...properties.item} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `arrayAsync` you can validate the data type of the input. If the input is not an array, you can use `message` to customize the error message.\n\n> If your array has a fixed length, consider using <Link href=\"../tupleAsync/\">`tupleAsync`</Link> for a more precise typing.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `arrayAsync` can be used.\n\n### Stored emails schema\n\nSchema to validate an array of stored emails.\n\n```ts\nimport { isEmailPresent } from '~/api';\n\nconst StoredEmailsSchema = v.arrayAsync(\n  v.pipeAsync(\n    v.string(),\n    v.email(),\n    v.checkAsync(isEmailPresent, 'The email is not in the database.')\n  )\n);\n```\n\n## Related\n\nThe following APIs can be combined with `arrayAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['config', 'getDefault', 'getFallback']} />\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'checkItems',\n    'brand',\n    'description',\n    'empty',\n    'everyItem',\n    'excludes',\n    'filterItems',\n    'findItem',\n    'flavor',\n    'guard',\n    'includes',\n    'length',\n    'mapItems',\n    'maxLength',\n    'metadata',\n    'minLength',\n    'nonEmpty',\n    'notLength',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'reduceItems',\n    'someItem',\n    'sortItems',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'checkAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialCheckAsync',\n    'pipeAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/arrayAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TItem: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ArrayIssue',\n              href: '../ArrayIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  item: {\n    type: {\n      type: 'custom',\n      name: 'TItem',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'ArraySchemaAsync',\n      href: '../ArraySchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TItem',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/awaitAsync/index.mdx",
    "content": "---\ntitle: awaitAsync\ndescription: Creates an await transformation action.\nsource: /actions/await/awaitAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# awaitAsync\n\nCreates an await transformation action.\n\n```ts\nconst Action = v.awaitAsync<TInput>();\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n### Explanation\n\nWith `awaitAsync` you can transform a promise into its resolved value.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `awaitAsync` can be used.\n\n### Unique emails schema\n\nSchema to check a set of emails wrapped in a promise object.\n\n```ts\nconst UniqueEmailsSchema = v.pipeAsync(\n  v.promise(),\n  v.awaitAsync(),\n  v.set(v.pipe(v.string(), v.email()))\n);\n```\n\n## Related\n\nThe following APIs can be combined with `awaitAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'pipeAsync',\n    'recordAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/awaitAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Promise',\n      generics: ['unknown'],\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'AwaitActionAsync',\n      href: '../AwaitActionAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/cacheAsync/index.mdx",
    "content": "---\ntitle: cacheAsync\ndescription: Creates a version of a schema that caches its output.\nsource: /methods/cache/cacheAsync.ts\ncontributors:\n  - EskiMojo14\n  - fabianhiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# cacheAsync\n\nCreates a version of a schema that caches its output.\n\n```ts\nconst Schema = v.cacheAsync<TSchema, TCacheConfig>(schema, config);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n- `TCacheConfig` <Property {...properties.TCacheConfig} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n- `config` <Property {...properties.config} />\n\n### Explanation\n\nThe `cacheAsync` method creates a version of the given `schema` that caches its output. This can be useful for performance optimization, for example when validation involves a network request.\n\n> Hint: Primitive inputs are cached by value. Object and function inputs are cached by reference identity, so mutating input objects and reusing the same reference can return a stale cached dataset. Returned objects are also reused by reference, so mutating cached output can affect later cache hits. For best results, use `cacheAsync` with immutable inputs and avoid mutating returned cached objects.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `cacheAsync` can be used.\n\n### Cache schema\n\nSchema that caches its output.\n\n```ts\nconst CacheSchema = v.cacheAsync(v.string());\n```\n\n### Max size schema\n\nSchema that caches its output for a maximum of 100 items.\n\n```ts\nconst MaxSizeSchema = v.cacheAsync(v.string(), { maxSize: 100 });\n```\n\n### Max age schema\n\nSchema that caches its output for a maximum of 10 seconds.\n\n```ts\nconst MaxAgeSchema = v.cacheAsync(v.string(), { maxAge: 10_000 });\n```\n\n## Related\n\nThe following APIs can be combined with `cacheAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['config', 'getDefault', 'getFallback']} />\n\n### Actions\n\n<ApiList items={['message', 'unwrap']} />\n\n### Async\n\n<ApiList items={['parseAsync', 'safeParseAsync']} />\n"
  },
  {
    "path": "website/src/routes/api/(async)/cacheAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TCacheConfig: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'CacheConfig',\n          href: '../CacheConfig/',\n        },\n        'undefined',\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  config: {\n    type: {\n      type: 'custom',\n      name: 'TCacheConfig',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'SchemaWithCacheAsync',\n      href: '../SchemaWithCacheAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n        {\n          type: 'custom',\n          name: 'TCacheConfig',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/checkAsync/index.mdx",
    "content": "---\ntitle: checkAsync\ndescription: Creates a check validation action.\nsource: /actions/check/checkAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# checkAsync\n\nCreates a check validation action.\n\n```ts\nconst Action = v.checkAsync<TInput, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `checkAsync` you can freely validate the input and return `true` if it is valid or `false` otherwise. If the input does not match your `requirement`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `checkAsync` can be used.\n\n### Cart item schema\n\nSchema to check a cart item object.\n\n```ts\nimport { getProductItem } from '~/api';\n\nconst CartItemSchema = v.pipeAsync(\n  v.object({\n    itemId: v.pipe(v.string(), v.regex(/^[a-z0-9]{10}$/i)),\n    quantity: v.pipe(v.number(), v.minValue(1)),\n  }),\n  v.checkAsync(async (input) => {\n    const productItem = await getProductItem(input.itemId);\n    return productItem?.quantity >= input.quantity;\n  }, 'The required quantity is greater than available.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `checkAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'awaitAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'pipeAsync',\n    'recordAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/checkAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'CheckIssue',\n              href: '../CheckIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: {\n            type: 'custom',\n            name: 'TInput',\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'MaybePromise',\n        href: '../MaybePromise/',\n        generics: ['boolean'],\n      },\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'CheckActionAsync',\n      href: '../CheckActionAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/checkItemsAsync/index.mdx",
    "content": "---\ntitle: checkItemsAsync\ndescription: Creates a check items validation action.\nsource: /actions/checkItems/checkItemsAsync.ts\ncontributors:\n  - EltonLobo07\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# checkItemsAsync\n\nCreates a check items validation action.\n\n```ts\nconst Action = v.checkItemsAsync<TInput, TMessage>(requirement, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `checkItemsAsync` you can freely validate the items of an array and return `true` if they are valid or `false` otherwise. If an item does not match your `requirement`, you can use `message` to customize the error message.\n\n> The special thing about `checkItemsAsync` is that it automatically forwards each issue to the appropriate item.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `checkItemsAsync` can be used.\n\n### Cart items schema\n\nSchema to check an array of cart item objects.\n\n```ts\nimport { getProductItem } from '~/api';\n\nconst CartItemsSchema = v.pipeAsync(\n  v.array(\n    v.object({\n      itemId: v.pipe(v.string(), v.uuid()),\n      quantity: v.pipe(v.number(), v.minValue(1)),\n    })\n  ),\n  v.checkItemsAsync(async (input) => {\n    const productItem = await getProductItem(input.itemId);\n    return (productItem?.quantity ?? 0) >= input.quantity;\n  }, 'The required quantity is greater than available.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `checkItemsAsync`.\n\n### Schemas\n\n<ApiList items={['any', 'array', 'custom', 'instance', 'tuple', 'unknown']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList items={['arrayAsync', 'customAsync', 'pipeAsync', 'tupleAsync']} />\n"
  },
  {
    "path": "website/src/routes/api/(async)/checkItemsAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ArrayInput',\n      href: '../ArrayInput/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'CheckItemsIssue',\n              href: '../CheckItemsIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'ArrayRequirementAsync',\n      href: '../ArrayRequirementAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'CheckItemsActionAsync',\n      href: '../CheckItemsActionAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/customAsync/index.mdx",
    "content": "---\ntitle: customAsync\ndescription: Creates a custom schema.\nsource: /schemas/custom/customAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# customAsync\n\nCreates a custom schema.\n\n> This schema function allows you to define a schema that matches a value based on a custom function. Use it whenever you need to define a schema that cannot be expressed using any of the other schema functions.\n\n```ts\nconst Schema = v.customAsync<TInput, TMessage>(check, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `check` <Property {...properties.check} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `customAsync` you can validate the data type of the input. If the input does not match the validation of `check`, you can use `message` to customize the error message.\n\n> Make sure that the validation in `check` matches the data type of `TInput`.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `customAsync` can be used.\n\n### Vacant seat schema\n\nSchema to validate a vacant seat.\n\n```ts\nimport { isSeatVacant } from '~/api';\n\ntype Group = 'A' | 'B' | 'C' | 'D' | 'E';\ntype DigitLessThanSix = '0' | '1' | '2' | '3' | '4' | '5';\ntype Digit = DigitLessThanSix | '6' | '7' | '8' | '9';\ntype Seat = `${Group}${DigitLessThanSix}${Digit}`;\n\nfunction isSeat(possibleSeat: string): possibleSeat is Seat {\n  return /^[A-E][0-5]\\d$/.test(possibleSeat);\n}\n\nconst VacantSeatSchema = v.customAsync<Seat>(\n  (input) => typeof input === 'string' && isSeat(input) && isSeatVacant(input),\n  'The input is not a valid vacant seat.'\n);\n```\n\n## Related\n\nThe following APIs can be combined with `customAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['config', 'getDefault', 'getFallback']} />\n\n### Actions\n\n<ApiList\n  items={[\n    'args',\n    'base64',\n    'brand',\n    'bytes',\n    'check',\n    'checkItems',\n    'creditCard',\n    'cuid2',\n    'decimal',\n    'description',\n    'digits',\n    'domain',\n    'email',\n    'emoji',\n    'empty',\n    'endsWith',\n    'entries',\n    'everyItem',\n    'excludes',\n    'filterItems',\n    'findItem',\n    'finite',\n    'flavor',\n    'graphemes',\n    'gtValue',\n    'guard',\n    'hash',\n    'hexadecimal',\n    'hexColor',\n    'imei',\n    'includes',\n    'integer',\n    'ip',\n    'ipv4',\n    'ipv6',\n    'isbn',\n    'isrc',\n    'isoDate',\n    'isoDateTime',\n    'isoTime',\n    'isoTimeSecond',\n    'isoTimestamp',\n    'isoWeek',\n    'length',\n    'ltValue',\n    'mac',\n    'mac48',\n    'mac64',\n    'mapItems',\n    'maxBytes',\n    'maxEntries',\n    'maxGraphemes',\n    'maxLength',\n    'maxSize',\n    'maxValue',\n    'maxWords',\n    'metadata',\n    'mimeType',\n    'minBytes',\n    'minEntries',\n    'minGraphemes',\n    'minLength',\n    'minSize',\n    'minValue',\n    'minWords',\n    'multipleOf',\n    'nanoid',\n    'nonEmpty',\n    'notBytes',\n    'notEntries',\n    'notGraphemes',\n    'notLength',\n    'notSize',\n    'notValue',\n    'notValues',\n    'notWords',\n    'octal',\n    'parseJson',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'reduceItems',\n    'regex',\n    'returns',\n    'rfcEmail',\n    'safeInteger',\n    'size',\n    'slug',\n    'someItem',\n    'sortItem',\n    'startsWith',\n    'stringifyJson',\n    'title',\n    'toLowerCase',\n    'toMaxValue',\n    'toMinValue',\n    'toUpperCase',\n    'transform',\n    'trim',\n    'trimEnd',\n    'trimStart',\n    'ulid',\n    'url',\n    'uuid',\n    'value',\n    'values',\n    'words',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'awaitAsync',\n    'checkAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialCheckAsync',\n    'pipeAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/customAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'CustomIssue',\n              href: '../CustomIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n    default: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'CustomIssue',\n              href: '../CustomIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  check: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: 'unknown',\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'MaybePromise',\n        href: '../MaybePromise/',\n        generics: ['boolean'],\n      },\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'CustomSchemaAsync',\n      href: '../CustomSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/exactOptionalAsync/index.mdx",
    "content": "---\ntitle: exactOptionalAsync\ndescription: Creates an exact optional schema.\nsource: /schemas/exactOptional/exactOptionalAsync.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# exactOptionalAsync\n\nCreates an exact optional schema.\n\n```ts\nconst Schema = v.exactOptionalAsync<TWrapped, TDefault>(wrapped, default_);\n```\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TDefault` <Property {...properties.TDefault} />\n\n## Parameters\n\n- `wrapped` <Property {...properties.wrapped} />\n- `default_` {/* prettier-ignore */}<Property {...properties.default_} />\n\n### Explanation\n\nWith `exactOptionalAsync` the validation of your schema will pass missing object entries, and if you specify a `default_` input value, the schema will use it if the object entry is missing. For this reason, the output type may differ from the input type of the schema.\n\n> The difference to <Link href=\"../optionalAsync/\">`optionalAsync`</Link> is that this schema function follows the implementation of TypeScript's [`exactOptionalPropertyTypes` configuration](https://www.typescriptlang.org/tsconfig/#exactOptionalPropertyTypes) and only allows missing but not undefined object entries.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `exactOptionalAsync` can be used.\n\n### New user schema\n\nSchema to validate new user details.\n\n```ts\nimport { isEmailUnique, isUsernameUnique } from '~/api';\n\nconst NewUserSchema = v.objectAsync({\n  email: v.pipeAsync(\n    v.string(),\n    v.email(),\n    v.checkAsync(isEmailUnique, 'The email is not unique.')\n  ),\n  username: v.exactOptionalAsync(\n    v.pipeAsync(\n      v.string(),\n      v.nonEmpty(),\n      v.checkAsync(isUsernameUnique, 'The username is not unique.')\n    )\n  ),\n  password: v.pipe(v.string(), v.minLength(8)),\n});\n\n/*\n  The input and output types of the schema:\n    {\n      email: string;\n      password: string;\n      username?: string;\n    }\n*/\n```\n\n### Unwrap exact optional schema\n\nUse <Link href=\"../unwrap/\">`unwrap`</Link> to undo the effect of `exactOptionalAsync`.\n\n```ts\nimport { isUsernameUnique } from '~/api';\n\nconst UsernameSchema = v.unwrap(\n  // Assume this schema is from a different file and is reused here\n  v.exactOptionalAsync(\n    v.pipeAsync(\n      v.string(),\n      v.nonEmpty(),\n      v.checkAsync(isUsernameUnique, 'The username is not unique.')\n    )\n  )\n);\n```\n\n## Related\n\nThe following APIs can be combined with `exactOptionalAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['config', 'getDefault', 'getFallback', 'unwrap']} />\n\n### Actions\n\n<ApiList\n  items={[\n    'brand',\n    'check',\n    'description',\n    'flavor',\n    'guard',\n    'metadata',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'awaitAsync',\n    'checkAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialCheckAsync',\n    'pipeAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'undefinedableAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/exactOptionalAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TDefault: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'DefaultAsync',\n      href: '../DefaultAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        'never',\n      ],\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  default_: {\n    type: {\n      type: 'custom',\n      name: 'TDefault',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'ExactOptionalSchemaAsync',\n      href: '../ExactOptionalSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        {\n          type: 'custom',\n          name: 'TDefault',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/fallbackAsync/index.mdx",
    "content": "---\ntitle: fallbackAsync\ndescription: Returns a fallback value as output if the input does not match the schema.\nsource: /methods/fallback/fallbackAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# fallbackAsync\n\nReturns a fallback value as output if the input does not match the schema.\n\n```ts\nconst Schema = v.fallbackAsync<TSchema, TFallback>(schema, fallback);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n- `TFallback` <Property {...properties.TFallback} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n- `fallback` <Property {...properties.fallback} />\n\n### Explanation\n\n`fallbackAsync` allows you to define a fallback value for the output that will be used if the validation of the input fails. This means that no issues will be returned when using `fallbackAsync` and the schema will always return an output.\n\n> If you only want to set a default value for `null` or `undefined` inputs, you should use <Link href=\"../optionalAsync/\">`optionalAsync`</Link>, <Link href=\"../nullableAsync/\">`nullableAsync`</Link> or <Link href=\"../nullishAsync/\">`nullishAsync`</Link> instead.\n\n> The fallback value is not validated. Make sure that the fallback value matches your schema.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `fallbackAsync` can be used.\n\n### Unique username schema\n\nSchema that will always return a unique username.\n\n> By using a function as the `fallbackAsync` parameter, the schema will return any unique username each time the input does not match the schema.\n\n```ts\nimport { getAnyUniqueUsername, isUsernameUnique } from '~/api';\n\nconst UniqueUsernameSchema = v.fallbackAsync(\n  v.pipeAsync(v.string(), v.minLength(4), v.checkAsync(isUsernameUnique)),\n  getAnyUniqueUsername\n);\n```\n\n## Related\n\nThe following APIs can be combined with `fallbackAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'config',\n    'getDefault',\n    'getFallback',\n    'keyof',\n    'message',\n    'omit',\n    'pick',\n    'unwrap',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'args',\n    'base64',\n    'bic',\n    'brand',\n    'bytes',\n    'check',\n    'checkItems',\n    'creditCard',\n    'cuid2',\n    'decimal',\n    'description',\n    'digits',\n    'domain',\n    'email',\n    'emoji',\n    'empty',\n    'endsWith',\n    'entries',\n    'everyItem',\n    'excludes',\n    'filterItems',\n    'findItem',\n    'finite',\n    'flavor',\n    'graphemes',\n    'gtValue',\n    'guard',\n    'hash',\n    'hexadecimal',\n    'hexColor',\n    'imei',\n    'includes',\n    'integer',\n    'ip',\n    'ipv4',\n    'ipv6',\n    'isbn',\n    'isrc',\n    'isoDate',\n    'isoDateTime',\n    'isoTime',\n    'isoTimeSecond',\n    'isoTimestamp',\n    'isoWeek',\n    'length',\n    'ltValue',\n    'mac',\n    'mac48',\n    'mac64',\n    'mapItems',\n    'maxBytes',\n    'maxEntries',\n    'maxGraphemes',\n    'maxLength',\n    'maxSize',\n    'maxValue',\n    'maxWords',\n    'metadata',\n    'mimeType',\n    'minBytes',\n    'minEntries',\n    'minGraphemes',\n    'minLength',\n    'minSize',\n    'minValue',\n    'minWords',\n    'multipleOf',\n    'nanoid',\n    'nonEmpty',\n    'notBytes',\n    'notEntries',\n    'notGraphemes',\n    'notLength',\n    'notSize',\n    'notValue',\n    'notValues',\n    'notWords',\n    'octal',\n    'parseJson',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'reduceItems',\n    'regex',\n    'returns',\n    'rfcEmail',\n    'safeInteger',\n    'size',\n    'slug',\n    'someItem',\n    'sortItem',\n    'startsWith',\n    'stringifyJson',\n    'title',\n    'toLowerCase',\n    'toMaxValue',\n    'toMinValue',\n    'toUpperCase',\n    'transform',\n    'trim',\n    'trimEnd',\n    'trimStart',\n    'ulid',\n    'url',\n    'uuid',\n    'value',\n    'values',\n    'words',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'awaitAsync',\n    'checkAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialAsync',\n    'partialCheckAsync',\n    'pipeAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'requiredAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/fallbackAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TFallback: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'FallbackAsync',\n      href: '../FallbackAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  fallback: {\n    type: {\n      type: 'custom',\n      name: 'TFallback',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'SchemaWithFallbackAsync',\n      href: '../SchemaWithFallbackAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n        {\n          type: 'custom',\n          name: 'TFallback',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/forwardAsync/index.mdx",
    "content": "---\ntitle: forwardAsync\ndescription: Forwards the issues of the passed validation action.\nsource: /methods/forward/forwardAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# forwardAsync\n\nForwards the issues of the passed validation action.\n\n```ts\nconst Action = v.forwardAsync<TInput, TIssue, TPath>(action, path);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TIssue` <Property {...properties.TIssue} />\n- `TPath` <Property {...properties.TPath} />\n\n## Parameters\n\n- `action` <Property {...properties.action} />\n- `path` <Property {...properties.path} />\n\n### Explanation\n\n`forwardAsync` allows you to forward the issues of the passed validation `action` via `path` to a nested field of a schema.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `forwardAsync` can be used.\n\n### Allowed action schema\n\nSchema that checks if the user is allowed to complete an action.\n\n```ts\nimport { isAllowedAction, isUsernamePresent } from '~/api';\n\nconst AllowedActionSchema = v.pipeAsync(\n  v.objectAsync({\n    username: v.pipeAsync(\n      v.string(),\n      v.minLength(3),\n      v.checkAsync(isUsernamePresent, 'The username is not in the database.')\n    ),\n    action: v.picklist(['view', 'edit', 'delete']),\n  }),\n  v.forwardAsync(\n    v.checkAsync(\n      isAllowedAction,\n      'The user is not allowed to complete the action.'\n    ),\n    ['action']\n  )\n);\n```\n\n## Related\n\nThe following APIs can be combined with `forwardAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'custom',\n    'looseObject',\n    'looseTuple',\n    'object',\n    'objectWithRest',\n    'record',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'union',\n    'unknown',\n    'variant',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['omit', 'pick']} />\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'checkItems',\n    'empty',\n    'everyItem',\n    'excludes',\n    'filterItems',\n    'findItem',\n    'guard',\n    'includes',\n    'length',\n    'mapItems',\n    'maxLength',\n    'metadata',\n    'minLength',\n    'nonEmpty',\n    'notLength',\n    'partialCheck',\n    'rawCheck',\n    'reduceItems',\n    'someItem',\n    'sortItems',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'awaitAsync',\n    'checkAsync',\n    'customAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'partialAsync',\n    'partialCheckAsync',\n    'rawCheckAsync',\n    'recordAsync',\n    'requiredAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/forwardAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'Record',\n          generics: ['string', 'unknown'],\n        },\n        {\n          type: 'custom',\n          name: 'ArrayLike',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  TPath: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'RequiredPath',\n      href: '../RequiredPath/',\n    },\n  },\n  action: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseValidation',\n          href: '../BaseValidation/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TIssue',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseValidationAsync',\n          href: '../BaseValidationAsync/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TIssue',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  path: {\n    type: {\n      type: 'custom',\n      name: 'ValidPath',\n      href: '../forward/ValidPath/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TPath',\n        },\n      ],\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'BaseValidationAsync',\n      href: '../BaseValidationAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TIssue',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/getDefaultsAsync/index.mdx",
    "content": "---\ntitle: getDefaultsAsync\ndescription: Returns the default values of the schema.\nsource: /methods/getDefaults/getDefaultsAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# getDefaultsAsync\n\nReturns the default values of the schema.\n\n> The difference to <Link href='../getDefault/'>`getDefault`</Link> is that for object and tuple schemas this function recursively returns the default values of the subschemas instead of `undefined`.\n\n```ts\nconst values = v.getDefaultsAsync<TSchema>(schema);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n\n## Returns\n\n- `values` <Property {...properties.values} />\n\n## Examples\n\nThe following examples show how `getDefaultsAsync` can be used.\n\n### Donation schema defaults\n\nGet the default values of a donation schema.\n\n```ts\nimport { getRandomOrgId } from '~/api';\n\nconst DonationSchema = v.objectAsync({\n  timestamp: v.optional(v.date(), () => new Date()),\n  sponsor: v.optional(v.pipe(v.string(), v.nonEmpty()), 'anonymous'),\n  organizationId: v.optionalAsync(v.pipe(v.string(), v.uuid()), getRandomOrgId),\n  message: v.optional(v.pipe(v.string(), v.minLength(1))),\n});\n\nconst defaultValues = await v.getDefaultsAsync(DonationSchema);\n\n/*\n  {\n    timestamp: new Date(),\n    sponsor: \"anonymous\",\n    organizationId: \"43775869-95f3-4e00-9f37-161ec8f9f7cd\",\n    message: undefined\n  }\n*/\n```\n\n## Related\n\nThe following APIs can be combined with `getDefaultsAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'keyof',\n    'message',\n    'omit',\n    'partial',\n    'pick',\n    'pipe',\n    'required',\n    'unwrap',\n  ]}\n/>\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'partialAsync',\n    'pipeAsync',\n    'recordAsync',\n    'requiredAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/getDefaultsAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  values: {\n    type: {\n      type: 'custom',\n      name: 'Promise',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferDefaults',\n          href: '../InferDefaults/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TSchema',\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/getFallbacksAsync/index.mdx",
    "content": "---\ntitle: getFallbacksAsync\ndescription: Returns the fallback values of the schema.\nsource: /methods/getFallbacks/getFallbacksAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# getFallbacksAsync\n\nReturns the fallback values of the schema.\n\n> The difference to <Link href='../getFallback/'>`getFallback`</Link> is that for object and tuple schemas this function recursively returns the fallback values of the subschemas instead of `undefined`.\n\n```ts\nconst values = v.getFallbacksAsync<TSchema>(schema);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n\n## Returns\n\n- `values` <Property {...properties.values} />\n\n## Examples\n\nThe following examples show how `getFallbacksAsync` can be used.\n\n### New user fallbacks\n\nGet the fallback values of a new user schema.\n\n```ts\nimport { getAnyUniqueUsername, isUsernameUnique } from '~/api';\n\nconst NewUserSchema = v.objectAsync({\n  username: v.fallbackAsync(\n    v.pipeAsync(v.string(), v.minLength(3), v.checkAsync(isUsernameUnique)),\n    getAnyUniqueUsername\n  ),\n  password: v.pipe(v.string(), v.minLength(8)),\n});\n\nconst fallbackValues = await v.getFallbacksAsync(NewUserSchema);\n/*\n  {\n    username: \"cookieMonster07\",\n    password: undefined\n  }\n*/\n```\n\n## Related\n\nThe following APIs can be combined with `getFallbacksAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'keyof',\n    'message',\n    'omit',\n    'partial',\n    'pick',\n    'pipe',\n    'required',\n    'unwrap',\n  ]}\n/>\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'partialAsync',\n    'pipeAsync',\n    'recordAsync',\n    'requiredAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/getFallbacksAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  values: {\n    type: {\n      type: 'custom',\n      name: 'Promise',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferFallbacks',\n          href: '../InferFallbacks/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TSchema',\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/intersectAsync/index.mdx",
    "content": "---\ntitle: intersectAsync\ndescription: Creates an intersect schema.\nsource: /schemas/intersect/intersectAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# intersectAsync\n\nCreates an intersect schema.\n\n> I recommend to read the <Link href=\"/guides/intersections/\">intersections guide</Link> before using this schema function.\n\n```ts\nconst Schema = v.intersectAsync<TOptions, TMessage>(options, message);\n```\n\n## Generics\n\n- `TOptions` <Property {...properties.TOptions} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `options` <Property {...properties.options} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `intersectAsync` you can validate if the input matches each of the given `options`. If the output of the intersection cannot be successfully merged, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `intersectAsync` can be used.\n\n### Donation schema\n\nSchema that combines objects to validate donation details.\n\n```ts\nimport { isOrganizationPresent } from '~/api';\n\nconst DonationSchema = v.intersectAsync([\n  v.objectAsync({\n    organizationId: v.pipeAsync(\n      v.string(),\n      v.uuid(),\n      v.checkAsync(\n        isOrganizationPresent,\n        'The organization is not in the database.'\n      )\n    ),\n  }),\n  // Assume the schemas below are from different files and are reused here\n  v.object({\n    amount: v.pipe(v.number(), v.minValue(100)),\n    message: v.pipe(v.string(), v.nonEmpty()),\n  }),\n  v.object({\n    amount: v.pipe(v.number(), v.maxValue(1_000_000)),\n    message: v.pipe(v.string(), v.maxLength(500)),\n  }),\n]);\n```\n\n## Related\n\nThe following APIs can be combined with `intersectAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['config', 'getDefault', 'getFallback']} />\n\n### Actions\n\n<ApiList\n  items={[\n    'args',\n    'base64',\n    'bic',\n    'brand',\n    'bytes',\n    'check',\n    'checkItems',\n    'creditCard',\n    'cuid2',\n    'decimal',\n    'description',\n    'digits',\n    'domain',\n    'email',\n    'emoji',\n    'empty',\n    'endsWith',\n    'entries',\n    'everyItem',\n    'excludes',\n    'filterItems',\n    'findItem',\n    'finite',\n    'flavor',\n    'graphemes',\n    'gtValue',\n    'guard',\n    'hash',\n    'hexColor',\n    'hexadecimal',\n    'imei',\n    'includes',\n    'integer',\n    'ip',\n    'ipv4',\n    'ipv6',\n    'isbn',\n    'isrc',\n    'isoDate',\n    'isoDateTime',\n    'isoTime',\n    'isoTimeSecond',\n    'isoTimestamp',\n    'isoWeek',\n    'length',\n    'ltValue',\n    'mac',\n    'mac48',\n    'mac64',\n    'mapItems',\n    'maxBytes',\n    'maxEntries',\n    'maxGraphemes',\n    'maxLength',\n    'maxSize',\n    'maxValue',\n    'maxWords',\n    'metadata',\n    'mimeType',\n    'minBytes',\n    'minEntries',\n    'minGraphemes',\n    'minLength',\n    'minSize',\n    'minValue',\n    'minWords',\n    'multipleOf',\n    'nanoid',\n    'nonEmpty',\n    'notBytes',\n    'notEntries',\n    'notGraphemes',\n    'notLength',\n    'notSize',\n    'notValue',\n    'notValues',\n    'notWords',\n    'octal',\n    'parseJson',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'reduceItems',\n    'regex',\n    'returns',\n    'rfcEmail',\n    'safeInteger',\n    'size',\n    'slug',\n    'someItem',\n    'sortItem',\n    'startsWith',\n    'stringifyJson',\n    'title',\n    'toLowerCase',\n    'toMaxValue',\n    'toMinValue',\n    'toUpperCase',\n    'transform',\n    'trim',\n    'trimEnd',\n    'trimStart',\n    'ulid',\n    'url',\n    'uuid',\n    'value',\n    'values',\n    'words',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'awaitAsync',\n    'checkAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialCheckAsync',\n    'pipeAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/intersectAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TOptions: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'IntersectOptionsAsync',\n      href: '../IntersectOptionsAsync/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'IntersectIssue',\n              href: '../IntersectIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  options: {\n    type: {\n      type: 'custom',\n      name: 'TOptions',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'IntersectSchemaAsync',\n      href: '../IntersectSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TOptions',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/lazyAsync/index.mdx",
    "content": "---\ntitle: lazyAsync\ndescription: Creates a lazy schema.\nsource: /schemas/lazy/lazyAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# lazyAsync\n\nCreates a lazy schema.\n\n```ts\nconst Schema = v.lazyAsync<TWrapped>(getter);\n```\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n\n## Parameters\n\n- `getter` <Property {...properties.getter} />\n\n### Explanation\n\nThe `getter` function is called lazily to retrieve the schema. This is necessary to be able to access the input through the first argument of the `getter` function and to avoid a circular dependency for recursive schemas.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `lazyAsync` can be used.\n\n### Transaction list schema\n\nRecursive schema to validate transactions.\n\n> Due to a TypeScript limitation, the input and output types of recursive schemas cannot be inferred automatically. Therefore, you must explicitly specify these types using <Link href=\"/api/GenericSchemaAsync/\">`GenericSchemaAsync`</Link>.\n\n```ts\nimport { isTransactionValid } from '~/api';\n\ntype Transaction = {\n  transactionId: string;\n  next: Transaction | null;\n};\n\nconst TransactionSchema: v.GenericSchemaAsync<Transaction> = v.objectAsync({\n  transactionId: v.pipeAsync(\n    v.string(),\n    v.uuid(),\n    v.checkAsync(isTransactionValid, 'The transaction is not valid.')\n  ),\n  next: v.nullableAsync(v.lazyAsync(() => TransactionSchema)),\n});\n```\n\n### Email or username schema\n\nSchema to validate an object containing an email or username.\n\n> In most cases, <Link href=\"/api/unionAsync/\">`unionAsync`</Link> and <Link href=\"/api/variantAsync/\">`variantAsync`</Link> are the better choices for creating such a schema. I recommend using `lazyAsync` only in special cases.\n\n```ts\nimport { isEmailPresent, isUsernamePresent } from '~/api';\n\nconst EmailOrUsernameSchema = v.lazyAsync((input) => {\n  if (input && typeof input === 'object' && 'type' in input) {\n    switch (input.type) {\n      case 'email':\n        return v.objectAsync({\n          type: v.literal('email'),\n          email: v.pipeAsync(\n            v.string(),\n            v.email(),\n            v.checkAsync(\n              isEmailPresent,\n              'The email is not present in the database.'\n            )\n          ),\n        });\n      case 'username':\n        return v.objectAsync({\n          type: v.literal('username'),\n          username: v.pipeAsync(\n            v.string(),\n            v.nonEmpty(),\n            v.checkAsync(\n              isUsernamePresent,\n              'The username is not present in the database.'\n            )\n          ),\n        });\n    }\n  }\n  return v.never();\n});\n```\n\n## Related\n\nThe following APIs can be combined with `lazyAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['config', 'getDefault', 'getFallback']} />\n\n### Actions\n\n<ApiList\n  items={[\n    'args',\n    'base64',\n    'bic',\n    'brand',\n    'bytes',\n    'check',\n    'checkItems',\n    'creditCard',\n    'cuid2',\n    'decimal',\n    'description',\n    'digits',\n    'domain',\n    'email',\n    'emoji',\n    'empty',\n    'endsWith',\n    'entries',\n    'everyItem',\n    'excludes',\n    'filterItems',\n    'findItem',\n    'finite',\n    'flavor',\n    'graphemes',\n    'gtValue',\n    'guard',\n    'hash',\n    'hexColor',\n    'hexadecimal',\n    'imei',\n    'includes',\n    'integer',\n    'ip',\n    'ipv4',\n    'ipv6',\n    'isbn',\n    'isrc',\n    'isoDate',\n    'isoDateTime',\n    'isoTime',\n    'isoTimeSecond',\n    'isoTimestamp',\n    'isoWeek',\n    'length',\n    'ltValue',\n    'mac',\n    'mac48',\n    'mac64',\n    'mapItems',\n    'maxBytes',\n    'maxEntries',\n    'maxGraphemes',\n    'maxLength',\n    'maxSize',\n    'maxValue',\n    'maxWords',\n    'metadata',\n    'mimeType',\n    'minBytes',\n    'minEntries',\n    'minGraphemes',\n    'minLength',\n    'minSize',\n    'minValue',\n    'minWords',\n    'multipleOf',\n    'nanoid',\n    'nonEmpty',\n    'notBytes',\n    'notEntries',\n    'notGraphemes',\n    'notLength',\n    'notSize',\n    'notValue',\n    'notValues',\n    'notWords',\n    'octal',\n    'parseJson',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'reduceItems',\n    'regex',\n    'returns',\n    'rfcEmail',\n    'safeInteger',\n    'size',\n    'slug',\n    'someItem',\n    'sortItem',\n    'startsWith',\n    'stringifyJson',\n    'title',\n    'toLowerCase',\n    'toMaxValue',\n    'toMinValue',\n    'toUpperCase',\n    'transform',\n    'trim',\n    'trimEnd',\n    'trimStart',\n    'ulid',\n    'url',\n    'uuid',\n    'value',\n    'values',\n    'words',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'awaitAsync',\n    'checkAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialCheckAsync',\n    'pipeAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/lazyAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  getter: {\n    type: {\n      type: 'function',\n      params: [{ name: 'input', type: 'unknown' }],\n      return: {\n        type: 'custom',\n        name: 'MaybePromise',\n        href: '../MaybePromise/',\n        generics: [\n          {\n            type: 'custom',\n            name: 'TWrapped',\n          },\n        ],\n      },\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'LazySchemaAsync',\n      href: '../LazySchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/looseObjectAsync/index.mdx",
    "content": "---\ntitle: looseObjectAsync\ndescription: Creates a loose object schema.\nsource: /schemas/looseObject/looseObjectAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# looseObjectAsync\n\nCreates a loose object schema.\n\n```ts\nconst Schema = v.looseObjectAsync<TEntries, TMessage>(entries, message);\n```\n\n## Generics\n\n- `TEntries` <Property {...properties.TEntries} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `entries` <Property {...properties.entries} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `looseObjectAsync` you can validate the data type of the input and whether the content matches `entries`. If the input is not an object, you can use `message` to customize the error message.\n\n> The difference to <Link href=\"../objectAsync/\">`objectAsync`</Link> is that this schema includes any unknown entries in the output. In addition, this schema filters certain entries from the unknown entries for security reasons.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `looseObjectAsync` can be used. Please see the <Link href=\"/guides/objects/\">object guide</Link> for more examples and explanations.\n\n### New user schema\n\nSchema to validate a loose object containing specific new user details.\n\n```ts\nimport { isEmailPresent } from '~/api';\n\nconst NewUserSchema = v.looseObjectAsync({\n  firstName: v.pipe(v.string(), v.minLength(2), v.maxLength(45)),\n  lastName: v.pipe(v.string(), v.minLength(2), v.maxLength(45)),\n  email: v.pipeAsync(\n    v.string(),\n    v.email(),\n    v.checkAsync(isEmailPresent, 'The email is already in use by another user.')\n  ),\n  password: v.pipe(v.string(), v.minLength(8)),\n  avatar: v.optional(v.pipe(v.string(), v.url())),\n});\n```\n\n## Related\n\nThe following APIs can be combined with `looseObjectAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={['config', 'getDefault', 'getFallback', 'keyof', 'omit', 'pick']}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'brand',\n    'check',\n    'flavor',\n    'guard',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'checkAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'forwardAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialAsync',\n    'partialCheckAsync',\n    'pipeAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'requiredAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/looseObjectAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TEntries: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ObjectEntriesAsync',\n      href: '../ObjectEntriesAsync/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'LooseObjectIssue',\n              href: '../LooseObjectIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  entries: {\n    type: {\n      type: 'custom',\n      name: 'TEntries',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'LooseObjectSchemaAsync',\n      href: '../LooseObjectSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TEntries',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/looseTupleAsync/index.mdx",
    "content": "---\ntitle: looseTupleAsync\ndescription: Creates a loose tuple schema.\nsource: /schemas/looseTuple/looseTupleAsync.ts\ncontributors:\n  - fabian-hiller\n  - mehm8128\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# looseTupleAsync\n\nCreates a loose tuple schema.\n\n```ts\nconst Schema = v.looseTupleAsync<TItems, TMessage>(items, message);\n```\n\n## Generics\n\n- `TItems` <Property {...properties.TItems} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `items` <Property {...properties.items} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `looseTuplAsynce` you can validate the data type of the input and whether the content matches `items`. If the input is not an array, you can use `message` to customize the error message.\n\n> The difference to <Link href=\"../tupleAsync/\">`tupleAsync`</Link> is that this schema does include unknown items into the output.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `looseTupleAsync` can be used. Please see the <Link href=\"/guides/arrays/\">arrays guide</Link> for more examples and explanations.\n\n### Number and email tuple\n\nSchema to validate a loose tuple with one number and one stored email address.\n\n```ts\nimport { isEmailPresent } from '~/api';\n\nconst TupleSchema = v.looseTupleAsync([\n  v.number(),\n  v.pipeAsync(\n    v.string(),\n    v.email(),\n    v.checkAsync(isEmailPresent, 'The email is not in the database.')\n  ),\n]);\n```\n\n## Related\n\nThe following APIs can be combined with `looseTupleAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['config', 'getDefault', 'getFallback']} />\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'checkItems',\n    'brand',\n    'description',\n    'empty',\n    'everyItem',\n    'excludes',\n    'filterItems',\n    'findItem',\n    'flavor',\n    'guard',\n    'includes',\n    'length',\n    'mapItems',\n    'maxLength',\n    'metadata',\n    'minLength',\n    'nonEmpty',\n    'notLength',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'reduceItems',\n    'someItem',\n    'sortItems',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'checkAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialCheckAsync',\n    'pipeAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/looseTupleAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TItems: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TupleItemsAsync',\n      href: '../TupleItemsAsync/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'LooseTupleIssue',\n              href: '../LooseTupleIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  items: {\n    type: {\n      type: 'custom',\n      name: 'TItems',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'LooseTupleSchemaAsync',\n      href: '../LooseTupleSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TItems',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/mapAsync/index.mdx",
    "content": "---\ntitle: mapAsync\ndescription: Creates a map schema.\nsource: /schemas/map/mapAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# mapAsync\n\nCreates a map schema.\n\n```ts\nconst Schema = v.mapAsync<TKey, TValue, TMessage>(key, value, message);\n```\n\n## Generics\n\n- `TKey` <Property {...properties.TKey} />\n- `TValue` <Property {...properties.TValue} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `key` <Property {...properties.key} />\n- `value` <Property {...properties.value} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `mapAsync` you can validate the data type of the input and whether the entries match `key` and `value`. If the input is not a map, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `mapAsync` can be used.\n\n### Shopping items schema\n\nSchema to validate a map with usernames that are allowed to shop as keys and the total items purchased as values.\n\n```ts\nimport { isUserVerified } from '~/api';\n\nconst ShoppingItemsSchema = v.mapAsync(\n  v.pipeAsync(\n    v.string(),\n    v.checkAsync(isUserVerified, 'The username is not allowed to shop.')\n  ),\n  v.pipe(v.number(), v.minValue(0))\n);\n```\n\n## Related\n\nThe following APIs can be combined with `mapAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['config', 'getDefault', 'getFallback']} />\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'flavor',\n    'guard',\n    'maxSize',\n    'metadata',\n    'minSize',\n    'notSize',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'size',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'checkAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'pipeAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/mapAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TKey: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TValue: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MapIssue',\n              href: '../MapIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  key: {\n    type: {\n      type: 'custom',\n      name: 'TKey',\n    },\n  },\n  value: {\n    type: {\n      type: 'custom',\n      name: 'TValue',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'MapSchemaAsync',\n      href: '../MapSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TKey',\n        },\n        {\n          type: 'custom',\n          name: 'TValue',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/nonNullableAsync/index.mdx",
    "content": "---\ntitle: nonNullableAsync\ndescription: Creates a non nullable schema.\nsource: /schemas/nonNullable/nonNullableAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# nonNullableAsync\n\nCreates a non nullable schema.\n\n> This schema function can be used to override the behavior of <Link href=\"../nullableAsync/\">`nullableAsync`</Link>.\n\n```ts\nconst Schema = v.nonNullableAsync<TWrapped, TMessage>(wrapped, message);\n```\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `wrapped` <Property {...properties.wrapped} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `nonNullableAsync` the validation of your schema will not pass `null` inputs. If the input is `null`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `nonNullableAsync` can be used.\n\n### Unique username schema\n\nSchema to validate a non-null unique username.\n\n```ts\nimport { isUsernameUnique } from '~/api';\n\nconst UniqueUsernameSchema = v.nonNullableAsync(\n  // Assume this schema is from a different file and reused here.\n  v.nullableAsync(\n    v.pipeAsync(\n      v.string(),\n      v.nonEmpty(),\n      v.checkAsync(isUsernameUnique, 'The username is not unique.')\n    )\n  )\n);\n```\n\n## Related\n\nThe following APIs can be combined with `nonNullableAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['config', 'getDefault', 'getFallback', 'unwrap']} />\n\n### Actions\n\n<ApiList\n  items={[\n    'brand',\n    'check',\n    'description',\n    'flavor',\n    'guard',\n    'metadata',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'awaitAsync',\n    'checkAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialCheckAsync',\n    'pipeAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/nonNullableAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NonNullableIssue',\n              href: '../NonNullableIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'NonNullableSchemaAsync',\n      href: '../NonNullableSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/nonNullishAsync/index.mdx",
    "content": "---\ntitle: nonNullishAsync\ndescription: Creates a non nullish schema.\nsource: /schemas/nonNullish/nonNullishAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# nonNullishAsync\n\nCreates a non nullish schema.\n\n> This schema function can be used to override the behavior of <Link href=\"../nullishAsync/\">`nullishAsync`</Link>.\n\n```ts\nconst Schema = v.nonNullishAsync<TWrapped, TMessage>(wrapped, message);\n```\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `wrapped` <Property {...properties.wrapped} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `nonNullishAsync` the validation of your schema will not pass `null` and `undefined` inputs. If the input is `null` or `undefined`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `nonNullishAsync` can be used.\n\n### Allowed country schema\n\nSchema to check if a string matches one of the allowed country names.\n\n```ts\nimport { isAllowedCountry } from '~/api';\n\nconst AllowedCountrySchema = v.nonNullishAsync(\n  // Assume this schema is from a different file and reused here.\n  v.nullishAsync(\n    v.pipeAsync(v.string(), v.nonEmpty(), v.checkAsync(isAllowedCountry))\n  )\n);\n```\n\n## Related\n\nThe following APIs can be combined with `nonNullishAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['config', 'getDefault', 'getFallback', 'unwrap']} />\n\n### Actions\n\n<ApiList\n  items={[\n    'brand',\n    'check',\n    'description',\n    'flavor',\n    'guard',\n    'metadata',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'awaitAsync',\n    'checkAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialCheckAsync',\n    'pipeAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/nonNullishAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NonNullishIssue',\n              href: '../NonNullishIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'NonNullishSchemaAsync',\n      href: '../NonNullishSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/nonOptionalAsync/index.mdx",
    "content": "---\ntitle: nonOptionalAsync\ndescription: Creates a non optional schema.\nsource: /schemas/nonOptional/nonOptionalAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# nonOptionalAsync\n\nCreates a non optional schema.\n\n> This schema function can be used to override the behavior of <Link href=\"../optionalAsync/\">`optionalAsync`</Link>.\n\n```ts\nconst Schema = v.nonOptionalAsync<TWrapped, TMessage>(wrapped, message);\n```\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `wrapped` <Property {...properties.wrapped} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `nonOptionalAsync` the validation of your schema will not pass `undefined` inputs. If the input is `undefined`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `nonOptionalAsync` can be used.\n\n### Add user schema\n\nSchema to validate an object containing details required to add a user to an existing group.\n\n```ts\nimport { isGroupPresent } from '~/api';\n\nconst AddUserSchema = v.objectAsync({\n  groupId: v.nonOptionalAsync(\n    // Assume this schema is from a different file and reused here.\n    v.optionalAsync(\n      v.pipeAsync(\n        v.string(),\n        v.uuid(),\n        v.checkAsync(\n          isGroupPresent,\n          'The group is not present in the database.'\n        )\n      )\n    )\n  ),\n  userEmail: v.pipe(v.string(), v.email()),\n});\n```\n\n## Related\n\nThe following APIs can be combined with `nonOptionalAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['config', 'getDefault', 'getFallback', 'unwrap']} />\n\n### Actions\n\n<ApiList\n  items={[\n    'brand',\n    'check',\n    'description',\n    'flavor',\n    'guard',\n    'metadata',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'awaitAsync',\n    'checkAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialCheckAsync',\n    'pipeAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/nonOptionalAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NonOptionalIssue',\n              href: '../NonOptionalIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'NonOptionalSchemaAsync',\n      href: '../NonOptionalSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/nullableAsync/index.mdx",
    "content": "---\ntitle: nullableAsync\ndescription: Creates a nullable schema.\nsource: /schemas/nullable/nullableAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n  - santoshyadavdev\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# nullableAsync\n\nCreates a nullable schema.\n\n```ts\nconst Schema = v.nullableAsync<TWrapped, TDefault>(wrapped, default_);\n```\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TDefault` <Property {...properties.TDefault} />\n\n## Parameters\n\n- `wrapped` <Property {...properties.wrapped} />\n- `default_` {/* prettier-ignore */}<Property {...properties.default_} />\n\n### Explanation\n\nWith `nullableAsync` the validation of your schema will pass `null` inputs, and if you specify a `default_` input value, the schema will use it if the input is `null`. For this reason, the output type may differ from the input type of the schema.\n\n> Note that `nullableAsync` does not accept `undefined` as an input. If you want to accept `undefined` inputs, use <Link href=\"../optionalAsync/\">`optionalAsync`</Link>, and if you want to accept `null` and `undefined` inputs, use <Link href=\"../nullishAsync/\">`nullishAsync`</Link> instead. Also, if you want to set a default output value for any invalid input, you should use <Link href=\"../fallbackAsync/\">`fallbackAsync`</Link> instead.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `nullableAsync` can be used.\n\n### Nullable username schema\n\nSchema that accepts a unique username or `null`.\n\n> By using a function as the `default_` parameter, the schema will return a unique username from the function call each time the input is `null`.\n\n```ts\nimport { getUniqueUsername, isUsernameUnique } from '~/api';\n\nconst NullableUsernameSchema = v.nullableAsync(\n  v.pipeAsync(\n    v.string(),\n    v.nonEmpty(),\n    v.checkAsync(isUsernameUnique, 'The username is not unique.')\n  ),\n  getUniqueUsername\n);\n```\n\n### Unwrap nullable schema\n\nUse <Link href=\"../unwrap/\">`unwrap`</Link> to undo the effect of `nullableAsync`.\n\n```ts\nimport { isUsernameUnique } from '~/api';\n\nconst UsernameSchema = v.unwrap(\n  // Assume this schema is from a different file and is reused here\n  v.nullableAsync(\n    v.pipeAsync(\n      v.string(),\n      v.nonEmpty(),\n      v.checkAsync(isUsernameUnique, 'The username is not unique.')\n    )\n  )\n);\n```\n\n## Related\n\nThe following APIs can be combined with `nullableAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['config', 'getDefault', 'getFallback', 'unwrap']} />\n\n### Actions\n\n<ApiList\n  items={[\n    'brand',\n    'check',\n    'description',\n    'flavor',\n    'guard',\n    'metadata',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'awaitAsync',\n    'checkAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialCheckAsync',\n    'pipeAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'undefinedableAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/nullableAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TDefault: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'DefaultAsync',\n      href: '../DefaultAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        'null',\n      ],\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  default_: {\n    type: {\n      type: 'custom',\n      name: 'TDefault',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'NullableSchemaAsync',\n      href: '../NullableSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        {\n          type: 'custom',\n          name: 'TDefault',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/nullishAsync/index.mdx",
    "content": "---\ntitle: nullishAsync\ndescription: Creates a nullish schema.\nsource: /schemas/nullish/nullishAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n  - santoshyadavdev\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# nullishAsync\n\nCreates a nullish schema.\n\n```ts\nconst Schema = v.nullishAsync<TWrapped, TDefault>(wrapped, default_);\n```\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TDefault` <Property {...properties.TDefault} />\n\n## Parameters\n\n- `wrapped` <Property {...properties.wrapped} />\n- `default_` {/* prettier-ignore */}<Property {...properties.default_} />\n\n### Explanation\n\nWith `nullishAsync` the validation of your schema will pass `undefined` and `null` inputs, and if you specify a `default_` input value, the schema will use it if the input is `undefined` or `null`. For this reason, the output type may differ from the input type of the schema.\n\n> Note that `nullishAsync` accepts `undefined` or `null` as an input. If you want to accept only `null` inputs, use <Link href=\"../nullableAsync/\">`nullableAsync`</Link>, and if you want to accept only `undefined` inputs, use <Link href=\"../optionalAsync/\">`optionalAsync`</Link> instead. Also, if you want to set a default output value for any invalid input, you should use <Link href=\"../fallbackAsync/\">`fallbackAsync`</Link> instead.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `nullishAsync` can be used.\n\n### Nullish username schema\n\nSchema that accepts a unique username, `undefined` or `null`.\n\n> By using a function as the `default_` parameter, the schema will return a unique username from the function call each time the input is `undefined` or `null`.\n\n```ts\nimport { getUniqueUsername, isUsernameUnique } from '~/api';\n\nconst NullishUsernameSchema = v.nullishAsync(\n  v.pipeAsync(\n    v.string(),\n    v.nonEmpty(),\n    v.checkAsync(isUsernameUnique, 'The username is not unique.')\n  ),\n  getUniqueUsername\n);\n```\n\n### New user schema\n\nSchema to validate new user details.\n\n```ts\nimport { isEmailUnique, isUsernameUnique } from '~/api';\n\nconst NewUserSchema = v.objectAsync({\n  email: v.pipeAsync(\n    v.string(),\n    v.email(),\n    v.checkAsync(isEmailUnique, 'The email is not unique.')\n  ),\n  username: v.nullishAsync(\n    v.pipeAsync(\n      v.string(),\n      v.nonEmpty(),\n      v.checkAsync(isUsernameUnique, 'The username is not unique.')\n    )\n  ),\n  password: v.pipe(v.string(), v.minLength(8)),\n});\n\n/*\n  The input and output types of the schema:\n    {\n      email: string;\n      password: string;\n      username?: string | null | undefined;\n    }\n*/\n```\n\n### Unwrap nullish schema\n\nUse <Link href=\"../unwrap/\">`unwrap`</Link> to undo the effect of `nullishAsync`.\n\n```ts\nimport { isUsernameUnique } from '~/api';\n\nconst UsernameSchema = v.unwrap(\n  // Assume this schema is from a different file and is reused here\n  v.nullishAsync(\n    v.pipeAsync(\n      v.string(),\n      v.nonEmpty(),\n      v.checkAsync(isUsernameUnique, 'The username is not unique.')\n    )\n  )\n);\n```\n\n## Related\n\nThe following APIs can be combined with `nullishAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['config', 'getDefault', 'getFallback', 'unwrap']} />\n\n### Actions\n\n<ApiList\n  items={[\n    'brand',\n    'check',\n    'description',\n    'flavor',\n    'guard',\n    'metadata',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'awaitAsync',\n    'checkAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialCheckAsync',\n    'pipeAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'undefinedableAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/nullishAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TDefault: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'DefaultAsync',\n      href: '../DefaultAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        {\n          type: 'union',\n          options: ['null', 'undefined'],\n        },\n      ],\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  default_: {\n    type: {\n      type: 'custom',\n      name: 'TDefault',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'NullishSchemaAsync',\n      href: '../NullishSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        {\n          type: 'custom',\n          name: 'TDefault',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/objectAsync/index.mdx",
    "content": "---\ntitle: objectAsync\ndescription: Creates an object schema.\nsource: /schemas/object/objectAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# objectAsync\n\nCreates an object schema.\n\n```ts\nconst Schema = v.objectAsync<TEntries, TMessage>(entries, message);\n```\n\n## Generics\n\n- `TEntries` <Property {...properties.TEntries} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `entries` <Property {...properties.entries} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `objectAsync` you can validate the data type of the input and whether the content matches `entries`. If the input is not an object, you can use `message` to customize the error message.\n\n> This schema removes unknown entries. The output will only include the entries you specify. To include unknown entries, use <Link href=\"../looseObjectAsync/\">`looseObjectAsync`</Link>. To return an issue for unknown entries, use <Link href=\"../strictObjectAsync/\">`strictObjectAsync`</Link>. To include and validate unknown entries, use <Link href=\"../objectWithRestAsync/\">`objectWithRestAsync`</Link>.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `objectAsync` can be used. Please see the <Link href=\"/guides/objects/\">object guide</Link> for more examples and explanations.\n\n### New user schema\n\nSchema to validate an object containing new user details.\n\n```ts\nimport { isEmailPresent } from '~/api';\n\nconst NewUserSchema = v.objectAsync({\n  firstName: v.pipe(v.string(), v.minLength(2), v.maxLength(45)),\n  lastName: v.pipe(v.string(), v.minLength(2), v.maxLength(45)),\n  email: v.pipeAsync(\n    v.string(),\n    v.email(),\n    v.checkAsync(isEmailPresent, 'The email is already in use by another user.')\n  ),\n  password: v.pipe(v.string(), v.minLength(8)),\n  avatar: v.optional(v.pipe(v.string(), v.url())),\n});\n```\n\n## Related\n\nThe following APIs can be combined with `objectAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={['config', 'getDefault', 'getFallback', 'keyof', 'omit', 'pick']}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'brand',\n    'check',\n    'description',\n    'entries',\n    'flavor',\n    'guard',\n    'maxEntries',\n    'metadata',\n    'minEntries',\n    'notEntries',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'checkAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'forwardAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialAsync',\n    'partialCheckAsync',\n    'pipeAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'requiredAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/objectAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TEntries: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ObjectEntriesAsync',\n      href: '../ObjectEntriesAsync/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ObjectIssue',\n              href: '../ObjectIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  entries: {\n    type: {\n      type: 'custom',\n      name: 'TEntries',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'ObjectSchemaAsync',\n      href: '../ObjectSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TEntries',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/objectWithRestAsync/index.mdx",
    "content": "---\ntitle: objectWithRestAsync\ndescription: Creates an object with rest schema.\nsource: /schemas/objectWithRest/objectWithRestAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# objectWithRestAsync\n\nCreates an object with rest schema.\n\n```ts\nconst Schema = v.objectWithRestAsync<TEntries, TRest, TMessage>(\n  entries,\n  rest,\n  message\n);\n```\n\n## Generics\n\n- `TEntries` <Property {...properties.TEntries} />\n- `TRest` <Property {...properties.TRest} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `entries` <Property {...properties.entries} />\n- `rest` <Property {...properties.rest} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `objectWithRestAsync` you can validate the data type of the input and whether the content matches `entries` and `rest`. If the input is not an object, you can use `message` to customize the error message.\n\n> The difference to <Link href=\"../objectAsync/\">`objectAsync`</Link> is that this schema includes unknown entries in the output. In addition, this schema filters certain entries from the unknown entries for security reasons.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `objectWithRestAsync` can be used. Please see the <Link href=\"/guides/objects/\">object guide</Link> for more examples and explanations.\n\n### Word map schema\n\nSchema to validate an object with word map mutation details.\n\n```ts\nimport { isUserAllowedToMutate } from '~/api';\n\n// Assume the rest of the keys are always English words\nconst WordMapSchema = v.objectWithRestAsync(\n  {\n    $userId: v.pipeAsync(\n      v.string(),\n      v.regex(/^[a-z0-9]{12}$/i),\n      v.checkAsync(\n        isUserAllowedToMutate,\n        'The user is not allowed to change the word map.'\n      )\n    ),\n    $targetLanguage: v.union([\n      v.literal('hindi'),\n      v.literal('spanish'),\n      v.literal('french'),\n    ]),\n  },\n  v.string()\n);\n```\n\n## Related\n\nThe following APIs can be combined with `objectWithRestAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={['config', 'getDefault', 'getFallback', 'keyof', 'omit', 'pick']}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'brand',\n    'check',\n    'description',\n    'entries',\n    'flavor',\n    'guard',\n    'maxEntries',\n    'metadata',\n    'minEntries',\n    'notEntries',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'checkAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'forwardAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialAsync',\n    'partialCheckAsync',\n    'pipeAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'requiredAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/objectWithRestAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TEntries: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ObjectEntriesAsync',\n      href: '../ObjectEntriesAsync/',\n    },\n  },\n  TRest: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ObjectWithRestIssue',\n              href: '../ObjectWithRestIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  entries: {\n    type: {\n      type: 'custom',\n      name: 'TEntries',\n    },\n  },\n  rest: {\n    type: {\n      type: 'custom',\n      name: 'TRest',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'ObjectWithRestSchemaAsync',\n      href: '../ObjectWithRestSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TEntries',\n        },\n        {\n          type: 'custom',\n          name: 'TRest',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/optionalAsync/index.mdx",
    "content": "---\ntitle: optionalAsync\ndescription: Creates an optional schema.\nsource: /schemas/optional/optionalAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n  - santoshyadavdev\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# optionalAsync\n\nCreates an optional schema.\n\n```ts\nconst Schema = v.optionalAsync<TWrapped, TDefault>(wrapped, default_);\n```\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TDefault` <Property {...properties.TDefault} />\n\n## Parameters\n\n- `wrapped` <Property {...properties.wrapped} />\n- `default_` {/* prettier-ignore */}<Property {...properties.default_} />\n\n### Explanation\n\nWith `optionalAsync` the validation of your schema will pass `undefined` inputs, and if you specify a `default_` input value, the schema will use it if the input is `undefined`. For this reason, the output type may differ from the input type of the schema.\n\n> Note that `optionalAsync` does not accept `null` as an input. If you want to accept `null` inputs, use <Link href=\"../nullableAsync/\">`nullableAsync`</Link>, and if you want to accept `null` and `undefined` inputs, use <Link href=\"../nullishAsync/\">`nullishAsync`</Link> instead. Also, if you want to set a default output value for any invalid input, you should use <Link href=\"../fallbackAsync/\">`fallbackAsync`</Link> instead.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `optionalAsync` can be used.\n\n### Optional username schema\n\nSchema that accepts a unique username or `undefined`.\n\n> By using a function as the `default_` parameter, the schema will return a unique username from the function call each time the input is `undefined`.\n\n```ts\nimport { getUniqueUsername, isUsernameUnique } from '~/api';\n\nconst OptionalUsernameSchema = v.optionalAsync(\n  v.pipeAsync(\n    v.string(),\n    v.nonEmpty(),\n    v.checkAsync(isUsernameUnique, 'The username is not unique.')\n  ),\n  getUniqueUsername\n);\n```\n\n### New user schema\n\nSchema to validate new user details.\n\n```ts\nimport { isEmailUnique, isUsernameUnique } from '~/api';\n\nconst NewUserSchema = v.objectAsync({\n  email: v.pipeAsync(\n    v.string(),\n    v.email(),\n    v.checkAsync(isEmailUnique, 'The email is not unique.')\n  ),\n  username: v.optionalAsync(\n    v.pipeAsync(\n      v.string(),\n      v.nonEmpty(),\n      v.checkAsync(isUsernameUnique, 'The username is not unique.')\n    )\n  ),\n  password: v.pipe(v.string(), v.minLength(8)),\n});\n\n/*\n  The input and output types of the schema:\n    {\n      email: string;\n      password: string;\n      username?: string | undefined;\n    }\n*/\n```\n\n### Unwrap optional schema\n\nUse <Link href=\"../unwrap/\">`unwrap`</Link> to undo the effect of `optionalAsync`.\n\n```ts\nimport { isUsernameUnique } from '~/api';\n\nconst UsernameSchema = v.unwrap(\n  // Assume this schema is from a different file and is reused here\n  v.optionalAsync(\n    v.pipeAsync(\n      v.string(),\n      v.nonEmpty(),\n      v.checkAsync(isUsernameUnique, 'The username is not unique.')\n    )\n  )\n);\n```\n\n## Related\n\nThe following APIs can be combined with `optionalAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['config', 'getDefault', 'getFallback', 'unwrap']} />\n\n### Actions\n\n<ApiList\n  items={[\n    'brand',\n    'check',\n    'description',\n    'flavor',\n    'guard',\n    'metadata',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'awaitAsync',\n    'checkAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialCheckAsync',\n    'pipeAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'undefinedableAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/optionalAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TDefault: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'DefaultAsync',\n      href: '../DefaultAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        'undefined',\n      ],\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  default_: {\n    type: {\n      type: 'custom',\n      name: 'TDefault',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'OptionalSchemaAsync',\n      href: '../OptionalSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        {\n          type: 'custom',\n          name: 'TDefault',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/parseAsync/index.mdx",
    "content": "---\ntitle: parseAsync\ndescription: Parses an unknown input based on a schema.\nsource: /methods/parse/parseAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# parseAsync\n\nParses an unknown input based on a schema.\n\n```ts\nconst output = v.parseAsync<TSchema>(schema, input, config);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n- `input` <Property {...properties.input} />\n- `config` <Property {...properties.config} />\n\n### Explanation\n\n`parseAsync` will throw a <Link href=\"../ValiError/\">`ValiError`</Link> if the `input` does not match the `schema`. Therefore you should use a try/catch block to catch errors. If the input matches the schema, it is valid and the `output` of the schema will be returned typed.\n\n> If an asynchronous operation associated with the passed schema throws an error, the promise returned by `parseAsync` is rejected and the error thrown may not be a <Link href=\"../ValiError/\">`ValiError`</Link>.\n\n## Returns\n\n- `output` <Property {...properties.output} />\n\n## Examples\n\nThe following examples show how `parseAsync` can be used.\n\n```ts\nimport { isEmailPresent } from '~/api';\n\ntry {\n  const StoredEmailSchema = v.pipeAsync(\n    v.string(),\n    v.email(),\n    v.checkAsync(isEmailPresent, 'The email is not in the database.')\n  );\n  const storedEmail = await v.parseAsync(StoredEmailSchema, 'jane@example.com');\n\n  // Handle errors if one occurs\n} catch (error) {\n  console.error(error);\n}\n```\n\n## Related\n\nThe following APIs can be combined with `parseAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'flatten',\n    'keyof',\n    'message',\n    'omit',\n    'partial',\n    'pick',\n    'pipe',\n    'required',\n    'summarize',\n    'unwrap',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['getDotPath', 'isValiError', 'ValiError']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'partialAsync',\n    'pipeAsync',\n    'recordAsync',\n    'requiredAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/parseAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  input: {\n    type: 'unknown',\n  },\n  config: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'Config',\n          href: '../Config/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TSchema',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  output: {\n    type: {\n      type: 'custom',\n      name: 'Promise',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferOutput',\n          href: '../InferOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TSchema',\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/parserAsync/index.mdx",
    "content": "---\ntitle: parserAsync\ndescription: Returns a function that parses an unknown input based on a schema.\nsource: /methods/parser/parserAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# parserAsync\n\nReturns a function that parses an unknown input based on a schema.\n\n```ts\nconst parser = v.parserAsync<TSchema, TConfig>(schema, config);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n- `TConfig` <Property {...properties.TConfig} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n- `config` <Property {...properties.config} />\n\n## Returns\n\n- `parser` <Property {...properties.parser} />\n\n## Examples\n\nThe following examples show how `parserAsync` can be used.\n\n```ts\nimport { isEmailPresent } from '~/api';\n\ntry {\n  const StoredEmailSchema = v.pipeAsync(\n    v.string(),\n    v.email(),\n    v.checkAsync(isEmailPresent, 'The email is not in the database.')\n  );\n  const storedEmailParser = v.parserAsync(StoredEmailSchema);\n  const storedEmail = await storedEmailParser('jane@example.com');\n\n  // Handle errors if one occurs\n} catch (error) {\n  console.error(error);\n}\n```\n\n## Related\n\nThe following APIs can be combined with `parserAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'flatten',\n    'keyof',\n    'message',\n    'omit',\n    'partial',\n    'pick',\n    'pipe',\n    'required',\n    'summarize',\n    'unwrap',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['getDotPath', 'isValiError', 'ValiError']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'partialAsync',\n    'pipeAsync',\n    'recordAsync',\n    'requiredAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/parserAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TConfig: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'Config',\n          href: '../Config/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TSchema',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  config: {\n    type: {\n      type: 'custom',\n      name: 'TConfig',\n    },\n  },\n  parser: {\n    type: {\n      type: 'custom',\n      name: 'ParserAsync',\n      href: '../ParserAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n        {\n          type: 'custom',\n          name: 'TConfig',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/partialAsync/index.mdx",
    "content": "---\ntitle: partialAsync\ndescription: >-\n  Creates a modified copy of an object schema that marks all or only the\n  selected entries as optional.\nsource: /methods/partial/partialAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# partialAsync\n\nCreates a modified copy of an object schema that marks all or only the selected entries as optional.\n\n```ts\nconst Schema = v.partialAsync<TSchema, TKeys>(schema, keys);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n- `TKeys` <Property {...properties.TKeys} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n- `keys` <Property {...properties.keys} />\n\n### Explanation\n\n`partialAsync` creates a modified copy of the given object `schema` where all entries or only the selected `keys` are optional. It is similar to TypeScript's [`Partial`](https://www.typescriptlang.org/docs/handbook/utility-types.html#partialtype) utility type.\n\n> Because `partialAsync` changes the data type of the input and output, it is not allowed to pass a schema that has been modified by the <Link href='../pipeAsync/'>`pipeAsync`</Link> method, as this may cause runtime errors. Please use the <Link href='../pipeAsync/'>`pipeAsync`</Link> method after you have modified the schema with `partialAsync`.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `partialAsync` can be used.\n\n### Update user schema\n\nSchema to update the user details.\n\n```ts\nimport { isEmailAbsent, isUsernameAbsent } from '~/api';\n\nconst UserSchema = v.objectAsync({\n  email: v.pipeAsync(\n    v.string(),\n    v.email(),\n    v.checkAsync(isEmailAbsent, 'The email is already in the database.')\n  ),\n  username: v.pipeAsync(\n    v.string(),\n    v.nonEmpty(),\n    v.checkAsync(isUsernameAbsent, 'The username is already in the database.')\n  ),\n  password: v.pipe(v.string(), v.minLength(8)),\n});\n\nconst UpdateUserSchema = v.partialAsync(UserSchema);\n\n/*\n  { \n    email?: string;\n    username?: string; \n    password?: string;\n  }\n*/\n```\n\n## Related\n\nThe following APIs can be combined with `partialAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'forward',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'keyof',\n    'message',\n    'omit',\n    'pick',\n    'required',\n    'unwrap',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'brand',\n    'check',\n    'description',\n    'entries',\n    'flavor',\n    'guard',\n    'maxEntries',\n    'metadata',\n    'minEntries',\n    'notEntries',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'checkAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'forwardAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialCheckAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'requiredAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'undefinedableAsync',\n    'unionAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/partialAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'SchemaWithoutPipe',\n      href: '../SchemaWithoutPipe/',\n      generics: [\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'LooseObjectSchemaAsync',\n              href: '../LooseObjectSchemaAsync/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntriesAsync',\n                  href: '../ObjectEntriesAsync/',\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      href: '../ErrorMessage/',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'LooseObjectIssue',\n                          href: '../LooseObjectIssue/',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'ObjectSchemaAsync',\n              href: '../ObjectSchemaAsync/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntriesAsync',\n                  href: '../ObjectEntriesAsync/',\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      href: '../ErrorMessage/',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'ObjectIssue',\n                          href: '../ObjectIssue/',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'ObjectWithRestSchemaAsync',\n              href: '../ObjectWithRestSchemaAsync/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntriesAsync',\n                  href: '../ObjectEntriesAsync/',\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'BaseSchema',\n                      href: '../BaseSchema/',\n                      generics: [\n                        'unknown',\n                        'unknown',\n                        {\n                          type: 'custom',\n                          name: 'BaseIssue',\n                          href: '../BaseIssue/',\n                          generics: ['unknown'],\n                        },\n                      ],\n                    },\n                    {\n                      type: 'custom',\n                      name: 'BaseSchemaAsync',\n                      href: '../BaseSchemaAsync/',\n                      generics: [\n                        'unknown',\n                        'unknown',\n                        {\n                          type: 'custom',\n                          name: 'BaseIssue',\n                          href: '../BaseIssue/',\n                          generics: ['unknown'],\n                        },\n                      ],\n                    },\n                  ],\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      href: '../ErrorMessage/',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'ObjectWithRestIssue',\n                          href: '../ObjectWithRestIssue/',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'StrictObjectSchemaAsync',\n              href: '../StrictObjectSchemaAsync/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntriesAsync',\n                  href: '../ObjectEntriesAsync/',\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      href: '../ErrorMessage/',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'StrictObjectIssue',\n                          href: '../StrictObjectIssue/',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TKeys: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ObjectKeys',\n          href: '../ObjectKeys/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TSchema',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  keys: {\n    type: {\n      type: 'custom',\n      name: 'TKey',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'SchemaWithPartialAsync',\n      href: '../SchemaWithPartialAsync',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n        {\n          type: 'custom',\n          name: 'TKeys',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/partialCheckAsync/index.mdx",
    "content": "---\ntitle: partialCheckAsync\ndescription: Creates a partial check validation action.\nsource: /actions/partialCheck/partialCheckAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# partialCheckAsync\n\nCreates a partial check validation action.\n\n```ts\nconst Action = v.partialCheckAsync<TInput, TPaths, TSelection, TMessage>(\n  paths,\n  requirement,\n  message\n);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TPaths` <Property {...properties.TPaths} />\n- `TSelection` <Property {...properties.TSelection} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `paths` <Property {...properties.paths} />\n- `requirement` <Property {...properties.requirement} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `partialCheckAsync` you can freely validate the selected input and return `true` if it is valid or `false` otherwise. If the input does not match your `requirement`, you can use `message` to customize the error message.\n\n> The difference to <Link href='../checkAsync/'>`checkAsync`</Link> is that `partialCheckAsync` can be executed whenever the selected part of the data is valid, while <Link href='../checkAsync/'>`checkAsync`</Link> is executed only when the entire dataset is typed. This can be an important advantage when working with forms.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `partialCheckAsync` can be used.\n\n### Message details schema\n\nSchema to validate details associated with a message.\n\n```ts\nimport { isSenderInTheGroup } from '~/api';\n\nconst MessageDetailsSchema = v.pipeAsync(\n  v.object({\n    sender: v.object({\n      name: v.pipe(v.string(), v.minLength(2), v.maxLength(45)),\n      email: v.pipe(v.string(), v.email()),\n    }),\n    groupId: v.pipe(v.string(), v.uuid()),\n    message: v.pipe(v.string(), v.nonEmpty(), v.maxLength(500)),\n  }),\n  v.forwardAsync(\n    v.partialCheckAsync(\n      [['sender', 'email'], ['groupId']],\n      (input) =>\n        isSenderInTheGroup({\n          senderEmail: input.sender.email,\n          groupId: input.groupId,\n        }),\n      'The sender is not in the group.'\n    ),\n    ['sender', 'email']\n  )\n);\n```\n\n## Related\n\nThe following APIs can be combined with `partialCheckAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'custom',\n    'instance',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'object',\n    'objectWithRest',\n    'record',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'union',\n    'variant',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'awaitAsync',\n    'customAsync',\n    'forwardAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'pipeAsync',\n    'recordAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/partialCheckAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'PartialInput',\n      href: '../PartialInput/',\n    },\n  },\n  TPaths: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'RequiredPaths',\n      href: '../RequiredPaths/',\n    },\n  },\n  TSelection: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'DeepPickN',\n      href: '../DeepPickN/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TPaths',\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'PartialCheckIssue',\n              href: '../PartialCheckIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TSelection',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  paths: {\n    type: {\n      type: 'custom',\n      name: 'ValidPaths',\n      href: '../partialCheck/ValidPaths/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TPaths',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: {\n            type: 'custom',\n            name: 'TSelection',\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'MaybePromise',\n        href: '../MaybePromise/',\n        generics: ['boolean'],\n      },\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'PartialCheckActionAsync',\n      href: '../PartialCheckActionAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TPaths',\n        },\n        {\n          type: 'custom',\n          name: 'TSelection',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/pipeAsync/index.mdx",
    "content": "---\ntitle: pipeAsync\ndescription: Adds a pipeline to a schema, that can validate and transform its input.\nsource: /methods/pipe/pipeAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n  - muningis\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# pipeAsync\n\nAdds a pipeline to a schema, that can validate and transform its input.\n\n```ts\nconst Schema = v.pipeAsync<TSchema, TItems>(schema, ...items);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n- `TItems` <Property {...properties.TItems} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n- `items` <Property {...properties.items} />\n\n### Explanation\n\n`pipeAsync` creates a modified copy of the given `schema`, containing a pipeline for detailed validations and transformations. It passes the input data asynchronously through the `items` in the order they are provided and each item can examine and modify it.\n\n> Since `pipeAsync` returns a schema that can be used as the first argument of another pipeline, it is possible to nest multiple `pipeAsync` calls to extend the validation and transformation further.\n\n`pipeAsync` aborts early and marks the output as untyped if issues were collected before attempting to execute a schema or transformation action as the next item in the pipeline, to prevent unexpected behavior.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `pipeAsync` can be used. Please see the <Link href=\"/guides/pipelines/\">pipeline guide</Link> for more examples and explanations.\n\n### Stored email schema\n\nSchema to validate a stored email address.\n\n```ts\nimport { isEmailPresent } from '~/api';\n\nconst StoredEmailSchema = v.pipeAsync(\n  v.string(),\n  v.nonEmpty('Please enter your email.'),\n  v.email('The email is badly formatted.'),\n  v.maxLength(30, 'Your email is too long.'),\n  v.checkAsync(isEmailPresent, 'The email is not in the database.')\n);\n```\n\n### New user schema\n\nSchema to validate and transform new user details to a string.\n\n```ts\nimport { isUsernameUnique } from '~/api';\n\nconst NewUserSchema = v.pipeAsync(\n  v.objectAsync({\n    firstName: v.pipe(v.string(), v.nonEmpty(), v.maxLength(30)),\n    lastName: v.pipe(v.string(), v.nonEmpty(), v.maxLength(30)),\n    username: v.pipeAsync(\n      v.string(),\n      v.nonEmpty(),\n      v.maxLength(30),\n      v.checkAsync(isUsernameUnique, 'The username is not unique.')\n    ),\n  }),\n  v.transform(\n    ({ firstName, lastName, username }) =>\n      `${username} (${firstName} ${lastName})`\n  )\n);\n```\n\n## Related\n\nThe following APIs can be combined with `pipeAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'forward',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'keyof',\n    'message',\n    'omit',\n    'parse',\n    'parser',\n    'partial',\n    'pick',\n    'required',\n    'safeParse',\n    'safeParser',\n    'unwrap',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'args',\n    'base64',\n    'bic',\n    'brand',\n    'bytes',\n    'check',\n    'checkItems',\n    'creditCard',\n    'cuid2',\n    'decimal',\n    'description',\n    'digits',\n    'domain',\n    'email',\n    'emoji',\n    'empty',\n    'endsWith',\n    'entries',\n    'everyItem',\n    'excludes',\n    'filterItems',\n    'findItem',\n    'finite',\n    'flavor',\n    'graphemes',\n    'gtValue',\n    'guard',\n    'hash',\n    'hexadecimal',\n    'hexColor',\n    'imei',\n    'includes',\n    'integer',\n    'ip',\n    'ipv4',\n    'ipv6',\n    'isbn',\n    'isrc',\n    'isoDate',\n    'isoDateTime',\n    'isoTime',\n    'isoTimeSecond',\n    'isoTimestamp',\n    'isoWeek',\n    'length',\n    'ltValue',\n    'mac',\n    'mac48',\n    'mac64',\n    'mapItems',\n    'maxBytes',\n    'maxEntries',\n    'maxGraphemes',\n    'maxLength',\n    'maxSize',\n    'maxValue',\n    'maxWords',\n    'metadata',\n    'mimeType',\n    'minBytes',\n    'minEntries',\n    'minGraphemes',\n    'minLength',\n    'minSize',\n    'minValue',\n    'minWords',\n    'multipleOf',\n    'nanoid',\n    'nonEmpty',\n    'notBytes',\n    'notEntries',\n    'notGraphemes',\n    'notLength',\n    'notSize',\n    'notValue',\n    'notValues',\n    'notWords',\n    'octal',\n    'parseJson',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'reduceItems',\n    'regex',\n    'returns',\n    'rfcEmail',\n    'safeInteger',\n    'size',\n    'slug',\n    'someItem',\n    'sortItem',\n    'startsWith',\n    'stringifyJson',\n    'title',\n    'toLowerCase',\n    'toMaxValue',\n    'toMinValue',\n    'toUpperCase',\n    'transform',\n    'trim',\n    'trimEnd',\n    'trimStart',\n    'ulid',\n    'url',\n    'uuid',\n    'value',\n    'values',\n    'words',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'awaitAsync',\n    'checkAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'forwardAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialAsync',\n    'partialCheckAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'requiredAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'undefinedableAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/pipeAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TItems: {\n    modifier: 'extends',\n    type: {\n      type: 'array',\n      modifier: 'readonly',\n      item: {\n        type: 'union',\n        options: [\n          {\n            type: 'custom',\n            name: 'PipeItem',\n            href: '../PipeItem/',\n            generics: [\n              'any',\n              'unknown',\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n          {\n            type: 'custom',\n            name: 'PipeItemAsync',\n            href: '../PipeItemAsync/',\n            generics: [\n              'any',\n              'unknown',\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n        ],\n      },\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  items: {\n    type: {\n      type: 'custom',\n      name: 'TItems',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'SchemaWithPipeAsync',\n      href: '../SchemaWithPipeAsync/',\n      generics: [\n        {\n          type: 'tuple',\n          modifier: 'readonly',\n          items: [\n            {\n              type: 'custom',\n              name: 'TSchema',\n            },\n            {\n              type: 'custom',\n              spread: true,\n              name: 'TItems',\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/rawCheckAsync/index.mdx",
    "content": "---\ntitle: rawCheckAsync\ndescription: Creates a raw check validation action.\nsource: /actions/rawCheck/rawCheckAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# rawCheckAsync\n\nCreates a raw check validation action.\n\n```ts\nconst Action = v.rawCheckAsync<TInput>(action);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Parameters\n\n- `action` <Property {...properties.action} />\n\n### Explanation\n\nWith `rawCheckAsync` you can freely validate the input with a custom `action` and add issues if necessary.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `rawCheckAsync` can be used.\n\n### Add users schema\n\nObject schema that ensures that only users not already in the group are included.\n\n> This `rawCheckAsync` validation action adds an issue for any invalid username and forwards it via `path` to the appropriate nested field.\n\n```ts\nimport { isAlreadyInGroup } from '~/api';\n\nconst AddUsersSchema = v.pipeAsync(\n  v.object({\n    groupId: v.pipe(v.string(), v.uuid()),\n    usernames: v.array(v.pipe(v.string(), v.nonEmpty())),\n  }),\n  v.rawCheckAsync(async ({ dataset, addIssue }) => {\n    if (dataset.typed) {\n      await Promise.all(\n        dataset.value.usernames.map(async (username, index) => {\n          if (await isAlreadyInGroup(username, dataset.value.groupId)) {\n            addIssue({\n              received: username,\n              message: 'The user is already in the group.',\n              path: [\n                {\n                  type: 'object',\n                  origin: 'value',\n                  input: dataset.value,\n                  key: 'usernames',\n                  value: dataset.value.usernames,\n                },\n                {\n                  type: 'array',\n                  origin: 'value',\n                  input: dataset.value.usernames,\n                  key: index,\n                  value: username,\n                },\n              ],\n            });\n          }\n        })\n      );\n    }\n  })\n);\n```\n\n## Related\n\nThe following APIs can be combined with `rawCheckAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'awaitAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'forwardAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'pipeAsync',\n    'recordAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'undefinedableAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/rawCheckAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  action: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'context',\n          type: {\n            type: 'custom',\n            name: 'Context',\n            href: '../rawCheck/Context/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'TInput',\n              },\n            ],\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'MaybePromise',\n        href: '../MaybePromise/',\n        generics: ['void'],\n      },\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'RawCheckActionAsync',\n      href: '../RawCheckActionAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/rawTransformAsync/index.mdx",
    "content": "---\ntitle: rawTransformAsync\ndescription: Creates a raw transformation action.\nsource: /actions/rawTransform/rawTransformAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n  - santoshyadavdev\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# rawTransformAsync\n\nCreates a raw transformation action.\n\n```ts\nconst Action = v.rawTransformAsync<TInput, TOutput>(action);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n\n## Parameters\n\n- `action` <Property {...properties.action} />\n\n### Explanation\n\nWith `rawTransformAsync` you can freely transform and validate the input with a custom `action` and add issues if necessary.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `rawTransformAsync` can be used.\n\n### Order schema\n\nSchema that rejects an order that does not meet a requirement when free delivery is expected.\n\n```ts\nimport { getTotalAmount } from '~/api';\nimport { FREE_DELIVERY_MIN_AMOUNT } from '~/constants';\n\nconst OrderSchema = v.pipeAsync(\n  v.object({\n    cart: v.array(\n      v.object({\n        itemId: v.pipe(v.string(), v.uuid()),\n        quantity: v.pipe(v.number(), v.integer(), v.minValue(1)),\n      })\n    ),\n    expectsFreeDelivery: v.optional(v.boolean(), false),\n  }),\n  v.rawTransformAsync(\n    async ({ dataset: { value: input }, addIssue, NEVER }) => {\n      const total = await getTotalAmount(input.cart);\n      if (input.expectsFreeDelivery && total < FREE_DELIVERY_MIN_AMOUNT) {\n        addIssue({\n          label: 'order',\n          expected: `>=${FREE_DELIVERY_MIN_AMOUNT}`,\n          received: `${total}`,\n          message: `The total amount must be at least $${FREE_DELIVERY_MIN_AMOUNT} for free delivery.`,\n          path: [\n            {\n              type: 'object',\n              origin: 'value',\n              input,\n              key: 'cart',\n              value: input.cart,\n            },\n          ],\n        });\n        return NEVER;\n      }\n      return { ...input, total };\n    }\n  )\n);\n```\n\n## Related\n\nThe following APIs can be combined with `rawTransformAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'forwardAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'pipeAsync',\n    'recordAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'undefinedableAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/rawTransformAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  action: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'context',\n          type: {\n            type: 'custom',\n            name: 'Context',\n            href: '../rawTransform/Context/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'TInput',\n              },\n            ],\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'MaybePromise',\n        href: '../MaybePromise/',\n        generics: [\n          {\n            type: 'custom',\n            name: 'TOutput',\n          },\n        ],\n      },\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'RawTransformActionAsync',\n      href: '../RawTransformActionAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TOutput',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/recordAsync/index.mdx",
    "content": "---\ntitle: recordAsync\ndescription: Creates a record schema.\nsource: /schemas/record/recordAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# recordAsync\n\nCreates a record schema.\n\n```ts\nconst Schema = v.recordAsync<TKey, TValue, TMessage>(key, value, message);\n```\n\n## Generics\n\n- `TKey` <Property {...properties.TKey} />\n- `TValue` <Property {...properties.TValue} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `key` <Property {...properties.key} />\n- `value` <Property {...properties.value} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `recordAsync` you can validate the data type of the input and whether the entries match `key` and `value`. If the input is not an object, you can use `message` to customize the error message.\n\n> This schema filters certain entries from the record for security reasons.\n\n> This schema marks an entry as optional if it detects that its key is a literal type. The reason for this is that it is not technically possible to detect missing literal keys without restricting the `key` schema to <Link href=\"../string/\">`string`</Link>, <Link href=\"../enum/\">`enum`</Link> and <Link href=\"../picklist/\">`picklist`</Link>. However, if <Link href=\"../enum/\">`enum`</Link> and <Link href=\"../picklist/\">`picklist`</Link> are used, it is better to use <Link href=\"../objectAsync/\">`objectAsync`</Link> with <Link href=\"../entriesFromList/\">`entriesFromList`</Link> because it already covers the needed functionality. This decision also reduces the bundle size of `recordAsync`, because it only needs to check the entries of the input and not any missing keys.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `recordAsync` can be used.\n\n### ID to email schema\n\nSchema to validate a record that maps an ID to a public user email.\n\n```ts\nimport { isEmailPublic } from '~/api';\n\nconst IdToEmailSchema = v.recordAsync(\n  v.pipe(v.string(), v.uuid()),\n  v.pipeAsync(\n    v.string(),\n    v.email(),\n    v.checkAsync(isEmailPublic, 'The email address is private.')\n  )\n);\n```\n\n## Related\n\nThe following APIs can be combined with `recordAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['config', 'getDefault', 'getFallback']} />\n\n### Actions\n\n<ApiList\n  items={[\n    'brand',\n    'check',\n    'description',\n    'entries',\n    'flavor',\n    'guard',\n    'maxEntries',\n    'metadata',\n    'minEntries',\n    'notEntries',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'checkAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialCheckAsync',\n    'pipeAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'undefinedableAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/recordAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TKey: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'string',\n            {\n              type: 'union',\n              options: ['string', 'number', 'symbol'],\n            },\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'string',\n            {\n              type: 'union',\n              options: ['string', 'number', 'symbol'],\n            },\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TValue: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'RecordIssue',\n              href: '../RecordIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  key: {\n    type: {\n      type: 'custom',\n      name: 'TKey',\n    },\n  },\n  value: {\n    type: {\n      type: 'custom',\n      name: 'TValue',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'RecordSchemaAsync',\n      href: '../RecordSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TKey',\n        },\n        {\n          type: 'custom',\n          name: 'TValue',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/requiredAsync/index.mdx",
    "content": "---\ntitle: requiredAsync\ndescription: >-\n  Creates a modified copy of an object schema that marks all or only the\n  selected entries as required.\nsource: /methods/required/requiredAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# requiredAsync\n\nCreates a modified copy of an object schema that marks all or only the selected entries as required.\n\n```ts\nconst AllKeysSchema = v.requiredAsync<TSchema, TMessage>(schema, message);\nconst SelectedKeysSchema = v.requiredAsync<TSchema, TKeys, TMessage>(\n  schema,\n  keys,\n  message\n);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n- `TKeys` <Property {...properties.TKeys} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n- `keys` <Property {...properties.keys} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\n`requiredAsync` creates a modified copy of the given object `schema` where all or only the selected `keys` are required. It is similar to TypeScript's [`Required`](https://www.typescriptlang.org/docs/handbook/utility-types.html#requiredtype) utility type.\n\n> Because `requiredAsync` changes the data type of the input and output, it is not allowed to pass a schema that has been modified by the <Link href='../pipeAsync/'>`pipeAsync`</Link> method, as this may cause runtime errors. Please use the <Link href='../pipeAsync/'>`pipeAsync`</Link> method after you have modified the schema with `requiredAsync`.\n\n## Returns\n\n- `AllKeysSchema` <Property {...properties.AllKeysSchema} />\n- `SelectedKeysSchema` <Property {...properties.SelectedKeysSchema} />\n\n## Examples\n\nThe following examples show how `requiredAsync` can be used.\n\n### New task schema\n\nSchema to validate an object containing task details.\n\n```ts\nimport { isOwnerPresent } from '~/api';\n\nconst UpdateTaskSchema = v.objectAsync({\n  owner: v.optionalAsync(\n    v.pipeAsync(\n      v.string(),\n      v.email(),\n      v.checkAsync(isOwnerPresent, 'The owner is not in the database.')\n    )\n  ),\n  title: v.optional(v.pipe(v.string(), v.nonEmpty(), v.maxLength(255))),\n  description: v.optional(v.pipe(v.string(), v.nonEmpty())),\n});\n\nconst NewTaskSchema = v.requiredAsync(UpdateTaskSchema);\n\n/*\n  {\n    owner: string;\n    title: string;\n    description: string;\n  }\n*/\n```\n\n## Related\n\nThe following APIs can be combined with `requiredAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'forward',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'keyof',\n    'message',\n    'omit',\n    'partial',\n    'pick',\n    'unwrap',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'brand',\n    'check',\n    'description',\n    'entries',\n    'flavor',\n    'guard',\n    'maxEntries',\n    'metadata',\n    'minEntries',\n    'notEntries',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'checkAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'forwardAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialAsync',\n    'partialCheckAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'undefinedableAsync',\n    'unionAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/requiredAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'SchemaWithoutPipe',\n      href: '../SchemaWithoutPipe/',\n      generics: [\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'LooseObjectSchemaAsync',\n              href: '../LooseObjectSchemaAsync/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntriesAsync',\n                  href: '../ObjectEntriesAsync/',\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      href: '../ErrorMessage/',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'LooseObjectIssue',\n                          href: '../LooseObjectIssue/',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'ObjectSchemaAsync',\n              href: '../ObjectSchemaAsync/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntriesAsync',\n                  href: '../ObjectEntriesAsync/',\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      href: '../ErrorMessage/',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'ObjectIssue',\n                          href: '../ObjectIssue/',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'ObjectWithRestSchemaAsync',\n              href: '../ObjectWithRestSchemaAsync/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntriesAsync',\n                  href: '../ObjectEntriesAsync/',\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'BaseSchema',\n                      href: '../BaseSchema/',\n                      generics: [\n                        'unknown',\n                        'unknown',\n                        {\n                          type: 'custom',\n                          name: 'BaseIssue',\n                          href: '../BaseIssue/',\n                          generics: ['unknown'],\n                        },\n                      ],\n                    },\n                    {\n                      type: 'custom',\n                      name: 'BaseSchemaAsync',\n                      href: '../BaseSchemaAsync/',\n                      generics: [\n                        'unknown',\n                        'unknown',\n                        {\n                          type: 'custom',\n                          name: 'BaseIssue',\n                          href: '../BaseIssue/',\n                          generics: ['unknown'],\n                        },\n                      ],\n                    },\n                  ],\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      href: '../ErrorMessage/',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'ObjectWithRestIssue',\n                          href: '../ObjectWithRestIssue/',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'StrictObjectSchemaAsync',\n              href: '../StrictObjectSchemaAsync/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntriesAsync',\n                  href: '../ObjectEntriesAsync/',\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      href: '../ErrorMessage/',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'StrictObjectIssue',\n                          href: '../StrictObjectIssue/',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TKeys: {\n    type: {\n      type: 'custom',\n      name: 'ObjectKeys',\n      href: '../ObjectKeys/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n      ],\n    },\n  },\n  TMessage: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NonOptionalIssue',\n              href: '../NonOptionalIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  keys: {\n    type: {\n      type: 'custom',\n      name: 'TKey',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  AllKeysSchema: {\n    type: {\n      type: 'custom',\n      name: 'SchemaWithRequiredAsync',\n      href: '../SchemaWithRequiredAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n        'undefined',\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n  SelectedKeysSchema: {\n    type: {\n      type: 'custom',\n      name: 'SchemaWithRequiredAsync',\n      href: '../SchemaWithRequiredAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n        {\n          type: 'custom',\n          name: 'TKeys',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/returnsAsync/index.mdx",
    "content": "---\ntitle: returnsAsync\ndescription: Creates a function return transformation action.\nsource: /actions/returns/returnsAsync.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# returnsAsync\n\nCreates a function return transformation action.\n\n```ts\nconst Action = v.returnsAsync<TInput, TSchema>(schema);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TSchema` <Property {...properties.TSchema} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n\n### Explanation\n\nWith `returnsAsync` you can force the returned value of a function to match the given `schema`.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `returnsAsync` can be used.\n\n### Product function schema\n\nSchema of a function that returns a product by its ID.\n\n```ts\nimport { isValidProductId } from '~/api';\n\nconst ProductFunctionSchema = v.pipeAsync(\n  v.function(),\n  v.argsAsync(\n    v.tupleAsync([v.pipeAsync(v.string(), v.checkAsync(isValidProductId))])\n  ),\n  v.returnsAsync(\n    v.pipeAsync(\n      v.promise(),\n      v.awaitAsync(),\n      v.object({\n        id: v.string(),\n        name: v.string(),\n        price: v.number(),\n      })\n    )\n  )\n);\n```\n\n## Related\n\nThe following APIs can be combined with `returnsAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'pipeAsync',\n    'recordAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'undefinedableAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/returnsAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'function',\n      params: [\n        {\n          spread: true,\n          name: 'args',\n          type: {\n            type: 'array',\n            item: 'any',\n          },\n        },\n      ],\n      return: 'unknown',\n    },\n  },\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'ReturnsActionAsync',\n      href: '../ReturnsActionAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/safeParseAsync/index.mdx",
    "content": "---\ntitle: safeParseAsync\ndescription: Parses an unknown input based on a schema.\nsource: /methods/safeParse/safeParseAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# safeParseAsync\n\nParses an unknown input based on a schema.\n\n```ts\nconst result = v.safeParseAsync<TSchema>(schema, input, config);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n- `input` <Property {...properties.input} />\n- `config` <Property {...properties.config} />\n\n## Returns\n\n- `result` <Property {...properties.result} />\n\n## Example\n\nThe following example shows how `safeParseAsync` can be used.\n\n```ts\nimport { isEmailPresent } from '~/api';\n\nconst StoredEmailSchema = v.pipeAsync(\n  v.string(),\n  v.email(),\n  v.checkAsync(isEmailPresent, 'The email is not in the database.')\n);\nconst result = await v.safeParseAsync(StoredEmailSchema, 'jane@example.com');\n\nif (result.success) {\n  const storedEmail = result.output;\n} else {\n  console.error(result.issues);\n}\n```\n\n## Related\n\nThe following APIs can be combined with `safeParseAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'flatten',\n    'keyof',\n    'message',\n    'omit',\n    'partial',\n    'pick',\n    'pipe',\n    'required',\n    'summarize',\n    'unwrap',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['getDotPath']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'partialAsync',\n    'pipeAsync',\n    'recordAsync',\n    'requiredAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/safeParseAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  input: {\n    type: 'unknown',\n  },\n  config: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'Config',\n          href: '../Config/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TSchema',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  result: {\n    type: {\n      type: 'custom',\n      name: 'Promise',\n      generics: [\n        {\n          type: 'custom',\n          name: 'SafeParseResult',\n          href: '../SafeParseResult/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TSchema',\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/safeParserAsync/index.mdx",
    "content": "---\ntitle: safeParserAsync\ndescription: Returns a function that parses an unknown input based on a schema.\nsource: /methods/safeParser/safeParserAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# safeParserAsync\n\nReturns a function that parses an unknown input based on a schema.\n\n```ts\nconst safeParser = v.safeParserAsync<TSchema, TConfig>(schema, config);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n- `TConfig` <Property {...properties.TConfig} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n- `config` <Property {...properties.config} />\n\n## Returns\n\n- `safeParser` <Property {...properties.safeParser} />\n\n## Example\n\nThe following example shows how `safeParserAsync` can be used.\n\n```ts\nimport { isEmailPresent } from '~/api';\n\nconst StoredEmailSchema = v.pipeAsync(\n  v.string(),\n  v.email(),\n  v.checkAsync(isEmailPresent, 'The email is not in the database.')\n);\nconst safeStoredEmailParser = v.safeParserAsync(StoredEmailSchema);\nconst result = await safeStoredEmailParser('jane@example.com');\n\nif (result.success) {\n  const storedEmail = result.output;\n} else {\n  console.error(result.issues);\n}\n```\n\n## Related\n\nThe following APIs can be combined with `safeParserAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'flatten',\n    'keyof',\n    'message',\n    'omit',\n    'partial',\n    'pick',\n    'pipe',\n    'required',\n    'summarize',\n    'unwrap',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['getDotPath']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'partialAsync',\n    'pipeAsync',\n    'recordAsync',\n    'requiredAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'undefinedableAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/safeParserAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TConfig: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'Config',\n          href: '../Config/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TSchema',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  config: {\n    type: {\n      type: 'custom',\n      name: 'TConfig',\n    },\n  },\n  safeParser: {\n    type: {\n      type: 'custom',\n      name: 'SafeParserAsync',\n      href: '../SafeParserAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n        {\n          type: 'custom',\n          name: 'TConfig',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/setAsync/index.mdx",
    "content": "---\ntitle: setAsync\ndescription: Creates a set schema.\nsource: /schemas/set/setAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# setAsync\n\nCreates a set schema.\n\n```ts\nconst Schema = v.setAsync<TValue, TMessage>(value, message);\n```\n\n## Generics\n\n- `TValue` <Property {...properties.TValue} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `value` <Property {...properties.value} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `setAsync` you can validate the data type of the input and whether the content matches `value`. If the input is not a set, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `setAsync` can be used.\n\n### Allowed IPs schema\n\nSchema to validate a set of allowed IP addresses.\n\n```ts\nimport { isIpAllowed } from '~/api';\n\nconst AllowedIPsSchema = v.setAsync(\n  v.pipeAsync(\n    v.string(),\n    v.ip(),\n    v.checkAsync(isIpAllowed, 'This IP address is not allowed.')\n  )\n);\n```\n\n## Related\n\nThe following APIs can be combined with `setAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['config', 'getDefault', 'getFallback']} />\n\n### Actions\n\n<ApiList\n  items={[\n    'brand',\n    'check',\n    'description',\n    'flavor',\n    'guard',\n    'maxSize',\n    'metadata',\n    'minSize',\n    'notSize',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'size',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'checkAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'pipeAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/setAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TValue: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'SetIssue',\n              href: '../SetIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  value: {\n    type: {\n      type: 'custom',\n      name: 'TValue',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'SetSchemaAsync',\n      href: '../SetSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TValue',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/strictObjectAsync/index.mdx",
    "content": "---\ntitle: strictObjectAsync\ndescription: Creates a strict object schema.\nsource: /schemas/strictObject/strictObjectAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# strictObjectAsync\n\nCreates a strict object schema.\n\n```ts\nconst Schema = v.strictObjectAsync<TEntries, TMessage>(entries, message);\n```\n\n## Generics\n\n- `TEntries` <Property {...properties.TEntries} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `entries` <Property {...properties.entries} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `strictObjectAsync` you can validate the data type of the input and whether the content matches `entries`. If the input is not an object or does include unknown entries, you can use `message` to customize the error message.\n\n> The difference to <Link href=\"../objectAsync/\">`objectAsync`</Link> is that this schema returns an issue for unknown entries. It intentionally returns only one issue. Otherwise, attackers could send large objects to exhaust device resources. If you want an issue for every unknown key, use the <Link href=\"../objectWithRestAsync/\">`objectWithRestAsync`</Link> schema with <Link href=\"../never/\">`never`</Link> for the `rest` argument.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `strictObjectAsync` can be used. Please see the <Link href=\"/guides/objects/\">object guide</Link> for more examples and explanations.\n\n### New user schema\n\nSchema to validate a strict object containing only specific new user details.\n\n```ts\nimport { isEmailPresent } from '~/api';\n\nconst NewUserSchema = v.strictObjectAsync({\n  firstName: v.pipe(v.string(), v.minLength(2), v.maxLength(45)),\n  lastName: v.pipe(v.string(), v.minLength(2), v.maxLength(45)),\n  email: v.pipeAsync(\n    v.string(),\n    v.email(),\n    v.checkAsync(isEmailPresent, 'The email is already in use by another user.')\n  ),\n  password: v.pipe(v.string(), v.minLength(8)),\n  avatar: v.optional(v.pipe(v.string(), v.url())),\n});\n```\n\n## Related\n\nThe following APIs can be combined with `strictObjectAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={['config', 'getDefault', 'getFallback', 'keyof', 'omit', 'pick']}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'brand',\n    'check',\n    'description',\n    'entries',\n    'flavor',\n    'guard',\n    'maxEntries',\n    'metadata',\n    'minEntries',\n    'notEntries',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'checkAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'forwardAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialAsync',\n    'partialCheckAsync',\n    'pipeAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'requiredAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/strictObjectAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TEntries: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ObjectEntriesAsync',\n      href: '../ObjectEntriesAsync/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'StrictObjectIssue',\n              href: '../StrictObjectIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  entries: {\n    type: {\n      type: 'custom',\n      name: 'TEntries',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'StrictObjectSchemaAsync',\n      href: '../StrictObjectSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TEntries',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/strictTupleAsync/index.mdx",
    "content": "---\ntitle: strictTupleAsync\ndescription: Creates a strict tuple schema.\nsource: /schemas/strictTuple/strictTupleAsync.ts\ncontributors:\n  - fabian-hiller\n  - mehm8128\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# strictTupleAsync\n\nCreates a strict tuple schema.\n\n```ts\nconst Schema = v.strictTupleAsync<TItems, TMessage>(items, message);\n```\n\n## Generics\n\n- `TItems` <Property {...properties.TItems} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `items` <Property {...properties.items} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `strictTupleAsync` you can validate the data type of the input and whether the content matches `items`. If the input is not an array or does include unknown items, you can use `message` to customize the error message.\n\n> The difference to <Link href=\"../tupleAsync/\">`tupleAsync`</Link> is that this schema returns an issue for unknown items. It intentionally returns only one issue. Otherwise, attackers could send large arrays to exhaust device resources. If you want an issue for every unknown item, use the <Link href=\"../tupleWithRestAsync/\">`tupleWithRestAsync`</Link> schema with <Link href=\"../never/\">`never`</Link> for the `rest` argument.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `strictTupleAsync` can be used. Please see the <Link href=\"/guides/arrays/\">arrays guide</Link> for more examples and explanations.\n\n### Number and email tuple\n\nSchema to validate a strict tuple with one number and one stored email address.\n\n```ts\nimport { isEmailPresent } from '~/api';\n\nconst TupleSchema = v.strictTupleAsync([\n  v.number(),\n  v.pipeAsync(\n    v.string(),\n    v.email(),\n    v.checkAsync(isEmailPresent, 'The email is not in the database.')\n  ),\n]);\n```\n\n## Related\n\nThe following APIs can be combined with `strictTupleAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['config', 'getDefault', 'getFallback']} />\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'checkItems',\n    'brand',\n    'description',\n    'empty',\n    'everyItem',\n    'excludes',\n    'filterItems',\n    'findItem',\n    'flavor',\n    'guard',\n    'includes',\n    'length',\n    'mapItems',\n    'maxLength',\n    'metadata',\n    'minLength',\n    'nonEmpty',\n    'notLength',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'reduceItems',\n    'someItem',\n    'sortItems',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'checkAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialCheckAsync',\n    'pipeAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'transformAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/strictTupleAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TItems: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TupleItemsAsync',\n      href: '../TupleItemsAsync/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'StrictTupleIssue',\n              href: '../StrictTupleIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  items: {\n    type: {\n      type: 'custom',\n      name: 'TItems',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'StrictTupleSchemaAsync',\n      href: '../StrictTupleSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TItems',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/transformAsync/index.mdx",
    "content": "---\ntitle: transformAsync\ndescription: Creates a custom transformation action.\nsource: /actions/transform/transformAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n  - santoshyadavdev\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# transformAsync\n\nCreates a custom transformation action.\n\n```ts\nconst Action = v.transformAsync<TInput, TOutput>(operation);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n\n## Parameters\n\n- `operation` <Property {...properties.operation} />\n\n### Explanation\n\n`transformAsync` can be used to freely transform the input. The `operation` parameter is a function that takes the input and returns the transformed output.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `transformAsync` can be used.\n\n### Blob to string\n\nSchema that transforms a blob to its string value.\n\n```ts\nconst StringSchema = v.pipeAsync(\n  v.blob(),\n  v.transformAsync((value) => value.text())\n);\n```\n\n## Related\n\nThe following APIs can be combined with `transformAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'awaitAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'pipeAsync',\n    'recordAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'undefinedableAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/transformAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  operation: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: {\n            type: 'custom',\n            name: 'TInput',\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'Promise',\n        generics: [\n          {\n            type: 'custom',\n            name: 'TOutput',\n          },\n        ],\n      },\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'TransformActionAsync',\n      href: '../TransformActionAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TOutput',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/tupleAsync/index.mdx",
    "content": "---\ntitle: tupleAsync\ndescription: Creates a tuple schema.\nsource: /schemas/tuple/tupleAsync.ts\ncontributors:\n  - fabian-hiller\n  - mehm8128\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# tupleAsync\n\nCreates a tuple schema.\n\n```ts\nconst Schema = v.tupleAsync<TItems, TMessage>(items, message);\n```\n\n## Generics\n\n- `TItems` <Property {...properties.TItems} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `items` <Property {...properties.items} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `tupleAsync` you can validate the data type of the input and whether the content matches `items`. If the input is not an array, you can use `message` to customize the error message.\n\n> This schema removes unknown items. The output will only include the items you specify. To include unknown items, use <Link href=\"../looseTupleAsync/\">`looseTupleAsync`</Link>. To return an issue for unknown items, use <Link href=\"../strictTupleAsync/\">`strictTupleAsync`</Link>. To include and validate unknown items, use <Link href=\"../tupleWithRestAsync/\">`tupleWithRestAsync`</Link>.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `tupleAsync` can be used. Please see the <Link href=\"/guides/arrays/\">arrays guide</Link> for more examples and explanations.\n\n### Number and email tuple\n\nSchema to validate a tuple with one number and one stored email address.\n\n```ts\nimport { isEmailPresent } from '~/api';\n\nconst TupleSchema = v.tupleAsync([\n  v.number(),\n  v.pipeAsync(\n    v.string(),\n    v.email(),\n    v.checkAsync(isEmailPresent, 'The email is not in the database.')\n  ),\n]);\n```\n\n## Related\n\nThe following APIs can be combined with `tupleAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['config', 'getDefault', 'getFallback']} />\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'checkItems',\n    'brand',\n    'description',\n    'empty',\n    'everyItem',\n    'excludes',\n    'filterItems',\n    'findItem',\n    'flavor',\n    'guard',\n    'includes',\n    'length',\n    'mapItems',\n    'maxLength',\n    'metadata',\n    'minLength',\n    'nonEmpty',\n    'notLength',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'reduceItems',\n    'someItem',\n    'sortItems',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'checkAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialCheckAsync',\n    'pipeAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/tupleAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TItems: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TupleItemsAsync',\n      href: '../TupleItemsAsync/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleIssue',\n              href: '../TupleIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  items: {\n    type: {\n      type: 'custom',\n      name: 'TItems',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'TupleSchemaAsync',\n      href: '../TupleSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TItems',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/tupleWithRestAsync/index.mdx",
    "content": "---\ntitle: tupleWithRestAsync\ndescription: Creates a tuple with rest schema.\nsource: /schemas/tupleWithRest/tupleWithRestAsync.ts\ncontributors:\n  - fabian-hiller\n  - mehm8128\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# tupleWithRestAsync\n\nCreates a tuple with rest schema.\n\n```ts\nconst Schema = v.tupleWithRestAsync<TItems, TRest, TMessage>(\n  items,\n  rest,\n  message\n);\n```\n\n## Generics\n\n- `TItems` <Property {...properties.TItems} />\n- `TRest` <Property {...properties.TRest} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `items` <Property {...properties.items} />\n- `rest` <Property {...properties.rest} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `tupleWithRestAsync` you can validate the data type of the input and whether the content matches `items` and `rest`. If the input is not an array, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `tupleWithRestAsync` can be used. Please see the <Link href=\"/guides/arrays/\">arrays guide</Link> for more examples and explanations.\n\n### Tuple schema with rest\n\nSchema to validate a tuple with generic rest items.\n\n```ts\nimport { isEmailPresent } from '~/api';\n\nconst TupleSchemaWithRest = v.tupleWithRestAsync(\n  [\n    v.number(),\n    v.pipeAsync(\n      v.string(),\n      v.email(),\n      v.checkAsync(isEmailPresent, 'The email is not in the database.')\n    ),\n  ],\n  v.boolean()\n);\n```\n\n## Related\n\nThe following APIs can be combined with `tupleWithRestAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['config', 'getDefault', 'getFallback']} />\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'checkItems',\n    'brand',\n    'description',\n    'empty',\n    'everyItem',\n    'excludes',\n    'filterItems',\n    'findItem',\n    'flavor',\n    'guard',\n    'includes',\n    'length',\n    'mapItems',\n    'maxLength',\n    'metadata',\n    'minLength',\n    'nonEmpty',\n    'notLength',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'reduceItems',\n    'someItem',\n    'sortItems',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'checkAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialCheckAsync',\n    'pipeAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/tupleWithRestAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TItems: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TupleItemsAsync',\n      href: '../TupleItemsAsync/',\n    },\n  },\n  TRest: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleWithRestIssue',\n              href: '../TupleWithRestIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  items: {\n    type: {\n      type: 'custom',\n      name: 'TItems',\n    },\n  },\n  rest: {\n    type: {\n      type: 'custom',\n      name: 'TRest',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'TupleWithRestSchemaAsync',\n      href: '../TupleWithRestSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TItems',\n        },\n        {\n          type: 'custom',\n          name: 'TRest',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/undefinedableAsync/index.mdx",
    "content": "---\ntitle: undefinedableAsync\ndescription: Creates an undefinedable schema.\nsource: /schemas/undefinedable/undefinedableAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n  - santoshyadavdev\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# undefinedableAsync\n\nCreates an undefinedable schema.\n\n```ts\nconst Schema = v.undefinedableAsync<TWrapped, TDefault>(wrapped, default_);\n```\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TDefault` <Property {...properties.TDefault} />\n\n## Parameters\n\n- `wrapped` <Property {...properties.wrapped} />\n- `default_` {/* prettier-ignore */}<Property {...properties.default_} />\n\n### Explanation\n\nWith `undefinedableAsync` the validation of your schema will pass `undefined` inputs, and if you specify a `default_` input value, the schema will use it if the input is `undefined`. For this reason, the output type may differ from the input type of the schema.\n\n> `undefinedableAsync` behaves exactly the same as <Link href=\"../optionalAsync/\">`optionalAsync`</Link> at runtime. The only difference is the input and output type when used for object entries. While <Link href=\"../optionalAsync/\">`optionalAsync`</Link> adds a question mark to the key, `undefinedableAsync` does not.\n\n> Note that `undefinedableAsync` does not accept `null` as an input. If you want to accept `null` inputs, use <Link href=\"../nullableAsync/\">`nullableAsync`</Link>, and if you want to accept `null` and `undefined` inputs, use <Link href=\"../nullishAsync/\">`nullishAsync`</Link> instead. Also, if you want to set a default output value for any invalid input, you should use <Link href=\"../fallbackAsync/\">`fallbackAsync`</Link> instead.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `undefinedableAsync` can be used.\n\n### Undefinedable username schema\n\nSchema that accepts a unique username or `undefined`.\n\n> By using a function as the `default_` parameter, the schema will return a unique username from the function call each time the input is `undefined`.\n\n```ts\nimport { getUniqueUsername, isUsernameUnique } from '~/api';\n\nconst UndefinedableUsernameSchema = v.undefinedableAsync(\n  v.pipeAsync(\n    v.string(),\n    v.nonEmpty(),\n    v.checkAsync(isUsernameUnique, 'The username is not unique.')\n  ),\n  getUniqueUsername\n);\n```\n\n### New user schema\n\nSchema to validate new user details.\n\n```ts\nimport { isEmailUnique, isUsernameUnique } from '~/api';\n\nconst NewUserSchema = v.objectAsync({\n  email: v.pipeAsync(\n    v.string(),\n    v.email(),\n    v.checkAsync(isEmailUnique, 'The email is not unique.')\n  ),\n  username: v.undefinedableAsync(\n    v.pipeAsync(\n      v.string(),\n      v.nonEmpty(),\n      v.checkAsync(isUsernameUnique, 'The username is not unique.')\n    )\n  ),\n  password: v.pipe(v.string(), v.minLength(8)),\n});\n\n/*\n  The input and output types of the schema:\n    {\n      email: string;\n      password: string;\n      username: string | undefined;\n    }\n*/\n```\n\n### Unwrap undefinedable schema\n\nUse <Link href=\"../unwrap/\">`unwrap`</Link> to undo the effect of `undefinedableAsync`.\n\n```ts\nimport { isUsernameUnique } from '~/api';\n\nconst UsernameSchema = v.unwrap(\n  // Assume this schema is from a different file and is reused here\n  v.undefinedableAsync(\n    v.pipeAsync(\n      v.string(),\n      v.nonEmpty(),\n      v.checkAsync(isUsernameUnique, 'The username is not unique.')\n    )\n  )\n);\n```\n\n## Related\n\nThe following APIs can be combined with `undefinedableAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonUndefinedable',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['config', 'getDefault', 'getFallback', 'unwrap']} />\n\n### Actions\n\n<ApiList\n  items={[\n    'brand',\n    'check',\n    'description',\n    'flavor',\n    'guard',\n    'metadata',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'awaitAsync',\n    'checkAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialCheckAsync',\n    'pipeAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/undefinedableAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TDefault: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'DefaultAsync',\n      href: '../DefaultAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        'undefined',\n      ],\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  default_: {\n    type: {\n      type: 'custom',\n      name: 'TDefault',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'UndefinedableSchemaAsync',\n      href: '../UndefinedableSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        {\n          type: 'custom',\n          name: 'TDefault',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/unionAsync/index.mdx",
    "content": "---\ntitle: unionAsync\ndescription: Creates an union schema.\nsource: /schemas/union/unionAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# unionAsync\n\nCreates an union schema.\n\n> I recommend that you read the <Link href=\"/guides/unions/\">unions guide</Link> before using this schema function.\n\n```ts\nconst Schema = v.unionAsync<TOptions, TMessage>(options, message);\n```\n\n## Generics\n\n- `TOptions` <Property {...properties.TOptions} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `options` <Property {...properties.options} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `unionAsync` you can validate if the input matches one of the given `options`. If the input does not match a schema and cannot be clearly assigned to one of the options, you can use `message` to customize the error message.\n\nIf a bad input can be uniquely assigned to one of the schemas based on the data type, the result of that schema is returned. Otherwise, a general issue is returned that contains the issues of each schema as subissues. This is a special case within the library, as the issues of `unionAsync` can contradict each other.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `unionAsync` can be used.\n\n### User schema\n\nSchema to validate a user's email or username.\n\n```ts\nimport { isEmailPresent, isUsernamePresent } from '~/api';\n\nconst UserSchema = v.unionAsync([\n  v.pipeAsync(\n    v.string(),\n    v.email(),\n    v.checkAsync(isEmailPresent, 'The email is not in the database.')\n  ),\n  v.pipeAsync(\n    v.string(),\n    v.nonEmpty(),\n    v.checkAsync(isUsernamePresent, 'The username is not in the database.')\n  ),\n]);\n```\n\n## Related\n\nThe following APIs can be combined with `unionAsync`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['config', 'getDefault', 'getFallback']} />\n\n### Actions\n\n<ApiList\n  items={[\n    'args',\n    'base64',\n    'bic',\n    'brand',\n    'bytes',\n    'check',\n    'checkItems',\n    'creditCard',\n    'cuid2',\n    'decimal',\n    'description',\n    'digits',\n    'domain',\n    'email',\n    'emoji',\n    'empty',\n    'endsWith',\n    'entries',\n    'everyItem',\n    'excludes',\n    'filterItems',\n    'findItem',\n    'finite',\n    'flavor',\n    'graphemes',\n    'gtValue',\n    'guard',\n    'hash',\n    'hexadecimal',\n    'hexColor',\n    'imei',\n    'includes',\n    'integer',\n    'ip',\n    'ipv4',\n    'ipv6',\n    'isbn',\n    'isrc',\n    'isoDate',\n    'isoDateTime',\n    'isoTime',\n    'isoTimeSecond',\n    'isoTimestamp',\n    'isoWeek',\n    'length',\n    'ltValue',\n    'mac',\n    'mac48',\n    'mac64',\n    'mapItems',\n    'maxBytes',\n    'maxEntries',\n    'maxGraphemes',\n    'maxLength',\n    'maxSize',\n    'maxValue',\n    'maxWords',\n    'metadata',\n    'mimeType',\n    'minBytes',\n    'minEntries',\n    'minGraphemes',\n    'minLength',\n    'minSize',\n    'minValue',\n    'minWords',\n    'multipleOf',\n    'nonEmpty',\n    'notBytes',\n    'notEntries',\n    'notGraphemes',\n    'notLength',\n    'notSize',\n    'notValue',\n    'notValues',\n    'notWords',\n    'octal',\n    'parseJson',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'reduceItems',\n    'regex',\n    'returns',\n    'rfcEmail',\n    'safeInteger',\n    'size',\n    'slug',\n    'someItem',\n    'sortItem',\n    'startsWith',\n    'stringifyJson',\n    'title',\n    'toLowerCase',\n    'toMaxValue',\n    'toMinValue',\n    'toUpperCase',\n    'transform',\n    'trim',\n    'trimEnd',\n    'trimStart',\n    'ulid',\n    'url',\n    'uuid',\n    'value',\n    'values',\n    'words',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'awaitAsync',\n    'checkAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialCheckAsync',\n    'pipeAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/unionAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TOptions: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'UnionOptionsAsync',\n      href: '../UnionOptionsAsync/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'UnionIssue',\n              href: '../UnionIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'InferIssue',\n                  href: '../InferIssue/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'TOptions',\n                      indexes: ['number'],\n                    },\n                  ],\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  options: {\n    type: {\n      type: 'custom',\n      name: 'TOptions',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'UnionSchemaAsync',\n      href: '../UnionSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TOptions',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(async)/variantAsync/index.mdx",
    "content": "---\ntitle: variantAsync\ndescription: Creates a variant schema.\nsource: /schemas/variant/variantAsync.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# variantAsync\n\nCreates a variant schema.\n\n```ts\nconst Schema = v.variantAsync<TKey, TOptions, TMessage>(key, options, message);\n```\n\n## Generics\n\n- `TKey` <Property {...properties.TKey} />\n- `TOptions` <Property {...properties.TOptions} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `key` <Property {...properties.key} />\n- `options` <Property {...properties.options} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `variantAsync` you can validate if the input matches one of the given object `options`. The object schema to be used for the validation is determined by the discriminator `key`. If the input does not match a schema and cannot be clearly assigned to one of the options, you can use `message` to customize the error message.\n\n> It is allowed to specify the exact same or a similar discriminator multiple times. However, in such cases `variantAsync` will only return the output of the first untyped or typed variant option result. Typed results take precedence over untyped ones.\n\n> For deeply nested `variant` schemas with several different discriminator keys, `variant` will return an issue for the first most likely object schemas on invalid input. The order of the discriminator keys and the presence of a discriminator in the input are taken into account.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `variantAsync` can be used.\n\n### Message schema\n\nSchema to validate a message object.\n\n```ts\nimport { isValidGroupReceiver, isValidUserReceiver } from '~/api';\n\nconst MessageSchema = v.objectAsync({\n  message: v.pipe(v.string(), v.nonEmpty()),\n  receiver: v.variantAsync('type', [\n    v.objectAsync({\n      type: v.literal('group'),\n      groupId: v.pipeAsync(\n        v.string(),\n        v.uuid(),\n        v.checkAsync(isValidGroupReceiver, 'The group cannot receive messages.')\n      ),\n    }),\n    v.objectAsync({\n      type: v.literal('user'),\n      email: v.pipeAsync(\n        v.string(),\n        v.email(),\n        v.checkAsync(isValidUserReceiver, 'The user cannot receive messages.')\n      ),\n    }),\n  ]),\n});\n```\n\n### User schema\n\nSchema to validate unique user details.\n\n```ts\nimport { isRegisteredEmail, isRegisteredUsername, isValidUserId } from '~/api';\n\nconst UserSchema = v.variantAsync('type', [\n  // Assume this schema is from a different file and reused here.\n  v.variantAsync('type', [\n    v.objectAsync({\n      type: v.literal('email'),\n      email: v.pipeAsync(\n        v.string(),\n        v.email(),\n        v.checkAsync(isRegisteredEmail, 'The email is not registered.')\n      ),\n    }),\n    v.objectAsync({\n      type: v.literal('username'),\n      username: v.pipeAsync(\n        v.string(),\n        v.nonEmpty(),\n        v.checkAsync(isRegisteredUsername, 'The username is not registered.')\n      ),\n    }),\n  ]),\n  v.objectAsync({\n    type: v.literal('userId'),\n    userId: v.pipeAsync(\n      v.string(),\n      v.uuid(),\n      v.checkAsync(isValidUserId, 'The user id is not valid.')\n    ),\n  }),\n]);\n```\n\n## Related\n\nThe following APIs can be combined with `variantAsync`.\n\n### Schemas\n\n<ApiList items={['looseObject', 'object', 'objectWithRest', 'strictObject']} />\n\n### Methods\n\n<ApiList items={['config', 'getDefault', 'getFallback']} />\n\n### Actions\n\n<ApiList\n  items={[\n    'brand',\n    'check',\n    'description',\n    'entries',\n    'flavor',\n    'guard',\n    'maxEntries',\n    'metadata',\n    'minEntries',\n    'notEntries',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'checkAsync',\n    'fallbackAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'looseObjectAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialCheckAsync',\n    'pipeAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'strictObjectAsync',\n    'transformAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(async)/variantAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TKey: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TOptions: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'VariantOptionsAsync',\n      href: '../VariantOptionsAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TKey',\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'VariantIssue',\n              href: '../VariantIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  key: {\n    type: {\n      type: 'custom',\n      name: 'TKey',\n    },\n  },\n  options: {\n    type: {\n      type: 'custom',\n      name: 'TOptions',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'VariantSchemaAsync',\n      href: '../VariantSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TKey',\n        },\n        {\n          type: 'custom',\n          name: 'TOptions',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(methods)/assert/index.mdx",
    "content": "---\ntitle: assert\ndescription: Checks if the input matches the scheme.\nsource: /methods/assert/assert.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# assert\n\nChecks if the input matches the scheme.\n\n> As this is an assertion function, it can be used as a type guard.\n\n```ts\nv.assert<TSchema>(schema, input);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n- `input` <Property {...properties.input} />\n\n### Explanation\n\n`assert` does not modify the `input`. Therefore, transformations have no effect and unknown keys of an object are not removed. That is why this approach is not as safe and powerful as <Link href='../parse/'>`parse`</Link> and <Link href='../safeParse/'>`safeParse`</Link>.\n\n## Example\n\nThe following example show how `assert` can be used.\n\n```ts\nconst EmailSchema = v.pipe(v.string(), v.email());\nconst data: unknown = 'jane@example.com';\n\nv.assert(EmailSchema, data);\nconst email = data; // string\n```\n\n## Related\n\nThe following APIs can be combined with `assert`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'keyof',\n    'message',\n    'omit',\n    'partial',\n    'pick',\n    'pipe',\n    'required',\n    'unwrap',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(methods)/assert/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  input: {\n    type: 'unknown',\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(methods)/cache/index.mdx",
    "content": "---\ntitle: cache\ndescription: Creates a version of a schema that caches its output.\nsource: /methods/cache/cache.ts\ncontributors:\n  - EskiMojo14\n  - fabianhiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# cache\n\nCreates a version of a schema that caches its output.\n\n```ts\nconst Schema = v.cache<TSchema, TCacheConfig>(schema, config);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n- `TCacheConfig` <Property {...properties.TCacheConfig} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n- `config` <Property {...properties.config} />\n\n### Explanation\n\nThe `cache` method creates a version of the given `schema` that caches its output. This can be useful for performance optimization, for example when validation performs an expensive computation or complex parsing that you want to avoid repeating for the same input.\n\n> Hint: Primitive inputs are cached by value. Object and function inputs are cached by reference identity, so mutating input objects and reusing the same reference can return a stale cached dataset. Returned objects are also reused by reference, so mutating cached output can affect later cache hits. For best results, use `cache` with immutable inputs and avoid mutating returned cached objects.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `cache` can be used.\n\n### Cache schema\n\nSchema that caches its output.\n\n```ts\nconst CacheSchema = v.cache(v.string());\n```\n\n### Max size schema\n\nSchema that caches its output for a maximum of 100 items.\n\n```ts\nconst MaxSizeSchema = v.cache(v.string(), { maxSize: 100 });\n```\n\n### Max age schema\n\nSchema that caches its output for a maximum of 10 seconds.\n\n```ts\nconst MaxAgeSchema = v.cache(v.string(), { maxAge: 10_000 });\n```\n\n## Related\n\nThe following APIs can be combined with `cache`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['config', 'getDefault', 'getFallback']} />\n\n### Actions\n\n<ApiList items={['message', 'unwrap']} />\n"
  },
  {
    "path": "website/src/routes/api/(methods)/cache/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TCacheConfig: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'CacheConfig',\n          href: '../CacheConfig/',\n        },\n        'undefined',\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  config: {\n    type: {\n      type: 'custom',\n      name: 'TCacheConfig',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'SchemaWithCache',\n      href: '../SchemaWithCache/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n        {\n          type: 'custom',\n          name: 'TCacheConfig',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(methods)/config/index.mdx",
    "content": "---\ntitle: config\ndescription: Changes the local configuration of a schema.\nsource: /methods/config/config.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# config\n\nChanges the local configuration of a schema.\n\n```ts\nconst Schema = v.config<TSchema>(schema, config);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n- `config` <Property {...properties.config} />\n\n### Explanation\n\nThis method overwrites the selected configuration properties by merging the previous configuration of the `schema` with the provided `config`.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `config` can be used.\n\n### Same error message\n\nSchema that uses the same error message for the entire pipeline.\n\n```ts\nconst Schema = v.object({\n  email: v.config(\n    v.pipe(v.string(), v.trim(), v.email(), v.endsWith('@example.com')),\n    { message: 'The email does not conform to the required format.' }\n  ),\n  // ...\n});\n```\n\n### Abort pipeline early\n\nSchema that aborts only a specific pipeline early.\n\n```ts\nconst Schema = v.object({\n  url: v.config(\n    v.pipe(v.string(), v.trim(), v.url(), v.endsWith('@example.com')),\n    { abortPipeEarly: true }\n  ),\n  // ...\n});\n```\n\n## Related\n\nThe following APIs can be combined with `config`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'keyof',\n    'message',\n    'omit',\n    'parse',\n    'parser',\n    'partial',\n    'pick',\n    'pipe',\n    'required',\n    'safeParse',\n    'safeParser',\n    'unwrap',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'args',\n    'base64',\n    'bic',\n    'brand',\n    'bytes',\n    'check',\n    'checkItems',\n    'creditCard',\n    'cuid2',\n    'decimal',\n    'description',\n    'digits',\n    'domain',\n    'email',\n    'emoji',\n    'empty',\n    'endsWith',\n    'entries',\n    'everyItem',\n    'excludes',\n    'filterItems',\n    'findItem',\n    'finite',\n    'flavor',\n    'graphemes',\n    'gtValue',\n    'guard',\n    'hash',\n    'hexadecimal',\n    'hexColor',\n    'imei',\n    'includes',\n    'integer',\n    'ip',\n    'ipv4',\n    'ipv6',\n    'isbn',\n    'isrc',\n    'isoDate',\n    'isoDateTime',\n    'isoTime',\n    'isoTimeSecond',\n    'isoTimestamp',\n    'isoWeek',\n    'length',\n    'ltValue',\n    'mac',\n    'mac48',\n    'mac64',\n    'mapItems',\n    'maxBytes',\n    'maxEntries',\n    'maxGraphemes',\n    'maxLength',\n    'maxSize',\n    'maxValue',\n    'maxWords',\n    'metadata',\n    'mimeType',\n    'minBytes',\n    'minEntries',\n    'minGraphemes',\n    'minLength',\n    'minSize',\n    'minValue',\n    'minWords',\n    'multipleOf',\n    'nanoid',\n    'nonEmpty',\n    'notBytes',\n    'notEntries',\n    'notGraphemes',\n    'notLength',\n    'notSize',\n    'notValue',\n    'notValues',\n    'notWords',\n    'octal',\n    'parseJson',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'reduceItems',\n    'regex',\n    'returns',\n    'rfcEmail',\n    'safeInteger',\n    'size',\n    'slug',\n    'someItem',\n    'sortItem',\n    'startsWith',\n    'stringifyJson',\n    'title',\n    'toLowerCase',\n    'toMaxValue',\n    'toMinValue',\n    'toUpperCase',\n    'transform',\n    'trim',\n    'trimEnd',\n    'trimStart',\n    'ulid',\n    'url',\n    'uuid',\n    'value',\n    'values',\n    'words',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'partialAsync',\n    'pipeAsync',\n    'recordAsync',\n    'requiredAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(methods)/config/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  config: {\n    type: {\n      type: 'custom',\n      name: 'Config',\n      href: '../Config/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferIssue',\n          href: '../InferIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TSchema',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(methods)/fallback/index.mdx",
    "content": "---\ntitle: fallback\ndescription: Returns a fallback value as output if the input does not match the schema.\nsource: /methods/fallback/fallback.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n  - morinokami\n  - sqmasep\n  - FlorianDevPhynix\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# fallback\n\nReturns a fallback value as output if the input does not match the schema.\n\n```ts\nconst Schema = v.fallback<TSchema, TFallback>(schema, fallback);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n- `TFallback` <Property {...properties.TFallback} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n- `fallback` <Property {...properties.fallback} />\n\n### Explanation\n\n`fallback` allows you to define a fallback value for the output that will be used if the validation of the input fails. This means that no issues will be returned when using `fallback` and the schema will always return an output.\n\n> If you only want to set a default value for `null` or `undefined` inputs, you should use <Link href=\"../optional/\">`optional`</Link>, <Link href=\"../nullable/\">`nullable`</Link> or <Link href=\"../nullish/\">`nullish`</Link> instead.\n\n> The fallback value is not validated. Make sure that the fallback value matches your schema.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `fallback` can be used.\n\n### Fallback string schema\n\nSchema that will always return a string output.\n\n```ts\nconst FallbackStringSchema = v.fallback(v.string(), \"I'm the fallback!\");\n```\n\n### Fallback date schema\n\nSchema that will always return a [`Date`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) output.\n\n> By using a function as the `fallback` parameter, the schema will return a new [`Date`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) instance each time the input does not match the schema.\n\n```ts\nconst FallbackDateSchema = v.fallback(v.date(), () => new Date());\n```\n\n## Related\n\nThe following APIs can be combined with `fallback`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'keyof',\n    'message',\n    'omit',\n    'parse',\n    'parser',\n    'partial',\n    'pick',\n    'pipe',\n    'required',\n    'safeParse',\n    'safeParser',\n    'unwrap',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'args',\n    'base64',\n    'bic',\n    'brand',\n    'bytes',\n    'check',\n    'checkItems',\n    'creditCard',\n    'cuid2',\n    'decimal',\n    'description',\n    'digits',\n    'domain',\n    'email',\n    'emoji',\n    'empty',\n    'endsWith',\n    'entries',\n    'everyItem',\n    'excludes',\n    'filterItems',\n    'findItem',\n    'finite',\n    'flavor',\n    'graphemes',\n    'gtValue',\n    'guard',\n    'hash',\n    'hexadecimal',\n    'hexColor',\n    'imei',\n    'includes',\n    'integer',\n    'ip',\n    'ipv4',\n    'ipv6',\n    'isbn',\n    'isrc',\n    'isoDate',\n    'isoDateTime',\n    'isoTime',\n    'isoTimeSecond',\n    'isoTimestamp',\n    'isoWeek',\n    'length',\n    'ltValue',\n    'mac',\n    'mac48',\n    'mac64',\n    'mapItems',\n    'maxBytes',\n    'maxEntries',\n    'maxGraphemes',\n    'maxLength',\n    'maxSize',\n    'maxValue',\n    'maxWords',\n    'metadata',\n    'mimeType',\n    'minBytes',\n    'minEntries',\n    'minGraphemes',\n    'minLength',\n    'minSize',\n    'minValue',\n    'minWords',\n    'multipleOf',\n    'nanoid',\n    'nonEmpty',\n    'notBytes',\n    'notEntries',\n    'notGraphemes',\n    'notLength',\n    'notSize',\n    'notValue',\n    'notValues',\n    'notWords',\n    'octal',\n    'parseJson',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'reduceItems',\n    'regex',\n    'returns',\n    'rfcEmail',\n    'safeInteger',\n    'size',\n    'slug',\n    'someItem',\n    'sortItem',\n    'startsWith',\n    'stringifyJson',\n    'title',\n    'toLowerCase',\n    'toMaxValue',\n    'toMinValue',\n    'toUpperCase',\n    'transform',\n    'trim',\n    'trimEnd',\n    'trimStart',\n    'ulid',\n    'url',\n    'uuid',\n    'value',\n    'values',\n    'words',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(methods)/fallback/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TFallback: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Fallback',\n      href: '../Fallback/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  fallback: {\n    type: {\n      type: 'custom',\n      name: 'TFallback',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'SchemaWithFallback',\n      href: '../SchemaWithFallback/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n        {\n          type: 'custom',\n          name: 'TFallback',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(methods)/flatten/index.mdx",
    "content": "---\ntitle: flatten\ndescription: Flatten the error messages of issues.\nsource: /methods/flatten/flatten.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# flatten\n\nFlatten the error messages of issues.\n\n```ts\nconst errors = v.flatten<TSchema>(issues);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n\n## Parameters\n\n- `issues` <Property {...properties.issues} />\n\n### Explanation\n\nThe error messages of issues without a path that belong to the root of the schema are added to the `.root` key.\n\nThe error messages of issues with a path that belong to the nested parts of the schema and can be converted to a dot path are added to the `.nested` key.\n\nSome issue paths, for example for complex data types like `Set` and `Map`, have no key or a key that cannot be converted to a dot path. These error messages are added to the `.other` key.\n\n## Returns\n\n- `errors` <Property {...properties.errors} />\n\n## Examples\n\nThe following example show how `flatten` can be used.\n\n```ts\nconst Schema = v.object({\n  nested: v.object({\n    foo: v.string('Value of \"nested.foo\" is invalid.'),\n  }),\n});\n\nconst result = v.safeParse(Schema, { nested: { foo: null } });\n\nif (result.issues) {\n  const flatErrors = v.flatten<typeof Schema>(result.issues);\n\n  // ...\n}\n```\n\n## Related\n\nThe following APIs can be combined with `flatten`.\n\n### Methods\n\n<ApiList items={['parse', 'parser', 'safeParse']} />\n"
  },
  {
    "path": "website/src/routes/api/(methods)/flatten/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  issues: {\n    type: {\n      type: 'tuple',\n      items: [\n        {\n          type: 'custom',\n          name: 'InferIssue',\n          href: '../InferIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TSchema',\n            },\n          ],\n        },\n        {\n          type: 'array',\n          spread: true,\n          item: {\n            type: 'custom',\n            name: 'InferIssue',\n            href: '../InferIssue/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'TSchema',\n              },\n            ],\n          },\n        },\n      ],\n    },\n  },\n  errors: {\n    type: {\n      type: 'custom',\n      name: 'FlatErrors',\n      href: '../FlatErrors/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(methods)/forward/ValidPath/index.mdx",
    "content": "---\ntitle: ValidPath\ndescription: Returns the path if valid, otherwise the last possible valid path based on the given value.\ncontributors:\n  - fabian-hiller\n---\n\n# ValidPath\n\nReturns the path if valid, otherwise the last possible valid path based on the given value.\n\n> This type is too complex to display. Please refer to the [source code](https://github.com/open-circle/valibot/blob/main/library/src/methods/forward/types.ts).\n"
  },
  {
    "path": "website/src/routes/api/(methods)/forward/index.mdx",
    "content": "---\ntitle: forward\ndescription: Forwards the issues of the passed validation action.\nsource: /methods/forward/forward.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# forward\n\nForwards the issues of the passed validation action.\n\n```ts\nconst Action = v.forward<TInput, TIssue, TPath>(action, path);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TIssue` <Property {...properties.TIssue} />\n- `TPath` <Property {...properties.TPath} />\n\n## Parameters\n\n- `action` <Property {...properties.action} />\n- `path` <Property {...properties.path} />\n\n### Explanation\n\n`forward` allows you to forward the issues of the passed validation `action` via `path` to a nested field of a schema.\n\n## Returns\n\n- `Action` <Property {...properties.Action} />\n\n## Examples\n\nThe following examples show how `forward` can be used.\n\n### Register schema\n\nSchema that ensures that the two passwords match.\n\n```ts\nconst RegisterSchema = v.pipe(\n  v.object({\n    email: v.pipe(\n      v.string(),\n      v.nonEmpty('Please enter your email.'),\n      v.email('The email address is badly formatted.')\n    ),\n    password1: v.pipe(\n      v.string(),\n      v.nonEmpty('Please enter your password.'),\n      v.minLength(8, 'Your password must have 8 characters or more.')\n    ),\n    password2: v.string(),\n  }),\n  v.forward(\n    v.partialCheck(\n      [['password1'], ['password2']],\n      (input) => input.password1 === input.password2,\n      'The two passwords do not match.'\n    ),\n    ['password2']\n  )\n);\n```\n\n## Related\n\nThe following APIs can be combined with `forward`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'custom',\n    'looseObject',\n    'looseTuple',\n    'object',\n    'objectWithRest',\n    'record',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'union',\n    'unknown',\n    'variant',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['omit', 'partial', 'pick', 'pipe', 'required']} />\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'checkItems',\n    'empty',\n    'everyItem',\n    'excludes',\n    'filterItems',\n    'findItem',\n    'guard',\n    'includes',\n    'length',\n    'mapItems',\n    'maxLength',\n    'metadata',\n    'minLength',\n    'nonEmpty',\n    'notLength',\n    'partialCheck',\n    'rawCheck',\n    'reduceItems',\n    'someItem',\n    'sortItems',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(methods)/forward/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'Record',\n          generics: ['string', 'unknown'],\n        },\n        {\n          type: 'custom',\n          name: 'ArrayLike',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  TPath: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'RequiredPath',\n      href: '../RequiredPath/',\n    },\n  },\n  action: {\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TIssue',\n        },\n      ],\n    },\n  },\n  path: {\n    type: {\n      type: 'custom',\n      name: 'ValidPath',\n      href: './ValidPath/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TPath',\n        },\n      ],\n    },\n  },\n  Action: {\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TIssue',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(methods)/getDefault/index.mdx",
    "content": "---\ntitle: getDefault\ndescription: Returns the default value of the schema.\nsource: /methods/getDefault/getDefault.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# getDefault\n\nReturns the default value of the schema.\n\n```ts\nconst value = v.getDefault<TSchema>(schema, dataset, config);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n- `dataset` <Property {...properties.dataset} />\n- `config` <Property {...properties.config} />\n\n## Returns\n\n- `value` <Property {...properties.value} />\n\n## Examples\n\nThe following examples show how `getDefault` can be used.\n\n### Optional string schema\n\nGet the default value of an optional string schema.\n\n```ts\nconst OptionalStringSchema = v.optional(v.string(), \"I'm the default!\");\nconst defaultValue = v.getDefault(OptionalStringSchema); // \"I'm the default!\"\n```\n\n## Related\n\nThe following APIs can be combined with `getDefault`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'keyof',\n    'message',\n    'omit',\n    'partial',\n    'pick',\n    'pipe',\n    'required',\n    'unwrap',\n  ]}\n/>\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'partialAsync',\n    'pipeAsync',\n    'recordAsync',\n    'requiredAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(methods)/getDefault/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  dataset: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'UnknownDataset',\n          href: '../UnknownDataset/',\n        },\n        'undefined',\n      ],\n    },\n  },\n  config: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'Config',\n          generics: [\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TSchema',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  value: {\n    type: {\n      type: 'custom',\n      name: 'InferDefault',\n      href: '../InferDefault/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(methods)/getDefaults/index.mdx",
    "content": "---\ntitle: getDefaults\ndescription: Returns the default values of the schema.\nsource: /methods/getDefaults/getDefaults.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# getDefaults\n\nReturns the default values of the schema.\n\n> The difference to <Link href='../getDefault/'>`getDefault`</Link> is that for object and tuple schemas this function recursively returns the default values of the subschemas instead of `undefined`.\n\n```ts\nconst values = v.getDefaults<TSchema>(schema);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n\n## Returns\n\n- `values` <Property {...properties.values} />\n\n## Examples\n\nThe following examples show how `getDefaults` can be used.\n\n### Object defaults\n\nGet the default values of an object schema.\n\n```ts\nconst ObjectSchema = v.object({\n  key: v.optional(v.string(), \"I'm the default!\"),\n});\n\nconst defaultValues = v.getDefaults(ObjectSchema); // { key: \"I'm the default!\" }\n```\n\n### Tuple defaults\n\nGet the default values of a tuple schema.\n\n```ts\nconst TupleSchema = v.tuple([v.nullable(v.number(), 100)]);\nconst defaultValues = v.getDefaults(TupleSchema); // [100]\n```\n\n## Related\n\nThe following APIs can be combined with `getDefaults`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'keyof',\n    'message',\n    'omit',\n    'partial',\n    'pick',\n    'pipe',\n    'required',\n    'unwrap',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(methods)/getDefaults/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  values: {\n    type: {\n      type: 'custom',\n      name: 'InferDefaults',\n      href: '../InferDefaults/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(methods)/getDescription/index.mdx",
    "content": "---\ntitle: getDescription\ndescription: Returns the description of the schema.\nsource: /methods/getDescription/getDescription.ts\ncontributors:\n  - EskiMojo14\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# getDescription\n\nReturns the description of the schema.\n\n> If multiple descriptions are defined, the last one of the highest level is returned. If no description is defined, `undefined` is returned.\n\n```ts\nconst description = v.getDescription<TSchema>(schema);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n\n## Returns\n\n- `description` <Property {...properties.description} />\n\n## Examples\n\nThe following examples show how `getDescription` can be used.\n\n### Get description of schema\n\nGet the description of a username schema.\n\n```ts\nconst UsernameSchema = v.pipe(\n  v.string(),\n  v.regex(/^[a-z0-9_-]{4,16}$/iu),\n  v.title('Username'),\n  v.description(\n    'A username must be between 4 and 16 characters long and can only contain letters, numbers, underscores and hyphens.'\n  )\n);\n\nconst description = v.getDescription(UsernameSchema);\n```\n\n### Overriding inherited descriptions\n\nGet the description of a Gmail schema with an overridden description.\n\n```ts\nconst EmailSchema = v.pipe(v.string(), v.email(), v.description('Email'));\n\nconst GmailSchema = v.pipe(\n  EmailSchema,\n  v.endsWith('@gmail.com'),\n  v.description('Gmail')\n);\n\nconst description = v.getDescription(GmailSchema); // 'Gmail'\n```\n\n## Related\n\nThe following APIs can be combined with `getDescription`.\n\n### Actions\n\n<ApiList items={['description']} />\n"
  },
  {
    "path": "website/src/routes/api/(methods)/getDescription/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'SchemaWithPipe',\n          href: '../SchemaWithPipe/',\n          generics: [\n            {\n              type: 'tuple',\n              modifier: 'readonly',\n              items: [\n                {\n                  type: 'custom',\n                  name: 'BaseSchema',\n                  href: '../BaseSchema/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n                {\n                  type: 'array',\n                  spread: true,\n                  item: {\n                    type: 'union',\n                    options: [\n                      {\n                        type: 'custom',\n                        name: 'PipeItem',\n                        href: '../PipeItem/',\n                        generics: [\n                          'any',\n                          'unknown',\n                          {\n                            type: 'custom',\n                            name: 'BaseIssue',\n                            href: '../BaseIssue/',\n                            generics: ['unknown'],\n                          },\n                        ],\n                      },\n                      {\n                        type: 'custom',\n                        name: 'DescriptionAction',\n                        href: '../DescriptionAction/',\n                        generics: ['unknown', 'string'],\n                      },\n                    ],\n                  },\n                },\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'SchemaWithPipeAsync',\n          href: '../SchemaWithPipeAsync/',\n          generics: [\n            {\n              type: 'tuple',\n              modifier: 'readonly',\n              items: [\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'BaseSchema',\n                      href: '../BaseSchema/',\n                      generics: [\n                        'unknown',\n                        'unknown',\n                        {\n                          type: 'custom',\n                          name: 'BaseIssue',\n                          href: '../BaseIssue/',\n                          generics: ['unknown'],\n                        },\n                      ],\n                    },\n                    {\n                      type: 'custom',\n                      name: 'BaseSchemaAsync',\n                      href: '../BaseSchemaAsync/',\n                      generics: [\n                        'unknown',\n                        'unknown',\n                        {\n                          type: 'custom',\n                          name: 'BaseIssue',\n                          href: '../BaseIssue/',\n                          generics: ['unknown'],\n                        },\n                      ],\n                    },\n                  ],\n                },\n                {\n                  type: 'array',\n                  spread: true,\n                  item: {\n                    type: 'union',\n                    options: [\n                      {\n                        type: 'custom',\n                        name: 'PipeItem',\n                        href: '../PipeItem/',\n                        generics: [\n                          'any',\n                          'unknown',\n                          {\n                            type: 'custom',\n                            name: 'BaseIssue',\n                            href: '../BaseIssue/',\n                            generics: ['unknown'],\n                          },\n                        ],\n                      },\n                      {\n                        type: 'custom',\n                        name: 'PipeItemAsync',\n                        href: '../PipeItemAsync/',\n                        generics: [\n                          'any',\n                          'unknown',\n                          {\n                            type: 'custom',\n                            name: 'BaseIssue',\n                            href: '../BaseIssue/',\n                            generics: ['unknown'],\n                          },\n                        ],\n                      },\n                      {\n                        type: 'custom',\n                        name: 'DescriptionAction',\n                        href: '../DescriptionAction/',\n                        generics: ['unknown', 'string'],\n                      },\n                    ],\n                  },\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  description: {\n    type: {\n      type: 'union',\n      options: ['string', 'undefined'],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(methods)/getExamples/index.mdx",
    "content": "---\ntitle: getExamples\ndescription: Returns the examples of the schema.\nsource: /methods/getExamples/getExamples.ts\ncontributors:\n  - EskiMojo14\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# getExamples\n\nReturns the examples of the schema.\n\n> If multiple examples are defined, it concatenates them using depth-first search. If no examples are defined, an empty array is returned.\n\n```ts\nconst examples = v.getExamples<TSchema>(schema);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n\n## Returns\n\n- `examples` <Property {...properties.examples} />\n\n## Examples\n\nThe following examples show how `getExamples` can be used.\n\n### String schema\n\n```ts\nconst StringSchema = v.pipe(v.string(), v.examples(['foo', 'bar', 'baz']));\n\nconst examples = v.getExamples(StringSchema);\n\n// ['foo', 'bar', 'baz']\n```\n\n### Nested schema\n\n```ts\nconst NestedSchema = v.pipe(\n  v.string(),\n  v.examples(['foo', 'bar', 'baz']),\n  v.pipe(v.string(), v.examples(['qux', 'quux']))\n);\n\nconst examples = v.getExamples(NestedSchema);\n\n// ['foo', 'bar', 'baz', 'qux', 'quux']\n```\n\n## Related\n\nThe following APIs can be combined with `getExamples`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['pipe']} />\n\n### Actions\n\n<ApiList items={['examples']} />\n"
  },
  {
    "path": "website/src/routes/api/(methods)/getExamples/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  examples: {\n    type: {\n      type: 'custom',\n      name: 'InferExamples',\n      href: '../InferExamples/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(methods)/getFallback/index.mdx",
    "content": "---\ntitle: getFallback\ndescription: Returns the fallback value of the schema.\nsource: /methods/getFallback/getFallback.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# getFallback\n\nReturns the fallback value of the schema.\n\n```ts\nconst value = v.getFallback<TSchema>(schema, dataset, config);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n- `dataset` <Property {...properties.dataset} />\n- `config` <Property {...properties.config} />\n\n## Returns\n\n- `value` <Property {...properties.value} />\n\n## Examples\n\nThe following examples show how `getFallback` can be used.\n\n### Fallback string schema\n\nGet the fallback value of a string schema.\n\n```ts\nconst FallbackStringSchema = v.fallback(v.string(), \"I'm the fallback!\");\nconst fallbackValue = v.getFallback(FallbackStringSchema); // \"I'm the fallback!\"\n```\n\n## Related\n\nThe following APIs can be combined with `getFallback`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'keyof',\n    'message',\n    'omit',\n    'partial',\n    'pick',\n    'pipe',\n    'required',\n    'unwrap',\n  ]}\n/>\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'partialAsync',\n    'pipeAsync',\n    'recordAsync',\n    'requiredAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(methods)/getFallback/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  dataset: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'OutputDataset',\n          href: '../OutputDataset/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'InferOutput',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TSchema',\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TSchema',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  config: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'Config',\n          generics: [\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TSchema',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  value: {\n    type: {\n      type: 'custom',\n      name: 'InferFallback',\n      href: '../InferFallback/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(methods)/getFallbacks/index.mdx",
    "content": "---\ntitle: getFallbacks\ndescription: Returns the fallback values of the schema.\nsource: /methods/getFallbacks/getFallbacks.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# getFallbacks\n\nReturns the fallback values of the schema.\n\n> The difference to <Link href='../getFallback/'>`getFallback`</Link> is that for object and tuple schemas this function recursively returns the fallback values of the subschemas instead of `undefined`.\n\n```ts\nconst values = v.getFallbacks<TSchema>(schema);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n\n## Returns\n\n- `values` <Property {...properties.values} />\n\n## Examples\n\nThe following examples show how `getFallbacks` can be used.\n\n### Object fallbacks\n\nGet the fallback values of an object schema.\n\n```ts\nconst ObjectSchema = v.object({\n  key: v.fallback(v.string(), \"I'm the fallback!\"),\n});\n\nconst fallbackValues = v.getFallbacks(ObjectSchema); // { key: \"I'm the fallback!\" }\n```\n\n### Tuple fallbacks\n\nGet the fallback values of a tuple schema.\n\n```ts\nconst TupleSchema = v.tuple([v.fallback(v.number(), 100)]);\nconst fallbackValues = v.getFallbacks(TupleSchema); // [100]\n```\n\n## Related\n\nThe following APIs can be combined with `getFallbacks`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'keyof',\n    'message',\n    'omit',\n    'partial',\n    'pick',\n    'pipe',\n    'required',\n    'unwrap',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(methods)/getFallbacks/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  values: {\n    type: {\n      type: 'custom',\n      name: 'InferFallbacks',\n      href: '../InferFallbacks/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(methods)/getMetadata/index.mdx",
    "content": "---\ntitle: getMetadata\ndescription: Returns the metadata of the schema.\nsource: /methods/getMetadata/getMetadata.ts\ncontributors:\n  - EskiMojo14\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# getMetadata\n\nReturns the metadata of the schema.\n\n> If multiple metadata are defined, it shallowly merges them using depth-first search. If no metadata is defined, an empty object is returned.\n\n```ts\nconst metadata = v.getMetadata<TSchema>(schema);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n\n## Returns\n\n- `metadata` <Property {...properties.metadata} />\n\n## Examples\n\nThe following examples show how `getMetadata` can be used.\n\n### Get metadata of schema\n\nGet the metadata of a username schema.\n\n```ts\nconst UsernameSchema = v.pipe(\n  v.string(),\n  v.regex(/^[a-z0-9_-]{4,16}$/iu),\n  v.title('Username'),\n  v.metadata({\n    length: { min: 4, max: 16 },\n    chars: ['letters', 'numbers', 'underscores', 'hyphens'],\n  })\n);\n\nconst metadata = v.getMetadata(UsernameSchema);\n```\n\n## Related\n\nThe following APIs can be combined with `getMetadata`.\n\n### Actions\n\n<ApiList items={['metadata']} />\n"
  },
  {
    "path": "website/src/routes/api/(methods)/getMetadata/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'SchemaWithPipe',\n          href: '../SchemaWithPipe/',\n          generics: [\n            {\n              type: 'tuple',\n              modifier: 'readonly',\n              items: [\n                {\n                  type: 'custom',\n                  name: 'BaseSchema',\n                  href: '../BaseSchema/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n                {\n                  type: 'array',\n                  spread: true,\n                  item: {\n                    type: 'union',\n                    options: [\n                      {\n                        type: 'custom',\n                        name: 'PipeItem',\n                        href: '../PipeItem/',\n                        generics: [\n                          'any',\n                          'unknown',\n                          {\n                            type: 'custom',\n                            name: 'BaseIssue',\n                            href: '../BaseIssue/',\n                            generics: ['unknown'],\n                          },\n                        ],\n                      },\n                      {\n                        type: 'custom',\n                        name: 'MetadataAction',\n                        href: '../MetadataAction/',\n                        generics: ['unknown', 'string'],\n                      },\n                    ],\n                  },\n                },\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'SchemaWithPipeAsync',\n          href: '../SchemaWithPipeAsync/',\n          generics: [\n            {\n              type: 'tuple',\n              modifier: 'readonly',\n              items: [\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'BaseSchema',\n                      href: '../BaseSchema/',\n                      generics: [\n                        'unknown',\n                        'unknown',\n                        {\n                          type: 'custom',\n                          name: 'BaseIssue',\n                          href: '../BaseIssue/',\n                          generics: ['unknown'],\n                        },\n                      ],\n                    },\n                    {\n                      type: 'custom',\n                      name: 'BaseSchemaAsync',\n                      href: '../BaseSchemaAsync/',\n                      generics: [\n                        'unknown',\n                        'unknown',\n                        {\n                          type: 'custom',\n                          name: 'BaseIssue',\n                          href: '../BaseIssue/',\n                          generics: ['unknown'],\n                        },\n                      ],\n                    },\n                  ],\n                },\n                {\n                  type: 'array',\n                  spread: true,\n                  item: {\n                    type: 'union',\n                    options: [\n                      {\n                        type: 'custom',\n                        name: 'PipeItem',\n                        href: '../PipeItem/',\n                        generics: [\n                          'any',\n                          'unknown',\n                          {\n                            type: 'custom',\n                            name: 'BaseIssue',\n                            href: '../BaseIssue/',\n                            generics: ['unknown'],\n                          },\n                        ],\n                      },\n                      {\n                        type: 'custom',\n                        name: 'PipeItemAsync',\n                        href: '../PipeItemAsync/',\n                        generics: [\n                          'any',\n                          'unknown',\n                          {\n                            type: 'custom',\n                            name: 'BaseIssue',\n                            href: '../BaseIssue/',\n                            generics: ['unknown'],\n                          },\n                        ],\n                      },\n                      {\n                        type: 'custom',\n                        name: 'MetadataAction',\n                        href: '../MetadataAction/',\n                        generics: ['unknown', 'string'],\n                      },\n                    ],\n                  },\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  metadata: {\n    type: {\n      type: 'custom',\n      name: 'InferMetadata',\n      href: '../InferMetadata/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(methods)/getTitle/index.mdx",
    "content": "---\ntitle: getTitle\ndescription: Returns the title of the schema.\nsource: /methods/getTitle/getTitle.ts\ncontributors:\n  - EskiMojo14\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# getTitle\n\nReturns the title of the schema.\n\n> If multiple titles are defined, the last one of the highest level is returned. If no title is defined, `undefined` is returned.\n\n```ts\nconst title = v.getTitle<TSchema>(schema);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n\n## Returns\n\n- `title` <Property {...properties.title} />\n\n## Examples\n\nThe following examples show how `getTitle` can be used.\n\n### Get title of schema\n\nGet the title of a username schema.\n\n```ts\nconst UsernameSchema = v.pipe(\n  v.string(),\n  v.regex(/^[a-z0-9_-]{4,16}$/iu),\n  v.title('Username'),\n  v.description(\n    'A username must be between 4 and 16 characters long and can only contain letters, numbers, underscores and hyphens.'\n  )\n);\n\nconst title = v.getTitle(UsernameSchema); // 'Username'\n```\n\n### Overriding inherited titles\n\nGet the title of a Gmail schema with an overridden title.\n\n```ts\nconst EmailSchema = v.pipe(v.string(), v.email(), v.title('Email'));\n\nconst GmailSchema = v.pipe(\n  EmailSchema,\n  v.endsWith('@gmail.com'),\n  v.title('Gmail')\n);\n\nconst title = v.getTitle(GmailSchema); // 'Gmail'\n```\n\n## Related\n\nThe following APIs can be combined with `getTitle`.\n\n### Actions\n\n<ApiList items={['title']} />\n"
  },
  {
    "path": "website/src/routes/api/(methods)/getTitle/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'SchemaWithPipe',\n          href: '../SchemaWithPipe/',\n          generics: [\n            {\n              type: 'tuple',\n              modifier: 'readonly',\n              items: [\n                {\n                  type: 'custom',\n                  name: 'BaseSchema',\n                  href: '../BaseSchema/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n                {\n                  type: 'array',\n                  spread: true,\n                  item: {\n                    type: 'union',\n                    options: [\n                      {\n                        type: 'custom',\n                        name: 'PipeItem',\n                        href: '../PipeItem/',\n                        generics: [\n                          'any',\n                          'unknown',\n                          {\n                            type: 'custom',\n                            name: 'BaseIssue',\n                            href: '../BaseIssue/',\n                            generics: ['unknown'],\n                          },\n                        ],\n                      },\n                      {\n                        type: 'custom',\n                        name: 'TitleAction',\n                        href: '../TitleAction/',\n                        generics: ['unknown', 'string'],\n                      },\n                    ],\n                  },\n                },\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'SchemaWithPipeAsync',\n          href: '../SchemaWithPipeAsync/',\n          generics: [\n            {\n              type: 'tuple',\n              modifier: 'readonly',\n              items: [\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'BaseSchema',\n                      href: '../BaseSchema/',\n                      generics: [\n                        'unknown',\n                        'unknown',\n                        {\n                          type: 'custom',\n                          name: 'BaseIssue',\n                          href: '../BaseIssue/',\n                          generics: ['unknown'],\n                        },\n                      ],\n                    },\n                    {\n                      type: 'custom',\n                      name: 'BaseSchemaAsync',\n                      href: '../BaseSchemaAsync/',\n                      generics: [\n                        'unknown',\n                        'unknown',\n                        {\n                          type: 'custom',\n                          name: 'BaseIssue',\n                          href: '../BaseIssue/',\n                          generics: ['unknown'],\n                        },\n                      ],\n                    },\n                  ],\n                },\n                {\n                  type: 'array',\n                  spread: true,\n                  item: {\n                    type: 'union',\n                    options: [\n                      {\n                        type: 'custom',\n                        name: 'PipeItem',\n                        href: '../PipeItem/',\n                        generics: [\n                          'any',\n                          'unknown',\n                          {\n                            type: 'custom',\n                            name: 'BaseIssue',\n                            href: '../BaseIssue/',\n                            generics: ['unknown'],\n                          },\n                        ],\n                      },\n                      {\n                        type: 'custom',\n                        name: 'PipeItemAsync',\n                        href: '../PipeItemAsync/',\n                        generics: [\n                          'any',\n                          'unknown',\n                          {\n                            type: 'custom',\n                            name: 'BaseIssue',\n                            href: '../BaseIssue/',\n                            generics: ['unknown'],\n                          },\n                        ],\n                      },\n                      {\n                        type: 'custom',\n                        name: 'TitleAction',\n                        href: '../TitleAction/',\n                        generics: ['unknown', 'string'],\n                      },\n                    ],\n                  },\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  title: {\n    type: {\n      type: 'union',\n      options: ['string', 'undefined'],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(methods)/is/index.mdx",
    "content": "---\ntitle: is\ndescription: Checks if the input matches the scheme.\nsource: /methods/is/is.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# is\n\nChecks if the input matches the scheme.\n\n> By using a type predicate, this function can be used as a type guard.\n\n```ts\nconst result = v.is<TSchema>(schema, input);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n- `input` <Property {...properties.input} />\n\n### Explanation\n\n`is` does not modify the `input`. Therefore, transformations have no effect and unknown keys of an object are not removed. That is why this approach is not as safe and powerful as <Link href='../parse/'>`parse`</Link> and <Link href='../safeParse/'>`safeParse`</Link>.\n\n## Returns\n\n- `result` <Property {...properties.result} />\n\n## Example\n\nThe following example show how `is` can be used.\n\n```ts\nconst EmailSchema = v.pipe(v.string(), v.email());\nconst data: unknown = 'jane@example.com';\n\nif (v.is(EmailSchema, data)) {\n  const email = data; // string\n}\n```\n\n## Related\n\nThe following APIs can be combined with `is`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'keyof',\n    'message',\n    'omit',\n    'partial',\n    'pick',\n    'pipe',\n    'required',\n    'unwrap',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(methods)/is/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  input: {\n    type: 'unknown',\n  },\n  result: {\n    type: 'boolean',\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(methods)/keyof/index.mdx",
    "content": "---\ntitle: keyof\ndescription: Creates a picklist schema of object keys.\nsource: /methods/keyof/keyof.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# keyof\n\nCreates a picklist schema of object keys.\n\n```ts\nconst Schema = v.keyof<TSchema, TMessage>(schema, message);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n- `message` <Property {...properties.message} />\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `keyof` can be used.\n\n### Object key schema\n\nSchema to validate the keys of an object.\n\n```ts\nconst ObjectSchema = v.object({ key1: v.string(), key2: v.number() });\nconst ObjectKeySchema = v.keyof(ObjectSchema); // 'key1' | 'key2'\n```\n\n## Related\n\nThe following APIs can be combined with `keyof`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n    'unwrap',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'flavor',\n    'guard',\n    'metadata',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'partialAsync',\n    'pipeAsync',\n    'recordAsync',\n    'requiredAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(methods)/keyof/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'LooseObjectSchema',\n          href: '../LooseObjectSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ObjectEntries',\n              href: '../ObjectEntries/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'ObjectIssue',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'LooseObjectSchemaAsync',\n          href: '../LooseObjectSchemaAsync/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ObjectEntriesAsync',\n              href: '../ObjectEntriesAsync/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'ObjectIssue',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'ObjectSchema',\n          href: '../ObjectSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ObjectEntries',\n              href: '../ObjectEntries/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'ObjectIssue',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'ObjectSchemaAsync',\n          href: '../ObjectSchemaAsync/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ObjectEntriesAsync',\n              href: '../ObjectEntriesAsync/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'ObjectIssue',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'ObjectWithRestSchema',\n          href: '../ObjectWithRestSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ObjectEntries',\n              href: '../ObjectEntries/',\n            },\n            {\n              type: 'custom',\n              name: 'BaseSchema',\n              href: '../BaseSchema/',\n              generics: [\n                'unknown',\n                'unknown',\n                {\n                  type: 'custom',\n                  name: 'BaseIssue',\n                  href: '../BaseIssue/',\n                  generics: ['unknown'],\n                },\n              ],\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'ObjectWithRestIssue',\n                      href: '../ObjectWithRestIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'ObjectWithRestSchemaAsync',\n          href: '../ObjectWithRestSchemaAsync/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ObjectEntriesAsync',\n              href: '../ObjectEntriesAsync/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'BaseSchema',\n                  href: '../BaseSchema/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n                {\n                  type: 'custom',\n                  name: 'BaseSchemaAsync',\n                  href: '../BaseSchemaAsync/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'ObjectWithRestIssue',\n                      href: '../ObjectWithRestIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'StrictObjectSchema',\n          href: '../StrictObjectSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ObjectEntries',\n              href: '../ObjectEntries/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'ObjectIssue',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'StrictObjectSchemaAsync',\n          href: '../StrictObjectSchemaAsync/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ObjectEntriesAsync',\n              href: '../ObjectEntriesAsync/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'ObjectIssue',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'PicklistIssue',\n              href: '../PicklistIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'PicklistSchema',\n      href: '../PicklistSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'ObjectKeys',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TSchema',\n            },\n            {\n              type: 'custom',\n              name: 'TMessage',\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(methods)/message/index.mdx",
    "content": "---\ntitle: message\ndescription: Changes the local message configuration of a schema.\nsource: /methods/message/message.ts\ncontributors:\n  - fabian-hiller\n  - sacrosanctic\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# message\n\nChanges the local message configuration of a schema.\n\n```ts\nconst Schema = v.message<TSchema>(schema, message_);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n- `message_` <Property {...properties['message_']} />\n\n### Explanation\n\nThis method overrides the local message configuration of the schema. In practice, it is typically used to specify a single error message for an entire pipeline.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `message` can be used.\n\n### Email schema\n\nEmail schema that uses the same error message for the entire pipeline.\n\n```ts\nconst EmailSchema = v.message(\n  v.pipe(v.string(), v.trim(), v.nonEmpty(), v.email(), v.maxLength(100)),\n  'The email is not in the required format.'\n);\n```\n\n## Related\n\nThe following APIs can be combined with `message`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'keyof',\n    'message',\n    'omit',\n    'parse',\n    'parser',\n    'partial',\n    'pick',\n    'pipe',\n    'required',\n    'safeParse',\n    'safeParser',\n    'unwrap',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'args',\n    'base64',\n    'bic',\n    'brand',\n    'bytes',\n    'check',\n    'checkItems',\n    'creditCard',\n    'cuid2',\n    'decimal',\n    'description',\n    'digits',\n    'domain',\n    'email',\n    'emoji',\n    'empty',\n    'endsWith',\n    'entries',\n    'everyItem',\n    'excludes',\n    'filterItems',\n    'findItem',\n    'finite',\n    'flavor',\n    'graphemes',\n    'gtValue',\n    'guard',\n    'hash',\n    'hexadecimal',\n    'hexColor',\n    'imei',\n    'includes',\n    'integer',\n    'ip',\n    'ipv4',\n    'ipv6',\n    'isbn',\n    'isrc',\n    'isoDate',\n    'isoDateTime',\n    'isoTime',\n    'isoTimeSecond',\n    'isoTimestamp',\n    'isoWeek',\n    'length',\n    'ltValue',\n    'mac',\n    'mac48',\n    'mac64',\n    'mapItems',\n    'maxBytes',\n    'maxEntries',\n    'maxGraphemes',\n    'maxLength',\n    'maxSize',\n    'maxValue',\n    'maxWords',\n    'metadata',\n    'mimeType',\n    'minBytes',\n    'minEntries',\n    'minGraphemes',\n    'minLength',\n    'minSize',\n    'minValue',\n    'minWords',\n    'multipleOf',\n    'nanoid',\n    'nonEmpty',\n    'notBytes',\n    'notEntries',\n    'notGraphemes',\n    'notLength',\n    'notSize',\n    'notValue',\n    'notValues',\n    'notWords',\n    'octal',\n    'parseJson',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'reduceItems',\n    'regex',\n    'returns',\n    'rfcEmail',\n    'safeInteger',\n    'size',\n    'slug',\n    'someItem',\n    'sortItem',\n    'startsWith',\n    'stringifyJson',\n    'title',\n    'toLowerCase',\n    'toMaxValue',\n    'toMinValue',\n    'toUpperCase',\n    'transform',\n    'trim',\n    'trimEnd',\n    'trimStart',\n    'ulid',\n    'url',\n    'uuid',\n    'value',\n    'values',\n    'words',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'customAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'partialAsync',\n    'pipeAsync',\n    'recordAsync',\n    'requiredAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'unionAsync',\n    'variantAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(methods)/message/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  message_: {\n    type: {\n      type: 'custom',\n      name: 'ErrorMessage',\n      href: '../ErrorMessage/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferIssue',\n          href: '../InferIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TSchema',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(methods)/omit/index.mdx",
    "content": "---\ntitle: omit\ndescription: >-\n  Creates a modified copy of an object schema that does not contain the selected\n  entries.\nsource: /methods/omit/omit.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# omit\n\nCreates a modified copy of an object schema that does not contain the selected entries.\n\n```ts\nconst Schema = v.omit<TSchema, TKeys>(schema, keys);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n- `TKeys` <Property {...properties.TKeys} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n- `keys` <Property {...properties.keys} />\n\n### Explanation\n\n`omit` creates a modified copy of the given object `schema` that does not contain the selected `keys`. It is similar to TypeScript's [`Omit`](https://www.typescriptlang.org/docs/handbook/utility-types.html#omittype-keys) utility type.\n\n> Because `omit` changes the data type of the input and output, it is not allowed to pass a schema that has been modified by the <Link href='../pipe/'>`pipe`</Link> method, as this may cause runtime errors. Please use the <Link href='../pipe/'>`pipe`</Link> method after you have modified the schema with `omit`.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `omit` can be used.\n\n### Omit specific keys\n\nSchema that does not contain the selected keys of an existing schema.\n\n```ts\nconst OmittedSchema = v.omit(\n  v.object({\n    key1: v.string(),\n    key2: v.number(),\n    key3: v.boolean(),\n  }),\n  ['key1', 'key3']\n); // { key2: number }\n```\n\n## Related\n\nThe following APIs can be combined with `omit`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'forward',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'keyof',\n    'message',\n    'parse',\n    'parser',\n    'partial',\n    'pick',\n    'required',\n    'safeParse',\n    'safeParser',\n    'unwrap',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'entries',\n    'flavor',\n    'guard',\n    'maxEntries',\n    'metadata',\n    'minEntries',\n    'notEntries',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'checkAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialAsync',\n    'partialCheckAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'requiredAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'undefinedableAsync',\n    'unionAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(methods)/omit/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'SchemaWithoutPipe',\n      href: '../SchemaWithoutPipe/',\n      generics: [\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'LooseObjectSchema',\n              href: '../LooseObjectSchema/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntries',\n                  href: '../ObjectEntries/',\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'ObjectIssue',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'LooseObjectSchemaAsync',\n              href: '../LooseObjectSchemaAsync/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntriesAsync',\n                  href: '../ObjectEntriesAsync/',\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'ObjectIssue',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'ObjectSchema',\n              href: '../ObjectSchema/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntries',\n                  href: '../ObjectEntries/',\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'ObjectIssue',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'ObjectSchemaAsync',\n              href: '../ObjectSchemaAsync/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntriesAsync',\n                  href: '../ObjectEntriesAsync/',\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'ObjectIssue',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'ObjectWithRestSchema',\n              href: '../ObjectWithRestSchema/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntries',\n                  href: '../ObjectEntries/',\n                },\n                {\n                  type: 'custom',\n                  name: 'BaseSchema',\n                  href: '../BaseSchema/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'ObjectWithRestIssue',\n                          href: '../ObjectWithRestIssue/',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'ObjectWithRestSchemaAsync',\n              href: '../ObjectWithRestSchemaAsync/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntriesAsync',\n                  href: '../ObjectEntriesAsync/',\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'BaseSchema',\n                      href: '../BaseSchema/',\n                      generics: [\n                        'unknown',\n                        'unknown',\n                        {\n                          type: 'custom',\n                          name: 'BaseIssue',\n                          href: '../BaseIssue/',\n                          generics: ['unknown'],\n                        },\n                      ],\n                    },\n                    {\n                      type: 'custom',\n                      name: 'BaseSchemaAsync',\n                      href: '../BaseSchemaAsync/',\n                      generics: [\n                        'unknown',\n                        'unknown',\n                        {\n                          type: 'custom',\n                          name: 'BaseIssue',\n                          href: '../BaseIssue/',\n                          generics: ['unknown'],\n                        },\n                      ],\n                    },\n                  ],\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'ObjectWithRestIssue',\n                          href: '../ObjectWithRestIssue/',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'StrictObjectSchema',\n              href: '../StrictObjectSchema/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntries',\n                  href: '../ObjectEntries/',\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'ObjectIssue',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'StrictObjectSchemaAsync',\n              href: '../StrictObjectSchemaAsync/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntriesAsync',\n                  href: '../ObjectEntriesAsync/',\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'ObjectIssue',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TKeys: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ObjectKeys',\n      href: '../ObjectKeys/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  keys: {\n    type: {\n      type: 'custom',\n      name: 'TKey',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'SchemaWithOmit',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n        {\n          type: 'custom',\n          name: 'TKeys',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(methods)/parse/index.mdx",
    "content": "---\ntitle: parse\ndescription: Parses an unknown input based on a schema.\nsource: /methods/parse/parse.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# parse\n\nParses an unknown input based on a schema.\n\n```ts\nconst output = v.parse<TSchema>(schema, input, config);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n- `input` <Property {...properties.input} />\n- `config` <Property {...properties.config} />\n\n### Explanation\n\n`parse` will throw a <Link href=\"../ValiError/\">`ValiError`</Link> if the `input` does not match the `schema`. Therefore you should use a try/catch block to catch errors. If the input matches the schema, it is valid and the `output` of the schema will be returned typed.\n\n## Returns\n\n- `output` <Property {...properties.output} />\n\n## Example\n\nThe following example show how `parse` can be used.\n\n```ts\ntry {\n  const EmailSchema = v.pipe(v.string(), v.email());\n  const email = v.parse(EmailSchema, 'jane@example.com');\n\n  // Handle errors if one occurs\n} catch (error) {\n  console.log(error);\n}\n```\n\n## Related\n\nThe following APIs can be combined with `parse`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'flatten',\n    'keyof',\n    'message',\n    'omit',\n    'partial',\n    'pick',\n    'pipe',\n    'required',\n    'summarize',\n    'unwrap',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['getDotPath', 'isValiError', 'ValiError']} />\n"
  },
  {
    "path": "website/src/routes/api/(methods)/parse/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  input: {\n    type: 'unknown',\n  },\n  config: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'Config',\n          href: '../Config/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TSchema',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  output: {\n    type: {\n      type: 'custom',\n      name: 'InferOutput',\n      href: '../InferOutput/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(methods)/parser/index.mdx",
    "content": "---\ntitle: parser\ndescription: Returns a function that parses an unknown input based on a schema.\nsource: /methods/parser/parser.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# parser\n\nReturns a function that parses an unknown input based on a schema.\n\n```ts\nconst parser = v.parser<TSchema, TConfig>(schema, config);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n- `TConfig` <Property {...properties.TConfig} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n- `config` <Property {...properties.config} />\n\n## Returns\n\n- `parser` <Property {...properties.parser} />\n\n## Example\n\nThe following example show how `parser` can be used.\n\n```ts\ntry {\n  const EmailSchema = v.pipe(v.string(), v.email());\n  const emailParser = v.parser(EmailSchema);\n  const email = emailParser('jane@example.com');\n\n  // Handle errors if one occurs\n} catch (error) {\n  console.log(error);\n}\n```\n\n## Related\n\nThe following APIs can be combined with `parser`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'flatten',\n    'keyof',\n    'message',\n    'omit',\n    'partial',\n    'pick',\n    'pipe',\n    'required',\n    'summarize',\n    'unwrap',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['getDotPath', 'isValiError', 'ValiError']} />\n"
  },
  {
    "path": "website/src/routes/api/(methods)/parser/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TConfig: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'Config',\n          href: '../Config/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TSchema',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  config: {\n    type: {\n      type: 'custom',\n      name: 'TConfig',\n    },\n  },\n  parser: {\n    type: {\n      type: 'custom',\n      name: 'Parser',\n      href: '../Parser/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n        {\n          type: 'custom',\n          name: 'TConfig',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(methods)/partial/index.mdx",
    "content": "---\ntitle: partial\ndescription: >-\n  Creates a modified copy of an object schema that marks all or only the\n  selected entries as optional.\nsource: /methods/partial/partial.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# partial\n\nCreates a modified copy of an object schema that marks all or only the selected entries as optional.\n\n```ts\nconst Schema = v.partial<TSchema, TKeys>(schema, keys);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n- `TKeys` <Property {...properties.TKeys} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n- `keys` <Property {...properties.keys} />\n\n### Explanation\n\n`partial` creates a modified copy of the given object `schema` where all entries or only the selected `keys` are optional. It is similar to TypeScript's [`Partial`](https://www.typescriptlang.org/docs/handbook/utility-types.html#partialtype) utility type.\n\n> Because `partial` changes the data type of the input and output, it is not allowed to pass a schema that has been modified by the <Link href='../pipe/'>`pipe`</Link> method, as this may cause runtime errors. Please use the <Link href='../pipe/'>`pipe`</Link> method after you have modified the schema with `partial`.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `partial` can be used.\n\n### Partial object schema\n\nSchema to validate an object with partial entries.\n\n```ts\nconst PartialSchema = v.partial(\n  v.object({\n    key1: v.string(),\n    key2: v.number(),\n  })\n); // { key1?: string; key2?: number }\n```\n\n### With only specific keys\n\nSchema to validate an object with only specific entries marked as optional.\n\n```ts\nconst PartialSchema = v.partial(\n  v.object({\n    key1: v.string(),\n    key2: v.number(),\n    key3: v.boolean(),\n  }),\n  ['key1', 'key3']\n); // { key1?: string; key2: number; key3?: boolean }\n```\n\n## Related\n\nThe following APIs can be combined with `partial`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'forward',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'keyof',\n    'message',\n    'omit',\n    'parse',\n    'parser',\n    'pick',\n    'required',\n    'safeParse',\n    'safeParser',\n    'unwrap',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'entries',\n    'flavor',\n    'guard',\n    'maxEntries',\n    'metadata',\n    'minEntries',\n    'notEntries',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(methods)/partial/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'SchemaWithoutPipe',\n      href: '../SchemaWithoutPipe/',\n      generics: [\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'LooseObjectSchema',\n              href: '../LooseObjectSchema/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntries',\n                  href: '../ObjectEntries/',\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'ObjectIssue',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'ObjectSchema',\n              href: '../ObjectSchema/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntries',\n                  href: '../ObjectEntries/',\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'ObjectIssue',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'ObjectWithRestSchema',\n              href: '../ObjectWithRestSchema/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntries',\n                  href: '../ObjectEntries/',\n                },\n                {\n                  type: 'custom',\n                  name: 'BaseSchema',\n                  href: '../BaseSchema/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'ObjectWithRestIssue',\n                          href: '../ObjectWithRestIssue/',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'StrictObjectSchema',\n              href: '../StrictObjectSchema/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntries',\n                  href: '../ObjectEntries/',\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'ObjectIssue',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TKeys: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ObjectKeys',\n          href: '../ObjectKeys/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TSchema',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  keys: {\n    type: {\n      type: 'custom',\n      name: 'TKey',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'SchemaWithPartial',\n      href: '../SchemaWithPartial/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n        {\n          type: 'custom',\n          name: 'TKeys',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(methods)/pick/index.mdx",
    "content": "---\ntitle: pick\ndescription: >-\n  Creates a modified copy of an object schema that contains only the selected\n  entries.\nsource: /methods/pick/pick.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# pick\n\nCreates a modified copy of an object schema that contains only the selected entries.\n\n```ts\nconst Schema = v.pick<TSchema, TKeys>(schema, keys);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n- `TKeys` <Property {...properties.TKeys} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n- `keys` <Property {...properties.keys} />\n\n### Explanation\n\n`pick` creates a modified copy of the given object `schema` that contains only the selected `keys`. It is similar to TypeScript's [`Pick`](https://www.typescriptlang.org/docs/handbook/utility-types.html#picktype-keys) utility type.\n\n> Because `pick` changes the data type of the input and output, it is not allowed to pass a schema that has been modified by the <Link href='../pipe/'>`pipe`</Link> method, as this may cause runtime errors. Please use the <Link href='../pipe/'>`pipe`</Link> method after you have modified the schema with `pick`.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `pick` can be used.\n\n### Pick specific keys\n\nSchema that contains only the selected keys of an existing schema.\n\n```ts\nconst PickedSchema = v.pick(\n  v.object({\n    key1: string(),\n    key2: number(),\n    key3: boolean(),\n  }),\n  ['key1', 'key3']\n); // { key1: string; key3: boolean }\n```\n\n## Related\n\nThe following APIs can be combined with `pick`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'forward',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'keyof',\n    'message',\n    'omit',\n    'parse',\n    'parser',\n    'partial',\n    'required',\n    'safeParse',\n    'safeParser',\n    'unwrap',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'entries',\n    'flavor',\n    'guard',\n    'maxEntries',\n    'metadata',\n    'minEntries',\n    'notEntries',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'arrayAsync',\n    'checkAsync',\n    'exactOptionalAsync',\n    'fallbackAsync',\n    'getDefaultsAsync',\n    'getFallbacksAsync',\n    'intersectAsync',\n    'lazyAsync',\n    'looseObjectAsync',\n    'looseTupleAsync',\n    'mapAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'objectAsync',\n    'objectWithRestAsync',\n    'optionalAsync',\n    'parseAsync',\n    'parserAsync',\n    'partialAsync',\n    'partialCheckAsync',\n    'rawCheckAsync',\n    'rawTransformAsync',\n    'recordAsync',\n    'requiredAsync',\n    'safeParseAsync',\n    'safeParserAsync',\n    'setAsync',\n    'strictObjectAsync',\n    'strictTupleAsync',\n    'transformAsync',\n    'tupleAsync',\n    'tupleWithRestAsync',\n    'undefinedableAsync',\n    'unionAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(methods)/pick/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'SchemaWithoutPipe',\n      href: '../SchemaWithoutPipe/',\n      generics: [\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'LooseObjectSchema',\n              href: '../LooseObjectSchema/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntries',\n                  href: '../ObjectEntries/',\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'ObjectIssue',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'LooseObjectSchemaAsync',\n              href: '../LooseObjectSchemaAsync/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntriesAsync',\n                  href: '../ObjectEntriesAsync/',\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'ObjectIssue',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'ObjectSchema',\n              href: '../ObjectSchema/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntries',\n                  href: '../ObjectEntries/',\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'ObjectIssue',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'ObjectSchemaAsync',\n              href: '../ObjectSchemaAsync/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntriesAsync',\n                  href: '../ObjectEntriesAsync/',\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'ObjectIssue',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'ObjectWithRestSchema',\n              href: '../ObjectWithRestSchema/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntries',\n                  href: '../ObjectEntries/',\n                },\n                {\n                  type: 'custom',\n                  name: 'BaseSchema',\n                  href: '../BaseSchema/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'ObjectWithRestIssue',\n                          href: '../ObjectWithRestIssue/',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'ObjectWithRestSchemaAsync',\n              href: '../ObjectWithRestSchemaAsync/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntriesAsync',\n                  href: '../ObjectEntriesAsync/',\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'BaseSchema',\n                      href: '../BaseSchema/',\n                      generics: [\n                        'unknown',\n                        'unknown',\n                        {\n                          type: 'custom',\n                          name: 'BaseIssue',\n                          href: '../BaseIssue/',\n                          generics: ['unknown'],\n                        },\n                      ],\n                    },\n                    {\n                      type: 'custom',\n                      name: 'BaseSchemaAsync',\n                      href: '../BaseSchemaAsync/',\n                      generics: [\n                        'unknown',\n                        'unknown',\n                        {\n                          type: 'custom',\n                          name: 'BaseIssue',\n                          href: '../BaseIssue/',\n                          generics: ['unknown'],\n                        },\n                      ],\n                    },\n                  ],\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'ObjectWithRestIssue',\n                          href: '../ObjectWithRestIssue/',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'StrictObjectSchema',\n              href: '../StrictObjectSchema/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntries',\n                  href: '../ObjectEntries/',\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'ObjectIssue',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'StrictObjectSchemaAsync',\n              href: '../StrictObjectSchemaAsync/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntriesAsync',\n                  href: '../ObjectEntriesAsync/',\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'ObjectIssue',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TKeys: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ObjectKeys',\n      href: '../ObjectKeys/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  keys: {\n    type: {\n      type: 'custom',\n      name: 'TKey',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'SchemaWithPick',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n        {\n          type: 'custom',\n          name: 'TKeys',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(methods)/pipe/index.mdx",
    "content": "---\ntitle: pipe\ndescription: Adds a pipeline to a schema, that can validate and transform its input.\nsource: /methods/pipe/pipe.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n  - muningis\n  - jasperteo\n  - morinokami\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# pipe\n\nAdds a pipeline to a schema, that can validate and transform its input.\n\n```ts\nconst Schema = v.pipe<TSchema, TItems>(schema, ...items);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n- `TItems` <Property {...properties.TItems} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n- `items` <Property {...properties.items} />\n\n### Explanation\n\n`pipe` creates a modified copy of the given `schema`, containing a pipeline for detailed validations and transformations. It passes the input data synchronously through the `items` in the order they are provided and each item can examine and modify it.\n\n> Since `pipe` returns a schema that can be used as the first argument of another pipeline, it is possible to nest multiple `pipe` calls to extend the validation and transformation further.\n\nThe `pipe` aborts early and marks the output as untyped if issues were collected before attempting to execute a schema or transformation action as the next item in the pipeline, to prevent unexpected behavior.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `pipe` can be used. Please see the <Link href=\"/guides/pipelines/\">pipeline guide</Link> for more examples and explanations.\n\n### Email schema\n\nSchema to validate an email.\n\n```ts\nconst EmailSchema = v.pipe(\n  v.string(),\n  v.nonEmpty('Please enter your email.'),\n  v.email('The email is badly formatted.'),\n  v.maxLength(30, 'Your email is too long.')\n);\n```\n\n### String to number\n\nSchema to convert a string to a number.\n\n```ts\nconst NumberSchema = v.pipe(v.string(), v.transform(Number), v.number());\n```\n\n## Related\n\nThe following APIs can be combined with `pipe`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'forward',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'keyof',\n    'message',\n    'omit',\n    'parse',\n    'parser',\n    'partial',\n    'pick',\n    'required',\n    'safeParse',\n    'safeParser',\n    'unwrap',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'args',\n    'base64',\n    'bic',\n    'brand',\n    'bytes',\n    'check',\n    'checkItems',\n    'creditCard',\n    'cuid2',\n    'decimal',\n    'description',\n    'digits',\n    'domain',\n    'email',\n    'emoji',\n    'empty',\n    'endsWith',\n    'entries',\n    'everyItem',\n    'excludes',\n    'filterItems',\n    'findItem',\n    'finite',\n    'flavor',\n    'graphemes',\n    'gtValue',\n    'hash',\n    'hexadecimal',\n    'hexColor',\n    'imei',\n    'includes',\n    'integer',\n    'ip',\n    'ipv4',\n    'ipv6',\n    'isbn',\n    'isrc',\n    'isoDate',\n    'isoDateTime',\n    'isoTime',\n    'isoTimeSecond',\n    'isoTimestamp',\n    'isoWeek',\n    'length',\n    'ltValue',\n    'mac',\n    'mac48',\n    'mac64',\n    'mapItems',\n    'maxBytes',\n    'maxEntries',\n    'maxGraphemes',\n    'maxLength',\n    'maxSize',\n    'maxValue',\n    'maxWords',\n    'metadata',\n    'mimeType',\n    'minBytes',\n    'minEntries',\n    'minGraphemes',\n    'minLength',\n    'minSize',\n    'minValue',\n    'minWords',\n    'multipleOf',\n    'nanoid',\n    'nonEmpty',\n    'notBytes',\n    'notEntries',\n    'notGraphemes',\n    'notLength',\n    'notSize',\n    'notValue',\n    'notValues',\n    'notWords',\n    'octal',\n    'parseJson',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'reduceItems',\n    'regex',\n    'returns',\n    'rfcEmail',\n    'safeInteger',\n    'size',\n    'slug',\n    'someItem',\n    'sortItem',\n    'startsWith',\n    'stringifyJson',\n    'title',\n    'toBigint',\n    'toBoolean',\n    'toDate',\n    'toLowerCase',\n    'toMaxValue',\n    'toMinValue',\n    'toNumber',\n    'toString',\n    'toUpperCase',\n    'transform',\n    'trim',\n    'trimEnd',\n    'trimStart',\n    'ulid',\n    'url',\n    'uuid',\n    'value',\n    'values',\n    'words',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(methods)/pipe/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TItems: {\n    modifier: 'extends',\n    type: {\n      type: 'array',\n      modifier: 'readonly',\n      item: {\n        type: 'custom',\n        name: 'PipeItem',\n        href: '../PipeItem/',\n        generics: [\n          'any',\n          'unknown',\n          {\n            type: 'custom',\n            name: 'BaseIssue',\n            href: '../BaseIssue/',\n            generics: ['unknown'],\n          },\n        ],\n      },\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  items: {\n    type: {\n      type: 'custom',\n      name: 'TItems',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'SchemaWithPipe',\n      href: '../SchemaWithPipe/',\n      generics: [\n        {\n          type: 'tuple',\n          modifier: 'readonly',\n          items: [\n            {\n              type: 'custom',\n              name: 'TSchema',\n            },\n            {\n              type: 'custom',\n              spread: true,\n              name: 'TItems',\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(methods)/required/index.mdx",
    "content": "---\ntitle: required\ndescription: >-\n  Creates a modified copy of an object schema that marks all or only the\n  selected entries as required.\nsource: /methods/required/required.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# required\n\nCreates a modified copy of an object schema that marks all or only the selected entries as required.\n\n```ts\nconst AllKeysSchema = v.required<TSchema, TMessage>(schema, message);\nconst SelectedKeysSchema = v.required<TSchema, TKeys, TMessage>(\n  schema,\n  keys,\n  message\n);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n- `TKeys` <Property {...properties.TKeys} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n- `keys` <Property {...properties.keys} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\n`required` creates a modified copy of the given object `schema` where all or only the selected `keys` are required. It is similar to TypeScript's [`Required`](https://www.typescriptlang.org/docs/handbook/utility-types.html#requiredtype) utility type.\n\n> Because `required` changes the data type of the input and output, it is not allowed to pass a schema that has been modified by the <Link href='../pipe/'>`pipe`</Link> method, as this may cause runtime errors. Please use the <Link href='../pipe/'>`pipe`</Link> method after you have modified the schema with `required`.\n\n## Returns\n\n- `AllKeysSchema` <Property {...properties.AllKeysSchema} />\n- `SelectedKeysSchema` <Property {...properties.SelectedKeysSchema} />\n\n## Examples\n\nThe following examples show how `required` can be used.\n\n### Required object schema\n\nSchema to validate an object with required entries.\n\n```ts\nconst RequiredSchema = v.required(\n  v.object({\n    key1: v.optional(v.string()),\n    key2: v.optional(v.number()),\n  })\n); // { key1: string; key2: number }\n```\n\n### With only specific keys\n\nSchema to validate an object with only specific entries marked as required.\n\n```ts\nconst RequiredSchema = v.required(\n  v.object({\n    key1: v.optional(v.string()),\n    key2: v.optional(v.number()),\n    key3: v.optional(v.boolean()),\n  }),\n  ['key1', 'key3']\n); // { key1: string; key2?: number; key3: boolean }\n```\n\n## Related\n\nThe following APIs can be combined with `required`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'forward',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'keyof',\n    'message',\n    'omit',\n    'parse',\n    'parser',\n    'partial',\n    'pick',\n    'safeParse',\n    'safeParser',\n    'unwrap',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'brand',\n    'check',\n    'description',\n    'entries',\n    'flavor',\n    'guard',\n    'maxEntries',\n    'metadata',\n    'minEntries',\n    'notEntries',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(methods)/required/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'SchemaWithoutPipe',\n      href: '../SchemaWithoutPipe/',\n      generics: [\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'LooseObjectSchema',\n              href: '../LooseObjectSchema/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntries',\n                  href: '../ObjectEntries/',\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      href: '../ErrorMessage/',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'LooseObjectIssue',\n                          href: '../LooseObjectIssue/',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'ObjectSchema',\n              href: '../ObjectSchema/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntries',\n                  href: '../ObjectEntries/',\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      href: '../ErrorMessage/',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'ObjectIssue',\n                          href: '../ObjectIssue/',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'ObjectWithRestSchema',\n              href: '../ObjectWithRestSchema/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntries',\n                  href: '../ObjectEntries/',\n                },\n                {\n                  type: 'custom',\n                  name: 'BaseSchema',\n                  href: '../BaseSchema/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      href: '../ErrorMessage/',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'ObjectWithRestIssue',\n                          href: '../ObjectWithRestIssue/',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'StrictObjectSchema',\n              href: '../StrictObjectSchema/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'ObjectEntries',\n                  href: '../ObjectEntries/',\n                },\n                {\n                  type: 'union',\n                  options: [\n                    {\n                      type: 'custom',\n                      name: 'ErrorMessage',\n                      href: '../ErrorMessage/',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'StrictObjectIssue',\n                          href: '../StrictObjectIssue/',\n                        },\n                      ],\n                    },\n                    'undefined',\n                  ],\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TKeys: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ObjectKeys',\n      href: '../ObjectKeys/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NonOptionalIssue',\n              href: '../NonOptionalIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  keys: {\n    type: {\n      type: 'custom',\n      name: 'TKey',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  AllKeysSchema: {\n    type: {\n      type: 'custom',\n      name: 'SchemaWithRequired',\n      href: '../SchemaWithRequired/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n        'undefined',\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n  SelectedKeysSchema: {\n    type: {\n      type: 'custom',\n      name: 'SchemaWithRequired',\n      href: '../SchemaWithRequired/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n        {\n          type: 'custom',\n          name: 'Tkeys',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(methods)/safeParse/index.mdx",
    "content": "---\ntitle: safeParse\ndescription: Parses an unknown input based on a schema.\nsource: /methods/safeParse/safeParse.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# safeParse\n\nParses an unknown input based on a schema.\n\n```ts\nconst result = v.safeParse<TSchema>(schema, input, config);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n- `input` <Property {...properties.input} />\n- `config` <Property {...properties.config} />\n\n## Returns\n\n- `result` <Property {...properties.result} />\n\n## Example\n\nThe following example show how `safeParse` can be used.\n\n```ts\nconst EmailSchema = v.pipe(v.string(), v.email());\nconst result = v.safeParse(EmailSchema, 'jane@example.com');\n\nif (result.success) {\n  const email = result.output;\n} else {\n  console.log(result.issues);\n}\n```\n\n## Related\n\nThe following APIs can be combined with `safeParse`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'flatten',\n    'keyof',\n    'message',\n    'omit',\n    'partial',\n    'pick',\n    'pipe',\n    'required',\n    'summarize',\n    'unwrap',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['getDotPath']} />\n"
  },
  {
    "path": "website/src/routes/api/(methods)/safeParse/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  input: {\n    type: 'unknown',\n  },\n  config: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'Config',\n          href: '../Config/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TSchema',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  result: {\n    type: {\n      type: 'custom',\n      name: 'SafeParseResult',\n      href: '../SafeParseResult/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(methods)/safeParser/index.mdx",
    "content": "---\ntitle: safeParser\ndescription: Returns a function that parses an unknown input based on a schema.\nsource: /methods/safeParser/safeParser.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# safeParser\n\nReturns a function that parses an unknown input based on a schema.\n\n```ts\nconst safeParser = v.safeParser<TSchema, TConfig>(schema, config);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n- `TConfig` <Property {...properties.TConfig} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n- `config` <Property {...properties.config} />\n\n## Returns\n\n- `safeParser` <Property {...properties.safeParser} />\n\n## Example\n\nThe following example show how `safeParser` can be used.\n\n```ts\nconst EmailSchema = v.pipe(v.string(), v.email());\nconst safeEmailParser = v.safeParser(EmailSchema);\nconst result = safeEmailParser('jane@example.com');\n\nif (result.success) {\n  const email = result.output;\n} else {\n  console.log(result.issues);\n}\n```\n\n## Related\n\nThe following APIs can be combined with `safeParser`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'flatten',\n    'keyof',\n    'message',\n    'omit',\n    'partial',\n    'pick',\n    'pipe',\n    'required',\n    'summarize',\n    'unwrap',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['getDotPath']} />\n"
  },
  {
    "path": "website/src/routes/api/(methods)/safeParser/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TConfig: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'Config',\n          href: '../Config/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TSchema',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  config: {\n    type: {\n      type: 'custom',\n      name: 'TConfig',\n    },\n  },\n  safeParser: {\n    type: {\n      type: 'custom',\n      name: 'SafeParser',\n      href: '../SafeParser/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n        {\n          type: 'custom',\n          name: 'TConfig',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(methods)/summarize/index.mdx",
    "content": "---\ntitle: summarize\ndescription: Summarize the error messages of issues in a pretty-printable multi-line string.\nsource: /methods/summarize/summarize.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# summarize\n\nSummarize the error messages of issues in a pretty-printable multi-line string.\n\n```ts\nconst errors = v.summarize(issues);\n```\n\n## Parameters\n\n- `issues` <Property {...properties.issues} />\n\n### Explanation\n\nIf an issue in `issues` contains a path that can be converted to a dot path, the dot path will be displayed in the `errors` output just below the issue's error message.\n\n## Returns\n\n- `errors` <Property {...properties.errors} />\n\n## Examples\n\nThe following example show how `summarize` can be used.\n\n```ts\nconst Schema = v.object({\n  nested: v.object({\n    foo: v.string('Value of \"nested.foo\" is invalid.'),\n  }),\n});\n\nconst result = v.safeParse(Schema, { nested: { foo: null } });\n\nif (result.issues) {\n  console.log(v.summarize(result.issues));\n}\n```\n\n## Related\n\nThe following APIs can be combined with `summarize`.\n\n### Methods\n\n<ApiList items={['parse', 'parser', 'safeParse']} />\n"
  },
  {
    "path": "website/src/routes/api/(methods)/summarize/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  issues: {\n    type: {\n      type: 'tuple',\n      items: [\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n        {\n          type: 'array',\n          spread: true,\n          item: {\n            type: 'custom',\n            name: 'BaseIssue',\n            href: '../BaseIssue/',\n            generics: ['unknown'],\n          },\n        },\n      ],\n    },\n  },\n  errors: {\n    type: 'string',\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(methods)/unwrap/index.mdx",
    "content": "---\ntitle: unwrap\ndescription: Unwraps the wrapped schema.\nsource: /methods/unwrap/unwrap.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# unwrap\n\nUnwraps the wrapped schema.\n\n```ts\nconst Schema = v.unwrap<TSchema>(schema);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n\n## Parameters\n\n- `schema` <Property {...properties.schema} />\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `unwrap` can be used.\n\n### Unwrap string schema\n\nUnwraps the wrapped string schema.\n\n```ts\nconst OptionalStringSchema = v.optional(v.string());\nconst StringSchema = v.unwrap(OptionalStringSchema);\n```\n\n## Related\n\nThe following APIs can be combined with `unwrap`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'exactOptional',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'optional',\n    'undefinedable',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['isOfKind', 'isOfType']} />\n\n### Async\n\n<ApiList\n  items={[\n    'exactOptionalAsync',\n    'nonNullableAsync',\n    'nonNullishAsync',\n    'nonOptionalAsync',\n    'nullableAsync',\n    'nullishAsync',\n    'optionalAsync',\n    'undefinedableAsync',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(methods)/unwrap/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ExactOptionalSchema',\n          href: '../ExactOptionalSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'BaseSchema',\n              href: '../BaseSchema/',\n              generics: [\n                'unknown',\n                'unknown',\n                {\n                  type: 'custom',\n                  name: 'BaseIssue',\n                  href: '../BaseIssue/',\n                  generics: ['unknown'],\n                },\n              ],\n            },\n            'unknown',\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'ExactOptionalSchemaAsync',\n          href: '../ExactOptionalSchemaAsync/',\n          generics: [\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'BaseSchema',\n                  href: '../BaseSchema/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n                {\n                  type: 'custom',\n                  name: 'BaseSchemaAsync',\n                  href: '../BaseSchemaAsync/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n              ],\n            },\n            'unknown',\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'NonNullableSchema',\n          href: '../NonNullableSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'BaseSchema',\n              href: '../BaseSchema/',\n              generics: [\n                'unknown',\n                'unknown',\n                {\n                  type: 'custom',\n                  name: 'BaseIssue',\n                  href: '../BaseIssue/',\n                  generics: ['unknown'],\n                },\n              ],\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'NonNullableIssue',\n                      href: '../NonNullableIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'NonNullableSchemaAsync',\n          href: '../NonNullableSchemaAsync/',\n          generics: [\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'BaseSchema',\n                  href: '../BaseSchema/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n                {\n                  type: 'custom',\n                  name: 'BaseSchemaAsync',\n                  href: '../BaseSchemaAsync/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'NonNullableIssue',\n                      href: '../NonNullableIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'NonNullishSchema',\n          href: '../NonNullishSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'BaseSchema',\n              href: '../BaseSchema/',\n              generics: [\n                'unknown',\n                'unknown',\n                {\n                  type: 'custom',\n                  name: 'BaseIssue',\n                  href: '../BaseIssue/',\n                  generics: ['unknown'],\n                },\n              ],\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'NonNullishIssue',\n                      href: '../NonNullishIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'NonNullishSchemaAsync',\n          href: '../NonNullishSchemaAsync/',\n          generics: [\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'BaseSchema',\n                  href: '../BaseSchema/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n                {\n                  type: 'custom',\n                  name: 'BaseSchemaAsync',\n                  href: '../BaseSchemaAsync/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'NonNullishIssue',\n                      href: '../NonNullishIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'NonOptionalSchema',\n          href: '../NonOptionalSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'BaseSchema',\n              href: '../BaseSchema/',\n              generics: [\n                'unknown',\n                'unknown',\n                {\n                  type: 'custom',\n                  name: 'BaseIssue',\n                  href: '../BaseIssue/',\n                  generics: ['unknown'],\n                },\n              ],\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'NonOptionalIssue',\n                      href: '../NonOptionalIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'NonOptionalSchemaAsync',\n          href: '../NonOptionalSchemaAsync/',\n          generics: [\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'BaseSchema',\n                  href: '../BaseSchema/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n                {\n                  type: 'custom',\n                  name: 'BaseSchemaAsync',\n                  href: '../BaseSchemaAsync/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'NonOptionalIssue',\n                      href: '../NonOptionalIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n\n        {\n          type: 'custom',\n          name: 'NullableSchema',\n          href: '../NullableSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'BaseSchema',\n              href: '../BaseSchema/',\n              generics: [\n                'unknown',\n                'unknown',\n                {\n                  type: 'custom',\n                  name: 'BaseIssue',\n                  href: '../BaseIssue/',\n                  generics: ['unknown'],\n                },\n              ],\n            },\n            'unknown',\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'NullableSchemaAsync',\n          href: '../NullableSchemaAsync/',\n          generics: [\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'BaseSchema',\n                  href: '../BaseSchema/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n                {\n                  type: 'custom',\n                  name: 'BaseSchemaAsync',\n                  href: '../BaseSchemaAsync/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n              ],\n            },\n            'unknown',\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'NullishSchema',\n          href: '../NullishSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'BaseSchema',\n              href: '../BaseSchema/',\n              generics: [\n                'unknown',\n                'unknown',\n                {\n                  type: 'custom',\n                  name: 'BaseIssue',\n                  href: '../BaseIssue/',\n                  generics: ['unknown'],\n                },\n              ],\n            },\n            'unknown',\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'NullishSchemaAsync',\n          href: '../NullishSchemaAsync/',\n          generics: [\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'BaseSchema',\n                  href: '../BaseSchema/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n                {\n                  type: 'custom',\n                  name: 'BaseSchemaAsync',\n                  href: '../BaseSchemaAsync/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n              ],\n            },\n            'unknown',\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'OptionalSchema',\n          href: '../OptionalSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'BaseSchema',\n              href: '../BaseSchema/',\n              generics: [\n                'unknown',\n                'unknown',\n                {\n                  type: 'custom',\n                  name: 'BaseIssue',\n                  href: '../BaseIssue/',\n                  generics: ['unknown'],\n                },\n              ],\n            },\n            'unknown',\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'OptionalSchemaAsync',\n          href: '../OptionalSchemaAsync/',\n          generics: [\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'BaseSchema',\n                  href: '../BaseSchema/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n                {\n                  type: 'custom',\n                  name: 'BaseSchemaAsync',\n                  href: '../BaseSchemaAsync/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n              ],\n            },\n            'unknown',\n          ],\n        },\n      ],\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n      indexes: [\n        {\n          type: 'string',\n          value: 'wrapped',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/any/index.mdx",
    "content": "---\ntitle: any\ndescription: Creates an any schema.\nsource: /schemas/any/any.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n  - jasperteo\n  - morinokami\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# any\n\nCreates an any schema.\n\n> This schema function exists only for completeness and is not recommended in practice. Instead, <Link href=\"../unknown/\">`unknown`</Link> should be used to accept unknown data.\n\n```ts\nconst Schema = v.any();\n```\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Related\n\nThe following APIs can be combined with `any`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'args',\n    'base64',\n    'bic',\n    'brand',\n    'bytes',\n    'check',\n    'checkItems',\n    'creditCard',\n    'cuid2',\n    'decimal',\n    'description',\n    'digits',\n    'domain',\n    'email',\n    'emoji',\n    'empty',\n    'endsWith',\n    'entries',\n    'everyItem',\n    'excludes',\n    'filterItems',\n    'findItem',\n    'finite',\n    'flavor',\n    'graphemes',\n    'gtValue',\n    'hash',\n    'hexadecimal',\n    'hexColor',\n    'imei',\n    'includes',\n    'integer',\n    'ip',\n    'ipv4',\n    'ipv6',\n    'isbn',\n    'isrc',\n    'isoDate',\n    'isoDateTime',\n    'isoTime',\n    'isoTimeSecond',\n    'isoTimestamp',\n    'isoWeek',\n    'length',\n    'ltValue',\n    'mac',\n    'mac48',\n    'mac64',\n    'mapItems',\n    'maxBytes',\n    'maxEntries',\n    'maxGraphemes',\n    'maxLength',\n    'maxSize',\n    'maxValue',\n    'maxWords',\n    'metadata',\n    'mimeType',\n    'minBytes',\n    'minEntries',\n    'minGraphemes',\n    'minLength',\n    'minSize',\n    'minValue',\n    'minWords',\n    'multipleOf',\n    'nanoid',\n    'nonEmpty',\n    'notBytes',\n    'notEntries',\n    'notGraphemes',\n    'notLength',\n    'notSize',\n    'notValue',\n    'notValues',\n    'notWords',\n    'octal',\n    'parseJson',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'reduceItems',\n    'regex',\n    'returns',\n    'rfcEmail',\n    'safeInteger',\n    'size',\n    'slug',\n    'someItem',\n    'sortItem',\n    'startsWith',\n    'stringifyJson',\n    'title',\n    'toBigint',\n    'toBoolean',\n    'toDate',\n    'toLowerCase',\n    'toMaxValue',\n    'toMinValue',\n    'toNumber',\n    'toString',\n    'toUpperCase',\n    'transform',\n    'trim',\n    'trimEnd',\n    'trimStart',\n    'ulid',\n    'url',\n    'uuid',\n    'value',\n    'values',\n    'words',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/any/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'AnySchema',\n      href: '../AnySchema/',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/array/index.mdx",
    "content": "---\ntitle: array\ndescription: Creates an array schema.\nsource: /schemas/array/array.ts\ncontributors:\n  - fabian-hiller\n  - kazizi55\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# array\n\nCreates an array schema.\n\n```ts\nconst Schema = v.array<TItem, TMessage>(item, message);\n```\n\n## Generics\n\n- `TItem` <Property {...properties.TItem} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `item` <Property {...properties.item} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `array` you can validate the data type of the input. If the input is not an array, you can use `message` to customize the error message.\n\n> If your array has a fixed length, consider using <Link href=\"../tuple/\">`tuple`</Link> for a more precise typing.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `array` can be used.\n\n### String array schema\n\nSchema to validate an array of strings.\n\n```ts\nconst StringArraySchema = v.array(v.string(), 'An array is required.');\n```\n\n### Object array schema\n\nSchema to validate an array of objects.\n\n```ts\nconst ObjectArraySchema = v.array(v.object({ key: v.string() }));\n```\n\n### Validate length\n\nSchema that validates the length of an array.\n\n```ts\nconst ArrayLengthSchema = v.pipe(\n  v.array(v.number()),\n  v.minLength(1),\n  v.maxLength(3)\n);\n```\n\n### Validate content\n\nSchema that validates the content of an array.\n\n```ts\nconst ArrayContentSchema = v.pipe(\n  v.array(v.string()),\n  v.includes('foo'),\n  v.excludes('bar')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `array`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'checkItems',\n    'brand',\n    'description',\n    'empty',\n    'everyItem',\n    'excludes',\n    'filterItems',\n    'findItem',\n    'flavor',\n    'guard',\n    'includes',\n    'length',\n    'mapItems',\n    'maxLength',\n    'metadata',\n    'minLength',\n    'nonEmpty',\n    'notLength',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'reduceItems',\n    'someItem',\n    'sortItems',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/array/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TItem: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ArrayIssue',\n              href: '../ArrayIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  item: {\n    type: {\n      type: 'custom',\n      name: 'TItem',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'ArraySchema',\n      href: '../ArraySchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TItem',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/bigint/index.mdx",
    "content": "---\ntitle: bigint\ndescription: Creates a bigint schema.\nsource: /schemas/bigint/bigint.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# bigint\n\nCreates a bigint schema.\n\n```ts\nconst Schema = v.bigint<TMessage>(message);\n```\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `bigint` you can validate the data type of the input. If the input is not a bigint, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `bigint` can be used.\n\n### Force minimum\n\nSchema that forces a minimum bigint value.\n\n```ts\nconst MinBigintSchema = v.pipe(v.bigint(), v.toMinValue(10n));\n```\n\n### Validate maximum\n\nSchema that validates a maximum bigint value.\n\n```ts\nconst MaxBigintSchema = v.pipe(v.bigint(), v.maxValue(999n));\n```\n\n## Related\n\nThe following APIs can be combined with `bigint`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'flavor',\n    'gtValue',\n    'guard',\n    'ltValue',\n    'maxValue',\n    'metadata',\n    'minValue',\n    'multipleOf',\n    'notValue',\n    'notValues',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'toBoolean',\n    'toDate',\n    'toMaxValue',\n    'toMinValue',\n    'toNumber',\n    'toString',\n    'transform',\n    'value',\n    'values',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/bigint/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'BigintIssue',\n              href: '../BigintIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'BigintSchema',\n      href: '../BigintSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/blob/index.mdx",
    "content": "---\ntitle: blob\ndescription: Creates a blob schema.\nsource: /schemas/blob/blob.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# blob\n\nCreates a blob schema.\n\n> The `Blob` class is not available by default in Node.js v16 and below.\n\n```ts\nconst Schema = v.blob<TMessage>(message);\n```\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `blob` you can validate the data type of the input. If the input is not a blob, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `blob` can be used.\n\n### Image schema\n\nSchema to validate an image.\n\n```ts\nconst ImageSchema = v.pipe(\n  v.blob('Please select an image file.'),\n  v.mimeType(['image/jpeg', 'image/png'], 'Please select a JPEG or PNG file.'),\n  v.maxSize(1024 * 1024 * 10, 'Please select a file smaller than 10 MB.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `blob`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'flavor',\n    'guard',\n    'maxSize',\n    'metadata',\n    'mimeType',\n    'minSize',\n    'notSize',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'size',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/blob/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'BlobIssue',\n              href: '../BlobIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'BlobSchema',\n      href: '../BlobSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/boolean/index.mdx",
    "content": "---\ntitle: boolean\ndescription: Creates a boolean schema.\nsource: /schemas/boolean/boolean.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n  - wout-junius\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# boolean\n\nCreates a boolean schema.\n\n```ts\nconst Schema = v.boolean<TMessage>(message);\n```\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `boolean` you can validate the data type of the input. If the input is not a boolean, you can use `message` to customize the error message.\n\n> Instead of using a <Link href=\"../pipe/\">`pipe`</Link> to force `true` or `false` as a value, in most cases it makes more sense to use <Link href=\"../literal/\">`literal`</Link> for better typing.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `boolean` can be used.\n\n### Custom message\n\nBoolean schema with a custom error message.\n\n```ts\nconst BooleanSchema = v.boolean('A boolean is required');\n```\n\n## Related\n\nThe following APIs can be combined with `boolean`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'flavor',\n    'gtValue',\n    'guard',\n    'ltValue',\n    'maxValue',\n    'maxWords',\n    'metadata',\n    'minValue',\n    'notValue',\n    'notValues',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'toMaxValue',\n    'toMinValue',\n    'transform',\n    'value',\n    'values',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/boolean/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'BooleanIssue',\n              href: '../BooleanIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'BooleanSchema',\n      href: '../BooleanSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/custom/index.mdx",
    "content": "---\ntitle: custom\ndescription: Creates a custom schema.\nsource: /schemas/custom/custom.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n  - morinokami\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# custom\n\nCreates a custom schema.\n\n> This schema function allows you to define a schema that matches a value based on a custom function. Use it whenever you need to define a schema that cannot be expressed using any of the other schema functions.\n\n```ts\nconst Schema = v.custom<TInput, TMessage>(check, message);\n```\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `check` <Property {...properties.check} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `custom` you can validate the data type of the input. If the input does not match the validation of `check`, you can use `message` to customize the error message.\n\n> Make sure that the validation in `check` matches the data type of `TInput`.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `custom` can be used.\n\n### Pixel string schema\n\nSchema to validate a pixel string.\n\n```ts\nconst PixelStringSchema = v.custom<`${number}px`>((input) =>\n  typeof input === 'string' ? /^\\d+px$/.test(input) : false\n);\n```\n\n## Related\n\nThe following APIs can be combined with `custom`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'args',\n    'base64',\n    'bic',\n    'brand',\n    'bytes',\n    'check',\n    'checkItems',\n    'creditCard',\n    'cuid2',\n    'decimal',\n    'description',\n    'digits',\n    'domain',\n    'email',\n    'emoji',\n    'empty',\n    'endsWith',\n    'entries',\n    'everyItem',\n    'excludes',\n    'filterItems',\n    'findItem',\n    'finite',\n    'flavor',\n    'graphemes',\n    'gtValue',\n    'hash',\n    'hexadecimal',\n    'hexColor',\n    'imei',\n    'includes',\n    'integer',\n    'ip',\n    'ipv4',\n    'ipv6',\n    'isbn',\n    'isrc',\n    'isoDate',\n    'isoDateTime',\n    'isoTime',\n    'isoTimeSecond',\n    'isoTimestamp',\n    'isoWeek',\n    'length',\n    'ltValue',\n    'mac',\n    'mac48',\n    'mac64',\n    'mapItems',\n    'maxBytes',\n    'maxEntries',\n    'maxGraphemes',\n    'maxLength',\n    'maxSize',\n    'maxValue',\n    'maxWords',\n    'metadata',\n    'mimeType',\n    'minBytes',\n    'minEntries',\n    'minGraphemes',\n    'minLength',\n    'minSize',\n    'minValue',\n    'minWords',\n    'multipleOf',\n    'nanoid',\n    'nonEmpty',\n    'notBytes',\n    'notEntries',\n    'notGraphemes',\n    'notLength',\n    'notSize',\n    'notValue',\n    'notValues',\n    'notWords',\n    'octal',\n    'parseJson',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'reduceItems',\n    'regex',\n    'returns',\n    'rfcEmail',\n    'safeInteger',\n    'size',\n    'slug',\n    'someItem',\n    'sortItem',\n    'startsWith',\n    'stringifyJson',\n    'title',\n    'toBigint',\n    'toBoolean',\n    'toDate',\n    'toLowerCase',\n    'toMaxValue',\n    'toMinValue',\n    'toNumber',\n    'toString',\n    'toUpperCase',\n    'transform',\n    'trim',\n    'trimEnd',\n    'trimStart',\n    'ulid',\n    'url',\n    'uuid',\n    'value',\n    'values',\n    'words',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/custom/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'CustomIssue',\n              href: '../CustomIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n    default: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'CustomIssue',\n              href: '../CustomIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  check: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: 'unknown',\n        },\n      ],\n      return: 'boolean',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'CustomSchema',\n      href: '../CustomSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/date/index.mdx",
    "content": "---\ntitle: date\ndescription: Creates a date schema.\nsource: /schemas/date/date.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n  - wout-junius\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# date\n\nCreates a date schema.\n\n```ts\nconst Schema = v.date<TMessage>(message);\n```\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `date` you can validate the data type of the input. If the input is not a date, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `date` can be used.\n\n### Force minimum\n\nSchema that forces a minimum date of today.\n\n```ts\nconst MinDateSchema = v.pipe(v.date(), v.toMinValue(new Date()));\n```\n\n### Validate range\n\nSchema that validates a date in a range.\n\n```ts\nconst DateRangeSchema = v.pipe(\n  v.date(),\n  v.minValue(new Date(2019, 0, 1)),\n  v.maxValue(new Date(2020, 0, 1))\n);\n```\n\n## Related\n\nThe following APIs can be combined with `date`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'flavor',\n    'gtValue',\n    'guard',\n    'ltValue',\n    'maxValue',\n    'metadata',\n    'minValue',\n    'notValue',\n    'notValues',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'toMaxValue',\n    'toMinValue',\n    'transform',\n    'value',\n    'values',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/date/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'DateIssue',\n              href: '../DateIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'DateSchema',\n      href: '../DateSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/enum/index.mdx",
    "content": "---\ntitle: enum\ndescription: Creates an enum schema.\nsource: /schemas/enum/enum.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# enum\n\nCreates an enum schema.\n\n```ts\nconst Schema = v.enum<TEnum, TMessage>(enum, message);\n```\n\n## Generics\n\n- `TEnum` <Property {...properties.TEnum} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `enum` {/* prettier-ignore */}<Property {...properties.enum} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `enum` you can validate that the input corresponds to an enum option. If the input is invalid, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `enum` can be used.\n\n### Direction enum\n\nSchema to validate a direction enum option.\n\n```ts\nenum Direction {\n  Left,\n  Right,\n}\n\nconst DirectionSchema = v.enum(Direction, 'Invalid direction');\n```\n\n## Related\n\nThe following APIs can be combined with `enum`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'flavor',\n    'guard',\n    'metadata',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/enum/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TEnum: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Enum',\n      href: '../Enum/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'EnumIssue',\n              href: '../EnumIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  enum: {\n    type: {\n      type: 'custom',\n      name: 'TEnum',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'EnumSchema',\n      href: '../EnumSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TEnum',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/exactOptional/index.mdx",
    "content": "---\ntitle: exactOptional\ndescription: Creates an exact optional schema.\nsource: /schemas/exactOptional/exactOptional.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# exactOptional\n\nCreates an exact optional schema.\n\n```ts\nconst Schema = v.exactOptional<TWrapped, TDefault>(wrapped, default_);\n```\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TDefault` <Property {...properties.TDefault} />\n\n## Parameters\n\n- `wrapped` <Property {...properties.wrapped} />\n- `default_` {/* prettier-ignore */}<Property {...properties.default_} />\n\n### Explanation\n\nWith `exactOptional` the validation of your schema will pass missing object entries, and if you specify a `default_` input value, the schema will use it if the object entry is missing. For this reason, the output type may differ from the input type of the schema.\n\n> The difference to <Link href=\"../optional/\">`optional`</Link> is that this schema function follows the implementation of TypeScript's [`exactOptionalPropertyTypes` configuration](https://www.typescriptlang.org/tsconfig/#exactOptionalPropertyTypes) and only allows missing but not undefined object entries.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `exactOptional` can be used.\n\n### Exact optional object entries\n\nObject schema with exact optional entries.\n\n> By using a function as the `default_` parameter, the schema will return a new [`Date`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) instance each time the input is `undefined`.\n\n```ts\nconst OptionalEntrySchema = v.object({\n  key1: v.exactOptional(v.string()),\n  key2: v.exactOptional(v.string(), \"I'm the default!\"),\n  key3: v.exactOptional(v.date(), () => new Date()),\n});\n```\n\n### Unwrap exact optional schema\n\nUse <Link href=\"../unwrap/\">`unwrap`</Link> to undo the effect of `exactOptional`.\n\n```ts\nconst OptionalNumberSchema = v.exactOptional(v.number());\nconst NumberSchema = v.unwrap(OptionalNumberSchema);\n```\n\n## Related\n\nThe following APIs can be combined with `exactOptional`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n    'unwrap',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'flavor',\n    'guard',\n    'metadata',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/exactOptional/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TDefault: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Default',\n      href: '../Default/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        'never',\n      ],\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  default_: {\n    type: {\n      type: 'custom',\n      name: 'TDefault',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'ExactOptionalSchema',\n      href: '../ExactOptionalSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        {\n          type: 'custom',\n          name: 'TDefault',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/file/index.mdx",
    "content": "---\ntitle: file\ndescription: Creates a file schema.\nsource: /schemas/file/file.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# file\n\nCreates a file schema.\n\n> The `File` class is not available by default in Node.js v18 and below.\n\n```ts\nconst Schema = v.file<TMessage>(message);\n```\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `file` you can validate the data type of the input. If the input is not a file, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `file` can be used.\n\n### Image schema\n\nSchema to validate an image.\n\n```ts\nconst ImageSchema = v.pipe(\n  v.file('Please select an image file.'),\n  v.mimeType(['image/jpeg', 'image/png'], 'Please select a JPEG or PNG file.'),\n  v.maxSize(1024 * 1024 * 10, 'Please select a file smaller than 10 MB.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `file`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'flavor',\n    'guard',\n    'maxSize',\n    'metadata',\n    'mimeType',\n    'minSize',\n    'notSize',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'size',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/file/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'FileIssue',\n              href: '../FileIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'FileSchema',\n      href: '../FileSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/function/index.mdx",
    "content": "---\ntitle: function\ndescription: Creates a function schema.\nsource: /schemas/function/function.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# function\n\nCreates a function schema.\n\n```ts\nconst Schema = v.function<TMessage>(message);\n```\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `function` you can validate the data type of the input. If the input is not a function, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Related\n\nThe following APIs can be combined with `function`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'flavor',\n    'guard',\n    'metadata',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/function/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'FunctionIssue',\n              href: '../FunctionIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'FunctionSchema',\n      href: '../FunctionSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/instance/index.mdx",
    "content": "---\ntitle: instance\ndescription: Creates an instance schema.\nsource: /schemas/instance/instance.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# instance\n\nCreates an instance schema.\n\n```ts\nconst Schema = v.instance<TClass, TMessage>(class_, message);\n```\n\n## Generics\n\n- `TClass` <Property {...properties.TClass} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `class_` {/* prettier-ignore */}<Property {...properties.class_} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `instance` you can validate the data type of the input. If the input is not an instance of the specified `class_`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `instance` can be used.\n\n### Error schema\n\nSchema to validate an `Error` instance.\n\n```ts\nconst ErrorSchema = v.instance(Error, 'Error instance required.');\n```\n\n### File schema\n\nSchema to validate an `File` instance.\n\n```ts\nconst FileSchema = v.pipe(\n  v.instance(File),\n  v.mimeType(['image/jpeg', 'image/png']),\n  v.maxSize(1024 * 1024 * 10)\n);\n```\n\n## Related\n\nThe following APIs can be combined with `instance`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'flavor',\n    'gtValue',\n    'ltValue',\n    'maxSize',\n    'maxValue',\n    'metadata',\n    'mimeType',\n    'minSize',\n    'minValue',\n    'notSize',\n    'notValue',\n    'notValues',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'size',\n    'title',\n    'toMaxValue',\n    'toMinValue',\n    'transform',\n    'value',\n    'values',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/instance/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TClass: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Class',\n      href: '../Class/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'InstanceIssue',\n              href: '../InstanceIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  class_: {\n    type: {\n      type: 'custom',\n      name: 'TClass',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'InstanceSchema',\n      href: '../InstanceSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TClass',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/intersect/index.mdx",
    "content": "---\ntitle: intersect\ndescription: Creates an intersect schema.\nsource: /schemas/intersect/intersect.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n  - morinokami\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# intersect\n\nCreates an intersect schema.\n\n> I recommend to read the <Link href=\"/guides/intersections/\">intersections guide</Link> before using this schema function.\n\n```ts\nconst Schema = v.intersect<TOptions, TMessage>(options, message);\n```\n\n## Generics\n\n- `TOptions` <Property {...properties.TOptions} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `options` <Property {...properties.options} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `intersect` you can validate if the input matches each of the given `options`. If the output of the intersection cannot be successfully merged, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `intersect` can be used.\n\n### Object intersection\n\nSchema that combines two object schemas.\n\n```ts\nconst ObjectSchema = v.intersect([\n  v.object({ foo: v.string() }),\n  v.object({ bar: v.number() }),\n]);\n```\n\n## Related\n\nThe following APIs can be combined with `intersect`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'args',\n    'base64',\n    'bic',\n    'brand',\n    'bytes',\n    'check',\n    'checkItems',\n    'creditCard',\n    'cuid2',\n    'decimal',\n    'description',\n    'digits',\n    'domain',\n    'email',\n    'emoji',\n    'empty',\n    'endsWith',\n    'entries',\n    'everyItem',\n    'excludes',\n    'filterItems',\n    'findItem',\n    'finite',\n    'flavor',\n    'graphemes',\n    'gtValue',\n    'guard',\n    'hash',\n    'hexadecimal',\n    'hexColor',\n    'imei',\n    'includes',\n    'integer',\n    'ip',\n    'ipv4',\n    'ipv6',\n    'isbn',\n    'isrc',\n    'isoDate',\n    'isoDateTime',\n    'isoTime',\n    'isoTimeSecond',\n    'isoTimestamp',\n    'isoWeek',\n    'length',\n    'ltValue',\n    'mac',\n    'mac48',\n    'mac64',\n    'mapItems',\n    'maxBytes',\n    'maxEntries',\n    'maxGraphemes',\n    'maxLength',\n    'maxSize',\n    'maxValue',\n    'maxWords',\n    'metadata',\n    'mimeType',\n    'minBytes',\n    'minEntries',\n    'minGraphemes',\n    'minLength',\n    'minSize',\n    'minValue',\n    'minWords',\n    'multipleOf',\n    'nanoid',\n    'nonEmpty',\n    'notBytes',\n    'notEntries',\n    'notGraphemes',\n    'notLength',\n    'notSize',\n    'notValue',\n    'notValues',\n    'notWords',\n    'octal',\n    'parseJson',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'reduceItems',\n    'regex',\n    'returns',\n    'rfcEmail',\n    'safeInteger',\n    'size',\n    'slug',\n    'someItem',\n    'sortItem',\n    'startsWith',\n    'stringifyJson',\n    'title',\n    'toLowerCase',\n    'toMaxValue',\n    'toMinValue',\n    'toUpperCase',\n    'transform',\n    'trim',\n    'trimEnd',\n    'trimStart',\n    'ulid',\n    'url',\n    'uuid',\n    'value',\n    'values',\n    'words',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/intersect/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TOptions: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'IntersectOptions',\n      href: '../IntersectOptions/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'IntersectIssue',\n              href: '../IntersectIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  options: {\n    type: {\n      type: 'custom',\n      name: 'TOptions',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'IntersectSchema',\n      href: '../IntersectSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TOptions',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/lazy/index.mdx",
    "content": "---\ntitle: lazy\ndescription: Creates a lazy schema.\nsource: /schemas/lazy/lazy.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n  - morinokami\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# lazy\n\nCreates a lazy schema.\n\n```ts\nconst Schema = v.lazy<TWrapped>(getter);\n```\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n\n## Parameters\n\n- `getter` <Property {...properties.getter} />\n\n### Explanation\n\nThe `getter` function is called lazily to retrieve the schema. This is necessary to be able to access the input through the first argument of the `getter` function and to avoid a circular dependency for recursive schemas.\n\n> Due to a TypeScript limitation, the input and output types of recursive schemas cannot be inferred automatically. Therefore, you must explicitly specify these types using <Link href=\"/api/GenericSchema/\">`GenericSchema`</Link>. Please see the examples below.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `lazy` can be used.\n\n### Binary tree schema\n\nRecursive schema to validate a binary tree.\n\n```ts\ntype BinaryTree = {\n  element: string;\n  left: BinaryTree | null;\n  right: BinaryTree | null;\n};\n\nconst BinaryTreeSchema: v.GenericSchema<BinaryTree> = v.object({\n  element: v.string(),\n  left: v.nullable(v.lazy(() => BinaryTreeSchema)),\n  right: v.nullable(v.lazy(() => BinaryTreeSchema)),\n});\n```\n\n### JSON data schema\n\nSchema to validate all possible `JSON` values.\n\n```ts\nimport * as v from 'valibot';\n\ntype JsonData =\n  | string\n  | number\n  | boolean\n  | null\n  | { [key: string]: JsonData }\n  | JsonData[];\n\nconst JsonSchema: v.GenericSchema<JsonData> = v.lazy(() =>\n  v.union([\n    v.string(),\n    v.number(),\n    v.boolean(),\n    v.null(),\n    v.record(v.string(), JsonSchema),\n    v.array(JsonSchema),\n  ])\n);\n```\n\n### Lazy union schema\n\nSchema to validate a discriminated union of objects.\n\n> In most cases, <Link href=\"/api/union/\">`union`</Link> and <Link href=\"/api/variant/\">`variant`</Link> are the better choices for creating such a schema. I recommend using `lazy` only in special cases.\n\n```ts\nconst LazyUnionSchema = v.lazy((input) => {\n  if (input && typeof input === 'object' && 'type' in input) {\n    switch (input.type) {\n      case 'email':\n        return v.object({\n          type: v.literal('email'),\n          email: v.pipe(v.string(), v.email()),\n        });\n      case 'url':\n        return v.object({\n          type: v.literal('url'),\n          url: v.pipe(v.string(), v.url()),\n        });\n      case 'date':\n        return v.object({\n          type: v.literal('date'),\n          date: v.pipe(v.string(), v.isoDate()),\n        });\n    }\n  }\n  return v.never();\n});\n```\n\n## Related\n\nThe following APIs can be combined with `lazy`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'undefined',\n    'union',\n    'unionWithRest',\n    'undefinedable',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'args',\n    'base64',\n    'bic',\n    'brand',\n    'bytes',\n    'check',\n    'checkItems',\n    'creditCard',\n    'cuid2',\n    'decimal',\n    'description',\n    'digits',\n    'domain',\n    'email',\n    'emoji',\n    'empty',\n    'endsWith',\n    'entries',\n    'everyItem',\n    'excludes',\n    'filterItems',\n    'findItem',\n    'finite',\n    'flavor',\n    'graphemes',\n    'gtValue',\n    'guard',\n    'hash',\n    'hexadecimal',\n    'hexColor',\n    'imei',\n    'includes',\n    'integer',\n    'ip',\n    'ipv4',\n    'ipv6',\n    'isbn',\n    'isrc',\n    'isoDate',\n    'isoDateTime',\n    'isoTime',\n    'isoTimeSecond',\n    'isoTimestamp',\n    'isoWeek',\n    'length',\n    'ltValue',\n    'mac',\n    'mac48',\n    'mac64',\n    'mapItems',\n    'maxBytes',\n    'maxEntries',\n    'maxGraphemes',\n    'maxLength',\n    'maxSize',\n    'maxValue',\n    'maxWords',\n    'metadata',\n    'mimeType',\n    'minBytes',\n    'minEntries',\n    'minGraphemes',\n    'minLength',\n    'minSize',\n    'minValue',\n    'minWords',\n    'multipleOf',\n    'nanoid',\n    'nonEmpty',\n    'notBytes',\n    'notEntries',\n    'notGraphemes',\n    'notLength',\n    'notSize',\n    'notValue',\n    'notValues',\n    'notWords',\n    'octal',\n    'parseJson',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'reduceItems',\n    'regex',\n    'returns',\n    'rfcEmail',\n    'safeInteger',\n    'size',\n    'slug',\n    'someItem',\n    'sortItem',\n    'startsWith',\n    'stringifyJson',\n    'title',\n    'toLowerCase',\n    'toMaxValue',\n    'toMinValue',\n    'toUpperCase',\n    'transform',\n    'trim',\n    'trimEnd',\n    'trimStart',\n    'ulid',\n    'url',\n    'uuid',\n    'value',\n    'values',\n    'words',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/lazy/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  getter: {\n    type: {\n      type: 'function',\n      params: [{ name: 'input', type: 'unknown' }],\n      return: {\n        type: 'custom',\n        name: 'TWrapped',\n      },\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'LazySchema',\n      href: '../LazySchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/literal/index.mdx",
    "content": "---\ntitle: literal\ndescription: Creates a literal schema.\nsource: /schemas/literal/literal.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# literal\n\nCreates a literal schema.\n\n```ts\nconst Schema = v.literal<TLiteral, TMessage>(literal, message);\n```\n\n## Generics\n\n- `TLiteral` <Property {...properties.TLiteral} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `literal` <Property {...properties.literal} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `literal` you can validate that the input matches a specified value. If the input is invalid, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `literal` can be used.\n\n### String literal\n\nSchema to validate a string literal.\n\n```ts\nconst StringLiteralSchema = v.literal('foo');\n```\n\n### Number literal\n\nSchema to validate a number literal.\n\n```ts\nconst NumberLiteralSchema = v.literal(26);\n```\n\n### Boolean literal\n\nSchema to validate a boolean literal.\n\n```ts\nconst BooleanLiteralSchema = v.literal(true);\n```\n\n## Related\n\nThe following APIs can be combined with `literal`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'flavor',\n    'guard',\n    'metadata',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/literal/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TLiteral: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Literal',\n      href: '../Literal/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'LiteralIssue',\n              href: '../LiteralIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  literal: {\n    type: {\n      type: 'custom',\n      name: 'TLiteral',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'LiteralSchema',\n      href: '../LiteralSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TLiteral',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/looseObject/index.mdx",
    "content": "---\ntitle: looseObject\ndescription: Creates a loose object schema.\nsource: /schemas/looseObject/looseObject.ts\ncontributors:\n  - fabian-hiller\n  - muningis\n  - kazizi55\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# looseObject\n\nCreates a loose object schema.\n\n```ts\nconst Schema = v.looseObject<TEntries, TMessage>(entries, message);\n```\n\n## Generics\n\n- `TEntries` <Property {...properties.TEntries} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `entries` <Property {...properties.entries} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `looseObject` you can validate the data type of the input and whether the content matches `entries`. If the input is not an object, you can use `message` to customize the error message.\n\n> The difference to <Link href=\"../object/\">`object`</Link> is that this schema includes any unknown entries in the output. In addition, this schema filters certain entries from the unknown entries for security reasons.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `looseObject` can be used. Please see the <Link href=\"/guides/objects/\">object guide</Link> for more examples and explanations.\n\n### Simple object schema\n\nSchema to validate a loose object with two specific keys.\n\n```ts\nconst SimpleObjectSchema = v.looseObject({\n  key1: v.string(),\n  key2: v.number(),\n});\n```\n\n### Merge several objects\n\nSchema that merges the entries of two object schemas.\n\n```ts\nconst MergedObjectSchema = v.looseObject({\n  ...ObjectSchema1.entries,\n  ...ObjectSchema2.entries,\n});\n```\n\n### Mark keys as optional\n\nSchema to validate an object with partial entries.\n\n```ts\nconst PartialObjectSchema = v.partial(\n  v.looseObject({\n    key1: v.string(),\n    key2: v.number(),\n  })\n);\n```\n\n### Object with selected entries\n\nSchema to validate only selected entries of a loose object.\n\n```ts\nconst PickObjectSchema = v.pick(\n  v.looseObject({\n    key1: v.string(),\n    key2: v.number(),\n    key3: v.boolean(),\n  }),\n  ['key1', 'key3']\n);\n```\n\n## Related\n\nThe following APIs can be combined with `looseObject`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'forward',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'keyof',\n    'message',\n    'omit',\n    'parse',\n    'parser',\n    'partial',\n    'pick',\n    'pipe',\n    'required',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'entries',\n    'flavor',\n    'guard',\n    'maxEntries',\n    'metadata',\n    'minEntries',\n    'notEntries',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/looseObject/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TEntries: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ObjectEntries',\n      href: '../ObjectEntries/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'LooseObjectIssue',\n              href: '../LooseObjectIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  entries: {\n    type: {\n      type: 'custom',\n      name: 'TEntries',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'LooseObjectSchema',\n      href: '../LooseObjectSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TEntries',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/looseTuple/index.mdx",
    "content": "---\ntitle: looseTuple\ndescription: Creates a loose tuple schema.\nsource: /schemas/looseTuple/looseTuple.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# looseTuple\n\nCreates a loose tuple schema.\n\n```ts\nconst Schema = v.looseTuple<TItems, TMessage>(items, message);\n```\n\n## Generics\n\n- `TItems` <Property {...properties.TItems} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `items` <Property {...properties.items} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `looseTuple` you can validate the data type of the input and whether the content matches `items`. If the input is not an array, you can use `message` to customize the error message.\n\n> The difference to <Link href=\"../tuple/\">`tuple`</Link> is that this schema does include unknown items into the output.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `looseTuple` can be used. Please see the <Link href=\"/guides/arrays/\">arrays guide</Link> for more examples and explanations.\n\n### Simple tuple schema\n\nSchema to validate a loose tuple with two specific items.\n\n```ts\nconst SimpleTupleSchema = v.looseTuple([v.string(), v.number()]);\n```\n\n## Related\n\nThe following APIs can be combined with `looseTuple`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'checkItems',\n    'brand',\n    'description',\n    'empty',\n    'everyItem',\n    'excludes',\n    'filterItems',\n    'findItem',\n    'flavor',\n    'guard',\n    'includes',\n    'length',\n    'mapItems',\n    'maxLength',\n    'metadata',\n    'minLength',\n    'nonEmpty',\n    'notLength',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'reduceItems',\n    'someItem',\n    'sortItems',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/looseTuple/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TItems: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TupleItems',\n      href: '../TupleItems/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'LooseTupleIssue',\n              href: '../LooseTupleIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  items: {\n    type: {\n      type: 'custom',\n      name: 'TItems',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'LooseTupleSchema',\n      href: '../LooseTupleSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TItems',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/map/index.mdx",
    "content": "---\ntitle: map\ndescription: Creates a map schema.\nsource: /schemas/map/map.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# map\n\nCreates a map schema.\n\n```ts\nconst Schema = v.map<TKey, TValue, TMessage>(key, value, message);\n```\n\n## Generics\n\n- `TKey` <Property {...properties.TKey} />\n- `TValue` <Property {...properties.TValue} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `key` <Property {...properties.key} />\n- `value` <Property {...properties.value} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `map` you can validate the data type of the input and whether the entries matches `key` and `value`. If the input is not a map, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `map` can be used.\n\n### String map schema\n\nSchema to validate a map with string values.\n\n```ts\nconst StringMapSchema = v.map(v.string(), v.string());\n```\n\n### Object map schema\n\nSchema to validate a map with object values.\n\n```ts\nconst ObjectMapSchema = v.map(v.string(), v.object({ key: v.string() }));\n```\n\n## Related\n\nThe following APIs can be combined with `map`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'flavor',\n    'guard',\n    'maxSize',\n    'metadata',\n    'minSize',\n    'notSize',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'size',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/map/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TKey: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TValue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MapIssue',\n              href: '../MapIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  key: {\n    type: {\n      type: 'custom',\n      name: 'TKey',\n    },\n  },\n  value: {\n    type: {\n      type: 'custom',\n      name: 'TValue',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'MapSchema',\n      href: '../MapSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TKey',\n        },\n        {\n          type: 'custom',\n          name: 'TValue',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/nan/index.mdx",
    "content": "---\ntitle: nan\ndescription: Creates a NaN schema.\nsource: /schemas/nan/nan.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# nan\n\nCreates a NaN schema.\n\n```ts\nconst Schema = v.nan<TMessage>(message);\n```\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `nan` you can validate the data type of the input and if it is not `NaN`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Related\n\nThe following APIs can be combined with `nan`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'flavor',\n    'guard',\n    'metadata',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/nan/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NanIssue',\n              href: '../NanIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'NanSchema',\n      href: '../NanSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/never/index.mdx",
    "content": "---\ntitle: never\ndescription: Creates a never schema.\nsource: /schemas/never/never.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# never\n\nCreates a never schema.\n\n```ts\nconst Schema = v.never<TMessage>(message);\n```\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWhen validated, `never` always returns an issue. You can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Related\n\nThe following APIs can be combined with `never`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/never/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NeverIssue',\n              href: '../NeverIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'NeverSchema',\n      href: '../NeverSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/nonNullable/index.mdx",
    "content": "---\ntitle: nonNullable\ndescription: Creates a non nullable schema.\nsource: /schemas/nonNullable/nonNullable.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# nonNullable\n\nCreates a non nullable schema.\n\n> This schema function can be used to override the behavior of <Link href=\"../nullable/\">`nullable`</Link>.\n\n```ts\nconst Schema = v.nonNullable<TWrapped, TMessage>(wrapped, message);\n```\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `wrapped` <Property {...properties.wrapped} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `nonNullable` the validation of your schema will not pass `null` inputs. If the input is `null`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `nonNullable` can be used.\n\n### Non nullable string\n\nSchema that does not accept `null`.\n\n```ts\nconst NonNullableStringSchema = v.nonNullable(v.nullable(v.string()));\n```\n\n### Unwrap non nullable\n\nUse <Link href=\"../unwrap/\">`unwrap`</Link> to undo the effect of `nonNullable`.\n\n```ts\nconst NonNullableNumberSchema = v.nonNullable(v.nullable(v.number()));\nconst NullableNumberSchema = v.unwrap(NonNullableNumberSchema);\n```\n\n## Related\n\nThe following APIs can be combined with `nonNullable`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n    'unwrap',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'flavor',\n    'guard',\n    'metadata',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/nonNullable/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NonNullableIssue',\n              href: '../NonNullableIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'NonNullableSchema',\n      href: '../NonNullableSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/nonNullish/index.mdx",
    "content": "---\ntitle: nonNullish\ndescription: Creates a non nullish schema.\nsource: /schemas/nonNullish/nonNullish.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# nonNullish\n\nCreates a non nullish schema.\n\n> This schema function can be used to override the behavior of <Link href=\"../nullish/\">`nullish`</Link>.\n\n```ts\nconst Schema = v.nonNullish<TWrapped, TMessage>(wrapped, message);\n```\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `wrapped` <Property {...properties.wrapped} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `nonNullish` the validation of your schema will not pass `null` and `undefined` inputs. If the input is `null` or `undefined`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `nonNullish` can be used.\n\n### Non nullish string\n\nSchema that does not accept `null` and `undefined`.\n\n```ts\nconst NonNullishStringSchema = v.nonNullish(v.nullish(v.string()));\n```\n\n### Unwrap non nullish\n\nUse <Link href=\"../unwrap/\">`unwrap`</Link> to undo the effect of `nonNullish`.\n\n```ts\nconst NonNullishNumberSchema = v.nonNullish(v.nullish(v.number()));\nconst NullishNumberSchema = v.unwrap(NonNullishNumberSchema);\n```\n\n## Related\n\nThe following APIs can be combined with `nonNullish`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n    'unwrap',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'flavor',\n    'guard',\n    'metadata',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/nonNullish/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NonNullishIssue',\n              href: '../NonNullishIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'NonNullishSchema',\n      href: '../NonNullishSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/nonOptional/index.mdx",
    "content": "---\ntitle: nonOptional\ndescription: Creates a non optional schema.\nsource: /schemas/nonOptional/nonOptional.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# nonOptional\n\nCreates a non optional schema.\n\n> This schema function can be used to override the behavior of <Link href=\"../optional/\">`optional`</Link>.\n\n```ts\nconst Schema = v.nonOptional<TWrapped, TMessage>(wrapped, message);\n```\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `wrapped` <Property {...properties.wrapped} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `nonOptional` the validation of your schema will not pass `undefined` inputs. If the input is `undefined`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `nonOptional` can be used.\n\n### Non optional string\n\nSchema that does not accept `undefined`.\n\n```ts\nconst NonOptionalStringSchema = v.nonOptional(v.optional(v.string()));\n```\n\n### Unwrap non optional\n\nUse <Link href=\"../unwrap/\">`unwrap`</Link> to undo the effect of `nonOptional`.\n\n```ts\nconst NonOptionalNumberSchema = v.nonOptional(v.optional(v.number()));\nconst OptionalNumberSchema = v.unwrap(NonOptionalNumberSchema);\n```\n\n## Related\n\nThe following APIs can be combined with `nonOptional`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n    'unwrap',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'flavor',\n    'guard',\n    'metadata',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/nonOptional/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NonOptionalIssue',\n              href: '../NonOptionalIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'NonOptionalSchema',\n      href: '../NonOptionalSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/null/index.mdx",
    "content": "---\ntitle: null\ndescription: Creates a null schema.\nsource: /schemas/null/null.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# null\n\nCreates a null schema.\n\n```ts\nconst Schema = v.null<TMessage>(message);\n```\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `null` you can validate the data type of the input and if it is not `null`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Related\n\nThe following APIs can be combined with `null`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'flavor',\n    'guard',\n    'metadata',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/null/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NullIssue',\n              href: '../NullIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'NullSchema',\n      href: '../NullSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/nullable/index.mdx",
    "content": "---\ntitle: nullable\ndescription: Creates a nullable schema.\nsource: /schemas/nullable/nullable.ts\ncontributors:\n  - fabian-hiller\n  - sqmasep\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# nullable\n\nCreates a nullable schema.\n\n```ts\nconst Schema = v.nullable<TWrapped, TDefault>(wrapped, default_);\n```\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TDefault` <Property {...properties.TDefault} />\n\n## Parameters\n\n- `wrapped` <Property {...properties.wrapped} />\n- `default_` {/* prettier-ignore */}<Property {...properties.default_} />\n\n### Explanation\n\nWith `nullable` the validation of your schema will pass `null` inputs, and if you specify a `default_` input value, the schema will use it if the input is `null`. For this reason, the output type may differ from the input type of the schema.\n\n> Note that `nullable` does not accept `undefined` as an input. If you want to accept `undefined` inputs, use <Link href=\"../optional/\">`optional`</Link>, and if you want to accept `null` and `undefined` inputs, use <Link href=\"../nullish/\">`nullish`</Link> instead. Also, if you want to set a default output value for any invalid input, you should use <Link href=\"../fallback/\">`fallback`</Link> instead.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `nullable` can be used.\n\n### Nullable string schema\n\nSchema that accepts `string` and `null`.\n\n```ts\nconst NullableStringSchema = v.nullable(v.string(), \"I'm the default!\");\n```\n\n### Nullable date schema\n\nSchema that accepts [`Date`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) and `null`.\n\n> By using a function as the `default_` parameter, the schema will return a new [`Date`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) instance each time the input is `null`.\n\n```ts\nconst NullableDateSchema = v.nullable(v.date(), () => new Date());\n```\n\n### Nullable entry schema\n\nObject schema with a nullable entry.\n\n```ts\nconst NullableEntrySchema = v.object({\n  key: v.nullable(v.string()),\n});\n```\n\n### Unwrap nullable schema\n\nUse <Link href=\"../unwrap/\">`unwrap`</Link> to undo the effect of `nullable`.\n\n```ts\nconst NullableNumberSchema = v.nullable(v.number());\nconst NumberSchema = v.unwrap(NullableNumberSchema);\n```\n\n## Related\n\nThe following APIs can be combined with `nullable`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n    'unwrap',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'flavor',\n    'guard',\n    'metadata',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/nullable/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TDefault: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Default',\n      href: '../Default/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        'null',\n      ],\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  default_: {\n    type: {\n      type: 'custom',\n      name: 'TDefault',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'NullableSchema',\n      href: '../NullableSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        {\n          type: 'custom',\n          name: 'TDefault',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/nullish/index.mdx",
    "content": "---\ntitle: nullish\ndescription: Creates a nullish schema.\nsource: /schemas/nullish/nullish.ts\ncontributors:\n  - fabian-hiller\n  - sqmasep\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# nullish\n\nCreates a nullish schema.\n\n```ts\nconst Schema = v.nullish<TWrapped, TDefault>(wrapped, default_);\n```\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TDefault` <Property {...properties.TDefault} />\n\n## Parameters\n\n- `wrapped` <Property {...properties.wrapped} />\n- `default_` {/* prettier-ignore */}<Property {...properties.default_} />\n\n### Explanation\n\nWith `nullish` the validation of your schema will pass `undefined` and `null` inputs, and if you specify a `default_` input value, the schema will use it if the input is `undefined` or `null`. For this reason, the output type may differ from the input type of the schema.\n\n> Note that `nullish` accepts `undefined` and `null` as an input. If you want to accept only `null` inputs, use <Link href=\"../nullable/\">`nullable`</Link>, and if you want to accept only `undefined` inputs, use <Link href=\"../optional/\">`optional`</Link> instead. Also, if you want to set a default output value for any invalid input, you should use <Link href=\"../fallback/\">`fallback`</Link> instead.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `nullish` can be used.\n\n### Nullish string schema\n\nSchema that accepts `string`, `undefined` and `null`.\n\n```ts\nconst NullishStringSchema = v.nullish(v.string(), \"I'm the default!\");\n```\n\n### Nullish date schema\n\nSchema that accepts [`Date`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date), `undefined` and `null`.\n\n> By using a function as the `default_` parameter, the schema will return a new [`Date`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) instance each time the input is `undefined` or `null`.\n\n```ts\nconst NullishDateSchema = v.nullish(v.date(), () => new Date());\n```\n\n### Nullish entry schema\n\nObject schema with a nullish entry.\n\n```ts\nconst NullishEntrySchema = v.object({\n  key: v.nullish(v.string()),\n});\n```\n\n### Unwrap nullish schema\n\nUse <Link href=\"../unwrap/\">`unwrap`</Link> to undo the effect of `nullish`.\n\n```ts\nconst NullishNumberSchema = v.nullish(v.number());\nconst NumberSchema = v.unwrap(NullishNumberSchema);\n```\n\n## Related\n\nThe following APIs can be combined with `nullish`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n    'unwrap',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'flavor',\n    'guard',\n    'metadata',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/nullish/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TDefault: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Default',\n      href: '../Default/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        {\n          type: 'union',\n          options: ['null', 'undefined'],\n        },\n      ],\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  default_: {\n    type: {\n      type: 'custom',\n      name: 'TDefault',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'NullishSchema',\n      href: '../NullishSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        {\n          type: 'custom',\n          name: 'TDefault',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/number/index.mdx",
    "content": "---\ntitle: number\nsource: /schemas/number/number.ts\ncontributors:\n  - fabian-hiller\n  - kazizi55\n  - EltonLobo07\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# number\n\nCreates a number schema.\n\n```ts\nconst Schema = v.number<TMessage>(message);\n```\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `number` you can validate the data type of the input. If the input is not a number, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `number` can be used.\n\n### Integer schema\n\nSchema to validate an integer.\n\n```ts\nconst IntegerSchema = v.pipe(v.number(), v.integer());\n```\n\n### Force minimum\n\nSchema that forces a minimum number of 10.\n\n```ts\nconst MinNumberSchema = v.pipe(v.number(), v.toMinValue(10));\n```\n\n### Validate range\n\nSchema that validates a number in a range.\n\n```ts\nconst NumberRangeSchema = v.pipe(v.number(), v.minValue(10), v.maxValue(20));\n```\n\n## Related\n\nThe following APIs can be combined with `number`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'finite',\n    'flavor',\n    'gtValue',\n    'guard',\n    'integer',\n    'ltValue',\n    'maxValue',\n    'metadata',\n    'minValue',\n    'multipleOf',\n    'notValue',\n    'notValues',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'safeInteger',\n    'title',\n    'toBoolean',\n    'toDate',\n    'toBigint',\n    'toMaxValue',\n    'toMinValue',\n    'toString',\n    'transform',\n    'value',\n    'values',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/number/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NumberIssue',\n              href: '../NumberIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'NumberSchema',\n      href: '../NumberSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/object/index.mdx",
    "content": "---\ntitle: object\ndescription: Creates an object schema.\nsource: /schemas/object/object.ts\ncontributors:\n  - fabian-hiller\n  - kazizi55\n  - muningis\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# object\n\nCreates an object schema.\n\n```ts\nconst Schema = v.object<TEntries, TMessage>(entries, message);\n```\n\n## Generics\n\n- `TEntries` <Property {...properties.TEntries} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `entries` <Property {...properties.entries} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `object` you can validate the data type of the input and whether the content matches `entries`. If the input is not an object, you can use `message` to customize the error message.\n\n> This schema removes unknown entries. The output will only include the entries you specify. To include unknown entries, use <Link href=\"../looseObject/\">`looseObject`</Link>. To return an issue for unknown entries, use <Link href=\"../strictObject/\">`strictObject`</Link>. To include and validate unknown entries, use <Link href=\"../objectWithRest/\">`objectWithRest`</Link>.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `object` can be used. Please see the <Link href=\"/guides/objects/\">object guide</Link> for more examples and explanations.\n\n### Simple object schema\n\nSchema to validate an object with two keys.\n\n```ts\nconst SimpleObjectSchema = v.object({\n  key1: v.string(),\n  key2: v.number(),\n});\n```\n\n### Merge several objects\n\nSchema that merges the entries of two object schemas.\n\n```ts\nconst MergedObjectSchema = v.object({\n  ...ObjectSchema1.entries,\n  ...ObjectSchema2.entries,\n});\n```\n\n### Mark keys as optional\n\nSchema to validate an object with partial entries.\n\n```ts\nconst PartialObjectSchema = v.partial(\n  v.object({\n    key1: v.string(),\n    key2: v.number(),\n  })\n);\n```\n\n### Object with selected entries\n\nSchema to validate only selected entries of an object.\n\n```ts\nconst PickObjectSchema = v.pick(\n  v.object({\n    key1: v.string(),\n    key2: v.number(),\n    key3: v.boolean(),\n  }),\n  ['key1', 'key3']\n);\n```\n\n## Related\n\nThe following APIs can be combined with `object`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'forward',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'keyof',\n    'message',\n    'omit',\n    'parse',\n    'parser',\n    'partial',\n    'pick',\n    'pipe',\n    'required',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'entries',\n    'flavor',\n    'maxEntries',\n    'metadata',\n    'minEntries',\n    'notEntries',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/object/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TEntries: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ObjectEntries',\n      href: '../ObjectEntries/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ObjectIssue',\n              href: '../ObjectIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  entries: {\n    type: {\n      type: 'custom',\n      name: 'TEntries',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'ObjectSchema',\n      href: '../ObjectSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TEntries',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/objectWithRest/index.mdx",
    "content": "---\ntitle: objectWithRest\ndescription: Creates an object with rest schema.\nsource: /schemas/objectWithRest/objectWithRest.ts\ncontributors:\n  - fabian-hiller\n  - muningis\n  - kazizi55\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# objectWithRest\n\nCreates an object with rest schema.\n\n```ts\nconst Schema = v.objectWithRest<TEntries, TRest, TMessage>(\n  entries,\n  rest,\n  message\n);\n```\n\n## Generics\n\n- `TEntries` <Property {...properties.TEntries} />\n- `TRest` <Property {...properties.TRest} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `entries` <Property {...properties.entries} />\n- `rest` <Property {...properties.rest} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `objectWithRest` you can validate the data type of the input and whether the content matches `entries` and `rest`. If the input is not an object, you can use `message` to customize the error message.\n\n> The difference to <Link href=\"../object/\">`object`</Link> is that this schema includes unknown entries in the output. In addition, this schema filters certain entries from the unknown entries for security reasons.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `objectWithRest` can be used. Please see the <Link href=\"/guides/objects/\">object guide</Link> for more examples and explanations.\n\n### Object schema with rest\n\nSchema to validate an object with generic rest entries.\n\n```ts\nconst ObjectSchemaWithRest = v.objectWithRest(\n  {\n    key1: v.string(),\n    key2: v.number(),\n  },\n  v.boolean()\n);\n```\n\n### Merge several objects\n\nSchema that merges the entries of two object schemas.\n\n```ts\nconst MergedObjectSchema = v.objectWithRest(\n  {\n    ...ObjectSchema1.entries,\n    ...ObjectSchema2.entries,\n  },\n  v.null()\n);\n```\n\n### Mark keys as optional\n\nSchema to validate an object with partial entries.\n\n```ts\nconst PartialObjectSchema = partial(\n  objectWithRest(\n    {\n      key1: string(),\n      key2: number(),\n    },\n    v.undefined()\n  )\n);\n```\n\n### Object with selected entries\n\nSchema to validate only selected entries of an object.\n\n```ts\nconst PickObjectSchema = v.pick(\n  v.objectWithRest(\n    {\n      key1: v.string(),\n      key2: v.number(),\n      key3: v.boolean(),\n    },\n    v.null()\n  ),\n  ['key1', 'key3']\n);\n```\n\n## Related\n\nThe following APIs can be combined with `objectWithRest`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'forward',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'keyof',\n    'message',\n    'omit',\n    'parse',\n    'parser',\n    'partial',\n    'pick',\n    'pipe',\n    'required',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'entries',\n    'flavor',\n    'guard',\n    'maxEntries',\n    'metadata',\n    'minEntries',\n    'notEntries',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/objectWithRest/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TEntries: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ObjectEntries',\n      href: '../ObjectEntries/',\n    },\n  },\n  TRest: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ObjectWithRestIssue',\n              href: '../ObjectWithRestIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  entries: {\n    type: {\n      type: 'custom',\n      name: 'TEntries',\n    },\n  },\n  rest: {\n    type: {\n      type: 'custom',\n      name: 'TRest',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'ObjectWithRestSchema',\n      href: '../ObjectWithRestSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TEntries',\n        },\n        {\n          type: 'custom',\n          name: 'TRest',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/optional/index.mdx",
    "content": "---\ntitle: optional\ndescription: Creates an optional schema.\nsource: /schemas/optional/optional.ts\ncontributors:\n  - fabian-hiller\n  - sqmasep\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# optional\n\nCreates an optional schema.\n\n```ts\nconst Schema = v.optional<TWrapped, TDefault>(wrapped, default_);\n```\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TDefault` <Property {...properties.TDefault} />\n\n## Parameters\n\n- `wrapped` <Property {...properties.wrapped} />\n- `default_` {/* prettier-ignore */}<Property {...properties.default_} />\n\n### Explanation\n\nWith `optional` the validation of your schema will pass `undefined` inputs, and if you specify a `default_` input value, the schema will use it if the input is `undefined`. For this reason, the output type may differ from the input type of the schema.\n\n> Note that `optional` does not accept `null` as an input. If you want to accept `null` inputs, use <Link href=\"../nullable/\">`nullable`</Link>, and if you want to accept `null` and `undefined` inputs, use <Link href=\"../nullish/\">`nullish`</Link> instead. Also, if you want to set a default output value for any invalid input, you should use <Link href=\"../fallback/\">`fallback`</Link> instead.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `optional` can be used.\n\n### Optional string schema\n\nSchema that accepts `string` and `undefined`.\n\n```ts\nconst OptionalStringSchema = v.optional(v.string(), \"I'm the default!\");\n```\n\n### Optional date schema\n\nSchema that accepts [`Date`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) and `undefined`.\n\n> By using a function as the `default_` parameter, the schema will return a new [`Date`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) instance each time the input is `undefined`.\n\n```ts\nconst OptionalDateSchema = v.optional(v.date(), () => new Date());\n```\n\n### Optional entry schema\n\nObject schema with an optional entry.\n\n```ts\nconst OptionalEntrySchema = v.object({\n  key: v.optional(v.string()),\n});\n```\n\n### Unwrap optional schema\n\nUse <Link href=\"../unwrap/\">`unwrap`</Link> to undo the effect of `optional`.\n\n```ts\nconst OptionalNumberSchema = v.optional(v.number());\nconst NumberSchema = v.unwrap(OptionalNumberSchema);\n```\n\n## Related\n\nThe following APIs can be combined with `optional`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n    'unwrap',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'flavor',\n    'guard',\n    'metadata',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/optional/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TDefault: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Default',\n      href: '../Default/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        'undefined',\n      ],\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  default_: {\n    type: {\n      type: 'custom',\n      name: 'TDefault',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'OptionalSchema',\n      href: '../OptionalSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        {\n          type: 'custom',\n          name: 'TDefault',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/picklist/index.mdx",
    "content": "---\ntitle: picklist\ndescription: Creates a picklist schema.\nsource: /schemas/picklist/picklist.ts\ncontributors:\n  - fabian-hiller\n  - romansp\n  - sqmasep\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# picklist\n\nCreates a picklist schema.\n\n```ts\nconst Schema = v.picklist<TOptions, TMessage>(options, message);\n```\n\n## Generics\n\n- `TOptions` <Property {...properties.TOptions} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `options` <Property {...properties.options} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `picklist` you can validate that the input corresponds to a picklist option. If the input is invalid, you can use `message` to customize the error message.\n\n> `picklist` works in a similar way to <Link href=\"../enum/\">`enum`</Link>. However, in many cases it is easier to use because you can pass an array of values instead of an enum.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `picklist` can be used.\n\n### Language schema\n\nSchema to validate programming languages.\n\n```ts\nconst LanguageSchema = v.picklist(['JavaScript', 'TypeScript']);\n```\n\n### Country schema\n\nSchema to validate country codes.\n\n```ts\nconst countries = [\n  { name: 'Germany', code: 'DE' },\n  { name: 'France', code: 'FR' },\n  { name: 'United States', code: 'US' },\n] as const;\n\nconst CountrySchema = v.picklist(\n  countries.map((country) => country.code),\n  'Please select your country.'\n);\n```\n\n## Related\n\nThe following APIs can be combined with `picklist`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'flavor',\n    'guard',\n    'metadata',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/picklist/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TOptions: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'PicklistOptions',\n      href: '../PicklistOptions/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'PicklistIssue',\n              href: '../PicklistIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  options: {\n    type: {\n      type: 'custom',\n      name: 'TOptions',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'PicklistSchema',\n      href: '../PicklistSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TOptions',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/promise/index.mdx",
    "content": "---\ntitle: promise\ndescription: Creates a promise schema.\nsource: /schemas/promise/promise.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# promise\n\nCreates a promise schema.\n\n```ts\nconst Schema = v.promise<TMessage>(message);\n```\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `promise` you can validate the data type of the input. If the input is not a promise, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `promise` can be used.\n\n### Number promise\n\nSchema to validate a promise that resolves to a number.\n\n```ts\nconst NumberPromiseSchema = v.pipeAsync(\n  v.promise(),\n  v.awaitAsync(),\n  v.number()\n);\n```\n\n## Related\n\nThe following APIs can be combined with `promise`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'awaitAsync',\n    'check',\n    'brand',\n    'description',\n    'flavor',\n    'guard',\n    'metadata',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/promise/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'PromiseIssue',\n              href: '../PromiseIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'PromiseSchema',\n      href: '../PromiseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/record/index.mdx",
    "content": "---\ntitle: record\ndescription: Creates a record schema.\nsource: /schemas/record/record.ts\ncontributors:\n  - fabian-hiller\n  - muningis\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# record\n\nCreates a record schema.\n\n```ts\nconst Schema = v.record<TKey, TValue, TMessage>(key, value, message);\n```\n\n## Generics\n\n- `TKey` <Property {...properties.TKey} />\n- `TValue` <Property {...properties.TValue} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `key` <Property {...properties.key} />\n- `value` <Property {...properties.value} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `record` you can validate the data type of the input and whether the entries matches `key` and `value`. If the input is not an object, you can use `message` to customize the error message.\n\n> This schema filters certain entries from the record for security reasons.\n\n> This schema marks an entry as optional if it detects that its key is a literal type. The reason for this is that it is not technically possible to detect missing literal keys without restricting the `key` schema to <Link href=\"../string/\">`string`</Link>, <Link href=\"../enum/\">`enum`</Link> and <Link href=\"../picklist/\">`picklist`</Link>. However, if <Link href=\"../enum/\">`enum`</Link> and <Link href=\"../picklist/\">`picklist`</Link> are used, it is better to use <Link href=\"../object/\">`object`</Link> with <Link href=\"../entriesFromList/\">`entriesFromList`</Link> because it already covers the needed functionality. This decision also reduces the bundle size of `record`, because it only needs to check the entries of the input and not any missing keys.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `record` can be used.\n\n### String record schema\n\nSchema to validate a record with strings.\n\n```ts\nconst StringRecordSchema = v.record(\n  v.string(),\n  v.string(),\n  'An object is required.'\n);\n```\n\n### Object record schema\n\nSchema to validate a record of objects.\n\n```ts\nconst ObjectRecordSchema = v.record(v.string(), v.object({ key: v.string() }));\n```\n\n### Picklist as key\n\nSchema to validate a record with specific optional keys.\n\n```ts\nconst ProductRecordSchema = v.record(\n  v.picklist(['product_a', 'product_b', 'product_c']),\n  v.optional(v.number())\n);\n```\n\n### Enum as key\n\nSchema to validate a record with specific optional keys.\n\n```ts\nenum Products {\n  PRODUCT_A = 'product_a',\n  PRODUCT_B = 'product_b',\n  PRODUCT_C = 'product_c',\n}\n\nconst ProductRecordSchema = v.record(v.enum(Products), v.optional(v.number()));\n```\n\n## Related\n\nThe following APIs can be combined with `record`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'entries',\n    'flavor',\n    'guard',\n    'maxEntries',\n    'minEntries',\n    'metadata',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/record/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TKey: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'string',\n        {\n          type: 'union',\n          options: ['string', 'number', 'symbol'],\n        },\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TValue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'RecordIssue',\n              href: '../RecordIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  key: {\n    type: {\n      type: 'custom',\n      name: 'TKey',\n    },\n  },\n  value: {\n    type: {\n      type: 'custom',\n      name: 'TValue',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'RecordSchema',\n      href: '../RecordSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TKey',\n        },\n        {\n          type: 'custom',\n          name: 'TValue',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/set/index.mdx",
    "content": "---\ntitle: set\ndescription: Creates a set schema.\nsource: /schemas/set/set.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# set\n\nCreates a set schema.\n\n```ts\nconst Schema = v.set<TValue, TMessage>(value, message);\n```\n\n## Generics\n\n- `TValue` <Property {...properties.TValue} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `value` <Property {...properties.value} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `set` you can validate the data type of the input and whether the content matches `value`. If the input is not a set, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `set` can be used.\n\n### String set schema\n\nSchema to validate a set with string values.\n\n```ts\nconst StringSetSchema = v.set(v.string());\n```\n\n### Object set schema\n\nSchema to validate a set with object values.\n\n```ts\nconst ObjectSetSchema = v.set(v.object({ key: v.string() }));\n```\n\n## Related\n\nThe following APIs can be combined with `set`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'flavor',\n    'guard',\n    'maxSize',\n    'metadata',\n    'minSize',\n    'notSize',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'size',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/set/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TValue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'SetIssue',\n              href: '../SetIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  value: {\n    type: {\n      type: 'custom',\n      name: 'TValue',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'SetSchema',\n      href: '../SetSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TValue',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/strictObject/index.mdx",
    "content": "---\ntitle: strictObject\ndescription: Creates a strict object schema.\nsource: /schemas/strictObject/strictObject.ts\ncontributors:\n  - fabian-hiller\n  - muningis\n  - kazizi55\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# strictObject\n\nCreates a strict object schema.\n\n```ts\nconst Schema = v.strictObject<TEntries, TMessage>(entries, message);\n```\n\n## Generics\n\n- `TEntries` <Property {...properties.TEntries} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `entries` <Property {...properties.entries} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `strictObject` you can validate the data type of the input and whether the content matches `entries`. If the input is not an object or does include unknown entries, you can use `message` to customize the error message.\n\n> The difference to <Link href=\"../object/\">`object`</Link> is that this schema returns an issue for unknown entries. It intentionally returns only one issue. Otherwise, attackers could send large objects to exhaust device resources. If you want an issue for every unknown key, use the <Link href=\"../objectWithRest/\">`objectWithRest`</Link> schema with <Link href=\"../never/\">`never`</Link> for the `rest` argument.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `strictObject` can be used. Please see the <Link href=\"/guides/objects/\">object guide</Link> for more examples and explanations.\n\n### Simple object schema\n\nSchema to validate a strict object with two keys.\n\n```ts\nconst SimpleObjectSchema = v.strictObject({\n  key1: v.string(),\n  key2: v.number(),\n});\n```\n\n### Merge several objects\n\nSchema that merges the entries of two object schemas.\n\n```ts\nconst MergedObjectSchema = v.strictObject({\n  ...ObjectSchema1.entries,\n  ...ObjectSchema2.entries,\n});\n```\n\n### Mark keys as optional\n\nSchema to validate an object with partial entries.\n\n```ts\nconst PartialObjectSchema = v.partial(\n  v.strictObject({\n    key1: v.string(),\n    key2: v.number(),\n  })\n);\n```\n\n### Object with selected entries\n\nSchema to validate only selected entries of a strict object.\n\n```ts\nconst PickObjectSchema = v.pick(\n  v.strictObject({\n    key1: v.string(),\n    key2: v.number(),\n    key3: v.boolean(),\n  }),\n  ['key1', 'key3']\n);\n```\n\n## Related\n\nThe following APIs can be combined with `strictObject`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'forward',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'keyof',\n    'message',\n    'omit',\n    'parse',\n    'parser',\n    'partial',\n    'pick',\n    'pipe',\n    'required',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'entries',\n    'flavor',\n    'guard',\n    'maxEntries',\n    'metadata',\n    'minEntries',\n    'notEntries',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/strictObject/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TEntries: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ObjectEntries',\n      href: '../ObjectEntries/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'StrictObjectIssue',\n              href: '../StrictObjectIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  entries: {\n    type: {\n      type: 'custom',\n      name: 'TEntries',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'StrictObjectSchema',\n      href: '../StrictObjectSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TEntries',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/strictTuple/index.mdx",
    "content": "---\ntitle: strictTuple\ndescription: Creates a strict tuple schema.\nsource: /schemas/strictTuple/strictTuple.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# strictTuple\n\nCreates a strict tuple schema.\n\n```ts\nconst Schema = v.strictTuple<TItems, TMessage>(items, message);\n```\n\n## Generics\n\n- `TItems` <Property {...properties.TItems} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `items` <Property {...properties.items} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `strictTuple` you can validate the data type of the input and whether the content matches `items`. If the input is not an array or does include unknown items, you can use `message` to customize the error message.\n\n> The difference to <Link href=\"../tuple/\">`tuple`</Link> is that this schema returns an issue for unknown items. It intentionally returns only one issue. Otherwise, attackers could send large arrays to exhaust device resources. If you want an issue for every unknown item, use the <Link href=\"../tupleWithRest/\">`tupleWithRest`</Link> schema with <Link href=\"../never/\">`never`</Link> for the `rest` argument.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `strictTuple` can be used. Please see the <Link href=\"/guides/arrays/\">arrays guide</Link> for more examples and explanations.\n\n### Simple tuple schema\n\nSchema to validate a strict tuple with two items.\n\n```ts\nconst SimpleTupleSchema = v.strictTuple([v.string(), v.number()]);\n```\n\n## Related\n\nThe following APIs can be combined with `strictTuple`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'checkItems',\n    'brand',\n    'description',\n    'empty',\n    'everyItem',\n    'excludes',\n    'filterItems',\n    'findItem',\n    'flavor',\n    'guard',\n    'includes',\n    'length',\n    'mapItems',\n    'maxLength',\n    'metadata',\n    'minLength',\n    'nonEmpty',\n    'notLength',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'reduceItems',\n    'someItem',\n    'sortItems',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/strictTuple/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TItems: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TupleItems',\n      href: '../TupleItems/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'StrictTupleIssue',\n              href: '../StrictTupleIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  items: {\n    type: {\n      type: 'custom',\n      name: 'TItems',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'StrictTupleSchema',\n      href: '../StrictTupleSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TItems',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/string/index.mdx",
    "content": "---\ntitle: string\ndescription: Creates a string schema.\nsource: /schemas/string/string.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n  - morinokami\n  - jasperteo\n  - kazizi55\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# string\n\nCreates a string schema.\n\n```ts\nconst Schema = v.string<TMessage>(message);\n```\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `string` you can validate the data type of the input. If the input is not a string, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `string` can be used.\n\n### Email schema\n\nSchema to validate an email.\n\n```ts\nconst EmailSchema = v.pipe(\n  v.string(),\n  v.nonEmpty('Please enter your email.'),\n  v.email('The email is badly formatted.'),\n  v.maxLength(30, 'Your email is too long.')\n);\n```\n\n### Password schema\n\nSchema to validate a password.\n\n```ts\nconst PasswordSchema = v.pipe(\n  v.string(),\n  v.minLength(8, 'Your password is too short.'),\n  v.maxLength(30, 'Your password is too long.'),\n  v.regex(/[a-z]/, 'Your password must contain a lowercase letter.'),\n  v.regex(/[A-Z]/, 'Your password must contain a uppercase letter.'),\n  v.regex(/[0-9]/, 'Your password must contain a number.')\n);\n```\n\n### URL schema\n\nSchema to validate a URL.\n\n```ts\nconst UrlSchema = v.pipe(\n  v.string('A URL must be string.'),\n  v.url('The URL is badly formatted.')\n);\n```\n\n## Related\n\nThe following APIs can be combined with `string`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'base64',\n    'bic',\n    'brand',\n    'bytes',\n    'creditCard',\n    'cuid2',\n    'check',\n    'decimal',\n    'description',\n    'digits',\n    'domain',\n    'email',\n    'emoji',\n    'empty',\n    'endsWith',\n    'excludes',\n    'flavor',\n    'graphemes',\n    'gtValue',\n    'guard',\n    'hash',\n    'hexadecimal',\n    'hexColor',\n    'imei',\n    'includes',\n    'ip',\n    'ipv4',\n    'ipv6',\n    'isbn',\n    'isrc',\n    'isoDate',\n    'isoDateTime',\n    'isoTime',\n    'isoTimeSecond',\n    'isoTimestamp',\n    'isoWeek',\n    'json',\n    'length',\n    'ltValue',\n    'mac',\n    'mac48',\n    'mac64',\n    'maxBytes',\n    'maxGraphemes',\n    'maxLength',\n    'maxValue',\n    'maxWords',\n    'metadata',\n    'minBytes',\n    'minGraphemes',\n    'minLength',\n    'minValue',\n    'minWords',\n    'nanoid',\n    'nonEmpty',\n    'notBytes',\n    'notEntries',\n    'notGraphemes',\n    'notLength',\n    'notValue',\n    'notValues',\n    'notWords',\n    'octal',\n    'parseJson',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'regex',\n    'rfcEmail',\n    'slug',\n    'startsWith',\n    'stringifyJson',\n    'title',\n    'toBigint',\n    'toBoolean',\n    'toDate',\n    'toLowerCase',\n    'toMaxValue',\n    'toMinValue',\n    'toNumber',\n    'toUpperCase',\n    'transform',\n    'trim',\n    'trimEnd',\n    'trimStart',\n    'ulid',\n    'url',\n    'uuid',\n    'value',\n    'values',\n    'words',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/string/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'StringIssue',\n              href: '../StringIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'StringSchema',\n      href: '../StringSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/symbol/index.mdx",
    "content": "---\ntitle: symbol\ndescription: Creates a symbol schema.\nsource: /schemas/symbol/symbol.ts\ncontributors:\n  - fabian-hiller\n  - wout-junius\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# symbol\n\nCreates a symbol schema.\n\n```ts\nconst Schema = v.symbol<TMessage>(message);\n```\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `symbol` you can validate the data type of the input. If it is not a symbol, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `symbol` can be used.\n\n### Custom message\n\nSymbol schema with a custom error message.\n\n```ts\nconst schema = v.symbol('A symbol is required');\n```\n\n## Related\n\nThe following APIs can be combined with `symbol`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'flavor',\n    'guard',\n    'metadata',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/symbol/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'SymbolIssue',\n              href: '../SymbolIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'SymbolSchema',\n      href: '../SymbolSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/tuple/index.mdx",
    "content": "---\ntitle: tuple\ndescription: Creates a tuple schema.\nsource: /schemas/tuple/tuple.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# tuple\n\nCreates a tuple schema.\n\n```ts\nconst Schema = v.tuple<TItems, TMessage>(items, message);\n```\n\n## Generics\n\n- `TItems` <Property {...properties.TItems} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `items` <Property {...properties.items} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `tuple` you can validate the data type of the input and whether the content matches `items`. If the input is not an array, you can use `message` to customize the error message.\n\n> This schema removes unknown items. The output will only include the items you specify. To include unknown items, use <Link href=\"../looseTuple/\">`looseTuple`</Link>. To return an issue for unknown items, use <Link href=\"../strictTuple/\">`strictTuple`</Link>. To include and validate unknown items, use <Link href=\"../tupleWithRest/\">`tupleWithRest`</Link>.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `tuple` can be used. Please see the <Link href=\"/guides/arrays/\">arrays guide</Link> for more examples and explanations.\n\n### Simple tuple schema\n\nSchema to validate a tuple with two items.\n\n```ts\nconst SimpleTupleSchema = v.tuple([v.string(), v.number()]);\n```\n\n## Related\n\nThe following APIs can be combined with `tuple`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'checkItems',\n    'brand',\n    'description',\n    'empty',\n    'everyItem',\n    'excludes',\n    'filterItems',\n    'findItem',\n    'flavor',\n    'guard',\n    'includes',\n    'length',\n    'mapItems',\n    'maxLength',\n    'metadata',\n    'minLength',\n    'nonEmpty',\n    'notLength',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'reduceItems',\n    'someItem',\n    'sortItems',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/tuple/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TItems: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TupleItems',\n      href: '../TupleItems/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleIssue',\n              href: '../TupleIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  items: {\n    type: {\n      type: 'custom',\n      name: 'TItems',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'TupleSchema',\n      href: '../TupleSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TItems',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/tupleWithRest/index.mdx",
    "content": "---\ntitle: tupleWithRest\ndescription: Creates a tuple with rest schema.\nsource: /schemas/tupleWithRest/tupleWithRest.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# tupleWithRest\n\nCreates a tuple with rest schema.\n\n```ts\nconst Schema = v.tupleWithRest<TItems, TRest, TMessage>(items, rest, message);\n```\n\n## Generics\n\n- `TItems` <Property {...properties.TItems} />\n- `TRest` <Property {...properties.TRest} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `items` <Property {...properties.items} />\n- `rest` <Property {...properties.rest} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `tupleWithRest` you can validate the data type of the input and whether the content matches `items` and `rest`. If the input is not an array, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `tupleWithRest` can be used. Please see the <Link href=\"/guides/arrays/\">arrays guide</Link> for more examples and explanations.\n\n### Tuple schema with rest\n\nSchema to validate a tuple with generic rest items.\n\n```ts\nconst TupleSchemaWithRest = v.tupleWithRest(\n  [v.string(), v.number()],\n  v.boolean()\n);\n```\n\n## Related\n\nThe following APIs can be combined with `tupleWithRest`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'checkItems',\n    'brand',\n    'description',\n    'empty',\n    'everyItem',\n    'excludes',\n    'filterItems',\n    'findItem',\n    'flavor',\n    'guard',\n    'includes',\n    'length',\n    'mapItems',\n    'maxLength',\n    'metadata',\n    'minLength',\n    'nonEmpty',\n    'notLength',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'reduceItems',\n    'someItem',\n    'sortItems',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/tupleWithRest/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TItems: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TupleItems',\n      href: '../TupleItems/',\n    },\n  },\n  TRest: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleWithRestIssue',\n              href: '../TupleWithRestIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  items: {\n    type: {\n      type: 'custom',\n      name: 'TItems',\n    },\n  },\n  rest: {\n    type: {\n      type: 'custom',\n      name: 'TRest',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'TupleWithRestSchema',\n      href: '../TupleWithRestSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TItems',\n        },\n        {\n          type: 'custom',\n          name: 'TRest',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/undefined/index.mdx",
    "content": "---\ntitle: undefined\ndescription: Creates an undefined schema.\nsource: /schemas/undefined/undefined.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# undefined\n\nCreates an undefined schema.\n\n```ts\nconst Schema = v.undefined<TMessage>(message);\n```\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `undefined` you can validate the data type of the input and if it is not `undefined`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Related\n\nThe following APIs can be combined with `undefined`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'flavor',\n    'guard',\n    'metadata',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/undefined/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'UndefinedIssue',\n              href: '../UndefinedIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'UndefinedSchema',\n      href: '../UndefinedSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/undefinedable/index.mdx",
    "content": "---\ntitle: undefinedable\ndescription: Creates an undefinedable schema.\nsource: /schemas/undefinedable/undefinedable.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# undefinedable\n\nCreates an undefinedable schema.\n\n```ts\nconst Schema = v.undefinedable<TWrapped, TDefault>(wrapped, default_);\n```\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TDefault` <Property {...properties.TDefault} />\n\n## Parameters\n\n- `wrapped` <Property {...properties.wrapped} />\n- `default_` {/* prettier-ignore */}<Property {...properties.default_} />\n\n### Explanation\n\nWith `undefinedable` the validation of your schema will pass `undefined` inputs, and if you specify a `default_` input value, the schema will use it if the input is `undefined`. For this reason, the output type may differ from the input type of the schema.\n\n> `undefinedable` behaves exactly the same as <Link href=\"../optional/\">`optional`</Link> at runtime. The only difference is the input and output type when used for object entries. While <Link href=\"../optional/\">`optional`</Link> adds a question mark to the key, `undefinedable` does not.\n\n> Note that `undefinedable` does not accept `null` as an input. If you want to accept `null` inputs, use <Link href=\"../nullable/\">`nullable`</Link>, and if you want to accept `null` and `undefined` inputs, use <Link href=\"../nullish/\">`nullish`</Link> instead. Also, if you want to set a default output value for any invalid input, you should use <Link href=\"../fallback/\">`fallback`</Link> instead.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `undefinedable` can be used.\n\n### Undefinedable string schema\n\nSchema that accepts `string` and `undefined`.\n\n```ts\nconst UndefinedableStringSchema = v.undefinedable(\n  v.string(),\n  \"I'm the default!\"\n);\n```\n\n### Undefinedable date schema\n\nSchema that accepts [`Date`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) and `undefined`.\n\n> By using a function as the `default_` parameter, the schema will return a new [`Date`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) instance each time the input is `undefined`.\n\n```ts\nconst UndefinedableDateSchema = v.undefinedable(v.date(), () => new Date());\n```\n\n### Undefinedable entry schema\n\nObject schema with an undefinedable entry.\n\n```ts\nconst UndefinedableEntrySchema = v.object({\n  key: v.undefinedable(v.string()),\n});\n```\n\n### Unwrap undefinedable schema\n\nUse <Link href=\"../unwrap/\">`unwrap`</Link> to undo the effect of `undefinedable`.\n\n```ts\nconst UndefinedableNumberSchema = v.undefinedable(v.number());\nconst NumberSchema = v.unwrap(UndefinedableNumberSchema);\n```\n\n## Related\n\nThe following APIs can be combined with `undefinedable`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonUndefinedable',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n    'unwrap',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'flavor',\n    'guard',\n    'metadata',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/undefinedable/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TDefault: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Default',\n      href: '../Default/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        'undefined',\n      ],\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  default_: {\n    type: {\n      type: 'custom',\n      name: 'TDefault',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'UndefinedableSchema',\n      href: '../UndefinedableSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        {\n          type: 'custom',\n          name: 'TDefault',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/union/index.mdx",
    "content": "---\ntitle: union\ndescription: Creates an union schema.\nsource: /schemas/union/union.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n  - morinokami\n  - thundermiracle\n---\n\nimport { ApiList, Link, Property } from '~/components';\nimport { properties } from './properties';\n\n# union\n\nCreates an union schema.\n\n> I recommend that you read the <Link href=\"/guides/unions/\">unions guide</Link> before using this schema function.\n\n```ts\nconst Schema = v.union<TOptions, TMessage>(options, message);\n```\n\n## Generics\n\n- `TOptions` <Property {...properties.TOptions} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `options` <Property {...properties.options} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `union` you can validate if the input matches one of the given `options`. If the input does not match a schema and cannot be clearly assigned to one of the options, you can use `message` to customize the error message.\n\nIf a bad input can be uniquely assigned to one of the schemas based on the data type, the result of that schema is returned. Otherwise, a general issue is returned that contains the issues of each schema as subissues. This is a special case within the library, as the issues of `union` can contradict each other.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `union` can be used.\n\n### URL schema\n\nSchema to validate an URL or empty string.\n\n```ts\nconst UrlSchema = v.union([v.pipe(v.string(), v.url()), v.literal('')]);\n```\n\n### Number schema\n\nSchema to validate a number or decimal string.\n\n```ts\nconst NumberSchema = v.union([v.number(), v.pipe(v.string(), v.decimal())]);\n```\n\n### Date schema\n\nSchema to validate a `Date` or ISO timestamp.\n\n```ts\nconst DateSchema = v.union([v.date(), v.pipe(v.string(), v.isoTimestamp())]);\n```\n\n## Related\n\nThe following APIs can be combined with `union`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'args',\n    'base64',\n    'bic',\n    'brand',\n    'bytes',\n    'check',\n    'checkItems',\n    'creditCard',\n    'cuid2',\n    'decimal',\n    'description',\n    'digits',\n    'domain',\n    'email',\n    'emoji',\n    'empty',\n    'endsWith',\n    'entries',\n    'everyItem',\n    'excludes',\n    'filterItems',\n    'findItem',\n    'finite',\n    'flavor',\n    'graphemes',\n    'gtValue',\n    'guard',\n    'hash',\n    'hexadecimal',\n    'hexColor',\n    'imei',\n    'includes',\n    'integer',\n    'ip',\n    'ipv4',\n    'ipv6',\n    'isbn',\n    'isrc',\n    'isoDate',\n    'isoDateTime',\n    'isoTime',\n    'isoTimeSecond',\n    'isoTimestamp',\n    'isoWeek',\n    'length',\n    'ltValue',\n    'mac',\n    'mac48',\n    'mac64',\n    'mapItems',\n    'maxBytes',\n    'maxEntries',\n    'maxGraphemes',\n    'maxLength',\n    'maxSize',\n    'maxValue',\n    'maxWords',\n    'metadata',\n    'mimeType',\n    'minBytes',\n    'minEntries',\n    'minGraphemes',\n    'minLength',\n    'minSize',\n    'minValue',\n    'minWords',\n    'multipleOf',\n    'nanoid',\n    'nonEmpty',\n    'notBytes',\n    'notEntries',\n    'notGraphemes',\n    'notLength',\n    'notSize',\n    'notValue',\n    'notValues',\n    'notWords',\n    'octal',\n    'parseJson',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'reduceItems',\n    'regex',\n    'returns',\n    'rfcEmail',\n    'safeInteger',\n    'size',\n    'slug',\n    'someItem',\n    'sortItem',\n    'startsWith',\n    'stringifyJson',\n    'title',\n    'toLowerCase',\n    'toMaxValue',\n    'toMinValue',\n    'toUpperCase',\n    'transform',\n    'trim',\n    'trimEnd',\n    'trimStart',\n    'ulid',\n    'url',\n    'uuid',\n    'value',\n    'values',\n    'words',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/union/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TOptions: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'UnionOptions',\n      href: '../UnionOptions/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'UnionIssue',\n              href: '../UnionIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'InferIssue',\n                  href: '../InferIssue/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'TOptions',\n                      indexes: ['number'],\n                    },\n                  ],\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  options: {\n    type: {\n      type: 'custom',\n      name: 'TOptions',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'UnionSchema',\n      href: '../UnionSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TOptions',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/unknown/index.mdx",
    "content": "---\ntitle: unknown\ndescription: Creates an unknown schema.\nsource: /schemas/unknown/unknown.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n  - vladshcherbin\n  - jasperteo\n  - morinokami\n  - mwskwong\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# unknown\n\nCreates an unknown schema.\n\n> Use this schema function only if the data is truly unknown. Otherwise, use the other more specific schema functions that describe the data exactly.\n\n```ts\nconst Schema = v.unknown();\n```\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Related\n\nThe following APIs can be combined with `unknown`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'args',\n    'base64',\n    'bic',\n    'brand',\n    'bytes',\n    'check',\n    'checkItems',\n    'creditCard',\n    'cuid2',\n    'decimal',\n    'description',\n    'digits',\n    'domain',\n    'email',\n    'emoji',\n    'empty',\n    'endsWith',\n    'entries',\n    'everyItem',\n    'excludes',\n    'filterItems',\n    'findItem',\n    'finite',\n    'flavor',\n    'graphemes',\n    'gtValue',\n    'hash',\n    'hexadecimal',\n    'hexColor',\n    'imei',\n    'includes',\n    'integer',\n    'ip',\n    'ipv4',\n    'ipv6',\n    'isbn',\n    'isrc',\n    'isoDate',\n    'isoDateTime',\n    'isoTime',\n    'isoTimeSecond',\n    'isoTimestamp',\n    'isoWeek',\n    'length',\n    'ltValue',\n    'mac',\n    'mac48',\n    'mac64',\n    'mapItems',\n    'maxBytes',\n    'maxEntries',\n    'maxGraphemes',\n    'maxLength',\n    'maxSize',\n    'maxValue',\n    'maxWords',\n    'metadata',\n    'mimeType',\n    'minBytes',\n    'minEntries',\n    'minGraphemes',\n    'minLength',\n    'minSize',\n    'minValue',\n    'minWords',\n    'multipleOf',\n    'nanoid',\n    'nonEmpty',\n    'notBytes',\n    'notEntries',\n    'notGraphemes',\n    'notLength',\n    'notSize',\n    'notValue',\n    'notValues',\n    'notWords',\n    'octal',\n    'parseJson',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'reduceItems',\n    'regex',\n    'returns',\n    'rfcEmail',\n    'safeInteger',\n    'size',\n    'slug',\n    'someItem',\n    'sortItem',\n    'startsWith',\n    'stringifyJson',\n    'title',\n    'toBigint',\n    'toBoolean',\n    'toDate',\n    'toLowerCase',\n    'toMaxValue',\n    'toMinValue',\n    'toNumber',\n    'toString',\n    'toUpperCase',\n    'transform',\n    'trim',\n    'trimEnd',\n    'trimStart',\n    'ulid',\n    'url',\n    'uuid',\n    'value',\n    'values',\n    'words',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/unknown/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'UnknownSchema',\n      href: '../UnknownSchema/',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/variant/index.mdx",
    "content": "---\ntitle: variant\ndescription: Creates a variant schema.\nsource: /schemas/variant/variant.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# variant\n\nCreates a variant schema.\n\n```ts\nconst Schema = v.variant<TKey, TOptions, TMessage>(key, options, message);\n```\n\n## Generics\n\n- `TKey` <Property {...properties.TKey} />\n- `TOptions` <Property {...properties.TOptions} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `key` <Property {...properties.key} />\n- `options` <Property {...properties.options} />\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `variant` you can validate if the input matches one of the given object `options`. The object schema to be used for the validation is determined by the discriminator `key`. If the input does not match a schema and cannot be clearly assigned to one of the options, you can use `message` to customize the error message.\n\n> It is allowed to specify the exact same or a similar discriminator multiple times. However, in such cases `variant` will only return the output of the first untyped or typed variant option result. Typed results take precedence over untyped ones.\n\n> For deeply nested `variant` schemas with several different discriminator keys, `variant` will return an issue for the first most likely object schemas on invalid input. The order of the discriminator keys and the presence of a discriminator in the input are taken into account.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Examples\n\nThe following examples show how `variant` can be used.\n\n### Variant schema\n\nSchema to validate an email, URL or date variant.\n\n```ts\nconst VariantSchema = v.variant('type', [\n  v.object({\n    type: v.literal('email'),\n    email: v.pipe(v.string(), v.email()),\n  }),\n  v.object({\n    type: v.literal('url'),\n    url: v.pipe(v.string(), v.url()),\n  }),\n  v.object({\n    type: v.literal('date'),\n    date: v.pipe(v.string(), v.isoDate()),\n  }),\n]);\n```\n\n### Nested variant schema\n\nYou can also nest `variant` schemas.\n\n```ts\nconst NestedVariantSchema = v.variant('type', [\n  VariantSchema,\n  v.object({\n    type: v.literal('color'),\n    date: v.pipe(v.string(), v.hexColor()),\n  }),\n]);\n```\n\n### Complex variant schema\n\nYou can also use `variant` to validate complex objects with multiple different discriminator keys.\n\n```ts\nconst ComplexVariantSchema = v.variant('kind', [\n  v.variant('type', [\n    v.object({\n      kind: v.literal('fruit'),\n      type: v.literal('apple'),\n      item: v.object({ … }),\n    }),\n    v.object({\n      kind: v.literal('fruit'),\n      type: v.literal('banana'),\n      item: v.object({ … }),\n    }),\n  ]),\n  v.variant('type', [\n    v.object({\n      kind: v.literal('vegetable'),\n      type: v.literal('carrot'),\n      item: v.object({ … }),\n    }),\n    v.object({\n      kind: v.literal('vegetable'),\n      type: v.literal('tomato'),\n      item: v.object({ … }),\n    }),\n  ]),\n]);\n```\n\n## Related\n\nThe following APIs can be combined with `variant`.\n\n### Schemas\n\n<ApiList items={['object']} />\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'entries',\n    'flavor',\n    'guard',\n    'maxEntries',\n    'metadata',\n    'minEntries',\n    'notEntries',\n    'partialCheck',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n\n### Utils\n\n<ApiList items={['entriesFromList', 'isOfKind', 'isOfType']} />\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/variant/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TKey: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TOptions: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'VariantOptions',\n      href: '../VariantOptions/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TKey',\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'VariantIssue',\n              href: '../VariantIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  key: {\n    type: {\n      type: 'custom',\n      name: 'TKey',\n    },\n  },\n  options: {\n    type: {\n      type: 'custom',\n      name: 'TOptions',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'VariantSchema',\n      href: '../VariantSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TKey',\n        },\n        {\n          type: 'custom',\n          name: 'TOptions',\n        },\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/void/index.mdx",
    "content": "---\ntitle: void\ndescription: Creates a void schema.\nsource: /schemas/void/void.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# void\n\nCreates a void schema.\n\n```ts\nconst Schema = v.void<TMessage>(message);\n```\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n\n### Explanation\n\nWith `void` you can validate the data type of the input and if it is not `undefined`, you can use `message` to customize the error message.\n\n## Returns\n\n- `Schema` <Property {...properties.Schema} />\n\n## Related\n\nThe following APIs can be combined with `void`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'array',\n    'exactOptional',\n    'intersect',\n    'lazy',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'object',\n    'objectWithRest',\n    'optional',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n    'undefinedable',\n    'union',\n  ]}\n/>\n\n### Methods\n\n<ApiList\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'getDefault',\n    'getDefaults',\n    'getFallback',\n    'getFallbacks',\n    'is',\n    'message',\n    'parse',\n    'parser',\n    'pipe',\n    'safeParse',\n    'safeParser',\n  ]}\n/>\n\n### Actions\n\n<ApiList\n  items={[\n    'check',\n    'brand',\n    'description',\n    'flavor',\n    'guard',\n    'metadata',\n    'rawCheck',\n    'rawTransform',\n    'readonly',\n    'title',\n    'transform',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(schemas)/void/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'VoidIssue',\n              href: '../VoidIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n  Schema: {\n    type: {\n      type: 'custom',\n      name: 'VoidSchema',\n      href: '../VoidSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TMessage',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(storages)/deleteGlobalConfig/index.mdx",
    "content": "---\ntitle: deleteGlobalConfig\ndescription: Deletes the global configuration.\nsource: /storages/globalConfig/globalConfig.ts\ncontributors:\n  - fabian-hiller\n---\n\n# deleteGlobalConfig\n\nDeletes the global configuration.\n\n```ts\nv.deleteGlobalConfig();\n```\n"
  },
  {
    "path": "website/src/routes/api/(storages)/deleteGlobalMessage/index.mdx",
    "content": "---\ntitle: deleteGlobalMessage\ndescription: Deletes a global error message.\nsource: /storages/globalMessage/globalMessage.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# deleteGlobalMessage\n\nDeletes a global error message.\n\n```ts\nv.deleteGlobalMessage(lang);\n```\n\n## Parameters\n\n- `lang` <Property {...properties.lang} />\n"
  },
  {
    "path": "website/src/routes/api/(storages)/deleteGlobalMessage/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  lang: {\n    type: {\n      type: 'union',\n      options: ['string', 'undefined'],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(storages)/deleteSchemaMessage/index.mdx",
    "content": "---\ntitle: deleteSchemaMessage\ndescription: Deletes a schema error message.\nsource: /storages/schemaMessage/schemaMessage.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# deleteSchemaMessage\n\nDeletes a schema error message.\n\n```ts\nv.deleteSchemaMessage(lang);\n```\n\n## Parameters\n\n- `lang` <Property {...properties.lang} />\n"
  },
  {
    "path": "website/src/routes/api/(storages)/deleteSchemaMessage/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  lang: {\n    type: {\n      type: 'union',\n      options: ['string', 'undefined'],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(storages)/deleteSpecificMessage/index.mdx",
    "content": "---\ntitle: deleteSpecificMessage\ndescription: Deletes a specific error message.\nsource: /storages/specificMessage/specificMessage.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# deleteSpecificMessage\n\nDeletes a specific error message.\n\n```ts\nv.deleteSpecificMessage(reference, lang);\n```\n\n## Parameters\n\n- `reference` <Property {...properties.reference} />\n- `lang` <Property {...properties.lang} />\n"
  },
  {
    "path": "website/src/routes/api/(storages)/deleteSpecificMessage/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  reference: {\n    type: {\n      type: 'custom',\n      name: 'Reference',\n      href: '../Reference/',\n    },\n  },\n  lang: {\n    type: {\n      type: 'union',\n      options: ['string', 'undefined'],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(storages)/getGlobalConfig/index.mdx",
    "content": "---\ntitle: getGlobalConfig\ndescription: Returns the global configuration.\nsource: /storages/globalConfig/globalConfig.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# getGlobalConfig\n\nReturns the global configuration.\n\n```ts\nconst config = v.getGlobalConfig<TIssue>(merge);\n```\n\n## Generics\n\n- `TIssue` <Property {...properties.TIssue} />\n\n## Parameters\n\n- `merge` <Property {...properties.merge} />\n\n### Explanation\n\nProperties that you want to explicitly override can be optionally specified with `merge`.\n\n## Returns\n\n- `config` <Property {...properties.config} />\n"
  },
  {
    "path": "website/src/routes/api/(storages)/getGlobalConfig/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../types/',\n      generics: ['unknown'],\n    },\n  },\n  merge: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'Config',\n          href: '../Config/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TIssue',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  config: {\n    type: {\n      type: 'custom',\n      name: 'Config',\n      href: '../Config/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TIssue',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(storages)/getGlobalMessage/index.mdx",
    "content": "---\ntitle: getGlobalMessage\ndescription: Returns a global error message.\nsource: /storages/globalMessage/globalMessage.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# getGlobalMessage\n\nReturns a global error message.\n\n```ts\nconst message = v.getGlobalMessage(lang);\n```\n\n## Parameters\n\n- `lang` <Property {...properties.lang} />\n\n## Returns\n\n- `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(storages)/getGlobalMessage/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  lang: {\n    type: {\n      type: 'union',\n      options: ['string', 'undefined'],\n    },\n  },\n  message: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(storages)/getSchemaMessage/index.mdx",
    "content": "---\ntitle: getSchemaMessage\ndescription: Returns a schema error message.\nsource: /storages/schemaMessage/schemaMessage.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# getSchemaMessage\n\nReturns a schema error message.\n\n```ts\nconst message = v.getSchemaMessage(lang);\n```\n\n## Parameters\n\n- `lang` <Property {...properties.lang} />\n\n## Returns\n\n- `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(storages)/getSchemaMessage/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  lang: {\n    type: {\n      type: 'union',\n      options: ['string', 'undefined'],\n    },\n  },\n  message: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(storages)/getSpecificMessage/index.mdx",
    "content": "---\ntitle: getSpecificMessage\ndescription: Returns a specific error message.\nsource: /storages/specificMessage/specificMessage.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# getSpecificMessage\n\nReturns a specific error message.\n\n```ts\nconst message = v.getSpecificMessage(reference, lang);\n```\n\n## Parameters\n\n- `reference` <Property {...properties.reference} />\n- `lang` <Property {...properties.lang} />\n\n## Returns\n\n- `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(storages)/getSpecificMessage/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  reference: {\n    type: {\n      type: 'custom',\n      name: 'Reference',\n      href: '../Reference/',\n    },\n  },\n  lang: {\n    type: {\n      type: 'union',\n      options: ['string', 'undefined'],\n    },\n  },\n  message: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(storages)/setGlobalConfig/index.mdx",
    "content": "---\ntitle: setGlobalConfig\ndescription: Sets the global configuration.\nsource: /storages/globalConfig/globalConfig.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# setGlobalConfig\n\nSets the global configuration.\n\n```ts\nv.setGlobalConfig(merge);\n```\n\n## Parameters\n\n- `config` <Property {...properties.config} />\n\n### Explanation\n\nThe properties specified by `config` are merged with the existing global configuration. If a property is already set, it will be overwritten.\n"
  },
  {
    "path": "website/src/routes/api/(storages)/setGlobalConfig/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  config: {\n    type: {\n      type: 'custom',\n      name: 'GlobalConfig',\n      href: '../GlobalConfig/',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(storages)/setGlobalMessage/index.mdx",
    "content": "---\ntitle: setGlobalMessage\ndescription: Sets a global error message.\nsource: /storages/globalMessage/globalMessage.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# setGlobalMessage\n\nSets a global error message.\n\n```ts\nv.setGlobalMessage(message, lang);\n```\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n- `lang` <Property {...properties.lang} />\n"
  },
  {
    "path": "website/src/routes/api/(storages)/setGlobalMessage/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  message: {\n    type: {\n      type: 'custom',\n      name: 'ErrorMessage',\n      href: '../ErrorMessage/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  lang: {\n    type: {\n      type: 'union',\n      options: ['string', 'undefined'],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(storages)/setSchemaMessage/index.mdx",
    "content": "---\ntitle: setSchemaMessage\ndescription: Sets a schema error message.\nsource: /storages/schemaMessage/schemaMessage.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# setSchemaMessage\n\nSets a schema error message.\n\n```ts\nv.setSchemaMessage(message, lang);\n```\n\n## Parameters\n\n- `message` <Property {...properties.message} />\n- `lang` <Property {...properties.lang} />\n"
  },
  {
    "path": "website/src/routes/api/(storages)/setSchemaMessage/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  message: {\n    type: {\n      type: 'custom',\n      name: 'ErrorMessage',\n      href: '../ErrorMessage/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  lang: {\n    type: {\n      type: 'union',\n      options: ['string', 'undefined'],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(storages)/setSpecificMessage/index.mdx",
    "content": "---\ntitle: setSpecificMessage\ndescription: Sets a specific error message.\nsource: /storages/specificMessage/specificMessage.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# setSpecificMessage\n\nSets a specific error message.\n\n```ts\nv.setSpecificMessage<TReference>(reference, message, lang);\n```\n\n## Generics\n\n- `TReference` <Property {...properties.TReference} />\n\n## Parameters\n\n- `reference` <Property {...properties.reference} />\n- `message` <Property {...properties.message} />\n- `lang` <Property {...properties.lang} />\n"
  },
  {
    "path": "website/src/routes/api/(storages)/setSpecificMessage/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TReference: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Reference',\n      href: '../Reference/',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      name: 'TReference',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'ErrorMessage',\n      href: '../ErrorMessage/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferIssue',\n          href: '../InferIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ReturnType',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TReference',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  lang: {\n    type: {\n      type: 'union',\n      options: ['string', 'undefined'],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/AnySchema/index.mdx",
    "content": "---\ntitle: AnySchema\ndescription: Any schema interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# AnySchema\n\nAny schema interface.\n\n## Definition\n\n- `AnySchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/AnySchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: ['any', 'any', 'never'],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'any',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'any',\n      href: '../any/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'any',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ArgsAction/index.mdx",
    "content": "---\ntitle: ArgsAction\ndescription: Args action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ArgsAction\n\nArgs action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TSchema` <Property {...properties.TSchema} />\n\n## Definition\n\n- `ArgsAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `schema` <Property {...properties.schema} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ArgsAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'function',\n      params: [\n        {\n          spread: true,\n          name: 'args',\n          type: {\n            type: 'array',\n            item: 'any',\n          },\n        },\n      ],\n      return: 'unknown',\n    },\n  },\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'LooseTupleSchema',\n          href: '../LooseTupleSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleItems',\n              href: '../TupleItems/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'LooseTupleIssue',\n                      href: '../LooseTupleIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'StrictTupleSchema',\n          href: '../StrictTupleSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleItems',\n              href: '../TupleItems/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'StrictTupleIssue',\n                      href: '../StrictTupleIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'TupleSchema',\n          href: '../TupleSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleItems',\n              href: '../TupleItems/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'TupleIssue',\n                      href: '../TupleIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'TupleWithRestSchema',\n          href: '../TupleWithRestSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleItems',\n              href: '../TupleItems/',\n            },\n            {\n              type: 'custom',\n              name: 'BaseSchema',\n              href: '../BaseSchema/',\n              generics: [\n                'unknown',\n                'unknown',\n                {\n                  type: 'custom',\n                  name: 'BaseIssue',\n                  href: '../BaseIssue/',\n                  generics: ['unknown'],\n                },\n              ],\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'TupleWithRestIssue',\n                      href: '../TupleWithRestIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'function',\n          params: [\n            {\n              spread: true,\n              name: 'args',\n              type: {\n                type: 'custom',\n                name: 'InferInput',\n                href: '../InferInput/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TSchema',\n                  },\n                ],\n              },\n            },\n          ],\n          return: {\n            type: 'custom',\n            name: 'ReturnType',\n            generics: [\n              {\n                type: 'custom',\n                name: 'TInput',\n              },\n            ],\n          },\n        },\n        'never',\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'args',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'args',\n      href: '../args/',\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ArgsActionAsync/index.mdx",
    "content": "---\ntitle: ArgsActionAsync\ndescription: Args action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ArgsActionAsync\n\nArgs action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TSchema` <Property {...properties.TSchema} />\n\n## Definition\n\n- `ArgsActionAsync` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `schema` <Property {...properties.schema} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ArgsActionAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'function',\n      params: [\n        {\n          spread: true,\n          name: 'args',\n          type: {\n            type: 'array',\n            item: 'any',\n          },\n        },\n      ],\n      return: 'unknown',\n    },\n  },\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'LooseTupleSchema',\n          href: '../LooseTupleSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleItems',\n              href: '../TupleItems/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'LooseTupleIssue',\n                      href: '../LooseTupleIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'LooseTupleSchemaAsync',\n          href: '../LooseTupleSchemaAsync/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleItemsAsync',\n              href: '../TupleItemsAsync/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'LooseTupleIssue',\n                      href: '../LooseTupleIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'StrictTupleSchema',\n          href: '../StrictTupleSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleItems',\n              href: '../TupleItems/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'StrictTupleIssue',\n                      href: '../StrictTupleIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'StrictTupleSchemaAsync',\n          href: '../StrictTupleSchemaAsync/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleItemsAsync',\n              href: '../TupleItemsAsync/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'StrictTupleIssue',\n                      href: '../StrictTupleIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'TupleSchema',\n          href: '../TupleSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleItems',\n              href: '../TupleItems/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'TupleIssue',\n                      href: '../TupleIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'TupleSchemaAsync',\n          href: '../TupleSchemaAsync/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleItemsAsync',\n              href: '../TupleItemsAsync/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'TupleIssue',\n                      href: '../TupleIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'TupleWithRestSchema',\n          href: '../TupleWithRestSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleItems',\n              href: '../TupleItems/',\n            },\n            {\n              type: 'custom',\n              name: 'BaseSchema',\n              href: '../BaseSchema/',\n              generics: [\n                'unknown',\n                'unknown',\n                {\n                  type: 'custom',\n                  name: 'BaseIssue',\n                  href: '../BaseIssue/',\n                  generics: ['unknown'],\n                },\n              ],\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'TupleWithRestIssue',\n                      href: '../TupleWithRestIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'TupleWithRestSchemaAsync',\n          href: '../TupleWithRestSchemaAsync/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleItemsAsync',\n              href: '../TupleItemsAsync/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'BaseSchema',\n                  href: '../BaseSchema/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n                {\n                  type: 'custom',\n                  name: 'BaseSchemaAsync',\n                  href: '../BaseSchemaAsync/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'TupleWithRestIssue',\n                      href: '../TupleWithRestIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'function',\n          params: [\n            {\n              spread: true,\n              name: 'args',\n              type: {\n                type: 'custom',\n                name: 'InferInput',\n                href: '../InferInput/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TSchema',\n                  },\n                ],\n              },\n            },\n          ],\n          return: {\n            type: 'custom',\n            name: 'Promise',\n            generics: [\n              {\n                type: 'custom',\n                name: 'Awaited',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'ReturnType',\n                    generics: [\n                      {\n                        type: 'custom',\n                        name: 'TInput',\n                      },\n                    ],\n                  },\n                ],\n              },\n            ],\n          },\n        },\n        'never',\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'args',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'argsAsync',\n      href: '../argsAsync/',\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ArrayInput/index.mdx",
    "content": "---\ntitle: ArrayInput\ndescription: Array input type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ArrayInput\n\nArray input type.\n\n## Definition\n\n- `ArrayInput` <Property {...properties.ArrayInput} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ArrayInput/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  ArrayInput: {\n    type: {\n      type: 'custom',\n      name: 'MaybeReadonly',\n      href: '../MaybeReadonly/',\n      generics: [\n        {\n          type: 'array',\n          item: 'unknown',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ArrayIssue/index.mdx",
    "content": "---\ntitle: ArrayIssue\ndescription: Array issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ArrayIssue\n\nArray issue interface.\n\n## Definition\n\n- `ArrayIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ArrayIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'array',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: 'Array',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ArrayPathItem/index.mdx",
    "content": "---\ntitle: ArrayPathItem\ndescription: Array path item interface.\ncontributors:\n  - fabian-hiller\n  - kazizi55\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ArrayPathItem\n\nArray path item interface.\n\n## Definition\n\n- `ArrayPathItem`\n  - `type` <Property {...properties.type} />\n  - `origin` <Property {...properties.origin} />\n  - `input` <Property {...properties.input} />\n  - `key` <Property type=\"number\" />\n  - `value` <Property type=\"unknown\" />\n\nThe `input` of a path item may differ from the `input` of its issue. This is because path items are subsequently added by parent schemas and are related to their input. Transformations of child schemas are not taken into account.\n"
  },
  {
    "path": "website/src/routes/api/(types)/ArrayPathItem/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  type: {\n    type: {\n      type: 'string',\n      value: 'array',\n    },\n  },\n  origin: {\n    type: {\n      type: 'string',\n      value: 'value',\n    },\n  },\n  input: {\n    type: {\n      type: 'custom',\n      name: 'MaybeReadonly',\n      href: '../MaybeReadonly/',\n      generics: [\n        {\n          type: 'array',\n          item: 'unknown',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ArrayRequirement/index.mdx",
    "content": "---\ntitle: ArrayRequirement\ndescription: Array requirement type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ArrayRequirement\n\nArray requirement type.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `ArrayRequirement` <Property {...properties.ArrayRequirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ArrayRequirement/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ArrayInput',\n      href: '../ArrayInput/',\n    },\n  },\n  ArrayRequirement: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'item',\n          type: {\n            type: 'custom',\n            name: 'TInput',\n            indexes: ['number'],\n          },\n        },\n        {\n          name: 'index',\n          type: 'number',\n        },\n        {\n          name: 'array',\n          type: {\n            type: 'custom',\n            name: 'TInput',\n          },\n        },\n      ],\n      return: 'boolean',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ArrayRequirementAsync/index.mdx",
    "content": "---\ntitle: ArrayRequirementAsync\ndescription: Array requirement async type.\ncontributors:\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ArrayRequirementAsync\n\nArray requirement async type.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `ArrayRequirementAsync` <Property {...properties.ArrayRequirementAsync} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ArrayRequirementAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ArrayInput',\n      href: '../ArrayInput/',\n    },\n  },\n  ArrayRequirementAsync: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'item',\n          type: {\n            type: 'custom',\n            name: 'TInput',\n            indexes: ['number'],\n          },\n        },\n        {\n          name: 'index',\n          type: 'number',\n        },\n        {\n          name: 'array',\n          type: {\n            type: 'custom',\n            name: 'TInput',\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'MaybePromise',\n        href: '../MaybePromise/',\n        generics: ['boolean'],\n      },\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ArraySchema/index.mdx",
    "content": "---\ntitle: ArraySchema\ndescription: Array schema interface.\ncontributors:\n  - fabian-hiller\n  - kazizi55\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ArraySchema\n\nArray schema interface.\n\n## Generics\n\n- `TItem` <Property {...properties.TItem} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `ArraySchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `item` <Property {...properties.item} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ArraySchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TItem: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ArrayIssue',\n              href: '../ArrayIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'array',\n          item: {\n            type: 'custom',\n            name: 'InferInput',\n            href: '../InferInput/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'TItem',\n              },\n            ],\n          },\n        },\n        {\n          type: 'array',\n          item: {\n            type: 'custom',\n            name: 'InferOutput',\n            href: '../InferOutput/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'TItem',\n              },\n            ],\n          },\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'ArrayIssue',\n              href: '../ArrayIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TItem',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'array',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'array',\n      href: '../array/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Array',\n    },\n  },\n  item: {\n    type: {\n      type: 'custom',\n      name: 'TItem',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ArraySchemaAsync/index.mdx",
    "content": "---\ntitle: ArraySchemaAsync\ndescription: Array schema async interface.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ArraySchemaAsync\n\nArray schema async interface.\n\n## Generics\n\n- `TItem` <Property {...properties.TItem} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `ArraySchemaAsync` <Property {...properties.BaseSchemaAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `item` <Property {...properties.item} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ArraySchemaAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TItem: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ArrayIssue',\n              href: '../ArrayIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchemaAsync: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchemaAsync',\n      href: '../BaseSchemaAsync/',\n      generics: [\n        {\n          type: 'array',\n          item: {\n            type: 'custom',\n            name: 'InferInput',\n            href: '../InferInput/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'TItem',\n              },\n            ],\n          },\n        },\n        {\n          type: 'array',\n          item: {\n            type: 'custom',\n            name: 'InferOutput',\n            href: '../InferOutput/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'TItem',\n              },\n            ],\n          },\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'ArrayIssue',\n              href: '../ArrayIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TItem',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'array',\n    },\n  },\n  reference: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'array',\n          href: '../array/',\n        },\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'arrayAsync',\n          href: '../arrayAsync/',\n        },\n      ],\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Array',\n    },\n  },\n  item: {\n    type: {\n      type: 'custom',\n      name: 'TItem',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/AwaitActionAsync/index.mdx",
    "content": "---\ntitle: AwaitActionAsync\ndescription: Await action async interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# AwaitActionAsync\n\nAwait action async interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `AwaitActionAsync` <Property {...properties.BaseTransformationAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/AwaitActionAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Promise',\n      generics: ['unknown'],\n    },\n  },\n  BaseTransformationAsync: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformationAsync',\n      href: '../BaseTransformationAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'Awaited',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n        'never',\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'await',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'awaitAsync',\n      href: '../awaitAsync/',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/Base64Action/index.mdx",
    "content": "---\ntitle: Base64Action\ndescription: Base64 action interface.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# Base64Action\n\nBase64 action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `Base64Action` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/Base64Action/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'Base64Issue',\n              href: '../Base64Issue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'Base64Issue',\n          href: '../Base64Issue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'base64',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'base64',\n      href: '../base64/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/Base64Issue/index.mdx",
    "content": "---\ntitle: Base64Issue\ndescription: Base64 issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# Base64Issue\n\nBase64 issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `Base64Issue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/Base64Issue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'base64',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/BaseIssue/index.mdx",
    "content": "---\ntitle: BaseIssue\ndescription: Schema issue interface.\ncontributors:\n  - fabian-hiller\n  - kazizi55\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# BaseIssue\n\nSchema issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `BaseIssue` <Property {...properties.Config} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `input` <Property {...properties.input} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `message` <Property {...properties.message} />\n  - `requirement` <Property {...properties.requirement} />\n  - `path` <Property {...properties.path} />\n  - `issues` <Property {...properties.issues} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/BaseIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  Config: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Config',\n      href: '../Config/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'string',\n          value: 'schema',\n        },\n        {\n          type: 'string',\n          value: 'validation',\n        },\n        {\n          type: 'string',\n          value: 'transformation',\n        },\n      ],\n    },\n  },\n  type: {\n    type: 'string',\n  },\n  input: {\n    type: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  expected: {\n    type: {\n      type: 'union',\n      options: ['string', 'null'],\n    },\n  },\n  received: {\n    type: 'string',\n  },\n  message: {\n    type: 'string',\n  },\n  requirement: {\n    type: {\n      type: 'union',\n      options: ['unknown', 'undefined'],\n    },\n  },\n  path: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'tuple',\n          items: [\n            {\n              type: 'custom',\n              name: 'IssuePathItem',\n              href: '../IssuePathItem/',\n            },\n            {\n              type: 'array',\n              spread: true,\n              item: {\n                type: 'custom',\n                name: 'IssuePathItem',\n                href: '../IssuePathItem/',\n              },\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  issues: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'tuple',\n          items: [\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n            {\n              type: 'array',\n              spread: true,\n              item: {\n                type: 'custom',\n                name: 'BaseIssue',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TInput',\n                  },\n                ],\n              },\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/BaseMetadata/index.mdx",
    "content": "---\ntitle: BaseMetadata\ndescription: Base metadata interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# BaseMetadata\n\nBase metadata interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `BaseMetadata`\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `~types` <Property {...properties['~types']} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/BaseMetadata/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'metadata',\n    },\n  },\n  type: {\n    type: 'string',\n  },\n  reference: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'args',\n          spread: true,\n          type: {\n            type: 'array',\n            item: 'any',\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'BaseMetadata',\n        generics: ['any'],\n      },\n    },\n  },\n  '~types': {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'object',\n          entries: [\n            {\n              key: 'input',\n              value: {\n                type: 'custom',\n                name: 'TInput',\n              },\n            },\n            {\n              key: 'output',\n              value: {\n                type: 'custom',\n                name: 'TInput',\n              },\n            },\n            {\n              key: 'issue',\n              value: 'never',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/BaseSchema/index.mdx",
    "content": "---\ntitle: BaseSchema\ndescription: Base schema interface.\ncontributors:\n  - fabian-hiller\n  - kazizi55\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# BaseSchema\n\nBase schema interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n- `TIssue` <Property {...properties.TIssue} />\n\n## Definition\n\n- `BaseSchema`\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `async` <Property {...properties.async} />\n  - `~standard` <Property {...properties['~standard']} />\n  - `~run` <Property {...properties['~run']} />\n  - `~types` <Property {...properties['~types']} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/BaseSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: 'string',\n  },\n  expects: {\n    type: 'string',\n  },\n  reference: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'args',\n          spread: true,\n          type: {\n            type: 'array',\n            item: 'any',\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'BaseSchema',\n        generics: [\n          'unknown',\n          'unknown',\n          {\n            type: 'custom',\n            name: 'BaseIssue',\n            href: '../BaseIssue/',\n            generics: ['unknown'],\n          },\n        ],\n      },\n    },\n  },\n  async: {\n    type: {\n      type: 'boolean',\n      value: false,\n    },\n  },\n  '~standard': {\n    type: {\n      type: 'custom',\n      name: 'StandardProps',\n      href: '../StandardProps/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TOutput',\n        },\n      ],\n    },\n  },\n  '~run': {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'dataset',\n          type: {\n            type: 'custom',\n            name: 'UnknownDataset',\n            href: '../UnknownDataset/',\n          },\n        },\n        {\n          name: 'config',\n          type: {\n            type: 'custom',\n            name: 'Config',\n            href: '../Config/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'OutputDataset',\n        href: '../OutputDataset/',\n        generics: [\n          {\n            type: 'custom',\n            name: 'TOutput',\n          },\n          {\n            type: 'custom',\n            name: 'TIssue',\n          },\n        ],\n      },\n    },\n  },\n  '~types': {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'object',\n          entries: [\n            {\n              key: 'input',\n              value: {\n                type: 'custom',\n                name: 'TInput',\n              },\n            },\n            {\n              key: 'output',\n              value: {\n                type: 'custom',\n                name: 'TOutput',\n              },\n            },\n            {\n              key: 'issue',\n              value: {\n                type: 'custom',\n                name: 'TIssue',\n              },\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/BaseSchemaAsync/index.mdx",
    "content": "---\ntitle: BaseSchemaAsync\ndescription: Base schema async interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# BaseSchemaAsync\n\nBase schema async interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n- `TIssue` <Property {...properties.TIssue} />\n\n## Definition\n\n- `BaseSchemaAsync` <Property {...properties.BaseSchemaAsync} />\n  - `reference` <Property {...properties.reference} />\n  - `async` <Property {...properties.async} />\n  - `~run` <Property {...properties['~run']} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/BaseSchemaAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  BaseSchemaAsync: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Omit',\n      generics: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TOutput',\n            },\n            {\n              type: 'custom',\n              name: 'TIssue',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'string',\n              value: 'reference',\n            },\n            {\n              type: 'string',\n              value: 'async',\n            },\n            {\n              type: 'string',\n              value: '~run',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  reference: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'args',\n          spread: true,\n          type: {\n            type: 'array',\n            item: 'any',\n          },\n        },\n      ],\n      return: {\n        type: 'union',\n        options: [\n          {\n            type: 'custom',\n            name: 'BaseSchema',\n            href: '../BaseSchema/',\n            generics: [\n              'unknown',\n              'unknown',\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n          {\n            type: 'custom',\n            name: 'BaseSchemaAsync',\n            generics: [\n              'unknown',\n              'unknown',\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n        ],\n      },\n    },\n  },\n  async: {\n    type: {\n      type: 'boolean',\n      value: true,\n    },\n  },\n  '~run': {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'dataset',\n          type: {\n            type: 'custom',\n            name: 'UnknownDataset',\n            href: '../UnknownDataset/',\n          },\n        },\n        {\n          name: 'config',\n          type: {\n            type: 'custom',\n            name: 'Config',\n            href: '../Config/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'Promise',\n        generics: [\n          {\n            type: 'custom',\n            name: 'OutputDataset',\n            href: '../OutputDataset/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'TOutput',\n              },\n              {\n                type: 'custom',\n                name: 'TIssue',\n              },\n            ],\n          },\n        ],\n      },\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/BaseTransformation/index.mdx",
    "content": "---\ntitle: BaseTransformation\ndescription: Base transformation interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# BaseTransformation\n\nBase transformation interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n- `TIssue` <Property {...properties.TIssue} />\n\n## Definition\n\n- `BaseTransformation`\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `async` <Property {...properties.async} />\n  - `~run` <Property {...properties['~run']} />\n  - `~types` <Property {...properties['~types']} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/BaseTransformation/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'transformation',\n    },\n  },\n  type: {\n    type: 'string',\n  },\n  reference: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'args',\n          spread: true,\n          type: {\n            type: 'array',\n            item: 'any',\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'BaseTransformation',\n        generics: [\n          'any',\n          'any',\n          {\n            type: 'custom',\n            name: 'BaseIssue',\n            href: '../BaseIssue/',\n            generics: ['unknown'],\n          },\n        ],\n      },\n    },\n  },\n  async: {\n    type: {\n      type: 'boolean',\n      value: false,\n    },\n  },\n  '~run': {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'dataset',\n          type: {\n            type: 'custom',\n            name: 'SuccessDataset',\n            href: '../SuccessDataset/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'TInput',\n              },\n            ],\n          },\n        },\n        {\n          name: 'config',\n          type: {\n            type: 'custom',\n            name: 'Config',\n            href: '../Config/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'OutputDataset',\n        href: '../OutputDataset/',\n        generics: [\n          {\n            type: 'custom',\n            name: 'TOutput',\n          },\n          {\n            type: 'union',\n            options: [\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n              {\n                type: 'custom',\n                name: 'TIssue',\n              },\n            ],\n          },\n        ],\n      },\n    },\n  },\n  '~types': {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'object',\n          entries: [\n            {\n              key: 'input',\n              value: {\n                type: 'custom',\n                name: 'TInput',\n              },\n            },\n            {\n              key: 'output',\n              value: {\n                type: 'custom',\n                name: 'TOutput',\n              },\n            },\n            {\n              key: 'issue',\n              value: {\n                type: 'custom',\n                name: 'TIssue',\n              },\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/BaseTransformationAsync/index.mdx",
    "content": "---\ntitle: BaseTransformationAsync\ndescription: Base transformation async interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# BaseTransformationAsync\n\nBase transformation async interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n- `TIssue` <Property {...properties.TIssue} />\n\n## Definition\n\n- `BaseTransformationAsync` <Property {...properties.BaseTransformationAsync} />\n  - `reference` <Property {...properties.reference} />\n  - `async` <Property {...properties.async} />\n  - `~run` <Property {...properties['~run']} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/BaseTransformationAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  BaseTransformationAsync: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Omit',\n      generics: [\n        {\n          type: 'custom',\n          name: 'BaseTransformation',\n          href: '../BaseTransformation/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TOutput',\n            },\n            {\n              type: 'custom',\n              name: 'TIssue',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'string',\n              value: 'reference',\n            },\n            {\n              type: 'string',\n              value: 'async',\n            },\n            {\n              type: 'string',\n              value: '~run',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  reference: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'args',\n          spread: true,\n          type: {\n            type: 'array',\n            item: 'any',\n          },\n        },\n      ],\n      return: {\n        type: 'union',\n        options: [\n          {\n            type: 'custom',\n            name: 'BaseTransformation',\n            href: '../BaseTransformation/',\n            generics: [\n              'any',\n              'any',\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n          {\n            type: 'custom',\n            name: 'BaseTransformationAsync',\n            generics: [\n              'any',\n              'any',\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n        ],\n      },\n    },\n  },\n  async: {\n    type: {\n      type: 'boolean',\n      value: true,\n    },\n  },\n  '~run': {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'dataset',\n          type: {\n            type: 'custom',\n            name: 'SuccessDataset',\n            href: '../SuccessDataset/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'TInput',\n              },\n            ],\n          },\n        },\n        {\n          name: 'config',\n          type: {\n            type: 'custom',\n            name: 'Config',\n            href: '../Config/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'Promise',\n        generics: [\n          {\n            type: 'custom',\n            name: 'OutputDataset',\n            href: '../OutputDataset/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'TOutput',\n              },\n              {\n                type: 'union',\n                options: [\n                  {\n                    type: 'custom',\n                    name: 'BaseIssue',\n                    href: '../BaseIssue/',\n                    generics: ['unknown'],\n                  },\n                  {\n                    type: 'custom',\n                    name: 'TIssue',\n                  },\n                ],\n              },\n            ],\n          },\n        ],\n      },\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/BaseValidation/index.mdx",
    "content": "---\ntitle: BaseValidation\ndescription: Base action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# BaseValidation\n\nBase action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n- `TIssue` <Property {...properties.TIssue} />\n\n## Definition\n\n- `BaseValidation`\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `async` <Property {...properties.async} />\n  - `~run` <Property {...properties['~run']} />\n  - `~types` <Property {...properties['~types']} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/BaseValidation/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: 'string',\n  },\n  expects: {\n    type: {\n      type: 'union',\n      options: ['string', 'null'],\n    },\n  },\n  reference: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'args',\n          spread: true,\n          type: {\n            type: 'array',\n            item: 'any',\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'BaseValidation',\n        generics: [\n          'any',\n          'any',\n          {\n            type: 'custom',\n            name: 'BaseIssue',\n            href: '../BaseIssue/',\n            generics: ['unknown'],\n          },\n        ],\n      },\n    },\n  },\n  async: {\n    type: {\n      type: 'boolean',\n      value: false,\n    },\n  },\n  '~run': {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'dataset',\n          type: {\n            type: 'custom',\n            name: 'OutputDataset',\n            href: '../OutputDataset/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'TInput',\n              },\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n        },\n        {\n          name: 'config',\n          type: {\n            type: 'custom',\n            name: 'Config',\n            href: '../Config/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'TIssue',\n              },\n            ],\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'OutputDataset',\n        href: '../OutputDataset/',\n        generics: [\n          {\n            type: 'custom',\n            name: 'TOutput',\n          },\n          {\n            type: 'union',\n            options: [\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n              {\n                type: 'custom',\n                name: 'TIssue',\n              },\n            ],\n          },\n        ],\n      },\n    },\n  },\n  '~types': {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'object',\n          entries: [\n            {\n              key: 'input',\n              value: {\n                type: 'custom',\n                name: 'TInput',\n              },\n            },\n            {\n              key: 'output',\n              value: {\n                type: 'custom',\n                name: 'TOutput',\n              },\n            },\n            {\n              key: 'issue',\n              value: {\n                type: 'custom',\n                name: 'TIssue',\n              },\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/BaseValidationAsync/index.mdx",
    "content": "---\ntitle: BaseValidationAsync\ndescription: Base validation async interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# BaseValidationAsync\n\nBase validation async interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n- `TIssue` <Property {...properties.TIssue} />\n\n## Definition\n\n- `BaseValidationAsync` <Property {...properties.BaseValidationAsync} />\n  - `reference` <Property {...properties.reference} />\n  - `async` <Property {...properties.async} />\n  - `~run` <Property {...properties['~run']} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/BaseValidationAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  BaseValidationAsync: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Omit',\n      generics: [\n        {\n          type: 'custom',\n          name: 'BaseValidation',\n          href: '../BaseValidation/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TOutput',\n            },\n            {\n              type: 'custom',\n              name: 'TIssue',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'string',\n              value: 'reference',\n            },\n            {\n              type: 'string',\n              value: 'async',\n            },\n            {\n              type: 'string',\n              value: '~run',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  reference: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'args',\n          spread: true,\n          type: {\n            type: 'array',\n            item: 'any',\n          },\n        },\n      ],\n      return: {\n        type: 'union',\n        options: [\n          {\n            type: 'custom',\n            name: 'BaseValidation',\n            href: '../BaseValidation/',\n            generics: [\n              'any',\n              'any',\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n          {\n            type: 'custom',\n            name: 'BaseValidationAsync',\n            generics: [\n              'any',\n              'any',\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n        ],\n      },\n    },\n  },\n  async: {\n    type: {\n      type: 'boolean',\n      value: true,\n    },\n  },\n  '~run': {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'dataset',\n          type: {\n            type: 'custom',\n            name: 'OutputDataset',\n            href: '../OutputDataset/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'TInput',\n              },\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n        },\n        {\n          name: 'config',\n          type: {\n            type: 'custom',\n            name: 'Config',\n            href: '../Config/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'TIssue',\n              },\n            ],\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'Promise',\n        generics: [\n          {\n            type: 'custom',\n            name: 'OutputDataset',\n            href: '../OutputDataset/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'TOutput',\n              },\n              {\n                type: 'union',\n                options: [\n                  {\n                    type: 'custom',\n                    name: 'BaseIssue',\n                    href: '../BaseIssue/',\n                    generics: ['unknown'],\n                  },\n                  {\n                    type: 'custom',\n                    name: 'TIssue',\n                  },\n                ],\n              },\n            ],\n          },\n        ],\n      },\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/BicAction/index.mdx",
    "content": "---\ntitle: BicAction\ndescription: BIC action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# BicAction\n\nBIC action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `BicAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/BicAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          generics: [\n            {\n              type: 'custom',\n              name: 'BicIssue',\n              href: '../BicIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'BicIssue',\n          href: '../BicIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'bic',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'bic',\n      href: '../bic/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/BicIssue/index.mdx",
    "content": "---\ntitle: BicIssue\ndescription: Bic issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# BicIssue\n\nBic issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `BicIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/BicIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'bic',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/BigintIssue/index.mdx",
    "content": "---\ntitle: BigintIssue\ndescription: Bigint issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# BigintIssue\n\nBigint issue interface.\n\n## Definition\n\n- `BigintIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/BigintIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'bigint',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: 'bigint',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/BigintSchema/index.mdx",
    "content": "---\ntitle: BigintSchema\ndescription: Bigint schema interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# BigintSchema\n\nBigint schema interface.\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `BigintSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/BigintSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'BigintIssue',\n              href: '../BigintIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'bigint',\n        'bigint',\n        {\n          type: 'custom',\n          name: 'BigintIssue',\n          href: '../BigintIssue/',\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'bigint',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'bigint',\n      href: '../bigint/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'bigint',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/BlobIssue/index.mdx",
    "content": "---\ntitle: BlobIssue\ndescription: Blob issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# BlobIssue\n\nBlob issue interface.\n\n## Definition\n\n- `BlobIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/BlobIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'blob',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: 'Blob',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/BlobSchema/index.mdx",
    "content": "---\ntitle: BlobSchema\ndescription: Blob schema interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# BlobSchema\n\nBlob schema interface.\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `BlobSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/BlobSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'BlobIssue',\n              href: '../BlobIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'Blob',\n        },\n        {\n          type: 'custom',\n          name: 'Blob',\n        },\n        {\n          type: 'custom',\n          name: 'BlobIssue',\n          href: '../BlobIssue/',\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'blob',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'blob',\n      href: '../blob/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Blob',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'BlobIssue',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/BooleanIssue/index.mdx",
    "content": "---\ntitle: BooleanIssue\ndescription: Boolean issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# BooleanIssue\n\nBoolean issue interface.\n\n## Definition\n\n- `BooleanIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/BooleanIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'boolean',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: 'boolean',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/BooleanSchema/index.mdx",
    "content": "---\ntitle: BooleanSchema\ndescription: Boolean schema interface.\ncontributors:\n  - fabian-hiller\n  - wout-junius\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# BooleanSchema\n\nBoolean schema interface.\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `BooleanSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/BooleanSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'BooleanIssue',\n              href: '../BooleanIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'boolean',\n        'boolean',\n        {\n          type: 'custom',\n          name: 'BooleanIssue',\n          href: '../BooleanIssue/',\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'boolean',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'boolean',\n      href: '../boolean/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'boolean',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/Brand/index.mdx",
    "content": "---\ntitle: Brand\ndescription: Brand interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# Brand\n\nBrand interface.\n\n## Generics\n\n- `TName` <Property {...properties.TName} />\n\n## Definition\n\n- `Brand` <Property {...properties.Brand} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/Brand/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TName: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BrandName',\n      href: '../BrandName/',\n    },\n  },\n  Brand: {\n    type: {\n      type: 'object',\n      entries: [\n        {\n          key: {\n            name: 'BrandSymbol',\n          },\n          value: {\n            type: 'object',\n            entries: [\n              {\n                key: {\n                  name: 'TValue',\n                  modifier: 'in',\n                  type: {\n                    type: 'custom',\n                    name: 'TName',\n                  },\n                },\n                value: {\n                  type: 'custom',\n                  name: 'TValue',\n                },\n              },\n            ],\n          },\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/BrandAction/index.mdx",
    "content": "---\ntitle: BrandAction\ndescription: Brand action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# BrandAction\n\nBrand action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TName` <Property {...properties.TName} />\n\n## Definition\n\n- `BrandAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `name` <Property {...properties.name} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/BrandAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TName: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BrandName',\n      href: '../BrandName/',\n    },\n  },\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'intersect',\n          options: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'Brand',\n              href: '../Brand/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TName',\n                },\n              ],\n            },\n          ],\n        },\n        'never',\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'brand',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'brand',\n      href: '../brand/',\n    },\n  },\n  name: {\n    type: {\n      type: 'custom',\n      name: 'TName',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/BrandName/index.mdx",
    "content": "---\ntitle: BrandName\ndescription: Brand name type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# BrandName\n\nBrand name type.\n\n## Definition\n\n- `BrandName` <Property {...properties.BrandName} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/BrandName/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BrandName: {\n    type: {\n      type: 'union',\n      options: ['string', 'number', 'symbol'],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/BytesAction/index.mdx",
    "content": "---\ntitle: BytesAction\ndescription: Bytes action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# BytesAction\n\nBytes action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `BytesAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/BytesAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'BytesIssue',\n              href: '../BytesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'BytesIssue',\n          href: '../BytesIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'bytes',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'bytes',\n      href: '../bytes/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/BytesIssue/index.mdx",
    "content": "---\ntitle: BytesIssue\ndescription: Bytes issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# BytesIssue\n\nBytes issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `BytesIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/BytesIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'bytes',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: ['number'],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/Cache/index.mdx",
    "content": "---\ntitle: Cache\ndescription: Cache interface type.\ncontributors:\n  - fabianhiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# Cache\n\nCache interface type.\n\n> Hint: The `key` method uses value-based keys for primitive inputs and reference-identity keys for object and function inputs.\n\n## Generics\n\n- `TValue` <Property {...properties.TValue} />\n\n## Definition\n\n- `Cache`\n  - `key` <Property {...properties.key} />\n  - `get` <Property {...properties.get} />\n  - `set` <Property {...properties.set} />\n  - `clear` <Property {...properties.clear} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/Cache/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TValue: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  key: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: 'unknown',\n        },\n        {\n          name: 'config',\n          optional: true,\n          type: {\n            type: 'custom',\n            name: 'Config',\n            href: '../Config/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n        },\n      ],\n      return: 'string',\n    },\n  },\n  get: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'key',\n          type: 'string',\n        },\n      ],\n      return: {\n        type: 'union',\n        options: [\n          {\n            type: 'custom',\n            name: 'TValue',\n          },\n          'undefined',\n        ],\n      },\n    },\n  },\n  set: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'key',\n          type: 'string',\n        },\n        {\n          name: 'value',\n          type: {\n            type: 'custom',\n            name: 'TValue',\n          },\n        },\n      ],\n      return: 'void',\n    },\n  },\n  clear: {\n    type: {\n      type: 'function',\n      params: [],\n      return: 'void',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/CacheConfig/index.mdx",
    "content": "---\ntitle: CacheConfig\ndescription: Cache config interface.\ncontributors:\n  - fabianhiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# CacheConfig\n\nCache config interface.\n\n## Definition\n\n- `CacheConfig`\n  - `maxSize?` <Property {...properties.maxSize} />\n  - `maxAge?` <Property {...properties.maxAge} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/CacheConfig/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  maxSize: {\n    type: 'number',\n  },\n  maxAge: {\n    type: 'number',\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/CheckAction/index.mdx",
    "content": "---\ntitle: CheckAction\ndescription: Check action interface.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# CheckAction\n\nCheck action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `CheckAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/CheckAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'CheckIssue',\n              href: '../CheckIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'CheckIssue',\n          href: '../CheckIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'check',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'check',\n      href: '../check/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: {\n            type: 'custom',\n            name: 'TInput',\n          },\n        },\n      ],\n      return: 'boolean',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/CheckActionAsync/index.mdx",
    "content": "---\ntitle: CheckActionAsync\ndescription: Check action async interface.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# CheckActionAsync\n\nCheck action async interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `CheckActionAsync` <Property {...properties.BaseValidationAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/CheckActionAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'CheckIssue',\n              href: '../CheckIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidationAsync: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidationAsync',\n      href: '../BaseValidationAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'CheckIssue',\n          href: '../CheckIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'check',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'checkAsync',\n      href: '../checkAsync/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: {\n            type: 'custom',\n            name: 'TInput',\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'MaybePromise',\n        href: '../MaybePromise/',\n        generics: ['boolean'],\n      },\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/CheckIssue/index.mdx",
    "content": "---\ntitle: CheckIssue\ndescription: Check issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# CheckIssue\n\nCheck issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `CheckIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/CheckIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'check',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: {\n            type: 'custom',\n            name: 'TInput',\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'MaybePromise',\n        generics: ['boolean'],\n      },\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/CheckItemsAction/index.mdx",
    "content": "---\ntitle: CheckItemsAction\ndescription: Check items action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# CheckItemsAction\n\nCheck items action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `CheckItemsAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/CheckItemsAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ArrayInput',\n      href: '../ArrayInput/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'CheckItemsIssue',\n              href: '../CheckItemsIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'CheckItemsIssue',\n          href: '../CheckItemsIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'check_items',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'checkItems',\n      href: '../checkItems/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'ArrayRequirement',\n      href: '../ArrayRequirement/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/CheckItemsActionAsync/index.mdx",
    "content": "---\ntitle: CheckItemsActionAsync\ndescription: Check items action async interface.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# CheckItemsActionAsync\n\nCheck items action async interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `CheckItemsActionAsync` <Property {...properties.BaseValidationAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/CheckItemsActionAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ArrayInput',\n      href: '../ArrayInput/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'CheckItemsIssue',\n              href: '../CheckItemsIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidationAsync: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidationAsync',\n      href: '../BaseValidationAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'CheckItemsIssue',\n          href: '../CheckItemsIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'check_items',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'checkItemsAsync',\n      href: '../checkItemsAsync/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'ArrayRequirementAsync',\n      href: '../ArrayRequirementAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/CheckItemsIssue/index.mdx",
    "content": "---\ntitle: CheckItemsIssue\ndescription: Check items issue interface.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# CheckItemsIssue\n\nCheck items issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `CheckItemsIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/CheckItemsIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ArrayInput',\n      href: '../ArrayInput/',\n    },\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n          indexes: ['number'],\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'check_items',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'ArrayRequirementAsync',\n      href: '../ArrayRequirementAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/Class/index.mdx",
    "content": "---\ntitle: Class\ndescription: Class type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# Class\n\nClass type.\n\n## Definition\n\n- `Class` <Property {...properties.Class} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/Class/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  Class: {\n    modifier: 'new',\n    type: {\n      type: 'function',\n      params: [\n        {\n          spread: true,\n          name: 'args',\n          type: {\n            type: 'array',\n            item: 'any',\n          },\n        },\n      ],\n      return: 'any',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/Config/index.mdx",
    "content": "---\ntitle: Config\ndescription: Config interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# Config\n\nConfig interface.\n\n## Generics\n\n- `TIssue` <Property {...properties.TIssue} />\n\n## Definition\n\n- `Config`\n  - `lang` <Property {...properties.lang} />\n  - `message` <Property {...properties.message} />\n  - `abortEarly` <Property {...properties.abortEarly} />\n  - `abortPipeEarly` <Property {...properties.abortPipeEarly} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/Config/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  lang: {\n    type: {\n      type: 'union',\n      options: ['string', 'undefined'],\n    },\n  },\n  message: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TIssue',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  abortEarly: {\n    type: {\n      type: 'union',\n      options: ['boolean', 'undefined'],\n    },\n  },\n  abortPipeEarly: {\n    type: {\n      type: 'union',\n      options: ['boolean', 'undefined'],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ContentInput/index.mdx",
    "content": "---\ntitle: ContentInput\ndescription: Content input type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ContentInput\n\nContent input type.\n\n## Definition\n\n- `ContentInput` <Property {...properties.ContentInput} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ContentInput/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  ContentInput: {\n    type: {\n      type: 'union',\n      options: [\n        'string',\n        {\n          type: 'custom',\n          name: 'MaybeReadonly',\n          href: '../MaybeReadonly/',\n          generics: [\n            {\n              type: 'array',\n              item: 'unknown',\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ContentRequirement/index.mdx",
    "content": "---\ntitle: ContentRequirement\ndescription: Content requirement type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ContentRequirement\n\nContent requirement type.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `ContentRequirement` <Property {...properties.ContentRequirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ContentRequirement/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ContentInput',\n      href: '../ContentInput/',\n    },\n  },\n  ContentRequirement: {\n    type: {\n      type: 'conditional',\n      conditions: [\n        {\n          type: {\n            type: 'custom',\n            name: 'TInput',\n          },\n          extends: {\n            type: 'array',\n            modifier: 'readonly',\n            item: 'unknown',\n          },\n          true: {\n            type: 'custom',\n            name: 'TInput',\n            indexes: ['number'],\n          },\n        },\n      ],\n      false: {\n        type: 'custom',\n        name: 'TInput',\n      },\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/CreditCardAction/index.mdx",
    "content": "---\ntitle: CreditCardAction\ndescription: Credit card action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# CreditCardAction\n\nCredit card action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `CreditCardAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/CreditCardAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          generics: [\n            {\n              type: 'custom',\n              name: 'CreditCardIssue',\n              href: '../CreditCardIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'CreditCardIssue',\n          href: '../CreditCardIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'credit_card',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'creditCard',\n      href: '../creditCard/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: 'string',\n        },\n      ],\n      return: 'boolean',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/CreditCardIssue/index.mdx",
    "content": "---\ntitle: CreditCardIssue\ndescription: Credit card issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# CreditCardIssue\n\nCredit card issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `CreditCardIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/CreditCardIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'credit_card',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: 'string',\n        },\n      ],\n      return: 'boolean',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/Cuid2Action/index.mdx",
    "content": "---\ntitle: Cuid2Action\ndescription: Cuid2 action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# Cuid2Action\n\nCuid2 action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `Cuid2Action` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/Cuid2Action/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          generics: [\n            {\n              type: 'custom',\n              name: 'Cuid2Issue',\n              href: '../Cuid2Issue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'Cuid2Issue',\n          href: '../Cuid2Issue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'cuid2',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'cuid2',\n      href: '../cuid2/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/Cuid2Issue/index.mdx",
    "content": "---\ntitle: Cuid2Issue\ndescription: Cuid2 issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# Cuid2Issue\n\nCuid2 issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `Cuid2Issue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/Cuid2Issue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'cuid2',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/CustomIssue/index.mdx",
    "content": "---\ntitle: CustomIssue\ndescription: Custom issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# CustomIssue\n\nCustom issue interface.\n\n## Definition\n\n- `CustomIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/CustomIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'custom',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: 'unknown',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/CustomSchema/index.mdx",
    "content": "---\ntitle: CustomSchema\ndescription: Custom schema interface.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# CustomSchema\n\nCustom schema interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `CustomSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `check` <Property {...properties.check} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/CustomSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'CustomIssue',\n              href: '../CustomIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'CustomIssue',\n          href: '../CustomIssue/',\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'custom',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'custom',\n      href: '../custom/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'unknown',\n    },\n  },\n  check: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: 'unknown',\n        },\n      ],\n      return: 'boolean',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/CustomSchemaAsync/index.mdx",
    "content": "---\ntitle: CustomSchemaAsync\ndescription: Custom schema async interface.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# CustomSchemaAsync\n\nCustom schema async interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `CustomSchemaAsync` <Property {...properties.BaseSchemaAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `check` <Property {...properties.check} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/CustomSchemaAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'CustomIssue',\n              href: '../CustomIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchemaAsync: {\n    type: {\n      modifier: 'extends',\n      type: 'custom',\n      name: 'BaseSchemaAsync',\n      href: '../BaseSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'CustomIssue',\n          href: '../CustomIssue/',\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'custom',\n    },\n  },\n  reference: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'custom',\n          href: '../custom/',\n        },\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'customAsync',\n          href: '../customAsync/',\n        },\n      ],\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'unknown',\n    },\n  },\n  check: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: 'unknown',\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'MaybePromise',\n        href: '../MaybePromise/',\n        generics: ['boolean'],\n      },\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/DateIssue/index.mdx",
    "content": "---\ntitle: DateIssue\ndescription: Date issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# DateIssue\n\nDate issue interface.\n\n## Definition\n\n- `DateIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/DateIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'date',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: 'Date',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/DateSchema/index.mdx",
    "content": "---\ntitle: DateSchema\ndescription: Date schema interface.\ncontributors:\n  - fabian-hiller\n  - wout-junius\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# DateSchema\n\nDate schema interface.\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `DateSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/DateSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'DateIssue',\n              href: '../DateIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'Date',\n        },\n        {\n          type: 'custom',\n          name: 'Date',\n        },\n        {\n          type: 'custom',\n          name: 'DateIssue',\n          href: '../DateIssue/',\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'date',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'date',\n      href: '../date/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Date',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/DecimalAction/index.mdx",
    "content": "---\ntitle: DecimalAction\ndescription: Decimal action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# DecimalAction\n\nDecimal action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `DecimalAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/DecimalAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'DecimalIssue',\n              href: '../DecimalIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'DecimalIssue',\n          href: '../DecimalIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'decimal',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'decimal',\n      href: '../decimal/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/DecimalIssue/index.mdx",
    "content": "---\ntitle: DecimalIssue\ndescription: Decimal issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# DecimalIssue\n\nDecimal issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `DecimalIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/DecimalIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'decimal',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/DeepPickN/index.mdx",
    "content": "---\ntitle: DeepPickN\ndescription: Deeply picks N specific keys.\ncontributors:\n  - fabian-hiller\n---\n\n# DeepPickN\n\nDeeply picks N specific keys.\n\n> This type is too complex to display. Please refer to the [source code](https://github.com/open-circle/valibot/blob/main/library/src/actions/partialCheck/types.ts).\n"
  },
  {
    "path": "website/src/routes/api/(types)/Default/index.mdx",
    "content": "---\ntitle: Default\ndescription: Default type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# Default\n\nDefault type.\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `Default` <Property {...properties.Default} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/Default/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: ['null', 'undefined'],\n    },\n  },\n  Default: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'MaybeReadonly',\n          href: '../MaybeReadonly/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'InferInput',\n              href: '../InferInput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TWrapped',\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n        {\n          type: 'function',\n          params: [\n            {\n              name: 'dataset',\n              optional: true,\n              type: {\n                type: 'custom',\n                name: 'UnknownDataset',\n                href: '../UnknownDataset/',\n              },\n            },\n            {\n              name: 'config',\n              optional: true,\n              type: {\n                type: 'custom',\n                name: 'Config',\n                href: '../Config/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'InferIssue',\n                    href: '../InferIssue/',\n                    generics: [\n                      {\n                        type: 'custom',\n                        name: 'TWrapped',\n                      },\n                    ],\n                  },\n                ],\n              },\n            },\n          ],\n          return: {\n            type: 'custom',\n            name: 'MaybeReadonly',\n            href: '../MaybeReadonly/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'InferInput',\n                href: '../InferInput/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TWrapped',\n                  },\n                ],\n              },\n              {\n                type: 'custom',\n                name: 'TInput',\n              },\n            ],\n          },\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/DefaultAsync/index.mdx",
    "content": "---\ntitle: DefaultAsync\ndescription: Default async type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# DefaultAsync\n\nDefault async type.\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `DefaultAsync` <Property {...properties.DefaultAsync} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/DefaultAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: ['null', 'undefined'],\n    },\n  },\n  DefaultAsync: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'MaybeReadonly',\n          href: '../MaybeReadonly/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'InferInput',\n              href: '../InferInput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TWrapped',\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n        {\n          type: 'function',\n          params: [\n            {\n              name: 'dataset',\n              optional: true,\n              type: {\n                type: 'custom',\n                name: 'UnknownDataset',\n                href: '../UnknownDataset/',\n              },\n            },\n            {\n              name: 'config',\n              optional: true,\n              type: {\n                type: 'custom',\n                name: 'Config',\n                href: '../Config/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'InferIssue',\n                    href: '../InferIssue/',\n                    generics: [\n                      {\n                        type: 'custom',\n                        name: 'TWrapped',\n                      },\n                    ],\n                  },\n                ],\n              },\n            },\n          ],\n          return: {\n            type: 'custom',\n            name: 'MaybePromise',\n            href: '../MaybePromise/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'MaybeReadonly',\n                href: '../MaybeReadonly/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'InferInput',\n                    href: '../InferInput/',\n                    generics: [\n                      {\n                        type: 'custom',\n                        name: 'TWrapped',\n                      },\n                    ],\n                  },\n                  {\n                    type: 'custom',\n                    name: 'TInput',\n                  },\n                ],\n              },\n            ],\n          },\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/DefaultValue/index.mdx",
    "content": "---\ntitle: DefaultValue\ndescription: Default value type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# DefaultValue\n\nDefault value type.\n\n## Generics\n\n- `TDefault` <Property {...properties.TDefault} />\n\n## Definition\n\n- `DefaultValue` <Property {...properties.DefaultValue} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/DefaultValue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TDefault: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'Default',\n          href: '../Default/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'BaseSchema',\n              href: '../BaseSchema/',\n              generics: [\n                'unknown',\n                'unknown',\n                {\n                  type: 'custom',\n                  name: 'BaseIssue',\n                  href: '../BaseIssue/',\n                  generics: ['unknown'],\n                },\n              ],\n            },\n            {\n              type: 'union',\n              options: ['null', 'undefined'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'DefaultAsync',\n          href: '../DefaultAsync/',\n          generics: [\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'BaseSchema',\n                  href: '../BaseSchema/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n                {\n                  type: 'custom',\n                  name: 'BaseSchemaAsync',\n                  href: '../BaseSchemaAsync/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'union',\n              options: ['null', 'undefined'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  DefaultValue: {\n    type: {\n      type: 'conditional',\n      conditions: [\n        {\n          type: {\n            type: 'custom',\n            name: 'TDefault',\n          },\n          extends: {\n            type: 'custom',\n            name: 'DefaultAsync',\n            href: '../DefaultAsync/',\n            generics: [\n              {\n                type: 'custom',\n                modifier: 'infer',\n                name: 'TWrapped',\n              },\n              {\n                type: 'custom',\n                modifier: 'infer',\n                name: 'TInput',\n              },\n            ],\n          },\n          true: {\n            type: 'conditional',\n            conditions: [\n              {\n                type: {\n                  type: 'custom',\n                  name: 'TDefault',\n                },\n                extends: {\n                  type: 'function',\n                  params: [\n                    {\n                      name: 'dataset',\n                      optional: true,\n                      type: {\n                        type: 'custom',\n                        name: 'UnknownDataset',\n                        href: '../UnknownDataset/',\n                      },\n                    },\n                    {\n                      name: 'config',\n                      optional: true,\n                      type: {\n                        type: 'custom',\n                        name: 'Config',\n                        href: '../Config/',\n                        generics: [\n                          {\n                            type: 'custom',\n                            name: 'InferIssue',\n                            href: '../InferIssue/',\n                            generics: [\n                              {\n                                type: 'custom',\n                                name: 'TWrapped',\n                              },\n                            ],\n                          },\n                        ],\n                      },\n                    },\n                  ],\n                  return: {\n                    type: 'custom',\n                    name: 'MaybePromise',\n                    href: '../MaybePromise/',\n                    generics: [\n                      {\n                        type: 'custom',\n                        name: 'MaybeReadonly',\n                        href: '../MaybeReadonly/',\n                        generics: [\n                          {\n                            type: 'custom',\n                            name: 'InferInput',\n                            href: '../InferInput/',\n                            generics: [\n                              {\n                                type: 'custom',\n                                name: 'TWrapped',\n                              },\n                            ],\n                          },\n                          {\n                            type: 'custom',\n                            name: 'TInput',\n                          },\n                        ],\n                      },\n                    ],\n                  },\n                },\n                true: {\n                  type: 'custom',\n                  name: 'Awaited',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'ReturnType',\n                      generics: [\n                        {\n                          type: 'custom',\n                          name: 'TDefault',\n                        },\n                      ],\n                    },\n                  ],\n                },\n              },\n            ],\n            false: {\n              type: 'custom',\n              name: 'TDefault',\n            },\n          },\n        },\n      ],\n      false: 'never',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/DescriptionAction/index.mdx",
    "content": "---\ntitle: DescriptionAction\ndescription: Description action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# DescriptionAction\n\nDescription action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TDescription` <Property {...properties.TDescription} />\n\n## Definition\n\n- `DescriptionAction` <Property {...properties.BaseMetadata} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `description` <Property {...properties.description} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/DescriptionAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TDescription: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseMetadata: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseMetadata',\n      href: '../BaseMetadata/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'description',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'description',\n      href: '../description/',\n    },\n  },\n  description: {\n    type: {\n      type: 'custom',\n      name: 'TDescription',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/DigitsAction/index.mdx",
    "content": "---\ntitle: DigitsAction\ndescription: Digits action interface.\ncontributors:\n  - fabian-hiller\n  - andrew-3kb\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# DigitsAction\n\nDigits action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `DigitsAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/DigitsAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'DecimalIssue',\n              href: '../DecimalIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'DigitsIssue',\n          href: '../DigitsIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'digits',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'digits',\n      href: '../digits/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/DigitsIssue/index.mdx",
    "content": "---\ntitle: DigitsIssue\ndescription: Digits issue interface.\ncontributors:\n  - fabian-hiller\n  - andrew-3kb\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# DigitsIssue\n\nDigits issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `DigitsIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/DigitsIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'digits',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/DomainAction/index.mdx",
    "content": "---\ntitle: DomainAction\ndescription: Domain action interface.\ncontributors:\n  - yslpn\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# DomainAction\n\nDomain action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `DomainAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/DomainAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'DomainIssue',\n              href: '../DomainIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'DomainIssue',\n          href: '../DomainIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'domain',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'domain',\n      href: '../domain/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/DomainIssue/index.mdx",
    "content": "---\ntitle: DomainIssue\ndescription: Domain issue interface.\ncontributors:\n  - yslpn\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# DomainIssue\n\nDomain issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `DomainIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/DomainIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'domain',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        { type: 'string', value: '\"' },\n        'string',\n        { type: 'string', value: '\"' },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/EmailAction/index.mdx",
    "content": "---\ntitle: EmailAction\ndescription: Email action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# EmailAction\n\nEmail action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `EmailAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/EmailAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'EmailIssue',\n              href: '../EmailIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'EmailIssue',\n          href: '../EmailIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'email',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'email',\n      href: '../email/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/EmailIssue/index.mdx",
    "content": "---\ntitle: EmailIssue\ndescription: Email issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# EmailIssue\n\nEmail issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `EmailIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/EmailIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'email',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/EmojiAction/index.mdx",
    "content": "---\ntitle: EmojiAction\ndescription: Emoji action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# EmojiAction\n\nEmoji action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `EmojiAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/EmojiAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'EmojiIssue',\n              href: '../EmojiIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'EmojiIssue',\n          href: '../EmojiIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'emoji',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'emoji',\n      href: '../emoji/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/EmojiIssue/index.mdx",
    "content": "---\ntitle: EmojiIssue\ndescription: Emoji issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# EmojiIssue\n\nEmoji issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `EmojiIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/EmojiIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'emoji',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/EmptyAction/index.mdx",
    "content": "---\ntitle: EmptyAction\ndescription: Empty action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# EmptyAction\n\nEmpty action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `EmptyAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/EmptyAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'LengthInput',\n      href: '../LengthInput/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'EmptyIssue',\n              href: '../EmptyIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'EmptyIssue',\n          href: '../EmptyIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'empty',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'empty',\n      href: '../empty/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: '0',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/EmptyIssue/index.mdx",
    "content": "---\ntitle: EmptyIssue\ndescription: Empty issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# EmptyIssue\n\nEmpty issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `EmptyIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/EmptyIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'LengthInput',\n      href: '../LengthInput/',\n    },\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'empty',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: '0',\n    },\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: ['number'],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/EndsWithAction/index.mdx",
    "content": "---\ntitle: EndsWithAction\ndescription: Ends with action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# EndsWithAction\n\nEnds with action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `EndsWithAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/EndsWithAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'EndsWithIssue',\n              href: '../EndsWithIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'EndsWithIssue',\n          href: '../EndsWithIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'ends_with',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'endsWith',\n      href: '../endsWith/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/EndsWithIssue/index.mdx",
    "content": "---\ntitle: EndsWithIssue\ndescription: Ends with issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# EndsWithIssue\n\nEnds with issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `EndsWithIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/EndsWithIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'ends_with',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/EntriesAction/index.mdx",
    "content": "---\ntitle: EntriesAction\ndescription: Entries action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# EntriesAction\n\nEntries action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `EntriesAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/EntriesAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'EntriesInput',\n      href: '../EntriesInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'EntriesIssue',\n              href: '../EntriesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'EntriesIssue',\n          href: '../EntriesIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'entries',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'entries',\n      href: '../entries/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/EntriesInput/index.mdx",
    "content": "---\ntitle: EntriesInput\ndescription: Entries input type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# EntriesInput\n\nEntries input type.\n\n## Definition\n\n- `EntriesInput` <Property {...properties.EntriesInput} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/EntriesInput/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  EntriesInput: {\n    type: {\n      type: 'custom',\n      name: 'Record',\n      generics: [{ type: 'union', options: ['string', 'number'] }, 'unknown'],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/EntriesIssue/index.mdx",
    "content": "---\ntitle: EntriesIssue\ndescription: Entries issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# EntriesIssue\n\nEntries issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `EntriesIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/EntriesIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'EntriesInput',\n      href: '../EntriesInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'entries',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: ['number'],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/Enum/index.mdx",
    "content": "---\ntitle: Enum\ndescription: Enum interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# Enum\n\nEnum interface.\n\n## Definition\n\n- `Enum` <Property {...properties.Enum} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/Enum/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  Enum: {\n    type: {\n      type: 'object',\n      entries: [\n        {\n          key: { name: 'key', type: 'string' },\n          value: {\n            type: 'union',\n            options: ['string', 'number'],\n          },\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/EnumIssue/index.mdx",
    "content": "---\ntitle: EnumIssue\ndescription: Enum issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# EnumIssue\n\nEnum issue interface.\n\n## Definition\n\n- `EnumIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/EnumIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'enum',\n    },\n  },\n  expected: {\n    type: 'string',\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/EnumSchema/index.mdx",
    "content": "---\ntitle: EnumSchema\ndescription: Enum schema interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# EnumSchema\n\nEnum schema interface.\n\n## Generics\n\n- `TEnum` <Property {...properties.TEnum} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `EnumSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `enum` <Property {...properties.enum} />\n  - `options` <Property {...properties.options} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/EnumSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TEnum: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Enum',\n      href: '../Enum/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'EnumIssue',\n              href: '../EnumIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TEnum',\n          indexes: [\n            {\n              type: 'custom',\n              modifier: 'keyof',\n              name: 'TEnum',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'TEnum',\n          indexes: [\n            {\n              type: 'custom',\n              modifier: 'keyof',\n              name: 'TEnum',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'EnumIssue',\n          href: '../EnumIssue/',\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'enum',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'enum',\n      href: '../enum/',\n    },\n  },\n  enum: {\n    type: {\n      type: 'custom',\n      name: 'TEnum',\n    },\n  },\n  options: {\n    type: {\n      type: 'array',\n      item: {\n        type: 'custom',\n        name: 'TEnum',\n        indexes: [\n          {\n            type: 'custom',\n            modifier: 'keyof',\n            name: 'TEnum',\n          },\n        ],\n      },\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ErrorMessage/index.mdx",
    "content": "---\ntitle: ErrorMessage\ndescription: Error message type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ErrorMessage\n\nError message type.\n\n## Generics\n\n- `TIssue` <Property {...properties.TIssue} />\n\n## Definition\n\n- `ErrorMessage` <Property {...properties.ErrorMessage} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ErrorMessage/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  ErrorMessage: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'function',\n          params: [\n            {\n              name: 'issue',\n              type: {\n                type: 'custom',\n                name: 'TIssue',\n              },\n            },\n          ],\n          return: 'string',\n        },\n        'string',\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/EveryItemAction/index.mdx",
    "content": "---\ntitle: EveryItemAction\ndescription: Every action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# EveryItemAction\n\nEvery action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `EveryItemAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/EveryItemAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      modifier: 'readonly',\n      type: 'array',\n      item: 'unknown',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'EveryItemIssue',\n              href: '../EveryItemIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'EveryItemIssue',\n          href: '../EveryItemIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'every_item',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'everyItem',\n      href: '../everyItem/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'item',\n          type: {\n            type: 'custom',\n            name: 'TInput',\n            indexes: ['number'],\n          },\n        },\n        {\n          name: 'index',\n          type: 'number',\n        },\n        {\n          name: 'array',\n          type: {\n            type: 'custom',\n            name: 'TInput',\n          },\n        },\n      ],\n      return: 'boolean',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/EveryItemIssue/index.mdx",
    "content": "---\ntitle: EveryItemIssue\ndescription: Every item issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# EveryItemIssue\n\nEvery item issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `EveryItemIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/EveryItemIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ArrayInput',\n      href: '../ArrayInput/',\n    },\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'every_item',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'ArrayRequirement',\n      href: '../ArrayRequirement/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ExactOptionalSchema/index.mdx",
    "content": "---\ntitle: ExactOptionalSchema\ndescription: Exact optional schema interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ExactOptionalSchema\n\nExact optional schema interface.\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TDefault` <Property {...properties.TDefault} />\n\n## Definition\n\n- `ExactOptionalSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `wrapped` <Property {...properties.wrapped} />\n  - `default` <Property {...properties.default} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ExactOptionalSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TDefault: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Default',\n      href: '../Default/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferInput',\n          href: '../InferInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferOutput',\n          href: '../InferOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferIssue',\n          href: '../InferIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'exact_optional',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'exactOptional',\n      href: '../exactOptional/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n      indexes: [\n        {\n          type: 'string',\n          value: 'expects',\n        },\n      ],\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  default: {\n    type: {\n      type: 'custom',\n      name: 'TDefault',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ExactOptionalSchemaAsync/index.mdx",
    "content": "---\ntitle: ExactOptionalSchemaAsync\ndescription: Exact optional schema async interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ExactOptionalSchemaAsync\n\nExact optional schema async interface.\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TDefault` <Property {...properties.TDefault} />\n\n## Definition\n\n- `ExactOptionalSchemaAsync` <Property {...properties.BaseSchemaAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `wrapped` <Property {...properties.wrapped} />\n  - `default` <Property {...properties.default} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ExactOptionalSchemaAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TDefault: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'DefaultAsync',\n      href: '../DefaultAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchemaAsync: {\n    type: {\n      type: 'custom',\n      name: 'BaseSchemaAsync',\n      href: '../BaseSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferInput',\n          href: '../InferInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferOutput',\n          href: '../InferOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferIssue',\n          href: '../InferIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'exact_optional',\n    },\n  },\n  reference: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'exactOptional',\n          href: '../exactOptional/',\n        },\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'exactOptionalAsync',\n          href: '../exactOptionalAsync/',\n        },\n      ],\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '(',\n        },\n        {\n          type: 'custom',\n          name: 'TWrapped',\n          indexes: [\n            {\n              type: 'string',\n              value: 'expects',\n            },\n          ],\n        },\n        {\n          type: 'string',\n          value: ' | undefined)',\n        },\n      ],\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  default: {\n    type: {\n      type: 'custom',\n      name: 'TDefault',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ExamplesAction/index.mdx",
    "content": "---\ntitle: ExamplesAction\ndescription: Examples metadata action.\ncontributors:\n  - EskiMojo14\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# ExamplesAction\n\nExamples metadata action.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TExamples` <Property {...properties.TExamples} />\n\n## Definition\n\n- `ExamplesAction` <Property {...properties.BaseMetadata} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `examples` <Property {...properties.examples} />\n\n## Related\n\nThe following APIs can be combined with `ExamplesAction`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'tupleWithRest',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n### Methods\n\n<ApiList items={['getExamples', 'pipe']} />\n\n### Actions\n\n<ApiList items={['examples']} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ExamplesAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TExamples: {\n    modifier: 'extends',\n    type: {\n      modifier: 'readonly',\n      type: 'array',\n      item: {\n        type: 'custom',\n        name: 'TInput',\n      },\n    },\n  },\n  BaseMetadata: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseMetadata',\n      href: '../BaseMetadata/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'examples',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'examples',\n      href: '../examples/',\n    },\n  },\n  examples: {\n    type: {\n      type: 'custom',\n      name: 'TExamples',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ExcludesAction/index.mdx",
    "content": "---\ntitle: ExcludesAction\ndescription: Excludes action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ExcludesAction\n\nExcludes action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `ExcludesAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `referece` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ExcludesAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ContentInput',\n      href: '../ContentInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ContentRequirement',\n      href: '../ContentRequirement/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ExcludesIssue',\n              href: '../ExcludesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'ExcludesIssue',\n          href: '../ExcludesIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'excludes',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'excludes',\n      href: '../excludes/',\n    },\n  },\n  expects: {\n    type: 'string',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ExcludesIssue/index.mdx",
    "content": "---\ntitle: ExcludesIssue\ndescription: Excludes issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ExcludesIssue\n\nExcludes issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `ExcludesIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ExcludesIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ContentInput',\n      href: '../ContentInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ContentRequirement',\n      href: '../ContentRequirement/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'excludes',\n    },\n  },\n  expected: {\n    type: 'string',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/FailureDataset/index.mdx",
    "content": "---\ntitle: FailureDataset\ndescription: Failure dataset interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# FailureDataset\n\nFailure dataset interface.\n\n## Generics\n\n- `TIssue` <Property {...properties.TIssue} />\n\n## Definition\n\n- `UntypedDataset`\n  - `typed` <Property {...properties.typed} />\n  - `value` <Property {...properties.value} />\n  - `issues` <Property {...properties.issues} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/FailureDataset/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  typed: {\n    type: {\n      type: 'boolean',\n      value: false,\n    },\n  },\n  value: {\n    type: 'unknown',\n  },\n  issues: {\n    type: {\n      type: 'tuple',\n      items: [\n        {\n          type: 'custom',\n          name: 'TIssue',\n        },\n        {\n          type: 'array',\n          spread: true,\n          item: {\n            type: 'custom',\n            name: 'TIssue',\n          },\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/Fallback/index.mdx",
    "content": "---\ntitle: Fallback\ndescription: Fallback type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# Fallback\n\nFallback type.\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n\n## Definition\n\n- `Fallback` <Property {...properties.Fallback} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/Fallback/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  Fallback: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'MaybeReadonly',\n          href: '../MaybeReadonly/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'InferOutput',\n              href: '../InferOutput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TSchema',\n                },\n              ],\n            },\n          ],\n        },\n        {\n          type: 'function',\n          params: [\n            {\n              name: 'dataset',\n              optional: true,\n              type: {\n                type: 'custom',\n                name: 'OutputDataset',\n                href: '../OutputDataset/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'InferOutput',\n                    href: '../InferOutput/',\n                    generics: [\n                      {\n                        type: 'custom',\n                        name: 'TSchema',\n                      },\n                    ],\n                  },\n                  {\n                    type: 'custom',\n                    name: 'InferIssue',\n                    href: '../InferIssue/',\n                    generics: [\n                      {\n                        type: 'custom',\n                        name: 'TSchema',\n                      },\n                    ],\n                  },\n                ],\n              },\n            },\n            {\n              name: 'config',\n              optional: true,\n              type: {\n                type: 'custom',\n                name: 'Config',\n                href: '../Config/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'InferIssue',\n                    href: '../InferIssue/',\n                    generics: [\n                      {\n                        type: 'custom',\n                        name: 'TSchema',\n                      },\n                    ],\n                  },\n                ],\n              },\n            },\n          ],\n          return: {\n            type: 'custom',\n            name: 'MaybeReadonly',\n            href: '../MaybeReadonly/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'InferOutput',\n                href: '../InferOutput/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TSchema',\n                  },\n                ],\n              },\n            ],\n          },\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/FallbackAsync/index.mdx",
    "content": "---\ntitle: FallbackAsync\ndescription: Fallback async type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# FallbackAsync\n\nFallback async type.\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n\n## Definition\n\n- `FallbackAsync` <Property {...properties.FallbackAsync} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/FallbackAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  FallbackAsync: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'MaybeReadonly',\n          href: '../MaybeReadonly/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'InferOutput',\n              href: '../InferOutput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TSchema',\n                },\n              ],\n            },\n          ],\n        },\n        {\n          type: 'function',\n          params: [\n            {\n              name: 'dataset',\n              optional: true,\n              type: {\n                type: 'custom',\n                name: 'OutputDataset',\n                href: '../OutputDataset/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'InferOutput',\n                    href: '../InferOutput/',\n                    generics: [\n                      {\n                        type: 'custom',\n                        name: 'TSchema',\n                      },\n                    ],\n                  },\n                  {\n                    type: 'custom',\n                    name: 'InferIssue',\n                    href: '../InferIssue/',\n                    generics: [\n                      {\n                        type: 'custom',\n                        name: 'TSchema',\n                      },\n                    ],\n                  },\n                ],\n              },\n            },\n            {\n              name: 'config',\n              optional: true,\n              type: {\n                type: 'custom',\n                name: 'Config',\n                href: '../Config/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'InferIssue',\n                    href: '../InferIssue/',\n                    generics: [\n                      {\n                        type: 'custom',\n                        name: 'TSchema',\n                      },\n                    ],\n                  },\n                ],\n              },\n            },\n          ],\n          return: {\n            type: 'custom',\n            name: 'MaybePromise',\n            href: '../MaybePromise/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'MaybeReadonly',\n                href: '../MaybeReadonly/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'InferOutput',\n                    href: '../InferOutput/',\n                    generics: [\n                      {\n                        type: 'custom',\n                        name: 'TSchema',\n                      },\n                    ],\n                  },\n                ],\n              },\n            ],\n          },\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/FileIssue/index.mdx",
    "content": "---\ntitle: FileIssue\ndescription: File issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# FileIssue\n\nFile issue interface.\n\n## Definition\n\n- `FileIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/FileIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'file',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: 'File',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/FileSchema/index.mdx",
    "content": "---\ntitle: FileSchema\ndescription: File schema interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# FileSchema\n\nFile schema interface.\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `FileSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/FileSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'FileIssue',\n              href: '../FileIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'File',\n        },\n        {\n          type: 'custom',\n          name: 'File',\n        },\n        {\n          type: 'custom',\n          name: 'FileIssue',\n          href: '../FileIssue/',\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'file',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'file',\n      href: '../file/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'File',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/FilterItemsAction/index.mdx",
    "content": "---\ntitle: FilterItemsAction\ndescription: Filter items action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# FilterItemsAction\n\nFilter items action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `FilterItemsAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `operation` <Property {...properties.operation} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/FilterItemsAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ArrayInput',\n      href: '../ArrayInput/',\n    },\n  },\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        'never',\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'filter_items',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'filterItems',\n      href: '../filterItems/',\n    },\n  },\n  operation: {\n    type: {\n      type: 'custom',\n      name: 'ArrayRequirement',\n      href: '../ArrayRequirement/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/FindItemAction/index.mdx",
    "content": "---\ntitle: FindItemAction\ndescription: Find item action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# FindItemAction\n\nFind item action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `FindItemAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `operation` <Property {...properties.operation} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/FindItemAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ArrayInput',\n      href: '../ArrayInput/',\n    },\n  },\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'TInput',\n              indexes: ['number'],\n            },\n            'undefined',\n          ],\n        },\n        'never',\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'find_item',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'findItem',\n      href: '../findItem/',\n    },\n  },\n  operation: {\n    type: {\n      type: 'custom',\n      name: 'ArrayRequirement',\n      href: '../ArrayRequirement/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/FiniteAction/index.mdx",
    "content": "---\ntitle: FiniteAction\ndescription: Finite action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# FiniteAction\n\nFinite action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `FiniteAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/FiniteAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'FiniteIssue',\n              href: '../FiniteIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'FiniteIssue',\n          href: '../FiniteIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'finite',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'finite',\n      href: '../finite/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: 'number',\n        },\n      ],\n      return: 'boolean',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/FiniteIssue/index.mdx",
    "content": "---\ntitle: FiniteIssue\ndescription: Finite issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# FiniteIssue\n\nFinite issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `FiniteIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/FiniteIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'finite',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: ['number'],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: 'number',\n        },\n      ],\n      return: 'boolean',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/FirstTupleItem/index.mdx",
    "content": "---\ntitle: FirstTupleItem\ndescription: Extracts first tuple item.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# FirstTupleItem\n\nExtracts first tuple item.\n\n## Generics\n\n- `TTuple` <Property {...properties.TTuple} />\n\n## Definition\n\n- `FirstTupleItem` <Property {...properties.FirstTupleItem} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/FirstTupleItem/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TTuple: {\n    modifier: 'extends',\n    type: {\n      type: 'tuple',\n      items: [\n        'unknown',\n        {\n          type: 'array',\n          spread: true,\n          item: 'unknown',\n        },\n      ],\n    },\n  },\n  FirstTupleItem: {\n    type: {\n      type: 'custom',\n      name: 'TTuple',\n      indexes: [\n        {\n          type: 'number',\n          value: 0,\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/FlatErrors/index.mdx",
    "content": "---\ntitle: FlatErrors\ndescription: Flat errors type.\ncontributors:\n  - fabian-hiller\n---\n\n# FlatErrors\n\nFlat errors type.\n\n> This type is too complex to display. Please refer to the [source code](https://github.com/open-circle/valibot/blob/main/library/src/methods/flatten/flatten.ts).\n"
  },
  {
    "path": "website/src/routes/api/(types)/Flavor/index.mdx",
    "content": "---\ntitle: Flavor\ndescription: Flavor interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# Flavor\n\nFlavor interface.\n\n## Generics\n\n- `TName` <Property {...properties.TName} />\n\n## Definition\n\n- `Flavor` <Property {...properties.Flavor} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/Flavor/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TName: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'FlavorName',\n      href: '../FlavorName/',\n    },\n  },\n  Flavor: {\n    type: {\n      type: 'object',\n      entries: [\n        {\n          key: {\n            name: 'FlavorSymbol',\n          },\n          value: {\n            type: 'object',\n            entries: [\n              {\n                key: {\n                  name: 'TValue',\n                  modifier: 'in',\n                  type: {\n                    type: 'custom',\n                    name: 'TName',\n                  },\n                },\n                value: {\n                  type: 'custom',\n                  name: 'TValue',\n                },\n              },\n            ],\n          },\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/FlavorAction/index.mdx",
    "content": "---\ntitle: FlavorAction\ndescription: Flavor action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# FlavorAction\n\nFlavor action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TName` <Property {...properties.TName} />\n\n## Definition\n\n- `FlavorAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `name` <Property {...properties.name} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/FlavorAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TName: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'FlavorName',\n      href: '../FlavorName/',\n    },\n  },\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'intersect',\n          options: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'Flavor',\n              href: '../Flavor/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TName',\n                },\n              ],\n            },\n          ],\n        },\n        'never',\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'flavor',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'flavor',\n      href: '../flavor/',\n    },\n  },\n  name: {\n    type: {\n      type: 'custom',\n      name: 'TName',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/FlavorName/index.mdx",
    "content": "---\ntitle: FlavorName\ndescription: Flavor name type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# FlavorName\n\nFlavor name type.\n\n## Definition\n\n- `FlavorName` <Property {...properties.FlavorName} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/FlavorName/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  FlavorName: {\n    type: {\n      type: 'union',\n      options: ['string', 'number', 'symbol'],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/FunctionIssue/index.mdx",
    "content": "---\ntitle: FunctionIssue\ndescription: Function issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# FunctionIssue\n\nFunction issue interface.\n\n## Definition\n\n- `FunctionIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/FunctionIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'function',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: 'Function',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/FunctionSchema/index.mdx",
    "content": "---\ntitle: FunctionSchema\ndescription: Function schema interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# FunctionSchema\n\nFunction schema interface.\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `FunctionSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/FunctionSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'FunctionIssue',\n              href: '../FunctionIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'function',\n          params: [\n            {\n              name: 'args',\n              spread: true,\n              type: {\n                type: 'array',\n                item: 'unknown',\n              },\n            },\n          ],\n          return: 'unknown',\n        },\n        {\n          type: 'function',\n          params: [\n            {\n              name: 'args',\n              spread: true,\n              type: {\n                type: 'array',\n                item: 'unknown',\n              },\n            },\n          ],\n          return: 'unknown',\n        },\n        {\n          type: 'custom',\n          name: 'FunctionIssue',\n          href: '../FunctionIssue/',\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'function',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'function',\n      href: '../function/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Function',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/GenericIssue/index.mdx",
    "content": "---\ntitle: GenericIssue\ndescription: Generic issue type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# GenericIssue\n\nGeneric issue type.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `GenericIssue` <Property {...properties.BaseIssue} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/GenericIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n    default: 'unknown',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/GenericMetadata/index.mdx",
    "content": "---\ntitle: GenericMetadata\ndescription: Generic metadata type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# GenericMetadata\n\nGeneric metadata type.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `GenericMetadata` <Property {...properties.BaseMetadata} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/GenericMetadata/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n    default: 'any',\n  },\n  BaseMetadata: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseMetadata',\n      href: '../BaseMetadata/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/GenericPipeAction/index.mdx",
    "content": "---\ntitle: GenericPipeAction\ndescription: Generic pipe action type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# GenericPipeAction\n\nGeneric pipe action type.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n- `TIssue` <Property {...properties.TIssue} />\n\n## Definition\n\n- `GenericPipeAction` <Property {...properties.PipeAction} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/GenericPipeAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n    default: 'any',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n    default: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  TIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n    default: {\n      type: 'custom',\n      name: 'BaseIssue',\n      generics: ['unknown'],\n    },\n  },\n  PipeAction: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'PipeAction',\n      href: '../PipeAction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TOutput',\n        },\n        {\n          type: 'custom',\n          name: 'TIssue',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/GenericPipeActionAsync/index.mdx",
    "content": "---\ntitle: GenericPipeActionAsync\ndescription: Generic pipe action async type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# GenericPipeActionAsync\n\nGeneric pipe action async type.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n- `TIssue` <Property {...properties.TIssue} />\n\n## Definition\n\n- `GenericPipeActionAsync` <Property {...properties.PipeActionAsync} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/GenericPipeActionAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n    default: 'any',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n    default: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  TIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n    default: {\n      type: 'custom',\n      name: 'BaseIssue',\n      generics: ['unknown'],\n    },\n  },\n  PipeActionAsync: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'PipeActionAsync',\n      href: '../PipeActionAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TOutput',\n        },\n        {\n          type: 'custom',\n          name: 'TIssue',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/GenericPipeItem/index.mdx",
    "content": "---\ntitle: GenericPipeItem\ndescription: Generic pipe item type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# GenericPipeItem\n\nGeneric pipe item type.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n- `TIssue` <Property {...properties.TIssue} />\n\n## Definition\n\n- `GenericPipeItem` <Property {...properties.PipeItem} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/GenericPipeItem/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n    default: 'any',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n    default: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  TIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n    default: {\n      type: 'custom',\n      name: 'BaseIssue',\n      generics: ['unknown'],\n    },\n  },\n  PipeItem: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'PipeItem',\n      href: '../PipeItem/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TOutput',\n        },\n        {\n          type: 'custom',\n          name: 'TIssue',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/GenericPipeItemAsync/index.mdx",
    "content": "---\ntitle: GenericPipeItemAsync\ndescription: Generic pipe item async type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# GenericPipeItemAsync\n\nGeneric pipe item async type.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n- `TIssue` <Property {...properties.TIssue} />\n\n## Definition\n\n- `GenericPipeItemAsync` <Property {...properties.PipeItemAsync} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/GenericPipeItemAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n    default: 'any',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n    default: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  TIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n    default: {\n      type: 'custom',\n      name: 'BaseIssue',\n      generics: ['unknown'],\n    },\n  },\n  PipeItemAsync: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'PipeItemAsync',\n      href: '../PipeItemAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TOutput',\n        },\n        {\n          type: 'custom',\n          name: 'TIssue',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/GenericSchema/index.mdx",
    "content": "---\ntitle: GenericSchema\ndescription: Generic schema type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# GenericSchema\n\nGeneric schema type.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n- `TIssue` <Property {...properties.TIssue} />\n\n## Definition\n\n- `GenericSchema` <Property {...properties.BaseSchema} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/GenericSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n    default: 'unknown',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n    default: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  TIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n    default: {\n      type: 'custom',\n      name: 'BaseIssue',\n      generics: ['unknown'],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TOutput',\n        },\n        {\n          type: 'custom',\n          name: 'TIssue',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/GenericSchemaAsync/index.mdx",
    "content": "---\ntitle: GenericSchemaAsync\ndescription: Generic schema async type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# GenericSchemaAsync\n\nGeneric schema async type.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n- `TIssue` <Property {...properties.TIssue} />\n\n## Definition\n\n- `GenericSchemaAsync` <Property {...properties.BaseSchemaAsync} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/GenericSchemaAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n    default: 'unknown',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n    default: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  TIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n    default: {\n      type: 'custom',\n      name: 'BaseIssue',\n      generics: ['unknown'],\n    },\n  },\n  BaseSchemaAsync: {\n    type: {\n      type: 'custom',\n      name: 'BaseSchemaAsync',\n      href: '../BaseSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TOutput',\n        },\n        {\n          type: 'custom',\n          name: 'TIssue',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/GenericTransformation/index.mdx",
    "content": "---\ntitle: GenericTransformation\ndescription: Generic transformation type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# GenericTransformation\n\nGeneric transformation type.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n- `TIssue` <Property {...properties.TIssue} />\n\n## Definition\n\n- `GenericTransformation` <Property {...properties.BaseTransformation} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/GenericTransformation/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n    default: 'any',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n    default: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  TIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n    default: {\n      type: 'custom',\n      name: 'BaseIssue',\n      generics: ['unknown'],\n    },\n  },\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TOutput',\n        },\n        {\n          type: 'custom',\n          name: 'TIssue',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/GenericTransformationAsync/index.mdx",
    "content": "---\ntitle: GenericTransformationAsync\ndescription: Generic transformation async type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# GenericTransformationAsync\n\nGeneric transformation async type.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n- `TIssue` <Property {...properties.TIssue} />\n\n## Definition\n\n- `GenericTransformationAsync` <Property {...properties.BaseTransformationAsync} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/GenericTransformationAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n    default: 'any',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n    default: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  TIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n    default: {\n      type: 'custom',\n      name: 'BaseIssue',\n      generics: ['unknown'],\n    },\n  },\n  BaseTransformationAsync: {\n    type: {\n      type: 'custom',\n      name: 'BaseTransformationAsync',\n      href: '../BaseTransformationAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TOutput',\n        },\n        {\n          type: 'custom',\n          name: 'TIssue',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/GenericValidation/index.mdx",
    "content": "---\ntitle: GenericValidation\ndescription: Generic validation type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# GenericValidation\n\nGeneric validation type.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n- `TIssue` <Property {...properties.TIssue} />\n\n## Definition\n\n- `GenericValidation` <Property {...properties.BaseValidation} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/GenericValidation/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n    default: 'any',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n    default: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  TIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n    default: {\n      type: 'custom',\n      name: 'BaseIssue',\n      generics: ['unknown'],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TOutput',\n        },\n        {\n          type: 'custom',\n          name: 'TIssue',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/GenericValidationAsync/index.mdx",
    "content": "---\ntitle: GenericValidationAsync\ndescription: Generic validation async type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# GenericValidationAsync\n\nGeneric validation async type.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n- `TIssue` <Property {...properties.TIssue} />\n\n## Definition\n\n- `GenericValidationAsync` <Property {...properties.BaseValidationAsync} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/GenericValidationAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n    default: 'any',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n    default: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  TIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n    default: {\n      type: 'custom',\n      name: 'BaseIssue',\n      generics: ['unknown'],\n    },\n  },\n  BaseValidationAsync: {\n    type: {\n      type: 'custom',\n      name: 'BaseValidationAsync',\n      href: '../BaseValidationAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TOutput',\n        },\n        {\n          type: 'custom',\n          name: 'TIssue',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/GlobalConfig/index.mdx",
    "content": "---\ntitle: GlobalConfig\ndescription: The global config type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# GlobalConfig\n\nThe global config type.\n\n## Definition\n\n- `GlobalConfig` <Property {...properties.GlobalConfig} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/GlobalConfig/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  GlobalConfig: {\n    type: {\n      type: 'custom',\n      name: 'Omit',\n      generics: [\n        {\n          type: 'custom',\n          name: 'Config',\n          href: '../Config/',\n          generics: ['never'],\n        },\n        {\n          type: 'string',\n          value: 'message',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/GraphemesAction/index.mdx",
    "content": "---\ntitle: GraphemesAction\ndescription: Graphemes action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# GraphemesAction\n\nGraphemes action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `GraphemesAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/GraphemesAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'GraphemesIssue',\n              href: '../GraphemesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'GraphemesIssue',\n          href: '../GraphemesIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'graphemes',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'graphemes',\n      href: '../graphemes/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/GraphemesIssue/index.mdx",
    "content": "---\ntitle: GraphemesIssue\ndescription: Graphemes issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# GraphemesIssue\n\nGraphemes issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `GraphemesIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/GraphemesIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'graphemes',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: ['number'],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/GtValueAction/index.mdx",
    "content": "---\ntitle: GtValueAction\ndescription: Greater than value action type.\ncontributors:\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# GtValueAction\n\nGreater than value action type.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `GtValueAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/GtValueAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ValueInput',\n      href: '../ValueInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'GtValueIssue',\n              href: '../GtValueIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'GtValueIssue',\n          href: '../GtValueIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'gt_value',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'gtValue',\n      href: '../gtValue/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '>',\n        },\n        'string',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/GtValueIssue/index.mdx",
    "content": "---\ntitle: GtValueIssue\ndescription: Greater than value issue type.\ncontributors:\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# GtValueIssue\n\nGreater than value issue type.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `GtValueIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/GtValueIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ValueInput',\n      href: '../ValueInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'gt_value',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '>',\n        },\n        'string',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/GuardAction/index.mdx",
    "content": "---\ntitle: GuardAction\ndescription: Guard action interface.\ncontributors:\n  - EskiMojo14\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# GuardAction\n\nGuard action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TGuard` <Property {...properties.TGuard} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `GuardAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/GuardAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TGuard: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'GuardFunction',\n      href: '../GuardFunction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'GuardIssue',\n              href: '../GuardIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TGuard',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'intersect',\n          options: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'InferGuardOutput',\n              href: '../InferGuardOutput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TGuard',\n                },\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'GuardIssue',\n          href: '../GuardIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TGuard',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'guard',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'guard',\n      href: '../guard/',\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TGuard',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/GuardFunction/index.mdx",
    "content": "---\ntitle: GuardFunction\ndescription: Guard function type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# GuardFunction\n\nGuard function type.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `GuardFunction` <Property {...properties.GuardFunction} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/GuardFunction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  GuardFunction: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: {\n            type: 'custom',\n            name: 'TInput',\n          },\n        },\n      ],\n      return: {\n        type: 'predicate',\n        param: 'input',\n        is: 'any',\n      },\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/GuardIssue/index.mdx",
    "content": "---\ntitle: GuardIssue\ndescription: Guard issue interface.\ncontributors:\n  - EskiMojo14\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# GuardIssue\n\nGuard issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TGuard` <Property {...properties.TGuard} />\n\n## Definition\n\n- `GuardIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/GuardIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TGuard: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'GuardFunction',\n      href: '../GuardFunction/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'transformation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'guard',\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TGuard',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/HashAction/index.mdx",
    "content": "---\ntitle: HashAction\ndescription: Hash action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# HashAction\n\nHash action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `HashAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/HashAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'HashIssue',\n              href: '../HashIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'HashIssue',\n          href: '../HashIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'hash',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'hash',\n      href: '../hash/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/HashIssue/index.mdx",
    "content": "---\ntitle: HashIssue\ndescription: Hash issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# HashIssue\n\nHash issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `HashIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/HashIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'hash',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/HashType/index.mdx",
    "content": "---\ntitle: HashType\ndescription: Hash type type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# HashType\n\nHash type type.\n\n## Definition\n\n- `HashType` <Property {...properties.HashType} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/HashType/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  HashType: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'string',\n          value: 'md4',\n        },\n        {\n          type: 'string',\n          value: 'md5',\n        },\n        {\n          type: 'string',\n          value: 'sha1',\n        },\n        {\n          type: 'string',\n          value: 'sha256',\n        },\n        {\n          type: 'string',\n          value: 'sha384',\n        },\n        {\n          type: 'string',\n          value: 'sha512',\n        },\n        {\n          type: 'string',\n          value: 'ripemd128',\n        },\n        {\n          type: 'string',\n          value: 'ripemd160',\n        },\n        {\n          type: 'string',\n          value: 'tiger128',\n        },\n        {\n          type: 'string',\n          value: 'tiger160',\n        },\n        {\n          type: 'string',\n          value: 'tiger192',\n        },\n        {\n          type: 'string',\n          value: 'crc32',\n        },\n        {\n          type: 'string',\n          value: 'crc32b',\n        },\n        {\n          type: 'string',\n          value: 'adler32',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/HexColorAction/index.mdx",
    "content": "---\ntitle: HexColorAction\ndescription: Hex color action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# HexColorAction\n\nHex color action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `HexColorAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/HexColorAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'HexColorIssue',\n              href: '../HexColorIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'HexColorIssue',\n          href: '../HexColorIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'hex_color',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'hexColor',\n      href: '../hexColor/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/HexColorIssue/index.mdx",
    "content": "---\ntitle: HexColorIssue\ndescription: HexColor issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# HexColorIssue\n\nHexColor issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `HexColorIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/HexColorIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'hex_color',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/HexadecimalAction/index.mdx",
    "content": "---\ntitle: HexadecimalAction\ndescription: Hexadecimal action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# HexadecimalAction\n\nHexadecimal action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `HexadecimalAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/HexadecimalAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'HexadecimalIssue',\n              href: '../HexadecimalIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'HexadecimalIssue',\n          href: '../HexadecimalIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'hexadecimal',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'hexadecimal',\n      href: '../hexadecimal/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/HexadecimalIssue/index.mdx",
    "content": "---\ntitle: HexadecimalIssue\ndescription: Hexadecimal issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# HexadecimalIssue\n\nHexadecimal issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `HexadecimalIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/HexadecimalIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'hexadecimal',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ImeiAction/index.mdx",
    "content": "---\ntitle: ImeiAction\ndescription: Imei action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ImeiAction\n\nImei action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `ImeiAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ImeiAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ImeiIssue',\n              href: '../ImeiIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'ImeiIssue',\n          href: '../ImeiIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'imei',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'imei',\n      href: '../imei/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: 'string',\n        },\n      ],\n      return: 'boolean',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ImeiIssue/index.mdx",
    "content": "---\ntitle: ImeiIssue\ndescription: IMEI issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ImeiIssue\n\nIMEI issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `ImeiIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ImeiIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'imei',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: 'string',\n        },\n      ],\n      return: 'boolean',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/IncludesAction/index.mdx",
    "content": "---\ntitle: IncludesAction\ndescription: Includes action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# IncludesAction\n\nIncludes action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `IncludesAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/IncludesAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ContentInput',\n      href: '../ContentInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ContentRequirement',\n      href: '../ContentRequirement/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'IncludesIssue',\n              href: '../IncludesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'IncludesIssue',\n          href: '../IncludesIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'includes',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'includes',\n      href: '../includes/',\n    },\n  },\n  expects: {\n    type: 'string',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/IncludesIssue/index.mdx",
    "content": "---\ntitle: IncludesIssue\ndescription: Includes issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# IncludesIssue\n\nIncludes issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `IncludesIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/IncludesIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ContentInput',\n      href: '../ContentInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ContentRequirement',\n      href: '../ContentRequirement/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'includes',\n    },\n  },\n  expected: {\n    type: 'string',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferDefault/index.mdx",
    "content": "---\ntitle: InferDefault\ndescription: Infer default type.\ncontributors:\n  - fabian-hiller\n---\n\n# InferDefault\n\nInfer default type.\n\n> This type is too complex to display. Please refer to the [source code](https://github.com/open-circle/valibot/blob/main/library/src/methods/getDefault/getDefault.ts).\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferDefaults/index.mdx",
    "content": "---\ntitle: InferDefaults\ndescription: Infer defaults type.\ncontributors:\n  - fabian-hiller\n---\n\n# InferDefaults\n\nInfer defaults type.\n\n> This type is too complex to display. Please refer to the [source code](https://github.com/open-circle/valibot/blob/main/library/src/methods/getDefaults/types.ts).\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferExamples/index.mdx",
    "content": "---\ntitle: InferExamples\ndescription: Infer examples type.\ncontributors:\n  - fabian-hiller\n---\n\n# InferExamples\n\nInfer examples type.\n\n> This type is too complex to display. Please refer to the [source code](https://github.com/open-circle/valibot/blob/main/library/src/methods/getExamples/getExamples.ts).\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferFallback/index.mdx",
    "content": "---\ntitle: InferFallback\ndescription: Infer fallback type.\ncontributors:\n  - fabian-hiller\n---\n\n# InferFallback\n\nInfer fallback type.\n\n> This type is too complex to display. Please refer to the [source code](https://github.com/open-circle/valibot/blob/main/library/src/methods/getFallback/getFallback.ts).\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferFallbacks/index.mdx",
    "content": "---\ntitle: InferFallbacks\ndescription: Infer fallbacks type.\ncontributors:\n  - fabian-hiller\n---\n\n# InferFallbacks\n\nInfer fallbacks type.\n\n> This type is too complex to display. Please refer to the [source code](https://github.com/open-circle/valibot/blob/main/library/src/methods/getFallbacks/types.ts).\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferGuardOutput/index.mdx",
    "content": "---\ntitle: InferGuardOutput\ndescription: Infer guard output type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# InferGuardOutput\n\nInfer guard output type.\n\n## Generics\n\n- `TGuard` <Property {...properties.TGuard} />\n\n## Definition\n\n- `InferGuardOutput` <Property {...properties.InferGuardOutput} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferGuardOutput/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TGuard: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'GuardFunction',\n      href: '../GuardFunction/',\n      generics: ['any'],\n    },\n  },\n  InferGuardOutput: {\n    type: {\n      type: 'conditional',\n      conditions: [\n        {\n          type: {\n            type: 'custom',\n            name: 'TGuard',\n          },\n          extends: {\n            type: 'function',\n            params: [\n              {\n                name: 'input',\n                type: 'any',\n              },\n            ],\n            return: {\n              type: 'predicate',\n              param: 'input',\n              is: {\n                type: 'custom',\n                modifier: 'infer',\n                name: 'TOutput',\n              },\n            },\n          },\n          true: {\n            type: 'custom',\n            name: 'TOutput',\n          },\n        },\n      ],\n      false: 'unknown',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferInput/index.mdx",
    "content": "---\ntitle: InferInput\ndescription: Infer input type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# InferInput\n\nInfer input type.\n\n## Generics\n\n- `TItem` <Property {...properties.TItem} />\n\n## Definition\n\n- `InferInput` <Property {...properties.InferInput} />\n\n## Example\n\n```ts\n// Create object schema\nconst ObjectSchema = v.object({\n  key: v.pipe(\n    v.string(),\n    v.transform((input) => input.length)\n  ),\n});\n\n// Infer object input type\ntype ObjectInput = v.InferInput<typeof ObjectSchema>; // { key: string }\n```\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferInput/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TItem: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseValidation',\n          href: '../BaseValidation/',\n          generics: [\n            'any',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseValidationAsync',\n          href: '../BaseValidationAsync/',\n          generics: [\n            'any',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseTransformation',\n          href: '../BaseTransformation/',\n          generics: [\n            'any',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseTransformationAsync',\n          href: '../BaseTransformationAsync/',\n          generics: [\n            'any',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseMetadata',\n          href: '../BaseMetadata/',\n          generics: ['any'],\n        },\n      ],\n    },\n  },\n  InferInput: {\n    type: {\n      type: 'custom',\n      name: 'NonNullable',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TItem',\n          indexes: [\n            {\n              type: 'string',\n              value: '~types',\n            },\n          ],\n        },\n      ],\n      indexes: [\n        {\n          type: 'string',\n          value: 'input',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferIntersectInput/index.mdx",
    "content": "---\ntitle: InferIntersectInput\ndescription: Infer intersect input type.\ncontributors:\n  - fabian-hiller\n---\n\n# InferIntersectInput\n\nInfer intersect input type.\n\n```ts\n// Create object schemas\nconst ObjectSchemas = [\n  v.object({\n    key1: v.pipe(\n      v.string(),\n      v.transform((input) => input.length)\n    ),\n  }),\n  v.object({\n    key2: v.pipe(\n      v.string(),\n      v.transform((input) => input.length)\n    ),\n  }),\n];\n\n// Infer object intersect input type\ntype ObjectInput = v.InferIntersectInput<typeof ObjectSchemas>; // { key1: string } & { key2: string }\n```\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferIntersectOutput/index.mdx",
    "content": "---\ntitle: InferIntersectOutput\ndescription: Infer intersect output type.\ncontributors:\n  - fabian-hiller\n---\n\n# InferIntersectOutput\n\nInfer intersect output type.\n\n```ts\n// Create object schemas\nconst ObjectSchemas = [\n  v.object({\n    key1: v.pipe(\n      v.string(),\n      v.transform((input) => input.length)\n    ),\n  }),\n  v.object({\n    key2: v.pipe(\n      v.string(),\n      v.transform((input) => input.length)\n    ),\n  }),\n];\n\n// Infer object intersect output type\ntype ObjectOutput = v.InferIntersectOutput<typeof ObjectSchemas>; // { key1: number } & { key2: number }\n```\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferIssue/index.mdx",
    "content": "---\ntitle: InferIssue\ndescription: Infer issue type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# InferIssue\n\nInfer issue type.\n\n## Generics\n\n- `TItem` <Property {...properties.TItem} />\n\n## Definition\n\n- `InferIssue` <Property {...properties.InferIssue} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TItem: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseValidation',\n          href: '../BaseValidation/',\n          generics: [\n            'any',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseValidationAsync',\n          href: '../BaseValidationAsync/',\n          generics: [\n            'any',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseTransformation',\n          href: '../BaseTransformation/',\n          generics: [\n            'any',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseTransformationAsync',\n          href: '../BaseTransformationAsync/',\n          generics: [\n            'any',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseMetadata',\n          href: '../BaseMetadata/',\n          generics: ['any'],\n        },\n      ],\n    },\n  },\n  InferIssue: {\n    type: {\n      type: 'custom',\n      name: 'NonNullable',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TItem',\n          indexes: [\n            {\n              type: 'string',\n              value: '~types',\n            },\n          ],\n        },\n      ],\n      indexes: [\n        {\n          type: 'string',\n          value: 'issue',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferMapInput/index.mdx",
    "content": "---\ntitle: InferMapInput\ndescription: Infer map input type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# InferMapInput\n\nInfer map input type.\n\n## Generics\n\n- `TKey` <Property {...properties.TKey} />\n- `TValue` <Property {...properties.TValue} />\n\n## Definition\n\n- `InferMapInput` <Property {...properties.InferMapInput} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferMapInput/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TKey: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TValue: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  InferMapInput: {\n    type: {\n      type: 'custom',\n      name: 'Map',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferInput',\n          href: '../InferInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TKey',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferInput',\n          href: '../InferInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TValue',\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferMapOutput/index.mdx",
    "content": "---\ntitle: InferMapOutput\ndescription: Infer map output type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# InferMapOutput\n\nInfer map output type.\n\n## Generics\n\n- `TKey` <Property {...properties.TKey} />\n- `TValue` <Property {...properties.TValue} />\n\n## Definition\n\n- `InferMapOutput` <Property {...properties.InferMapOutput} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferMapOutput/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TKey: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TValue: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  InferMapOutput: {\n    type: {\n      type: 'custom',\n      name: 'Map',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferOutput',\n          href: '../InferOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TKey',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferOutput',\n          href: '../InferOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TValue',\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferMetadata/index.mdx",
    "content": "---\ntitle: InferMetadata\ndescription: Infer metadata type.\ncontributors:\n  - fabian-hiller\n---\n\n# InferMetadata\n\nInfer fallbacks type.\n\n> This type is too complex to display. Please refer to the [source code](https://github.com/open-circle/valibot/blob/main/library/src/methods/getMetadata/getMetadata.ts).\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferNonNullableInput/index.mdx",
    "content": "---\ntitle: InferNonNullableInput\ndescription: Infer non nullable input type.\ncontributors:\n  - fabian-hiller\n---\n\n# InferNonNullableInput\n\nInfer non nullable input type.\n\n```ts\n// Create nullable string schema\nconst NullableStringSchema = v.nullable(\n  v.pipe(\n    v.string(),\n    v.transform((input) => input.length)\n  )\n);\n\n// Infer non nullable string input type\ntype NonNullableStringInput = v.InferNonNullableInput<\n  typeof NullableStringSchema\n>; // string\n```\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferNonNullableIssue/index.mdx",
    "content": "---\ntitle: InferNonNullableIssue\ndescription: Infer non nullable issue type.\ncontributors:\n  - fabian-hiller\n---\n\n# InferNonNullableIssue\n\nInfer non nullable issue type.\n\n> This type is too complex to display. Please refer to the [source code](https://github.com/open-circle/valibot/blob/main/library/src/schemas/nonNullable/types.ts).\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferNonNullableOutput/index.mdx",
    "content": "---\ntitle: InferNonNullableOutput\ndescription: Infer non nullable output type.\ncontributors:\n  - fabian-hiller\n---\n\n# InferNonNullableOutput\n\nInfer non nullable output type.\n\n```ts\n// Create nullable string schema\nconst NullableStringSchema = v.nullable(\n  v.pipe(\n    v.string(),\n    v.transform((input) => input.length)\n  )\n);\n\n// Infer non nullable string output type\ntype NonNullableStringOutput = v.InferNonNullableOutput<\n  typeof NullableStringSchema\n>; // number\n```\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferNonNullishInput/index.mdx",
    "content": "---\ntitle: InferNonNullishInput\ndescription: Infer non nullable input type.\ncontributors:\n  - fabian-hiller\n---\n\n# InferNonNullishInput\n\nInfer non nullable input type.\n\n```ts\n// Create nullish string schema\nconst NullishStringSchema = v.nullish(\n  v.pipe(\n    v.string(),\n    v.transform((input) => input.length)\n  )\n);\n\n// Infer non nullish string input type\ntype NonNullishStringInput = v.InferNonNullishInput<typeof NullishStringSchema>; // string\n```\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferNonNullishIssue/index.mdx",
    "content": "---\ntitle: InferNonNullishIssue\ndescription: Infer non nullish issue type.\ncontributors:\n  - fabian-hiller\n---\n\n# InferNonNullishIssue\n\nInfer non nullish issue type.\n\n> This type is too complex to display. Please refer to the [source code](https://github.com/open-circle/valibot/blob/main/library/src/schemas/nonNullish/types.ts).\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferNonNullishOutput/index.mdx",
    "content": "---\ntitle: InferNonNullishOutput\ndescription: Infer non nullable output type.\ncontributors:\n  - fabian-hiller\n---\n\n# InferNonNullishOutput\n\nInfer non nullable output type.\n\n```ts\n// Create nullish string schema\nconst NullishStringSchema = v.nullish(\n  v.pipe(\n    v.string(),\n    v.transform((input) => input.length)\n  )\n);\n\n// Infer non nullish string output type\ntype NonNullishStringOutput = v.InferNonNullishOutput<\n  typeof NullishStringSchema\n>; // number\n```\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferNonOptionalInput/index.mdx",
    "content": "---\ntitle: InferNonOptionalInput\ndescription: Infer non optional input type.\ncontributors:\n  - fabian-hiller\n---\n\n# InferNonOptionalInput\n\nInfer non optional input type.\n\n```ts\n// Create optional string schema\nconst OptionalStringSchema = v.optional(\n  v.pipe(\n    v.string(),\n    v.transform((input) => input.length)\n  )\n);\n\n// Infer non optional string input type\ntype NonOptionalStringInput = v.InferNonOptionalInput<\n  typeof OptionalStringSchema\n>; // string\n```\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferNonOptionalIssue/index.mdx",
    "content": "---\ntitle: InferNonOptionalIssue\ndescription: Infer non optional issue type.\ncontributors:\n  - fabian-hiller\n---\n\n# InferNonOptionalIssue\n\nInfer non optional issue type.\n\n> This type is too complex to display. Please refer to the [source code](https://github.com/open-circle/valibot/blob/main/library/src/schemas/nonOptional/types.ts).\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferNonOptionalOutput/index.mdx",
    "content": "---\ntitle: InferNonOptionalOutput\ndescription: Infer non optional output type.\ncontributors:\n  - fabian-hiller\n---\n\n# InferNonOptionalOutput\n\nInfer non optional output type.\n\n```ts\n// Create optional string schema\nconst OptionalStringSchema = v.optional(\n  v.pipe(\n    v.string(),\n    v.transform((input) => input.length)\n  )\n);\n\n// Infer non optional string output type\ntype NonOptionalStringOutput = v.InferNonOptionalOutput<\n  typeof OptionalStringSchema\n>; // number\n```\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferNullableOutput/index.mdx",
    "content": "---\ntitle: InferNullableOutput\ndescription: Infer nullable output type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# InferNullableOutput\n\nInfer nullable output type.\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TDefault` <Property {...properties.TDefault} />\n\n## Definition\n\n- `InferNullableOutput` <Property {...properties.InferNullableOutput} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferNullableOutput/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TDefault: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'DefaultAsync',\n      href: '../DefaultAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        'null',\n      ],\n    },\n  },\n  InferNullableOutput: {\n    type: {\n      type: 'conditional',\n      conditions: [\n        {\n          type: {\n            type: 'tuple',\n            items: [\n              {\n                type: 'custom',\n                name: 'TDefault',\n              },\n            ],\n          },\n          extends: {\n            type: 'tuple',\n            items: ['never'],\n          },\n          true: {\n            type: 'union',\n            options: [\n              {\n                type: 'custom',\n                name: 'InferOutput',\n                href: '../InferOutput/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TWrapped',\n                  },\n                ],\n              },\n              'null',\n            ],\n          },\n        },\n      ],\n      false: {\n        type: 'union',\n        options: [\n          {\n            type: 'custom',\n            name: 'NonNullable',\n            href: '../NonNullable/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'InferOutput',\n                href: '../InferOutput/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TWrapped',\n                  },\n                ],\n              },\n            ],\n          },\n          {\n            type: 'custom',\n            name: 'Extract',\n            generics: [\n              {\n                type: 'custom',\n                name: 'DefaultValue',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TDefault',\n                  },\n                ],\n              },\n              'null',\n            ],\n          },\n        ],\n      },\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferNullishOutput/index.mdx",
    "content": "---\ntitle: InferNullishOutput\ndescription: Infer nullish output type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# InferNullishOutput\n\nInfer nullish output type.\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TDefault` <Property {...properties.TDefault} />\n\n## Definition\n\n- `InferNullishOutput` <Property {...properties.InferNullishOutput} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferNullishOutput/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TDefault: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'DefaultAsync',\n      href: '../DefaultAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        {\n          type: 'union',\n          options: ['null', 'undefined'],\n        },\n      ],\n    },\n  },\n  InferNullishOutput: {\n    type: {\n      type: 'conditional',\n      conditions: [\n        {\n          type: {\n            type: 'tuple',\n            items: [\n              {\n                type: 'custom',\n                name: 'TDefault',\n              },\n            ],\n          },\n          extends: {\n            type: 'tuple',\n            items: ['never'],\n          },\n          true: {\n            type: 'union',\n            options: [\n              {\n                type: 'custom',\n                name: 'InferOutput',\n                href: '../InferOutput/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TWrapped',\n                  },\n                ],\n              },\n              {\n                type: 'union',\n                options: ['null', 'undefined'],\n              },\n            ],\n          },\n        },\n      ],\n      false: {\n        type: 'union',\n        options: [\n          {\n            type: 'custom',\n            name: 'NonNullish',\n            href: '../NonNullish/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'InferOutput',\n                href: '../InferOutput/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TWrapped',\n                  },\n                ],\n              },\n            ],\n          },\n          {\n            type: 'custom',\n            name: 'Extract',\n            generics: [\n              {\n                type: 'custom',\n                name: 'DefaultValue',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TDefault',\n                  },\n                ],\n              },\n              {\n                type: 'union',\n                options: ['null', 'undefined'],\n              },\n            ],\n          },\n        ],\n      },\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferObjectInput/index.mdx",
    "content": "---\ntitle: InferObjectInput\ndescription: Infer object input type.\ncontributors:\n  - fabian-hiller\n---\n\n# InferObjectInput\n\nInfer object input type.\n\n```ts\n// Create object entries\nconst entries = {\n  key: v.pipe(\n    v.string(),\n    v.transform((input) => input.length)\n  ),\n};\n\n// Infer entries input type\ntype EntriesInput = v.InferObjectInput<typeof entries>; // { key: string }\n```\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferObjectIssue/index.mdx",
    "content": "---\ntitle: InferObjectIssue\ndescription: Infer object issue type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# InferObjectIssue\n\nInfer object issue type.\n\n## Generics\n\n- `TEntries` <Property {...properties.TEntries} />\n\n## Definition\n\n- `InferObjectIssue` <Property {...properties.InferObjectIssue} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferObjectIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TEntries: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ObjectEntries',\n          href: '../ObjectEntries/',\n        },\n        {\n          type: 'custom',\n          name: 'ObjectEntriesAsync',\n          href: '../ObjectEntriesAsync/',\n        },\n      ],\n    },\n  },\n  InferObjectIssue: {\n    type: {\n      type: 'custom',\n      name: 'InferIssue',\n      href: '../InferIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TEntries',\n          indexes: [\n            {\n              type: 'custom',\n              modifier: 'keyof',\n              name: 'TEntries',\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferObjectOutput/index.mdx",
    "content": "---\ntitle: InferObjectOutput\ndescription: Infer object output type.\ncontributors:\n  - fabian-hiller\n  - kazizi55\n---\n\n# InferObjectOutput\n\nInfer object output type.\n\n```ts\n// Create object entries\nconst entries = {\n  key: v.pipe(\n    v.string(),\n    v.transform((input) => input.length)\n  ),\n};\n\n// Infer entries output type\ntype EntriesOutput = v.InferObjectOutput<typeof entries>; // { key: number }\n```\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferOptionalOutput/index.mdx",
    "content": "---\ntitle: InferOptionalOutput\ndescription: Infer optional output type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# InferOptionalOutput\n\nInfer optional output type.\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TDefault` <Property {...properties.TDefault} />\n\n## Definition\n\n- `InferOptionalOutput` <Property {...properties.InferOptionalOutput} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferOptionalOutput/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TDefault: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'DefaultAsync',\n      href: '../DefaultAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        'undefined',\n      ],\n    },\n  },\n  InferOptionalOutput: {\n    type: {\n      type: 'conditional',\n      conditions: [\n        {\n          type: {\n            type: 'tuple',\n            items: [\n              {\n                type: 'custom',\n                name: 'TDefault',\n              },\n            ],\n          },\n          extends: {\n            type: 'tuple',\n            items: ['never'],\n          },\n          true: {\n            type: 'union',\n            options: [\n              {\n                type: 'custom',\n                name: 'InferOutput',\n                href: '../InferOutput/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TWrapped',\n                  },\n                ],\n              },\n              'undefined',\n            ],\n          },\n        },\n      ],\n      false: {\n        type: 'union',\n        options: [\n          {\n            type: 'custom',\n            name: 'NonOptional',\n            href: '../NonOptional/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'InferOutput',\n                href: '../InferOutput/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TWrapped',\n                  },\n                ],\n              },\n            ],\n          },\n          {\n            type: 'custom',\n            name: 'Extract',\n            generics: [\n              {\n                type: 'custom',\n                name: 'DefaultValue',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TDefault',\n                  },\n                ],\n              },\n              'undefined',\n            ],\n          },\n        ],\n      },\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferOutput/index.mdx",
    "content": "---\ntitle: InferOutput\ndescription: Infer output type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# InferOutput\n\nInfer output type.\n\n## Generics\n\n- `TItem` <Property {...properties.TItem} />\n\n## Definition\n\n- `InferIssue` <Property {...properties.InferIssue} />\n\n## Example\n\n```ts\n// Create object schema\nconst ObjectSchema = v.object({\n  key: v.pipe(\n    v.string(),\n    v.transform((input) => input.length)\n  ),\n});\n\n// Infer object output type\ntype ObjectOutput = v.InferOutput<typeof ObjectSchema>; // { key: number }\n```\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferOutput/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TItem: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseValidation',\n          href: '../BaseValidation/',\n          generics: [\n            'any',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseValidationAsync',\n          href: '../BaseValidationAsync/',\n          generics: [\n            'any',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseTransformation',\n          href: '../BaseTransformation/',\n          generics: [\n            'any',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseTransformationAsync',\n          href: '../BaseTransformationAsync/',\n          generics: [\n            'any',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseMetadata',\n          href: '../BaseMetadata/',\n          generics: ['any'],\n        },\n      ],\n    },\n  },\n  InferIssue: {\n    type: {\n      type: 'custom',\n      name: 'NonNullable',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TItem',\n          indexes: [\n            {\n              type: 'string',\n              value: '~types',\n            },\n          ],\n        },\n      ],\n      indexes: [\n        {\n          type: 'string',\n          value: 'output',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferRecordInput/index.mdx",
    "content": "---\ntitle: InferRecordInput\ndescription: Infer record input type.\ncontributors:\n  - fabian-hiller\n---\n\n# InferRecordInput\n\nInfer record input type.\n\n> This type is too complex to display. Please refer to the [source code](https://github.com/open-circle/valibot/blob/main/library/src/schemas/record/types.ts).\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferRecordOutput/index.mdx",
    "content": "---\ntitle: InferRecordOutput\ndescription: Infer record output type.\ncontributors:\n  - fabian-hiller\n---\n\n# InferRecordOutput\n\nInfer record output type.\n\n> This type is too complex to display. Please refer to the [source code](https://github.com/open-circle/valibot/blob/main/library/src/schemas/record/types.ts).\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferSetInput/index.mdx",
    "content": "---\ntitle: InferSetInput\ndescription: Infer set input type.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# InferSetInput\n\nInfer set input type.\n\n## Generics\n\n- `TValue` <Property {...properties.TValue} />\n\n## Definition\n\n- `InferSetInput` <Property {...properties.InferSetInput} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferSetInput/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TValue: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  InferSetInput: {\n    type: {\n      type: 'custom',\n      name: 'Set',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferInput',\n          href: '../InferInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TValue',\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferSetOutput/index.mdx",
    "content": "---\ntitle: InferSetOutput\ndescription: Infer set output type.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# InferSetOutput\n\nInfer set output type.\n\n## Generics\n\n- `TValue` <Property {...properties.TValue} />\n\n## Definition\n\n- `InferSetOutput` <Property {...properties.InferSetOutput} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferSetOutput/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TValue: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  InferSetOutput: {\n    type: {\n      type: 'custom',\n      name: 'Set',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferOutput',\n          href: '../InferOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TValue',\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferTupleInput/index.mdx",
    "content": "---\ntitle: InferTupleInput\ndescription: Infer tuple output type.\ncontributors:\n  - fabian-hiller\n---\n\n# InferTupleInput\n\nInfer tuple output type.\n\n```ts\n// Create tuple items\nconst items = [\n  v.pipe(\n    v.string(),\n    v.transform((input) => input.length)\n  ),\n];\n\n// Infer items input type\ntype ItemsInput = v.InferTupleInput<typeof items>; // [string]\n```\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferTupleIssue/index.mdx",
    "content": "---\ntitle: InferTupleIssue\ndescription: Infer tuple issue type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# InferTupleIssue\n\nInfer tuple issue type.\n\n## Generics\n\n- `TItems` <Property {...properties.TItems} />\n\n## Definition\n\n- `InferTupleIssue` <Property {...properties.InferTupleIssue} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferTupleIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TItems: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'TupleItems',\n          href: '../TupleItems/',\n        },\n        {\n          type: 'custom',\n          name: 'TupleItemsAsync',\n          href: '../TupleItemsAsync/',\n        },\n      ],\n    },\n  },\n  InferTupleIssue: {\n    type: {\n      type: 'custom',\n      name: 'InferIssue',\n      href: '../InferIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TItems',\n          indexes: ['number'],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferTupleOutput/index.mdx",
    "content": "---\ntitle: InferTupleOutput\ndescription: Infer tuple issue type.\ncontributors:\n  - fabian-hiller\n---\n\n# InferTupleOutput\n\nInfer tuple issue type.\n\n```ts\nconst items = [\n  v.pipe(\n    v.string(),\n    v.transform((input) => input.length)\n  ),\n];\n\n// Infer items output type\ntype ItemsOutput = v.InferTupleOutput<typeof items>; // [number]\n```\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferVariantIssue/index.mdx",
    "content": "---\ntitle: InferVariantIssue\ndescription: Infer variant issue type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# InferVariantIssue\n\nInfer variant issue type.\n\n## Generics\n\n- `TOptions` <Property {...properties.TOptions} />\n\n## Definition\n\n- `InferVariantIssue` <Property {...properties.InferVariantIssue} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/InferVariantIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TOptions: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'VariantOptions',\n          href: '../VariantOptions/',\n          generics: ['string'],\n        },\n        {\n          type: 'custom',\n          name: 'VariantOptionsAsync',\n          href: '../VariantOptionsAsync/',\n          generics: ['string'],\n        },\n      ],\n    },\n  },\n  InferVariantIssue: {\n    type: {\n      type: 'custom',\n      name: 'Exclude',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferIssue',\n          href: '../InferIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TOptions',\n              indexes: ['number'],\n            },\n          ],\n        },\n        {\n          type: 'object',\n          entries: [\n            {\n              key: 'type',\n              value: {\n                type: 'union',\n                options: [\n                  {\n                    type: 'string',\n                    value: 'loose_object',\n                  },\n                  {\n                    type: 'string',\n                    value: 'object',\n                  },\n                  {\n                    type: 'string',\n                    value: 'object_with_rest',\n                  },\n                ],\n              },\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/InstanceIssue/index.mdx",
    "content": "---\ntitle: InstanceIssue\ndescription: Instance issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# InstanceIssue\n\nInstance issue interface.\n\n## Definition\n\n- `InstanceIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/InstanceIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'instance',\n    },\n  },\n  expected: {\n    type: 'string',\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/InstanceSchema/index.mdx",
    "content": "---\ntitle: InstanceSchema\ndescription: Instance schema interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# InstanceSchema\n\nInstance schema interface.\n\n## Generics\n\n- `TClass` <Property {...properties.TClass} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `InstanceSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `class` <Property {...properties.class} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/InstanceSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TClass: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Class',\n      href: '../Class/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'InstanceIssue',\n              href: '../InstanceIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InstanceType',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TClass',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InstanceType',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TClass',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InstanceIssue',\n          href: '../InstanceIssue/',\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'instance',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'instance',\n      href: '../instance/',\n    },\n  },\n  class: {\n    type: {\n      type: 'custom',\n      name: 'TClass',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/IntegerAction/index.mdx",
    "content": "---\ntitle: IntegerAction\ndescription: Integer action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# IntegerAction\n\nInteger action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `IntegerAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/IntegerAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'IntegerIssue',\n              href: '../IntegerIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'IntegerIssue',\n          href: '../IntegerIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'integer',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'integer',\n      href: '../integer/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: 'number',\n        },\n      ],\n      return: 'boolean',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/IntegerIssue/index.mdx",
    "content": "---\ntitle: IntegerIssue\ndescription: Integer issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# IntegerIssue\n\nInteger issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `IntegerIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/IntegerIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'integer',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: ['number'],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: 'number',\n        },\n      ],\n      return: 'boolean',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/IntersectIssue/index.mdx",
    "content": "---\ntitle: IntersectIssue\ndescription: Intersect issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# IntersectIssue\n\nIntersect issue interface.\n\n## Definition\n\n- `IntersectIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/IntersectIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'intersect',\n    },\n  },\n  expected: {\n    type: 'string',\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/IntersectOptions/index.mdx",
    "content": "---\ntitle: IntersectOptions\ndescription: Intersect options type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# IntersectOptions\n\nIntersect options type.\n\n## Definition\n\n- `IntersectOptions` <Property {...properties.IntersectOptions} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/IntersectOptions/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  IntersectOptions: {\n    type: {\n      type: 'custom',\n      name: 'MaybeReadonly',\n      href: '../MaybeReadonly/',\n      generics: [\n        {\n          type: 'array',\n          item: {\n            type: 'custom',\n            name: 'BaseSchema',\n            href: '../BaseSchema/',\n            generics: [\n              'unknown',\n              'unknown',\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/IntersectOptionsAsync/index.mdx",
    "content": "---\ntitle: IntersectOptionsAsync\ndescription: Intersect options async type.\ncontributors:\n  - EltonLobo07\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# IntersectOptionsAsync\n\nIntersect options async type.\n\n## Definition\n\n- `IntersectOptionsAsync` <Property {...properties.IntersectOptionsAsync} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/IntersectOptionsAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  IntersectOptionsAsync: {\n    type: {\n      type: 'custom',\n      name: 'MaybeReadonly',\n      href: '../MaybeReadonly/',\n      generics: [\n        {\n          type: 'array',\n          item: {\n            type: 'union',\n            options: [\n              {\n                type: 'custom',\n                name: 'BaseSchema',\n                href: '../BaseSchema/',\n                generics: [\n                  'unknown',\n                  'unknown',\n                  {\n                    type: 'custom',\n                    name: 'BaseIssue',\n                    href: '../BaseIssue/',\n                    generics: ['unknown'],\n                  },\n                ],\n              },\n              {\n                type: 'custom',\n                name: 'BaseSchemaAsync',\n                href: '../BaseSchemaAsync/',\n                generics: [\n                  'unknown',\n                  'unknown',\n                  {\n                    type: 'custom',\n                    name: 'BaseIssue',\n                    href: '../BaseIssue/',\n                    generics: ['unknown'],\n                  },\n                ],\n              },\n            ],\n          },\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/IntersectSchema/index.mdx",
    "content": "---\ntitle: IntersectSchema\ndescription: Intersect schema interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# IntersectSchema\n\nIntersect schema interface.\n\n## Generics\n\n- `TOptions` <Property {...properties.TOptions} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `IntersectSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `options` <Property {...properties.options} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/IntersectSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TOptions: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'IntersectOptions',\n      href: '../IntersectOptions/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'IntersectIssue',\n              href: '../IntersectIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferIntersectInput',\n          href: '../InferIntersectInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TOptions',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferIntersectOutput',\n          href: '../InferIntersectOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TOptions',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'IntersectIssue',\n              href: '../IntersectIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TOptions',\n                  indexes: ['number'],\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'intersect',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'intersect',\n      href: '../intersect/',\n    },\n  },\n  options: {\n    type: {\n      type: 'custom',\n      name: 'TOptions',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/IntersectSchemaAsync/index.mdx",
    "content": "---\ntitle: IntersectSchemaAsync\ndescription: Intersect schema async interface.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# IntersectSchemaAsync\n\nIntersect schema async interface.\n\n## Generics\n\n- `TOptions` <Property {...properties.TOptions} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `IntersectSchemaAsync` <Property {...properties.BaseSchemaAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `options` <Property {...properties.options} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/IntersectSchemaAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TOptions: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'IntersectOptionsAsync',\n      href: '../IntersectOptionsAsync/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'IntersectIssue',\n              href: '../IntersectIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchemaAsync: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchemaAsync',\n      href: '../BaseSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferIntersectInput',\n          href: '../InferIntersectInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TOptions',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferIntersectOutput',\n          href: '../InferIntersectOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TOptions',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'IntersectIssue',\n              href: '../IntersectIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TOptions',\n                  indexes: ['number'],\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'intersect',\n    },\n  },\n  reference: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'intersect',\n          href: '../intersect/',\n        },\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'intersectAsync',\n          href: '../intersectAsync/',\n        },\n      ],\n    },\n  },\n  options: {\n    type: {\n      type: 'custom',\n      name: 'TOptions',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/IpAction/index.mdx",
    "content": "---\ntitle: IpAction\ndescription: IP action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# IpAction\n\nIP action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `IpAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/IpAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'IpIssue',\n              href: '../IpIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'IpIssue',\n          href: '../IpIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'ip',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'ip',\n      href: '../ip/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/IpIssue/index.mdx",
    "content": "---\ntitle: IpIssue\ndescription: IP issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# IpIssue\n\nIP issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `IpIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/IpIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'ip',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/Ipv4Action/index.mdx",
    "content": "---\ntitle: Ipv4Action\ndescription: IPv4 action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# Ipv4Action\n\nIPv4 action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `Ipv4Action` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/Ipv4Action/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'Ipv4Issue',\n              href: '../Ipv4Issue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'Ipv4Issue',\n          href: '../Ipv4Issue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'ipv4',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'ipv4',\n      href: '../ipv4/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/Ipv4Issue/index.mdx",
    "content": "---\ntitle: Ipv4Issue\ndescription: IPv4 issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# Ipv4Issue\n\nIPv4 issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `Ipv4Issue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/Ipv4Issue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'ipv4',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/Ipv6Action/index.mdx",
    "content": "---\ntitle: Ipv6Action\ndescription: IPv6 action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# Ipv6Action\n\nIPv6 action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `Ipv6Action` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/Ipv6Action/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'Ipv6Issue',\n              href: '../Ipv6Issue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'Ipv6Issue',\n          href: '../Ipv6Issue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'ipv6',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'ipv6',\n      href: '../ipv6/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/Ipv6Issue/index.mdx",
    "content": "---\ntitle: Ipv6Issue\ndescription: IPv6 issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# Ipv6Issue\n\nIPv6 issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `Ipv6Issue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/Ipv6Issue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'ipv6',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsbnAction/index.mdx",
    "content": "---\ntitle: IsbnAction\ndescription: ISBN action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# IsbnAction\n\nISBN action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `IsbnAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsbnAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'IsbnIssue',\n              href: '../IsbnIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'IsbnIssue',\n          href: '../IsbnIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'isbn',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'isbn',\n      href: '../isbn/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: 'string',\n        },\n      ],\n      return: 'boolean',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsbnIssue/index.mdx",
    "content": "---\ntitle: IsbnIssue\ndescription: ISBN issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# IsbnIssue\n\nISBN issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `IsbnIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsbnIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'isbn',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: 'string',\n        },\n      ],\n      return: 'boolean',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsoDateAction/index.mdx",
    "content": "---\ntitle: IsoDateAction\ndescription: ISO date action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# IsoDateAction\n\nISO date action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `IsoDateAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsoDateAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'IsoDateIssue',\n              href: '../IsoDateIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'IsoDateIssue',\n          href: '../IsoDateIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'iso_date',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'isoDate',\n      href: '../isoDate/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsoDateIssue/index.mdx",
    "content": "---\ntitle: IsoDateIssue\ndescription: ISO date issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# IsoDateIssue\n\nISO date issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `IsoDateIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsoDateIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'iso_date',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsoDateTimeAction/index.mdx",
    "content": "---\ntitle: IsoDateTimeAction\ndescription: ISO date time action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# IsoDateTimeAction\n\nISO date time action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `IsoDateTimeAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsoDateTimeAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'IsoDateTimeIssue',\n              href: '../IsoDateTimeIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'IsoDateTimeIssue',\n          href: '../IsoDateTimeIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'iso_date_time',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'isoDateTime',\n      href: '../isoDateTime/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsoDateTimeIssue/index.mdx",
    "content": "---\ntitle: IsoDateTimeIssue\ndescription: ISO date time issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# IsoDateTimeIssue\n\nISO date time issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `IsoDateTimeIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsoDateTimeIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'iso_date_time',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsoTimeAction/index.mdx",
    "content": "---\ntitle: IsoTimeAction\ndescription: ISO time action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# IsoTimeAction\n\nISO time action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `IsoTimeAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsoTimeAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'IsoTimeIssue',\n              href: '../IsoTimeIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'IsoTimeIssue',\n          href: '../IsoTimeIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'iso_time',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'isoTime',\n      href: '../IsoTimeAction/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsoTimeIssue/index.mdx",
    "content": "---\ntitle: IsoTimeIssue\ndescription: ISO time issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# IsoTimeIssue\n\nISO time issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `IsoTimeIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsoTimeIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'iso_time',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsoTimeSecondAction/index.mdx",
    "content": "---\ntitle: IsoTimeSecondAction\ndescription: ISO time second action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# IsoTimeSecondAction\n\nISO time second action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `IsoTimeSecondAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsoTimeSecondAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'IsoTimeSecondIssue',\n              href: '../IsoTimeSecondIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'IsoTimeSecondIssue',\n          href: '../IsoTimeSecondIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'iso_time_second',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'isoTimeSecond',\n      href: '../isoTimeSecond/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsoTimeSecondIssue/index.mdx",
    "content": "---\ntitle: IsoTimeSecondIssue\ndescription: ISO time second issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# IsoTimeSecondIssue\n\nISO time second issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `IsoTimeSecondIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsoTimeSecondIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'iso_time_second',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsoTimestampAction/index.mdx",
    "content": "---\ntitle: IsoTimestampAction\ndescription: ISO timestamp action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# IsoTimestampAction\n\nISO timestamp action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `IsoTimestampAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsoTimestampAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'IsoTimestampIssue',\n              href: '../IsoTimestampIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'IsoTimestampIssue',\n          href: '../IsoTimestampIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'iso_timestamp',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'isoTimestamp',\n      href: '../isoTimestamp/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsoTimestampIssue/index.mdx",
    "content": "---\ntitle: IsoTimestampIssue\ndescription: ISO timestamp issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# IsoTimestampIssue\n\nISO timestamp issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `IsoTimestampIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsoTimestampIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'iso_timestamp',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsoWeekAction/index.mdx",
    "content": "---\ntitle: IsoWeekAction\ndescription: ISO week action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# IsoWeekAction\n\nISO week action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `IsoWeekAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsoWeekAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'IsoWeekIssue',\n              href: '../IsoWeekIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'IsoWeekIssue',\n          href: '../IsoWeekIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'iso_week',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'isoWeek',\n      href: '../isoWeek/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsoWeekIssue/index.mdx",
    "content": "---\ntitle: IsoWeekIssue\ndescription: ISO week issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# IsoWeekIssue\n\nISO week issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `IsoWeekIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsoWeekIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'iso_week',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsrcAction/index.mdx",
    "content": "---\ntitle: IsrcAction\ndescription: ISRC action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# IsrcAction\n\nISRC action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `IsrcAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsrcAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'IsrcIssue',\n              href: '../IsrcIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'IsrcIssue',\n          href: '../IsrcIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'isrc',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'isrc',\n      href: '../isrc/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsrcIssue/index.mdx",
    "content": "---\ntitle: IsrcIssue\ndescription: ISRC issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# IsrcIssue\n\nISRC issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `IsrcIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/IsrcIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'isrc',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/IssueDotPath/index.mdx",
    "content": "---\ntitle: IssueDotPath\ndescription: Issue dot path type.\ncontributors:\n  - fabian-hiller\n---\n\n# IssueDotPath\n\nIssue dot path type.\n\n> This type is too complex to display. Please refer to the [source code](https://github.com/open-circle/valibot/blob/main/library/src/types/issue.ts).\n"
  },
  {
    "path": "website/src/routes/api/(types)/IssuePathItem/index.mdx",
    "content": "---\ntitle: IssuePathItem\ndescription: Path item type.\ncontributors:\n  - fabian-hiller\n  - kazizi55\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# IssuePathItem\n\nPath item type.\n\n## Definition\n\n- `IssuePathItem` <Property {...properties.IssuePathItem} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/IssuePathItem/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  IssuePathItem: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ArrayPathItem',\n          href: '../ArrayPathItem/',\n        },\n        {\n          type: 'custom',\n          name: 'MapPathItem',\n          href: '../MapPathItem/',\n        },\n        {\n          type: 'custom',\n          name: 'ObjectPathItem',\n          href: '../ObjectPathItem/',\n        },\n        {\n          type: 'custom',\n          name: 'SetPathItem',\n          href: '../SetPathItem/',\n        },\n        {\n          type: 'custom',\n          name: 'UnknownPathItem',\n          href: '../UnknownPathItem/',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/JwsCompactAction/index.mdx",
    "content": "---\ntitle: JwsCompactAction\ndescription: JWS compact action interface for string-shape validation.\ncontributors:\n  - yslpn\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# JwsCompactAction\n\nJWS compact action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `JwsCompactAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/JwsCompactAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'JwsCompactIssue',\n              href: '../JwsCompactIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'JwsCompactIssue',\n          href: '../JwsCompactIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'jws_compact',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'jwsCompact',\n      href: '../jwsCompact/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/JwsCompactIssue/index.mdx",
    "content": "---\ntitle: JwsCompactIssue\ndescription: JWS compact issue interface for string-shape validation.\ncontributors:\n  - yslpn\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# JwsCompactIssue\n\nJWS compact issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `JwsCompactIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/JwsCompactIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'jws_compact',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/LastTupleItem/index.mdx",
    "content": "---\ntitle: LastTupleItem\ndescription: Extracts last tuple item.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# LastTupleItem\n\nExtracts last tuple item.\n\n## Generics\n\n- `TTuple` <Property {...properties.TTuple} />\n\n## Definition\n\n- `LastTupleItem` <Property {...properties.LastTupleItem} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/LastTupleItem/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TTuple: {\n    modifier: 'extends',\n    type: {\n      type: 'tuple',\n      items: [\n        'unknown',\n        {\n          type: 'array',\n          spread: true,\n          item: 'unknown',\n        },\n      ],\n    },\n  },\n  LastTupleItem: {\n    type: {\n      type: 'custom',\n      name: 'TTuple',\n      indexes: [\n        {\n          type: 'conditional',\n          conditions: [\n            {\n              type: {\n                type: 'custom',\n                name: 'TTuple',\n              },\n              extends: {\n                type: 'tuple',\n                items: [\n                  'unknown',\n                  {\n                    type: 'custom',\n                    spread: true,\n                    name: 'TRest',\n                  },\n                ],\n              },\n              true: {\n                type: 'custom',\n                name: 'TRest',\n                indexes: [\n                  {\n                    type: 'string',\n                    value: 'length',\n                  },\n                ],\n              },\n            },\n          ],\n          false: 'never',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/LazySchema/index.mdx",
    "content": "---\ntitle: LazySchema\ndescription: Lazy schema interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# LazySchema\n\nLazy schema interface.\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n\n## Definition\n\n- `LazySchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `getter` <Property {...properties.getter} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/LazySchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferInput',\n          href: '../InferInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferOutput',\n          href: '../InferOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferIssue',\n          href: '../InferIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'lazy',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'lazy',\n      href: '../lazy/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'unknown',\n    },\n  },\n  getter: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: 'unknown',\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'TWrapped',\n      },\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/LazySchemaAsync/index.mdx",
    "content": "---\ntitle: LazySchemaAsync\ndescription: Lazy schema async interface.\ncontributors:\n  - EltonLobo07\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# LazySchemaAsync\n\nLazy schema async interface.\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n\n## Definition\n\n- `LazySchemaAsync` <Property {...properties.BaseSchemaAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `getter` <Property {...properties.getter} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/LazySchemaAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  BaseSchemaAsync: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchemaAsync',\n      href: '../BaseSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferInput',\n          href: '../InferInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferOutput',\n          href: '../InferOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferIssue',\n          href: '../InferIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'lazy',\n    },\n  },\n  reference: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'lazy',\n          href: '../lazy/',\n        },\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'lazyAsync',\n          href: '../lazyAsync/',\n        },\n      ],\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'unknown',\n    },\n  },\n  getter: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: 'unknown',\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'MaybePromise',\n        href: '../MaybePromise/',\n        generics: [\n          {\n            type: 'custom',\n            name: 'TWrapped',\n          },\n        ],\n      },\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/LengthAction/index.mdx",
    "content": "---\ntitle: LengthAction\ndescription: Length action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# LengthAction\n\nLength action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `LengthAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/LengthAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'LengthInput',\n      href: '../LengthInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'LengthIssue',\n              href: '../LengthIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'LengthIssue',\n          href: '../LengthIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'length',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'length',\n      href: '../length/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/LengthInput/index.mdx",
    "content": "---\ntitle: LengthInput\ndescription: Length input type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# LengthInput\n\nLength input type.\n\n## Definition\n\n- `LengthInput` <Property {...properties.LengthInput} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/LengthInput/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  LengthInput: {\n    type: {\n      type: 'union',\n      options: [\n        'string',\n        {\n          type: 'custom',\n          name: 'ArrayLike',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/LengthIssue/index.mdx",
    "content": "---\ntitle: LengthIssue\ndescription: Length issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# LengthIssue\n\nLength issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `LengthIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/LengthIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'LengthInput',\n      href: '../LengthInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'length',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: ['number'],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/Literal/index.mdx",
    "content": "---\ntitle: Literal\ndescription: Literal type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# Literal\n\nLiteral type.\n\n## Definition\n\n- `Literal` <Property {...properties.Literal} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/Literal/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  Literal: {\n    type: {\n      type: 'union',\n      options: ['bigint', 'boolean', 'number', 'string', 'symbol'],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/LiteralIssue/index.mdx",
    "content": "---\ntitle: LiteralIssue\ndescription: Literal issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# LiteralIssue\n\nLiteral issue interface.\n\n## Definition\n\n- `LiteralIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/LiteralIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'literal',\n    },\n  },\n  expected: {\n    type: 'string',\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/LiteralSchema/index.mdx",
    "content": "---\ntitle: LiteralSchema\ndescription: Literal schema interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# LiteralSchema\n\nLiteral schema interface.\n\n## Generics\n\n- `TLiteral` <Property {...properties.TLiteral} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `LiteralSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `literal` <Property {...properties.literal} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/LiteralSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TLiteral: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Literal',\n      href: '../Literal/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'LiteralIssue',\n              href: '../LiteralIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TLiteral',\n        },\n        {\n          type: 'custom',\n          name: 'TLiteral',\n        },\n        {\n          type: 'custom',\n          name: 'LiteralIssue',\n          href: '../LiteralIssue/',\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'literal',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'literal',\n      href: '../literal/',\n    },\n  },\n  literal: {\n    type: {\n      type: 'custom',\n      name: 'TLiteral',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/LooseObjectIssue/index.mdx",
    "content": "---\ntitle: LooseObjectIssue\ndescription: Loose object issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# LooseObjectIssue\n\nLoose object issue interface.\n\n## Definition\n\n- `LooseObjectIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/LooseObjectIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'loose_object',\n    },\n  },\n  expected: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'string',\n          value: 'Object',\n        },\n        {\n          type: 'template',\n          parts: [\n            {\n              type: 'string',\n              value: '\"',\n            },\n            'string',\n            {\n              type: 'string',\n              value: '\"',\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/LooseObjectSchema/index.mdx",
    "content": "---\ntitle: LooseObjectSchema\ndescription: Loose object schema interface.\ncontributors:\n  - fabian-hiller\n  - kazizi55\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# LooseObjectSchema\n\nLoose object schema interface.\n\n## Generics\n\n- `TEntries` <Property {...properties.TEntries} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `LooseObjectSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `entries` <Property {...properties.entries} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/LooseObjectSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TEntries: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ObjectEntries',\n      href: '../ObjectEntries/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'LooseObjectIssue',\n              href: '../LooseObjectIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'intersect',\n          options: [\n            {\n              type: 'custom',\n              name: 'InferObjectInput',\n              href: '../InferObjectInput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TEntries',\n                },\n              ],\n            },\n            {\n              type: 'object',\n              entries: [\n                {\n                  key: {\n                    name: 'key',\n                    type: 'string',\n                  },\n                  value: 'unknown',\n                },\n              ],\n            },\n          ],\n        },\n        {\n          type: 'intersect',\n          options: [\n            {\n              type: 'custom',\n              name: 'InferObjectOutput',\n              href: '../InferObjectOutput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TEntries',\n                },\n              ],\n            },\n            {\n              type: 'object',\n              entries: [\n                {\n                  key: {\n                    name: 'key',\n                    type: 'string',\n                  },\n                  value: 'unknown',\n                },\n              ],\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'LooseObjectIssue',\n              href: '../LooseObjectIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferObjectIssue',\n              href: '../InferObjectIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TEntries',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'loose_object',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'looseObject',\n      href: '../looseObject/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Object',\n    },\n  },\n  entries: {\n    type: {\n      type: 'custom',\n      name: 'TEntries',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/LooseObjectSchemaAsync/index.mdx",
    "content": "---\ntitle: LooseObjectSchemaAsync\ndescription: Loose object schema async interface.\ncontributors:\n  - fabian-hiller\n  - kazizi55\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# LooseObjectSchemaAsync\n\nLoose object schema async interface.\n\n## Generics\n\n- `TEntries` <Property {...properties.TEntries} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `LooseObjectSchemaAsync` <Property {...properties.BaseSchemaAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `entries` <Property {...properties.entries} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/LooseObjectSchemaAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TEntries: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ObjectEntriesAsync',\n      href: '../ObjectEntriesAsync/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'LooseObjectIssue',\n              href: '../LooseObjectIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchemaAsync: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchemaAsync',\n      href: '../BaseSchemaAsync/',\n      generics: [\n        {\n          type: 'intersect',\n          options: [\n            {\n              type: 'custom',\n              name: 'InferObjectInput',\n              href: '../InferObjectInput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TEntries',\n                },\n              ],\n            },\n            {\n              type: 'object',\n              entries: [\n                {\n                  key: {\n                    name: 'key',\n                    type: 'string',\n                  },\n                  value: 'unknown',\n                },\n              ],\n            },\n          ],\n        },\n        {\n          type: 'intersect',\n          options: [\n            {\n              type: 'custom',\n              name: 'InferObjectOutput',\n              href: '../InferObjectOutput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TEntries',\n                },\n              ],\n            },\n            {\n              type: 'object',\n              entries: [\n                {\n                  key: {\n                    name: 'key',\n                    type: 'string',\n                  },\n                  value: 'unknown',\n                },\n              ],\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'LooseObjectIssue',\n              href: '../LooseObjectIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferObjectIssue',\n              href: '../InferObjectIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TEntries',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'loose_object',\n    },\n  },\n  reference: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'looseObject',\n          href: '../looseObject/',\n        },\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'looseObjectAsync',\n          href: '../looseObjectAsync/',\n        },\n      ],\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Object',\n    },\n  },\n  entries: {\n    type: {\n      type: 'custom',\n      name: 'TEntries',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/LooseTupleIssue/index.mdx",
    "content": "---\ntitle: LooseTupleIssue\ndescription: Loose tuple issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# LooseTupleIssue\n\nLoose tuple issue interface.\n\n## Definition\n\n- `LooseTupleIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/LooseTupleIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'loose_tuple',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: 'Array',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/LooseTupleSchema/index.mdx",
    "content": "---\ntitle: LooseTupleSchema\ndescription: Loose tuple schema interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# LooseTupleSchema\n\nLoose tuple schema interface.\n\n## Generics\n\n- `TItems` <Property {...properties.TItems} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `LooseTupleSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `items` <Property {...properties.items} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/LooseTupleSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TItems: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TupleItems',\n      href: '../TupleItems/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'LooseTupleIssue',\n              href: '../LooseTupleIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'tuple',\n          items: [\n            {\n              type: 'custom',\n              spread: true,\n              name: 'InferTupleInput',\n              href: '../InferTupleInput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TItems',\n                },\n              ],\n            },\n            {\n              type: 'array',\n              spread: true,\n              item: 'unknown',\n            },\n          ],\n        },\n        {\n          type: 'tuple',\n          items: [\n            {\n              type: 'custom',\n              spread: true,\n              name: 'InferTupleOutput',\n              href: '../InferTupleOutput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TItems',\n                },\n              ],\n            },\n            {\n              type: 'array',\n              spread: true,\n              item: 'unknown',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'LooseTupleIssue',\n              href: '../LooseTupleIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferTupleIssue',\n              href: '../InferTupleIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TItems',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'loose_tuple',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'looseTuple',\n      href: '../looseTuple/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Array',\n    },\n  },\n  items: {\n    type: {\n      type: 'custom',\n      name: 'TItems',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/LooseTupleSchemaAsync/index.mdx",
    "content": "---\ntitle: LooseTupleSchemaAsync\ndescription: Loose tuple schema async interface.\ncontributors:\n  - fabian-hiller\n  - mehm8128\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# LooseTupleSchemaAsync\n\nLoose tuple schema async interface.\n\n## Generics\n\n- `TItems` <Property {...properties.TItems} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `LooseTupleSchemaAsync` <Property {...properties.BaseSchemaAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `items` <Property {...properties.items} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/LooseTupleSchemaAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TItems: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TupleItemsAsync',\n      href: '../TupleItemsAsync/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'LooseTupleIssue',\n              href: '../LooseTupleIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchemaAsync: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchemaAsync',\n      href: '../BaseSchemaAsync/',\n      generics: [\n        {\n          type: 'tuple',\n          items: [\n            {\n              type: 'custom',\n              spread: true,\n              name: 'InferTupleInput',\n              href: '../InferTupleInput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TItems',\n                },\n              ],\n            },\n            {\n              type: 'array',\n              spread: true,\n              item: 'unknown',\n            },\n          ],\n        },\n        {\n          type: 'tuple',\n          items: [\n            {\n              type: 'custom',\n              spread: true,\n              name: 'InferTupleOutput',\n              href: '../InferTupleOutput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TItems',\n                },\n              ],\n            },\n            {\n              type: 'array',\n              spread: true,\n              item: 'unknown',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'LooseTupleIssue',\n              href: '../LooseTupleIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferTupleIssue',\n              href: '../InferTupleIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TItems',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'loose_tuple',\n    },\n  },\n  reference: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'looseTuple',\n          href: '../looseTuple/',\n        },\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'looseTupleAsync',\n          href: '../looseTupleAsync/',\n        },\n      ],\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Array',\n    },\n  },\n  items: {\n    type: {\n      type: 'custom',\n      name: 'TItems',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/LtValueAction/index.mdx",
    "content": "---\ntitle: LtValueAction\ndescription: Less than value action type.\ncontributors:\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# LtValueAction\n\nLess than value action type.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `LtValueAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/LtValueAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ValueInput',\n      href: '../ValueInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'LtValueIssue',\n              href: '../LtValueIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'LtValueIssue',\n          href: '../LtValueIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'lt_value',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'ltValue',\n      href: '../ltValue/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '<',\n        },\n        'string',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/LtValueIssue/index.mdx",
    "content": "---\ntitle: LtValueIssue\ndescription: Less than value issue type.\ncontributors:\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# LtValueIssue\n\nLess than value issue type.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `LtValueIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/LtValueIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ValueInput',\n      href: '../ValueInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'lt_value',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '<',\n        },\n        'string',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/Mac48Action/index.mdx",
    "content": "---\ntitle: Mac48Action\ndescription: 48-bit MAC action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# Mac48Action\n\n48-bit MAC action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `Mac48Action` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/Mac48Action/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'Mac48Issue',\n              href: '../Mac48Issue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'Mac48Issue',\n          href: '../Mac48Issue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'mac48',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'mac48',\n      href: '../mac48/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/Mac48Issue/index.mdx",
    "content": "---\ntitle: Mac48Issue\ndescription: 48-bit MAC issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# Mac48Issue\n\n48-bit MAC issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `Mac48Issue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/Mac48Issue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'mac48',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/Mac64Action/index.mdx",
    "content": "---\ntitle: Mac64Action\ndescription: 64-bit MAC action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# Mac64Action\n\n64-bit MAC action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `Mac64Action` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/Mac64Action/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'Mac64Issue',\n              href: '../Mac64Issue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'Mac64Issue',\n          href: '../Mac64Issue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'mac64',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'mac64',\n      href: '../mac64/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/Mac64Issue/index.mdx",
    "content": "---\ntitle: Mac64Issue\ndescription: 64-bit MAC issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# Mac64Issue\n\n64-bit MAC issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `Mac64Issue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/Mac64Issue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'mac64',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MacAction/index.mdx",
    "content": "---\ntitle: MacAction\ndescription: MAC action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MacAction\n\nMAC action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `MacAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MacAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MacIssue',\n              href: '../MacIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'MacIssue',\n          href: '../MacIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'mac',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'mac',\n      href: '../mac/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MacIssue/index.mdx",
    "content": "---\ntitle: MacIssue\ndescription: MAC issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MacIssue\n\nMAC issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `MacIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MacIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'mac',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MapIssue/index.mdx",
    "content": "---\ntitle: MapIssue\ndescription: Map issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MapIssue\n\nMap issue interface.\n\n## Definition\n\n- `MapIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MapIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'map',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: 'Map',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MapItemsAction/index.mdx",
    "content": "---\ntitle: MapItemsAction\ndescription: Map items action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MapItemsAction\n\nMap items action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n\n## Definition\n\n- `MapItemsAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `operation` <Property {...properties.operation} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MapItemsAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ArrayInput',\n      href: '../ArrayInput/',\n    },\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'array',\n          item: {\n            type: 'custom',\n            name: 'TOuput',\n          },\n        },\n        'never',\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'map_items',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'mapItems',\n      href: '../mapItems/',\n    },\n  },\n  operation: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'item',\n          type: {\n            type: 'custom',\n            name: 'TInput',\n            indexes: ['number'],\n          },\n        },\n        {\n          name: 'index',\n          type: 'number',\n        },\n        {\n          name: 'array',\n          type: {\n            type: 'custom',\n            name: 'TInput',\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'TOutput',\n      },\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MapPathItem/index.mdx",
    "content": "---\ntitle: MapPathItem\ndescription: Map path item interface.\ncontributors:\n  - fabian-hiller\n  - kazizi55\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MapPathItem\n\nMap path item interface.\n\n## Definition\n\n- `MapPathItem`\n  - `type` <Property {...properties.type} />\n  - `origin` <Property {...properties.origin} />\n  - `input` <Property {...properties.input} />\n  - `key` <Property type='unknown' />\n  - `value` <Property type='unknown' />\n\nThe `input` of a path item may differ from the `input` of its issue. This is because path items are subsequently added by parent schemas and are related to their input. Transformations of child schemas are not taken into account.\n"
  },
  {
    "path": "website/src/routes/api/(types)/MapPathItem/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  type: {\n    type: {\n      type: 'string',\n      value: 'map',\n    },\n  },\n  origin: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'string',\n          value: 'key',\n        },\n        {\n          type: 'string',\n          value: 'value',\n        },\n      ],\n    },\n  },\n  input: {\n    type: {\n      type: 'custom',\n      name: 'Map',\n      generics: ['unknown', 'unknown'],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MapSchema/index.mdx",
    "content": "---\ntitle: MapSchema\ndescription: Map schema interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MapSchema\n\nMap schema interface.\n\n## Generics\n\n- `TKey` <Property {...properties.TKey} />\n- `TValue` <Property {...properties.TValue} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `MapSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `key` <Property {...properties.key} />\n  - `value` <Property {...properties.value} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MapSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TKey: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TValue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MapIssue',\n              href: '../MapIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferMapInput',\n          href: '../InferMapInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TKey',\n            },\n            {\n              type: 'custom',\n              name: 'TValue',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferMapOutput',\n          href: '../InferMapOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TKey',\n            },\n            {\n              type: 'custom',\n              name: 'TValue',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'MapIssue',\n              href: '../MapIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TKey',\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TValue',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'map',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'map',\n      href: '../map/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Map',\n    },\n  },\n  key: {\n    type: {\n      type: 'custom',\n      name: 'TKey',\n    },\n  },\n  value: {\n    type: {\n      type: 'custom',\n      name: 'TValue',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MapSchemaAsync/index.mdx",
    "content": "---\ntitle: MapSchemaAsync\ndescription: Map schema async interface.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MapSchemaAsync\n\nMap schema async interface.\n\n## Generics\n\n- `TKey` <Property {...properties.TKey} />\n- `TValue` <Property {...properties.TValue} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `MapSchemaAsync` <Property {...properties.BaseSchemaAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `key` <Property {...properties.key} />\n  - `value` <Property {...properties.value} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MapSchemaAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TKey: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TValue: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MapIssue',\n              href: '../MapIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchemaAsync: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchemaAsync',\n      href: '../BaseSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferMapInput',\n          href: '../InferMapInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TKey',\n            },\n            {\n              type: 'custom',\n              name: 'TValue',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferMapOutput',\n          href: '../InferMapOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TKey',\n            },\n            {\n              type: 'custom',\n              name: 'TValue',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'MapIssue',\n              href: '../MapIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TKey',\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TValue',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'map',\n    },\n  },\n  reference: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'map',\n          href: '../map/',\n        },\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'mapAsync',\n          href: '../mapAsync/',\n        },\n      ],\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Map',\n    },\n  },\n  key: {\n    type: {\n      type: 'custom',\n      name: 'TKey',\n    },\n  },\n  value: {\n    type: {\n      type: 'custom',\n      name: 'TValue',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaxBytesAction/index.mdx",
    "content": "---\ntitle: MaxBytesAction\ndescription: Max bytes action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MaxBytesAction\n\nMax bytes action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `MaxBytesAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaxBytesAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MaxBytesIssue',\n              href: '../MaxBytesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'MaxBytesIssue',\n          href: '../MaxBytesIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'max_bytes',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'maxBytes',\n      href: '../maxBytes/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '<=',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaxBytesIssue/index.mdx",
    "content": "---\ntitle: MaxBytesIssue\ndescription: Max bytes issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MaxBytesIssue\n\nMax bytes issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `MaxBytesIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaxBytesIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'max_bytes',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '<=',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: ['number'],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaxEntriesAction/index.mdx",
    "content": "---\ntitle: MaxEntriesAction\ndescription: Max entries action interface.\ncontributors:\n  - EltonLobo07\n  - fabian-hiller\n  - muningis\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MaxEntriesAction\n\nMax entries action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `MaxEntriesAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaxEntriesAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'EntriesInput',\n      href: '../EntriesInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MaxEntriesIssue',\n              href: '../MaxEntriesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'MaxEntriesIssue',\n          href: '../MaxEntriesIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'max_entries',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'maxEntries',\n      href: '../maxEntries/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '<=',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaxEntriesIssue/index.mdx",
    "content": "---\ntitle: MaxEntriesIssue\ndescription: Max entries issue interface.\ncontributors:\n  - EltonLobo07\n  - fabian-hiller\n  - muningis\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MaxEntriesIssue\n\nMax entries issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `MaxEntriesIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaxEntriesIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'EntriesInput',\n      href: '../EntriesInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'max_entries',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '<=',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: ['number'],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaxGraphemesAction/index.mdx",
    "content": "---\ntitle: MaxGraphemesAction\ndescription: Max graphemes action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MaxGraphemesAction\n\nMax graphemes action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `MaxGraphemesAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaxGraphemesAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MaxGraphemesIssue',\n              href: '../MaxGraphemesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'MaxGraphemesIssue',\n          href: '../MaxGraphemesIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'max_graphemes',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'maxGraphemes',\n      href: '../maxGraphemes/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '<=',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaxGraphemesIssue/index.mdx",
    "content": "---\ntitle: MaxGraphemesIssue\ndescription: Max graphemes issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MaxGraphemesIssue\n\nMax graphemes issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `MaxGraphemesIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaxGraphemesIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'max_graphemes',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '<=',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: ['number'],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaxLengthAction/index.mdx",
    "content": "---\ntitle: MaxLengthAction\ndescription: Max length action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MaxLengthAction\n\nMax length action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `MaxLengthAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaxLengthAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'LengthInput',\n      href: '../LengthInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MaxLengthIssue',\n              href: '../MaxLengthIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'MaxLengthIssue',\n          href: '../MaxLengthIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'max_length',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'maxLength',\n      href: '../maxLength/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '<=',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaxLengthIssue/index.mdx",
    "content": "---\ntitle: MaxLengthIssue\ndescription: Max length issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MaxLengthIssue\n\nMax length issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `MaxLengthIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaxLengthIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'LengthInput',\n      href: '../LengthInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'max_length',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '<=',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: ['number'],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaxSizeAction/index.mdx",
    "content": "---\ntitle: MaxSizeAction\ndescription: Max size action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MaxSizeAction\n\nMax size action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `MaxSizeAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaxSizeAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'SizeInput',\n      href: '../SizeInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MaxSizeIssue',\n              href: '../MaxSizeIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'MaxSizeIssue',\n          href: '../MaxSizeIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'max_size',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'maxSize',\n      href: '../maxSize/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '<=',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaxSizeIssue/index.mdx",
    "content": "---\ntitle: MaxSizeIssue\ndescription: Max size issue interface.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MaxSizeIssue\n\nMax size issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `MaxSizeIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaxSizeIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'SizeInput',\n      href: '../SizeInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'max_size',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '<=',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: ['number'],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaxValueAction/index.mdx",
    "content": "---\ntitle: MaxValueAction\ndescription: Max value action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MaxValueAction\n\nMax value action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `MaxValueAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaxValueAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ValueInput',\n      href: '../ValueInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MaxValueIssue',\n              href: '../MaxValueIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'MaxValueIssue',\n          href: '../MaxValueIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'max_value',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'maxValue',\n      href: '../maxValue/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '<=',\n        },\n        'string',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaxValueIssue/index.mdx",
    "content": "---\ntitle: MaxValueIssue\ndescription: Max value issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MaxValueIssue\n\nMax value issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `MaxValueIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaxValueIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ValueInput',\n      href: '../ValueInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'max_value',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '<=',\n        },\n        'string',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaxWordsAction/index.mdx",
    "content": "---\ntitle: MaxWordsAction\ndescription: Max words action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MaxWordsAction\n\nMax words action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TLocales` <Property {...properties.TLocales} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `MaxWordsAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `locales` <Property {...properties.locales} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaxWordsAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TLocales: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Intl.LocalesArgument',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MaxWordsIssue',\n              href: '../MaxWordsIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'MaxWordsIssue',\n          href: '../MaxWordsIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'max_words',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'maxWords',\n      href: '../maxWords/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '<=',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  locales: {\n    type: {\n      type: 'custom',\n      name: 'TLocales',\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaxWordsIssue/index.mdx",
    "content": "---\ntitle: MaxWordsIssue\ndescription: Max words issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MaxWordsIssue\n\nMax words issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `MaxWordsIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaxWordsIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'max_words',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '<=',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: ['number'],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaybePromise/index.mdx",
    "content": "---\ntitle: MaybePromise\ndescription: Maybe promise type.\ncontributors:\n  - EltonLobo07\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MaybePromise\n\nMaybe promise type.\n\n## Generics\n\n- `TValue` <Property {...properties.TValue} />\n\n## Definition\n\n- `MaybePromise` <Property {...properties.MaybePromise} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaybePromise/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TValue: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  MaybePromise: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'TValue',\n        },\n        {\n          type: 'custom',\n          name: 'Promise',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TValue',\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaybeReadonly/index.mdx",
    "content": "---\ntitle: MaybeReadonly\ndescription: Maybe readonly type.\ncontributors:\n  - fabian-hiller\n  - sqmasep\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MaybeReadonly\n\nMaybe readonly type.\n\n## Generics\n\n- `TValue` <Property {...properties.TValue} />\n\n## Definition\n\n- `MaybeReadonly` <Property {...properties.MaybeReadonly} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MaybeReadonly/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TValue: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  MaybeReadonly: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'TValue',\n        },\n        {\n          type: 'custom',\n          name: 'Readonly',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TValue',\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MetadataAction/index.mdx",
    "content": "---\ntitle: MetadataAction\ndescription: Metadata action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MetadataAction\n\nMetadata action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMetadata` <Property {...properties.TMetadata} />\n\n## Definition\n\n- `MetadataAction` <Property {...properties.BaseMetadata} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `metadata_` <Property {...properties['metadata_']} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MetadataAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TMetadata: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Record',\n      generics: ['string', 'unknown'],\n    },\n  },\n  BaseMetadata: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseMetadata',\n      href: '../BaseMetadata/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'metadata',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'metadata',\n      href: '../metadata/',\n    },\n  },\n  metadata_: {\n    type: {\n      type: 'custom',\n      name: 'TMetadata',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MimeTypeAction/index.mdx",
    "content": "---\ntitle: MimeTypeAction\ndescription: MIME type action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MimeTypeAction\n\nMIME type action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `MimeTypeAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MimeTypeAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Blob',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'array',\n      item: 'string',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MimeTypeIssue',\n              href: '../MimeTypeAction/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'MimeTypeIssue',\n          href: '../MimeTypeIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'mime_type',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'mimeType',\n      href: '../mimeType/',\n    },\n  },\n  expects: {\n    type: 'string',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MimeTypeIssue/index.mdx",
    "content": "---\ntitle: MimeTypeIssue\ndescription: Mime type issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MimeTypeIssue\n\nMime type issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `MimeTypeIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MimeTypeIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'array',\n      item: {\n        type: 'template',\n        parts: [\n          'string',\n          {\n            type: 'string',\n            value: '/',\n          },\n          'string',\n        ],\n      },\n    },\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'mime_type',\n    },\n  },\n  expected: {\n    type: 'string',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MinBytesAction/index.mdx",
    "content": "---\ntitle: MinBytesAction\ndescription: Min bytes action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MinBytesAction\n\nMin bytes action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `MinBytesAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MinBytesAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MinBytesIssue',\n              href: '../MinBytesAction/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'MinBytesIssue',\n          href: '../MinBytesAction/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'min_bytes',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'minBytes',\n      href: '../minBytes/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '>=',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MinBytesIssue/index.mdx",
    "content": "---\ntitle: MinBytesIssue\ndescription: Min bytes issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MinBytesIssue\n\nMin bytes issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `MinBytesIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MinBytesIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'min_bytes',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '>=',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: ['number'],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MinEntriesAction/index.mdx",
    "content": "---\ntitle: MinEntriesAction\ndescription: Min entries action interface.\ncontributors:\n  - EltonLobo07\n  - fabian-hiller\n  - muningis\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MinEntriesAction\n\nMin entries action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `MinEntriesAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MinEntriesAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'EntriesInput',\n      href: '../EntriesInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MinEntriesIssue',\n              href: '../MinEntriesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'MinEntriesIssue',\n          href: '../MinEntriesIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'min_entries',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'minEntries',\n      href: '../minEntries/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '>=',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MinEntriesIssue/index.mdx",
    "content": "---\ntitle: MinEntriesIssue\ndescription: Min entries issue interface.\ncontributors:\n  - EltonLobo07\n  - fabian-hiller\n  - muningis\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MinEntriesIssue\n\nMin entries issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `MinEntriesIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MinEntriesIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'EntriesInput',\n      href: '../EntriesInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'min_entries',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '>=',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: ['number'],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MinGraphemesAction/index.mdx",
    "content": "---\ntitle: MinGraphemesAction\ndescription: Min graphemes action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MinGraphemesAction\n\nMin graphemes action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `MinGraphemesAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MinGraphemesAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MinGraphemesIssue',\n              href: '../MinGraphemesAction/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'MinGraphemesIssue',\n          href: '../MinGraphemesAction/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'min_graphemes',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'minGraphemes',\n      href: '../minGraphemes/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '>=',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MinGraphemesIssue/index.mdx",
    "content": "---\ntitle: MinGraphemesIssue\ndescription: Min graphemes issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MinGraphemesIssue\n\nMin graphemes issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `MinGraphemesIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MinGraphemesIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'min_graphemes',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '>=',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: ['number'],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MinLengthAction/index.mdx",
    "content": "---\ntitle: MinLengthAction\ndescription: Min length action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MinLengthAction\n\nMin length action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `MinLengthAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MinLengthAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'LengthInput',\n      href: '../LengthInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MinLengthIssue',\n              href: '../MinLengthIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'MinLengthIssue',\n          href: '../MinLengthIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'min_length',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'minLength',\n      href: '../minLength/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '>=',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MinLengthIssue/index.mdx",
    "content": "---\ntitle: MinLengthIssue\ndescription: Min length issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MinLengthIssue\n\nMin length issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `MinLengthIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MinLengthIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'LengthInput',\n      href: '../LengthInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'min_length',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '>=',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: ['number'],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MinSizeAction/index.mdx",
    "content": "---\ntitle: MinSizeAction\ndescription: Min size action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MinSizeAction\n\nMin size action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `MinSizeAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `referece` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MinSizeAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'SizeInput',\n      href: '../SizeInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MinSizeIssue',\n              href: '../MinSizeAction/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'MinSizeIssue',\n          href: '../MinSizeAction/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'min_size',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'minSize',\n      href: '../minSize/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '>=',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MinSizeIssue/index.mdx",
    "content": "---\ntitle: MinSizeIssue\ndescription: Min size issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MinSizeIssue\n\nMin size issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `MinSizeIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MinSizeIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'SizeInput',\n      href: '../SizeInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'min_size',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '>=',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: ['number'],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MinValueAction/index.mdx",
    "content": "---\ntitle: MinValueAction\ndescription: Min value action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MinValueAction\n\nMin value action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `MinValueAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MinValueAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ValueInput',\n      href: '../ValueInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MinValueIssue',\n              href: '../MinValueAction/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'MinValueIssue',\n          href: '../MinValueAction/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'min_value',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'minValue',\n      href: '../minValue/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '>=',\n        },\n        'string',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MinValueIssue/index.mdx",
    "content": "---\ntitle: MinValueIssue\ndescription: Min value issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MinValueIssue\n\nMin value issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `MinValueIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MinValueIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ValueInput',\n      href: '../ValueInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'min_value',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '>=',\n        },\n        'string',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MinWordsAction/index.mdx",
    "content": "---\ntitle: MinWordsAction\ndescription: Min words action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MinWordsAction\n\nMin words action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TLocales` <Property {...properties.TLocales} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `MinWordsAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `locales` <Property {...properties.locales} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MinWordsAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TLocales: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Intl.LocalesArgument',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MinWordsIssue',\n              href: '../MinWordsAction/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'MinWordsIssue',\n          href: '../MinWordsAction/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'min_words',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'minWords',\n      href: '../minWords/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '>=',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  locales: {\n    type: {\n      type: 'custom',\n      name: 'TLocales',\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MinWordsIssue/index.mdx",
    "content": "---\ntitle: MinWordsIssue\ndescription: Min words issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MinWordsIssue\n\nMin words issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `MinWordsIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MinWordsIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'min_words',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '>=',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: ['number'],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MultipleOfAction/index.mdx",
    "content": "---\ntitle: MultipleOfAction\ndescription: Multiple of action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MultipleOfAction\n\nMultiple of action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `MultipleOfAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MultipleOfAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: ['number', 'bigint'],\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: ['number', 'bigint'],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'MultipleOfIssue',\n              href: '../MultipleOfAction/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'MultipleOfIssue',\n          href: '../MultipleOfAction/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'multiple_of',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'multipleOf',\n      href: '../multipleOf/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '%',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/MultipleOfIssue/index.mdx",
    "content": "---\ntitle: MultipleOfIssue\ndescription: Multiple of issue interface.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# MultipleOfIssue\n\nMultiple of issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `MultipleOfIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/MultipleOfIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: ['number', 'bigint'],\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: ['number', 'bigint'],\n    },\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'multiple_of',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '%',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NanIssue/index.mdx",
    "content": "---\ntitle: NanIssue\ndescription: NaN issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NanIssue\n\nNaN issue interface.\n\n## Definition\n\n- `NanIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NanIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'nan',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: 'NaN',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NanSchema/index.mdx",
    "content": "---\ntitle: NanSchema\ndescription: NaN schema interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NanSchema\n\nNaN schema interface.\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `NanSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NanSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NanIssue',\n              href: '../NanIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'number',\n        'number',\n        {\n          type: 'custom',\n          name: 'NanIssue',\n          href: '../NanIssue/',\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'nan',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'readonly',\n      name: 'nan',\n      href: '../nan/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'NaN',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NeverIssue/index.mdx",
    "content": "---\ntitle: NeverIssue\ndescription: Never issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NeverIssue\n\nNever issue interface.\n\n## Definition\n\n- `NeverIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NeverIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'never',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: 'never',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NeverSchema/index.mdx",
    "content": "---\ntitle: NeverSchema\ndescription: Never schema interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NeverSchema\n\nNever schema interface.\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `NeverSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NeverSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NeverIssue',\n              href: '../NeverIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'never',\n        'never',\n        {\n          type: 'custom',\n          name: 'NeverIssue',\n          href: '../NeverIssue/',\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'never',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'readonly',\n      name: 'never',\n      href: '../never/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'never',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NonEmptyAction/index.mdx",
    "content": "---\ntitle: NonEmptyAction\ndescription: Non empty action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NonEmptyAction\n\nNon empty action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `NonEmptyAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NonEmptyAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'LengthInput',\n      href: '../LengthInput/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NonEmptyIssue',\n              href: '../NonEmptyIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'NonEmptyIssue',\n          href: '../NonEmptyIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'non_empty',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'nonEmpty',\n      href: '../nonEmpty/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: '!0',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NonEmptyIssue/index.mdx",
    "content": "---\ntitle: NonEmptyIssue\ndescription: Non empty issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NonEmptyIssue\n\nNon empty issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `NonEmptyIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NonEmptyIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'LengthInput',\n      href: '../LengthInput/',\n    },\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'non_empty',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: '!0',\n    },\n  },\n  received: {\n    type: {\n      type: 'string',\n      value: '0',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NonNullable/index.mdx",
    "content": "---\ntitle: NonNullable\ndescription: Extracts `null` from a type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NonNullable\n\nExtracts `null` from a type.\n\n## Generics\n\n- `TValue` <Property {...properties.TValue} />\n\n## Definition\n\n- `NonNullable` <Property {...properties.NonNullable} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NonNullable/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TValue: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  NonNullable: {\n    type: {\n      type: 'conditional',\n      conditions: [\n        {\n          type: {\n            type: 'custom',\n            name: 'TValue',\n          },\n          extends: 'null',\n          true: 'never',\n        },\n      ],\n      false: {\n        type: 'custom',\n        name: 'TValue',\n      },\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NonNullableIssue/index.mdx",
    "content": "---\ntitle: NonNullableIssue\ndescription: Non nullable issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NonNullableIssue\n\nNon nullable issue interface.\n\n## Definition\n\n- `NonNullableIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NonNullableIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'non_nullable',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: '!null',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NonNullableSchema/index.mdx",
    "content": "---\ntitle: NonNullableSchema\ndescription: Non nullable schema interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NonNullableSchema\n\nNon nullable schema interface.\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `NonNullableSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `wrapped` <Property {...properties.wrapped} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NonNullableSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NonNullableIssue',\n              href: '../NonNullableIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferNonNullableInput',\n          href: '../InferNonNullableInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferNonNullableOutput',\n          href: '../InferNonNullableOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'NonNullableIssue',\n              href: '../NonNullableIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferNonNullableIssue',\n              href: '../InferNonNullableIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TWrapped',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'non_nullable',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'nonNullable',\n      href: '../nonNullable/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: '!null',\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NonNullableSchemaAsync/index.mdx",
    "content": "---\ntitle: NonNullableSchemaAsync\ndescription: Non nullable schema async interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NonNullableSchemaAsync\n\nNon nullable schema async interface.\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `NonNullableSchemaAsync` <Property {...properties.BaseSchemaAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `wrapped` <Property {...properties.wrapped} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NonNullableSchemaAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NonNullableIssue',\n              href: '../NonNullableIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchemaAsync: {\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferNonNullableInput',\n          href: '../InferNonNullableInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferNonNullableOutput',\n          href: '../InferNonNullableOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'NonNullableIssue',\n              href: '../NonNullableIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferNonNullishIssue',\n              href: '../InferNonNullishIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TWrapped',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'non_nullable',\n    },\n  },\n  reference: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'nonNullable',\n          href: '../nonNullable/',\n        },\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'nonNullableAsync',\n          href: '../nonNullableAsync/',\n        },\n      ],\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: '!null',\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NonNullish/index.mdx",
    "content": "---\ntitle: NonNullish\ndescription: Extracts `null` and `undefined` from a type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NonNullish\n\nExtracts `null` and `undefined` from a type.\n\n## Generics\n\n- `TValue` <Property {...properties.TValue} />\n\n## Definition\n\n- `NonNullish` <Property {...properties.NonNullish} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NonNullish/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TValue: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  NonNullish: {\n    type: {\n      type: 'conditional',\n      conditions: [\n        {\n          type: {\n            type: 'custom',\n            name: 'TValue',\n          },\n          extends: {\n            type: 'union',\n            options: ['null', 'undefined'],\n          },\n          true: 'never',\n        },\n      ],\n      false: {\n        type: 'custom',\n        name: 'TValue',\n      },\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NonNullishIssue/index.mdx",
    "content": "---\ntitle: NonNullishIssue\ndescription: Non nullish issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NonNullishIssue\n\nNon nullish issue interface.\n\n## Definition\n\n- `NonNullishIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NonNullishIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'non_nullish',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: '(!null & !undefined)',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NonNullishSchema/index.mdx",
    "content": "---\ntitle: NonNullishSchema\ndescription: Non nullish schema interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NonNullishSchema\n\nNon nullish schema interface.\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `NonNullishSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `wrapped` <Property {...properties.wrapped} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NonNullishSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NonNullishIssue',\n              href: '../NonNullishIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferNonNullishInput',\n          href: '../InferNonNullishInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferNonNullishOutput',\n          href: '../InferNonNullishOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'NonNullishIssue',\n              href: '../NonNullishIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferNonNullishIssue',\n              href: '../InferNonNullishIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TWrapped',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'non_nullish',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'nonNullish',\n      href: '../nonNullish/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: '(!null & !undefined)',\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NonNullishSchemaAsync/index.mdx",
    "content": "---\ntitle: NonNullishSchemaAsync\ndescription: Non nullish schema async interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NonNullishSchemaAsync\n\nNon nullish schema async interface.\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `NonNullishSchemaAsync` <Property {...properties.BaseSchemaAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `wrapped` <Property {...properties.wrapped} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NonNullishSchemaAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NonNullishIssue',\n              href: '../NonNullishIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchemaAsync: {\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferNonNullishInput',\n          href: '../InferNonNullishInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferNonNullishOutput',\n          href: '../InferNonNullishOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'NonNullishIssue',\n              href: '../NonNullishIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferNonNullishIssue',\n              href: '../InferNonNullishIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TWrapped',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'non_nullish',\n    },\n  },\n  reference: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'nonNullish',\n          href: '../nonNullish/',\n        },\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'nonNullishAsync',\n          href: '../nonNullishAsync/',\n        },\n      ],\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: '(!null & !undefined)',\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NonOptional/index.mdx",
    "content": "---\ntitle: NonOptional\ndescription: Extracts `undefined` from a type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NonOptional\n\nExtracts `undefined` from a type.\n\n## Generics\n\n- `TValue` <Property {...properties.TValue} />\n\n## Definition\n\n- `NonOptional` <Property {...properties.NonOptional} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NonOptional/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TValue: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  NonOptional: {\n    type: {\n      type: 'conditional',\n      conditions: [\n        {\n          type: {\n            type: 'custom',\n            name: 'TValue',\n          },\n          extends: 'undefined',\n          true: 'never',\n        },\n      ],\n      false: {\n        type: 'custom',\n        name: 'TValue',\n      },\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NonOptionalIssue/index.mdx",
    "content": "---\ntitle: NonOptionalIssue\ndescription: Non optional issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NonOptionalIssue\n\nNon optional issue interface.\n\n## Definition\n\n- `NonOptionalIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NonOptionalIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'non_optional',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: '!undefined',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NonOptionalSchema/index.mdx",
    "content": "---\ntitle: NonOptionalSchema\ndescription: Non optional schema interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NonOptionalSchema\n\nNon optional schema interface.\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `NonOptionalSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `wrapped` <Property {...properties.wrapped} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NonOptionalSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NonOptionalIssue',\n              href: '../NonOptionalIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferNonOptionalInput',\n          href: '../InferNonOptionalInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferNonOptionalOutput',\n          href: '../InferNonOptionalOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'NonOptionalIssue',\n              href: '../NonOptionalIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferNonOptionalIssue',\n              href: '../InferNonOptionalIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TWrapped',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'non_optional',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'nonOptional',\n      href: '../nonOptional/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: '!undefined',\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NonOptionalSchemaAsync/index.mdx",
    "content": "---\ntitle: NonOptionalSchemaAsync\ndescription: Non optional schema async interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NonOptionalSchemaAsync\n\nNon optional schema async interface.\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `NonOptionalSchemaAsync` <Property {...properties.BaseSchemaAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `wrapped` <Property {...properties.wrapped} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NonOptionalSchemaAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NonOptionalIssue',\n              href: '../NonOptionalIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchemaAsync: {\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferNonOptionalInput',\n          href: '../InferNonOptionalInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferNonOptionalOutput',\n          href: '../InferNonOptionalOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'NonOptionalIssue',\n              href: '../NonOptionalIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferNonOptionalIssue',\n              href: '../InferNonOptionalIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TWrapped',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'non_optional',\n    },\n  },\n  reference: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'nonOptional',\n          href: '../nonOptional/',\n        },\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'nonOptionalAsync',\n          href: '../nonOptionalAsync/',\n        },\n      ],\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: '!undefined',\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NormalizeAction/index.mdx",
    "content": "---\ntitle: NormalizeAction\ndescription: Normalize action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NormalizeAction\n\nNormalize action interface.\n\n## Generics\n\n- `TForm` <Property {...properties.TForm} />\n\n## Definition\n\n- `NormalizeAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `form` <Property {...properties.form} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NormalizeAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TForm: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'NormalizeForm',\n      href: '../NormalizeForm/',\n    },\n  },\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: ['string', 'string', 'never'],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'normalize',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'normalize',\n      href: '../normalize/',\n    },\n  },\n  form: {\n    type: {\n      type: 'custom',\n      name: 'TForm',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NormalizeForm/index.mdx",
    "content": "---\ntitle: NormalizeForm\ndescription: Normalize form type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NormalizeForm\n\nNormalize form type.\n\n## Definition\n\n- `NormalizeForm` <Property {...properties.NormalizeForm} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NormalizeForm/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  NormalizeForm: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'string',\n          value: 'NFC',\n        },\n        {\n          type: 'string',\n          value: 'NFD',\n        },\n        {\n          type: 'string',\n          value: 'NFKC',\n        },\n        {\n          type: 'string',\n          value: 'NFKD',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotBytesAction/index.mdx",
    "content": "---\ntitle: NotBytesAction\ndescription: Not bytes action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NotBytesAction\n\nNot bytes action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `NotBytesAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotBytesAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NotBytesIssue',\n              href: '../NotBytesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'NotBytesIssue',\n          href: '../NotBytesIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'not_bytes',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'notBytes',\n      href: '../notBytes/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '!',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotBytesIssue/index.mdx",
    "content": "---\ntitle: NotBytesIssue\ndescription: Not bytes issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NotBytesIssue\n\nNot bytes issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `NotBytesIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotBytesIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'not_bytes',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '!',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: ['number'],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotEntriesAction/index.mdx",
    "content": "---\ntitle: NotEntriesAction\ndescription: Not entries action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NotEntriesAction\n\nNot entries action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `NotEntriesAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotEntriesAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'EntriesInput',\n      href: '../EntriesInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NotEntriesIssue',\n              href: '../NotEntriesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'NotEntriesIssue',\n          href: '../NotEntriesIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'not_entries',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'notEntries',\n      href: '../notEntries/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '!',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotEntriesIssue/index.mdx",
    "content": "---\ntitle: NotEntriesIssue\ndescription: Not entries issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NotEntriesIssue\n\nNot entries issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `NotEntriesIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotEntriesIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'EntriesInput',\n      href: '../EntriesInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'not_entries',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '!',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: ['number'],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotGraphemesAction/index.mdx",
    "content": "---\ntitle: NotGraphemesAction\ndescription: Not graphemes action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NotGraphemesAction\n\nNot graphemes action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `NotGraphemesAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotGraphemesAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NotGraphemesIssue',\n              href: '../NotGraphemesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'NotGraphemesIssue',\n          href: '../NotGraphemesIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'not_graphemes',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'notGraphemes',\n      href: '../notGraphemes/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '!',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotGraphemesIssue/index.mdx",
    "content": "---\ntitle: NotGraphemesIssue\ndescription: Not graphemes issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NotGraphemesIssue\n\nNot graphemes issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `NotGraphemesIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotGraphemesIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'not_graphemes',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '!',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: ['number'],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotLengthAction/index.mdx",
    "content": "---\ntitle: NotLengthAction\ndescription: Not length action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NotLengthAction\n\nNot length action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `NotLengthAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotLengthAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'LengthInput',\n      href: '../LengthInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NotLengthIssue',\n              href: '../NotLengthIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'NotLengthIssue',\n          href: '../NotLengthIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'not_length',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'notLength',\n      href: '../notLength/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '!',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotLengthIssue/index.mdx",
    "content": "---\ntitle: NotLengthIssue\ndescription: Not length issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NotLengthIssue\n\nNot length issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `NotLengthIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotLengthIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'LengthInput',\n      href: '../LengthInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'not_length',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '!',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotSizeAction/index.mdx",
    "content": "---\ntitle: NotSizeAction\ndescription: Not size action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NotSizeAction\n\nNot size action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `NotSizeAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotSizeAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'SizeInput',\n      href: '../SizeInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NotSizeIssue',\n              href: '../NotSizeIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'NotSizeIssue',\n          href: '../NotSizeIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'not_size',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'notSize',\n      href: '../notSize/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '!',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotSizeIssue/index.mdx",
    "content": "---\ntitle: NotSizeIssue\ndescription: Not size issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NotSizeIssue\n\nNot size issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `NotSizeIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotSizeIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'SizeInput',\n      href: '../SizeInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'not_size',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '!',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotValueAction/index.mdx",
    "content": "---\ntitle: NotValueAction\ndescription: Not value action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NotValueAction\n\nNot value action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `NotValueAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotValueAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ValueInput',\n      href: '../ValueInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NotValueIssue',\n              href: '../NotValueIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'NotValueIssue',\n          href: '../NotValueIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'not_value',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'notValue',\n      href: '../notValue/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '!',\n        },\n        'string',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotValueIssue/index.mdx",
    "content": "---\ntitle: NotValueIssue\ndescription: Not value issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NotValueIssue\n\nNot value issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `NotValueIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotValueIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ValueInput',\n      href: '../ValueInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'not_value',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '!',\n        },\n        'string',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotValuesAction/index.mdx",
    "content": "---\ntitle: NotValuesAction\ndescription: Not values action type.\ncontributors:\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NotValuesAction\n\nNot values action type.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `NotValuesAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotValuesAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ValueInput',\n      href: '../ValueInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      modifier: 'readonly',\n      type: 'array',\n      item: {\n        type: 'custom',\n        name: 'TInput',\n      },\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NotValuesIssue',\n              href: '../NotValuesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'NotValuesIssue',\n          href: '../NotValuesIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'not_values',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'notValues',\n      href: '../notValues/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '!',\n        },\n        'string',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotValuesIssue/index.mdx",
    "content": "---\ntitle: NotValuesIssue\ndescription: Not values issue type.\ncontributors:\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NotValuesIssue\n\nNot values issue type.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `NotValuesIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotValuesIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ValueInput',\n      href: '../ValueInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      modifier: 'readonly',\n      type: 'array',\n      item: {\n        type: 'custom',\n        name: 'TInput',\n      },\n    },\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'not_values',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '!',\n        },\n        'string',\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotWordsAction/index.mdx",
    "content": "---\ntitle: NotWordsAction\ndescription: Not words action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NotWordsAction\n\nNot words action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TLocales` <Property {...properties.TLocales} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `NotWordsAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `locales` <Property {...properties.locales} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotWordsAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TLocales: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Intl.LocalesArgument',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NotWordsIssue',\n              href: '../NotWordsIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'NotWordsIssue',\n          href: '../NotWordsIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'not_words',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'notWords',\n      href: '../notWords/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '!',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  locales: {\n    type: {\n      type: 'custom',\n      name: 'TLocales',\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotWordsIssue/index.mdx",
    "content": "---\ntitle: NotWordsIssue\ndescription: Not words issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NotWordsIssue\n\nNot words issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `NotWordsIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NotWordsIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'not_words',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '!',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: ['number'],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NullIssue/index.mdx",
    "content": "---\ntitle: NullIssue\ndescription: Null issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NullIssue\n\nNull issue interface.\n\n## Definition\n\n- `NullIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NullIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'null',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: 'null',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NullSchema/index.mdx",
    "content": "---\ntitle: NullSchema\ndescription: Null schema interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NullSchema\n\nNull schema interface.\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `NullSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NullSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NullIssue',\n              href: '../NullIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'null',\n        'null',\n        {\n          type: 'custom',\n          name: 'NullIssue',\n          href: '../NullIssue/',\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'null',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'null',\n      href: '../null/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'null',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NullableSchema/index.mdx",
    "content": "---\ntitle: NullableSchema\ndescription: Nullable schema interface.\ncontributors:\n  - fabian-hiller\n  - sqmasep\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NullableSchema\n\nNullable schema interface.\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TDefault` <Property {...properties.TDefault} />\n\n## Definition\n\n- `NullableSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `wrapped` <Property {...properties.wrapped} />\n  - `default` <Property {...properties.default} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NullableSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TDefault: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Default',\n      href: '../Default/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        'null',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'InferInput',\n              href: '../InferInput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TWrapped',\n                },\n              ],\n            },\n            'null',\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferNullableOutput',\n          href: '../InferNullableOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n            {\n              type: 'custom',\n              name: 'TDefault',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferIssue',\n          href: '../InferIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'nullable',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'nullable',\n      href: '../nullable/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '(',\n        },\n        {\n          type: 'custom',\n          name: 'TWrapped',\n          indexes: [\n            {\n              type: 'string',\n              value: 'expects',\n            },\n          ],\n        },\n        {\n          type: 'string',\n          value: ' | null)',\n        },\n      ],\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  default: {\n    type: {\n      type: 'custom',\n      name: 'TDefault',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NullableSchemaAsync/index.mdx",
    "content": "---\ntitle: NullableSchemaAsync\ndescription: Nullable schema async interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NullableSchemaAsync\n\nNullable schema async interface.\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TDefault` <Property {...properties.TDefault} />\n\n## Definition\n\n- `NullableSchemaAsync` <Property {...properties.BaseSchemaAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `wrapped` <Property {...properties.wrapped} />\n  - `default` <Property {...properties.default} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NullableSchemaAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TDefault: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'DefaultAsync',\n      href: '../DefaultAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        'null',\n      ],\n    },\n  },\n  BaseSchemaAsync: {\n    type: {\n      type: 'custom',\n      name: 'BaseSchemaAsync',\n      href: '../BaseSchemaAsync/',\n      generics: [\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'InferInput',\n              href: '../InferInput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TWrapped',\n                },\n              ],\n            },\n            'null',\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferNullableOutput',\n          href: '../InferNullableOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n            {\n              type: 'custom',\n              name: 'TDefault',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferIssue',\n          href: '../InferIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'nullable',\n    },\n  },\n  reference: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'nullable',\n          href: '../nullable/',\n        },\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'nullableAsync',\n          href: '../nullableAsync/',\n        },\n      ],\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '(',\n        },\n        {\n          type: 'custom',\n          name: 'TWrapped',\n          indexes: [\n            {\n              type: 'string',\n              value: 'expects',\n            },\n          ],\n        },\n        {\n          type: 'string',\n          value: ' | null)',\n        },\n      ],\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  default: {\n    type: {\n      type: 'custom',\n      name: 'TDefault',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NullishSchema/index.mdx",
    "content": "---\ntitle: NullishSchema\ndescription: Nullish schema interface.\ncontributors:\n  - fabian-hiller\n  - sqmasep\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NullishSchema\n\nNullish schema interface.\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TDefault` <Property {...properties.TDefault} />\n\n## Definition\n\n- `Nullish` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `wrapped` <Property {...properties.wrapped} />\n  - `default` <Property {...properties.default} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NullishSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TDefault: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Default',\n      href: '../Default/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        {\n          type: 'union',\n          options: ['null', 'undefined'],\n        },\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'InferInput',\n              href: '../InferInput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TWrapped',\n                },\n              ],\n            },\n            'null',\n            'undefined',\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferNullishOutput',\n          href: '../InferNullishOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n            {\n              type: 'custom',\n              name: 'TDefault',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferIssue',\n          href: '../InferIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'nullish',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'nullish',\n      href: '../nullish/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '(',\n        },\n        {\n          type: 'custom',\n          name: 'TWrapped',\n          indexes: [\n            {\n              type: 'string',\n              value: 'expects',\n            },\n          ],\n        },\n        {\n          type: 'string',\n          value: ' | null | undefined)',\n        },\n      ],\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  default: {\n    type: {\n      type: 'custom',\n      name: 'TDefault',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NullishSchemaAsync/index.mdx",
    "content": "---\ntitle: NullishSchemaAsync\ndescription: Nullish schema async interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NullishSchemaAsync\n\nNullish schema async interface.\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TDefault` <Property {...properties.TDefault} />\n\n## Definition\n\n- `Nullish` <Property {...properties.BaseSchemaAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `wrapped` <Property {...properties.wrapped} />\n  - `default` <Property {...properties.default} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NullishSchemaAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TDefault: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'DefaultAsync',\n      href: '../DefaultAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        {\n          type: 'union',\n          options: ['null', 'undefined'],\n        },\n      ],\n    },\n  },\n  BaseSchemaAsync: {\n    type: {\n      type: 'custom',\n      name: 'BaseSchemaAsync',\n      href: '../BaseSchemaAsync/',\n      generics: [\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'InferInput',\n              href: '../InferInput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TWrapped',\n                },\n              ],\n            },\n            'null',\n            'undefined',\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferNullishOutput',\n          href: '../InferNullishOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n            {\n              type: 'custom',\n              name: 'TDefault',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferIssue',\n          href: '../InferIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'nullish',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'nullishAsync',\n      href: '../nullish/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '(',\n        },\n        {\n          type: 'custom',\n          name: 'TWrapped',\n          indexes: [\n            {\n              type: 'string',\n              value: 'expects',\n            },\n          ],\n        },\n        {\n          type: 'string',\n          value: ' | null | undefined)',\n        },\n      ],\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  default: {\n    type: {\n      type: 'custom',\n      name: 'TDefault',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NumberIssue/index.mdx",
    "content": "---\ntitle: NumberIssue\ndescription: Number issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NumberIssue\n\nNumber issue interface.\n\n## Definition\n\n- `NumberIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NumberIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'number',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: 'number',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/NumberSchema/index.mdx",
    "content": "---\ntitle: NumberSchema\ndescription: Number schema interface.\ncontributors:\n  - fabian-hiller\n  - kazizi55\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# NumberSchema\n\nNumber schema interface.\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `NumberSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/NumberSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'NumberIssue',\n              href: '../NumberIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'number',\n        'number',\n        {\n          type: 'custom',\n          name: 'NumberIssue',\n          href: '../NumberIssue/',\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'number',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'number',\n      href: '../number/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'number',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ObjectEntries/index.mdx",
    "content": "---\ntitle: ObjectEntries\ndescription: Object entries interface.\ncontributors:\n  - fabian-hiller\n  - kazizi55\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ObjectEntries\n\nObject entries interface.\n\n## Definition\n\n- `ObjectEntries` <Property {...properties.ObjectEntries} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ObjectEntries/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  ObjectEntries: {\n    type: {\n      type: 'object',\n      entries: [\n        {\n          key: {\n            name: 'key',\n            type: 'string',\n          },\n          value: {\n            type: 'custom',\n            name: 'BaseSchema',\n            href: '../BaseSchema/',\n            generics: [\n              'unknown',\n              'unknown',\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ObjectEntriesAsync/index.mdx",
    "content": "---\ntitle: ObjectEntriesAsync\ndescription: Object entries async interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ObjectEntriesAsync\n\nObject entries async interface.\n\n## Definition\n\n- `ObjectEntriesAsync` <Property {...properties.ObjectEntriesAsync} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ObjectEntriesAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  ObjectEntriesAsync: {\n    type: {\n      type: 'object',\n      entries: [\n        {\n          key: {\n            name: 'key',\n            type: 'string',\n          },\n          value: {\n            type: 'union',\n            options: [\n              {\n                type: 'custom',\n                name: 'BaseSchema',\n                href: '../BaseSchema/',\n                generics: [\n                  'unknown',\n                  'unknown',\n                  {\n                    type: 'custom',\n                    name: 'BaseIssue',\n                    href: '../BaseIssue/',\n                    generics: ['unknown'],\n                  },\n                ],\n              },\n              {\n                type: 'custom',\n                name: 'BaseSchemaAsync',\n                href: '../BaseSchemaAsync/',\n                generics: [\n                  'unknown',\n                  'unknown',\n                  {\n                    type: 'custom',\n                    name: 'BaseIssue',\n                    href: '../BaseIssue/',\n                    generics: ['unknown'],\n                  },\n                ],\n              },\n            ],\n          },\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ObjectIssue/index.mdx",
    "content": "---\ntitle: ObjectIssue\ndescription: Object issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ObjectIssue\n\nObject issue interface.\n\n## Definition\n\n- `ObjectIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ObjectIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'object',\n    },\n  },\n  expected: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'string',\n          value: 'Object',\n        },\n        {\n          type: 'template',\n          parts: [\n            {\n              type: 'string',\n              value: '\"',\n            },\n            'string',\n            {\n              type: 'string',\n              value: '\"',\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ObjectKeys/index.mdx",
    "content": "---\ntitle: ObjectKeys\ndescription: Object keys type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ObjectKeys\n\nObject keys type.\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n\n## Definition\n\n- `ObjectKeys` <Property {...properties.ObjectKeys} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ObjectKeys/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'LooseObjectSchema',\n          href: '../LooseObjectSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ObjectEntries',\n              href: '../ObjectEntries/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'LooseObjectIssue',\n                      href: '../LooseObjectIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'LooseObjectSchemaAsync',\n          href: '../LooseObjectSchemaAsync/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ObjectEntriesAsync',\n              href: '../ObjectEntriesAsync/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'LooseObjectIssue',\n                      href: '../LooseObjectIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'ObjectSchema',\n          href: '../ObjectSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ObjectEntries',\n              href: '../ObjectEntries/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'ObjectIssue',\n                      href: '../ObjectIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'ObjectSchemaAsync',\n          href: '../ObjectSchemaAsync/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ObjectEntriesAsync',\n              href: '../ObjectEntriesAsync/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'ObjectIssue',\n                      href: '../ObjectIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'ObjectWithRestSchema',\n          href: '../ObjectWithRestSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ObjectEntries',\n              href: '../ObjectEntries/',\n            },\n            {\n              type: 'custom',\n              name: 'BaseSchema',\n              href: '../BaseSchema/',\n              generics: [\n                'unknown',\n                'unknown',\n                {\n                  type: 'custom',\n                  name: 'BaseIssue',\n                  href: '../BaseIssue/',\n                  generics: ['unknown'],\n                },\n              ],\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'ObjectWithRestIssue',\n                      href: '../ObjectWithRestIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'ObjectWithRestSchemaAsync',\n          href: '../ObjectWithRestSchemaAsync/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ObjectEntriesAsync',\n              href: '../ObjectEntriesAsync/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'BaseSchema',\n                  href: '../BaseSchema/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n                {\n                  type: 'custom',\n                  name: 'BaseSchemaAsync',\n                  href: '../BaseSchemaAsync/',\n                  generics: [\n                    'unknown',\n                    'unknown',\n                    {\n                      type: 'custom',\n                      name: 'BaseIssue',\n                      href: '../BaseIssue/',\n                      generics: ['unknown'],\n                    },\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'ObjectWithRestIssue',\n                      href: '../ObjectWithRestIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'StrictObjectSchema',\n          href: '../StrictObjectSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ObjectEntries',\n              href: '../ObjectEntries/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'StrictObjectIssue',\n                      href: '../StrictObjectIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'StrictObjectSchemaAsync',\n          href: '../StrictObjectSchemaAsync/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ObjectEntriesAsync',\n              href: '../ObjectEntriesAsync/',\n            },\n            {\n              type: 'union',\n              options: [\n                {\n                  type: 'custom',\n                  name: 'ErrorMessage',\n                  href: '../ErrorMessage/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'StrictObjectIssue',\n                      href: '../StrictObjectIssue/',\n                    },\n                  ],\n                },\n                'undefined',\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  ObjectKeys: {\n    type: {\n      type: 'custom',\n      name: 'MaybeReadonly',\n      href: '../MaybeReadonly/',\n      generics: [\n        {\n          type: 'tuple',\n          items: [\n            {\n              type: 'custom',\n              modifier: 'keyof',\n              name: 'TSchema',\n              indexes: [\n                {\n                  type: 'string',\n                  value: 'entries',\n                },\n              ],\n            },\n            {\n              type: 'array',\n              spread: true,\n              item: {\n                type: 'custom',\n                modifier: 'keyof',\n                name: 'TSchema',\n                indexes: [\n                  {\n                    type: 'string',\n                    value: 'entries',\n                  },\n                ],\n              },\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ObjectPathItem/index.mdx",
    "content": "---\ntitle: ObjectPathItem\ndescription: Object path item interface.\ncontributors:\n  - fabian-hiller\n  - kazizi55\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ObjectPathItem\n\nObject path item interface.\n\n## Definition\n\n- `ObjectPathItem`\n  - `type` <Property {...properties.type} />\n  - `origin` <Property {...properties.origin} />\n  - `input` <Property {...properties.input} />\n  - `key` <Property type=\"string\" />\n  - `value` <Property type=\"unknown\" />\n\nThe `input` of a path item may differ from the `input` of its issue. This is because path items are subsequently added by parent schemas and are related to their input. Transformations of child schemas are not taken into account.\n"
  },
  {
    "path": "website/src/routes/api/(types)/ObjectPathItem/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  type: {\n    type: {\n      type: 'string',\n      value: 'object',\n    },\n  },\n  origin: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'string',\n          value: 'key',\n        },\n        {\n          type: 'string',\n          value: 'value',\n        },\n      ],\n    },\n  },\n  input: {\n    type: {\n      type: 'custom',\n      name: 'Record',\n      generics: ['string', 'unknown'],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ObjectSchema/index.mdx",
    "content": "---\ntitle: ObjectSchema\ndescription: Object schema interface.\ncontributors:\n  - fabian-hiller\n  - kazizi55\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ObjectSchema\n\nObject schema interface.\n\n## Generics\n\n- `TEntries` <Property {...properties.TEntries} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `ObjectSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `entries` <Property {...properties.entries} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ObjectSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TEntries: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ObjectEntries',\n      href: '../ObjectEntries/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ObjectIssue',\n              href: '../ObjectIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferObjectInput',\n          href: '../InferObjectInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TEntries',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferObjectOutput',\n          href: '../InferObjectOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TEntries',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'ObjectIssue',\n              href: '../ObjectIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferObjectIssue',\n              href: '../InferObjectIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TEntries',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'object',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'object',\n      href: '../object/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Object',\n    },\n  },\n  entries: {\n    type: {\n      type: 'custom',\n      name: 'TEntries',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ObjectSchemaAsync/index.mdx",
    "content": "---\ntitle: ObjectSchemaAsync\ndescription: Object schema async interface.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ObjectSchemaAsync\n\nObject schema async interface.\n\n## Generics\n\n- `TEntries` <Property {...properties.TEntries} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `ObjectSchemaAsync` <Property {...properties.BaseSchemaAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `entries` <Property {...properties.entries} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ObjectSchemaAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TEntries: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ObjectEntriesAsync',\n      href: '../ObjectEntriesAsync/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ObjectIssue',\n              href: '../ObjectIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchemaAsync: {\n    type: {\n      modifier: 'extends',\n      type: 'custom',\n      name: 'BaseSchemaAsync',\n      href: '../BaseSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferObjectInput',\n          href: '../InferObjectInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TEntries',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferObjectOutput',\n          href: '../InferObjectOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TEntries',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'ObjectIssue',\n              href: '../ObjectIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferObjectIssue',\n              href: '../InferObjectIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TEntries',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'object',\n    },\n  },\n  reference: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'object',\n          href: '../object/',\n        },\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'objectAsync',\n          href: '../objectAsync/',\n        },\n      ],\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Object',\n    },\n  },\n  entries: {\n    type: {\n      type: 'custom',\n      name: 'TEntries',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ObjectWithRestIssue/index.mdx",
    "content": "---\ntitle: ObjectWithRestIssue\ndescription: Object with rest issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ObjectWithRestIssue\n\nObject with rest issue interface.\n\n## Definition\n\n- `ObjectWithRestIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ObjectWithRestIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'object_with_rest',\n    },\n  },\n  expected: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'string',\n          value: 'Object',\n        },\n        {\n          type: 'template',\n          parts: [\n            {\n              type: 'string',\n              value: '\"',\n            },\n            'string',\n            {\n              type: 'string',\n              value: '\"',\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ObjectWithRestSchema/index.mdx",
    "content": "---\ntitle: ObjectWithRestSchema\ndescription: Object with rest schema interface.\ncontributors:\n  - fabian-hiller\n  - kazizi55\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ObjectWithRestSchema\n\nObject with rest schema interface.\n\n## Generics\n\n- `TEntries` <Property {...properties.TEntries} />\n- `TRest` <Property {...properties.TRest} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `ObjectWithRestSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `entries` <Property {...properties.entries} />\n  - `rest` <Property {...properties.rest} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ObjectWithRestSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TEntries: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ObjectEntries',\n      href: '../ObjectEntries/',\n    },\n  },\n  TRest: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ObjectWithRestIssue',\n              href: '../ObjectWithRestIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'intersect',\n          options: [\n            {\n              type: 'custom',\n              name: 'InferObjectInput',\n              href: '../InferObjectInput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TEntries',\n                },\n              ],\n            },\n            {\n              type: 'object',\n              entries: [\n                {\n                  key: {\n                    name: 'key',\n                    type: 'string',\n                  },\n                  value: {\n                    type: 'custom',\n                    name: 'InferInput',\n                    href: '../InferInput/',\n                    generics: [\n                      {\n                        type: 'custom',\n                        name: 'TRest',\n                      },\n                    ],\n                  },\n                },\n              ],\n            },\n          ],\n        },\n        {\n          type: 'intersect',\n          options: [\n            {\n              type: 'custom',\n              name: 'InferObjectOutput',\n              href: '../InferObjectOutput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TEntries',\n                },\n              ],\n            },\n            {\n              type: 'object',\n              entries: [\n                {\n                  key: {\n                    name: 'key',\n                    type: 'string',\n                  },\n                  value: {\n                    type: 'custom',\n                    name: 'InferInput',\n                    href: '../InferInput/',\n                    generics: [\n                      {\n                        type: 'custom',\n                        name: 'TRest',\n                      },\n                    ],\n                  },\n                },\n              ],\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'ObjectWithRestIssue',\n              href: '../ObjectWithRestIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferObjectIssue',\n              href: '../InferObjectIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TEntries',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'object_with_rest',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'objectWithRest',\n      href: '../objectWithRest/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Object',\n    },\n  },\n  entries: {\n    type: {\n      type: 'custom',\n      name: 'TEntries',\n    },\n  },\n  rest: {\n    type: {\n      type: 'custom',\n      name: 'TRest',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ObjectWithRestSchemaAsync/index.mdx",
    "content": "---\ntitle: ObjectWithRestSchemaAsync\ndescription: Object schema async interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ObjectWithRestSchemaAsync\n\nObject schema async interface.\n\n## Generics\n\n- `TEntries` <Property {...properties.TEntries} />\n- `TRest` <Property {...properties.TRest} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `ObjectWithRestSchemaAsync` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `entries` <Property {...properties.entries} />\n  - `rest` <Property {...properties.rest} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ObjectWithRestSchemaAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TEntries: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ObjectEntriesAsync',\n      href: '../ObjectEntriesAsync/',\n    },\n  },\n  TRest: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ObjectWithRestIssue',\n              href: '../ObjectWithRestIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'intersect',\n          options: [\n            {\n              type: 'custom',\n              name: 'InferObjectInput',\n              href: '../InferObjectInput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TEntries',\n                },\n              ],\n            },\n            {\n              type: 'object',\n              entries: [\n                {\n                  key: {\n                    name: 'key',\n                    type: 'string',\n                  },\n                  value: {\n                    type: 'custom',\n                    name: 'InferInput',\n                    href: '../InferInput/',\n                    generics: [\n                      {\n                        type: 'custom',\n                        name: 'TRest',\n                      },\n                    ],\n                  },\n                },\n              ],\n            },\n          ],\n        },\n        {\n          type: 'intersect',\n          options: [\n            {\n              type: 'custom',\n              name: 'InferObjectOutput',\n              href: '../InferObjectOutput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TEntries',\n                },\n              ],\n            },\n            {\n              type: 'object',\n              entries: [\n                {\n                  key: {\n                    name: 'key',\n                    type: 'string',\n                  },\n                  value: {\n                    type: 'custom',\n                    name: 'InferInput',\n                    href: '../InferInput/',\n                    generics: [\n                      {\n                        type: 'custom',\n                        name: 'TRest',\n                      },\n                    ],\n                  },\n                },\n              ],\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'ObjectWithRestIssue',\n              href: '../ObjectWithRestIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferObjectIssue',\n              href: '../InferObjectIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TEntries',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'object_with_rest',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'objectWithRest',\n      href: '../objectWithRest/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Object',\n    },\n  },\n  entries: {\n    type: {\n      type: 'custom',\n      name: 'TEntries',\n    },\n  },\n  rest: {\n    type: {\n      type: 'custom',\n      name: 'TRest',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/OctalAction/index.mdx",
    "content": "---\ntitle: OctalAction\ndescription: Octal action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# OctalAction\n\nOctal action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `OctalAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/OctalAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'OctalIssue',\n              href: '../OctalIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'OctalIssue',\n          href: '../OctalIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'octal',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'octal',\n      href: '../octal/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/OctalIssue/index.mdx",
    "content": "---\ntitle: OctalIssue\ndescription: Octal issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# OctalIssue\n\nOctal issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `OctalIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/OctalIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'octal',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/OptionalSchema/index.mdx",
    "content": "---\ntitle: OptionalSchema\ndescription: Optional schema interface.\ncontributors:\n  - fabian-hiller\n  - sqmasep\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# OptionalSchema\n\nOptional schema interface.\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TDefault` <Property {...properties.TDefault} />\n\n## Definition\n\n- `OptionalSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `wrapped` <Property {...properties.wrapped} />\n  - `default` <Property {...properties.default} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/OptionalSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TDefault: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Default',\n      href: '../Default/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'InferInput',\n              href: '../InferInput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TWrapped',\n                },\n              ],\n            },\n            'undefined',\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferOptionalOutput',\n          href: '../InferOptionalOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n            {\n              type: 'custom',\n              name: 'TDefault',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferIssue',\n          href: '../InferIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'optional',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'optional',\n      href: '../optional/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '(',\n        },\n        {\n          type: 'custom',\n          name: 'TWrapped',\n          indexes: [\n            {\n              type: 'string',\n              value: 'expects',\n            },\n          ],\n        },\n        {\n          type: 'string',\n          value: ' | undefined)',\n        },\n      ],\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  default: {\n    type: {\n      type: 'custom',\n      name: 'TDefault',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/OptionalSchemaAsync/index.mdx",
    "content": "---\ntitle: OptionalSchemaAsync\ndescription: Optional schema async interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# OptionalSchemaAsync\n\nOptional schema async interface.\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TDefault` <Property {...properties.TDefault} />\n\n## Definition\n\n- `OptionalSchemaAsync` <Property {...properties.BaseSchemaAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `wrapped` <Property {...properties.wrapped} />\n  - `default` <Property {...properties.default} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/OptionalSchemaAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TDefault: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'DefaultAsync',\n      href: '../DefaultAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchemaAsync: {\n    type: {\n      type: 'custom',\n      name: 'BaseSchemaAsync',\n      href: '../BaseSchemaAsync/',\n      generics: [\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'InferInput',\n              href: '../InferInput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TWrapped',\n                },\n              ],\n            },\n            'undefined',\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferOptionalOutput',\n          href: '../InferOptionalOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n            {\n              type: 'custom',\n              name: 'TDefault',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferIssue',\n          href: '../InferIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'optional',\n    },\n  },\n  reference: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'optional',\n          href: '../optional/',\n        },\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'optionalAsync',\n          href: '../optionalAsync/',\n        },\n      ],\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '(',\n        },\n        {\n          type: 'custom',\n          name: 'TWrapped',\n          indexes: [\n            {\n              type: 'string',\n              value: 'expects',\n            },\n          ],\n        },\n        {\n          type: 'string',\n          value: ' | undefined)',\n        },\n      ],\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  default: {\n    type: {\n      type: 'custom',\n      name: 'TDefault',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/OutputDataset/index.mdx",
    "content": "---\ntitle: OutputDataset\ndescription: Output dataset interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# OutputDataset\n\nOutput dataset interface.\n\n## Generics\n\n- `TValue` <Property {...properties.TValue} />\n- `TIssue` <Property {...properties.TIssue} />\n\n## Definition\n\n- `OutputDataset` <Property {...properties.OutputDataset} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/OutputDataset/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TValue: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  OutputDataset: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'SuccessDataset',\n          href: '../SuccessDataset/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TValue',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'PartialDataset',\n          href: '../PartialDataset/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TValue',\n            },\n            {\n              type: 'custom',\n              name: 'TIssue',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'FailureDataset',\n          href: '../FailureDataset/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TIssue',\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ParseBooleanAction/index.mdx",
    "content": "---\ntitle: ParseBooleanAction\ndescription: Parse boolean action interface.\ncontributors:\n  - alexilyaev\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ParseBooleanAction\n\nParse boolean action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TConfig` <Property {...properties.TConfig} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `ParseBooleanAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `config` <Property {...properties.config} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ParseBooleanAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TConfig: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ParseBooleanConfig',\n          href: '../ParseBooleanConfig/',\n        },\n        'undefined',\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ParseBooleanIssue',\n              href: '../ParseBooleanIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        'boolean',\n        {\n          type: 'custom',\n          name: 'ParseBooleanIssue',\n          href: '../ParseBooleanIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'parse_boolean',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'parseBoolean',\n      href: '../parseBoolean/',\n    },\n  },\n  expects: {\n    type: 'string',\n  },\n  config: {\n    type: {\n      type: 'custom',\n      name: 'TConfig',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ParseBooleanConfig/index.mdx",
    "content": "---\ntitle: ParseBooleanConfig\ndescription: Parse boolean config interface.\ncontributors:\n  - alexilyaev\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ParseBooleanConfig\n\nParse boolean config interface.\n\n## Definition\n\n- `ParseBooleanConfig`\n  - `truthy` <Property {...properties.truthy} />\n  - `falsy` <Property {...properties.falsy} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ParseBooleanConfig/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  truthy: {\n    type: {\n      type: 'custom',\n      name: 'MaybeReadonly',\n      href: '../MaybeReadonly/',\n      generics: [\n        {\n          type: 'array',\n          item: 'unknown',\n        },\n      ],\n    },\n  },\n  falsy: {\n    type: {\n      type: 'custom',\n      name: 'MaybeReadonly',\n      href: '../MaybeReadonly/',\n      generics: [\n        {\n          type: 'array',\n          item: 'unknown',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ParseBooleanIssue/index.mdx",
    "content": "---\ntitle: ParseBooleanIssue\ndescription: Parse boolean issue interface.\ncontributors:\n  - alexilyaev\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ParseBooleanIssue\n\nParse boolean issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `ParseBooleanIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ParseBooleanIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'transformation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'parse_boolean',\n    },\n  },\n  expected: {\n    type: 'string',\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ParseJsonAction/index.mdx",
    "content": "---\ntitle: ParseJsonAction\ndescription: JSON parse action interface.\ncontributors:\n  - EskiMojo14\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ParseJsonAction\n\nJSON parse action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TConfig` <Property {...properties.TConfig} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `ParseJsonAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `config` <Property {...properties.config} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ParseJsonAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TConfig: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ParseJsonConfig',\n          href: '../ParseJsonConfig/',\n        },\n        'undefined',\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ParseJsonIssue',\n              href: '../ParseJsonIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        'unknown',\n        {\n          type: 'custom',\n          name: 'ParseJsonIssue',\n          href: '../ParseJsonIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'parse_json',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'parseJson',\n      href: '../parseJson/',\n    },\n  },\n  config: {\n    type: {\n      type: 'custom',\n      name: 'TConfig',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ParseJsonConfig/index.mdx",
    "content": "---\ntitle: ParseJsonConfig\ndescription: JSON parse config interface.\ncontributors:\n  - EskiMojo14\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ParseJsonConfig\n\nJSON parse config interface.\n\n## Definition\n\n- `ParseJsonConfig`\n  - `reviver` <Property {...properties.reviver} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ParseJsonConfig/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  reviver: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'function',\n          params: [\n            {\n              name: 'this',\n              type: 'any',\n            },\n            {\n              name: 'key',\n              type: 'string',\n            },\n            {\n              name: 'value',\n              type: 'any',\n            },\n          ],\n          return: 'any',\n        },\n        'undefined',\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ParseJsonIssue/index.mdx",
    "content": "---\ntitle: ParseJsonIssue\ndescription: JSON parse issue interface.\ncontributors:\n  - EskiMojo14\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ParseJsonIssue\n\nJSON parse issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `ParseJsonIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ParseJsonIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'transformation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'parse_json',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/Parser/index.mdx",
    "content": "---\ntitle: Parser\ndescription: The parser interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# Parser\n\nThe parser interface.\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n- `TConfig` <Property {...properties.TConfig} />\n\n## Definition\n\n- `Parser`\n  - <Property {...properties.function} />\n  - `schema` <Property {...properties.schema} />\n  - `config` <Property {...properties.config} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/Parser/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TConfig: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'Config',\n          href: '../Config/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TSchema',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  function: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: 'unknown',\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'InferOutput',\n        href: '../InferOutput/',\n        generics: [\n          {\n            type: 'custom',\n            name: 'TSchema',\n          },\n        ],\n      },\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  config: {\n    type: {\n      type: 'custom',\n      name: 'TConfig',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ParserAsync/index.mdx",
    "content": "---\ntitle: ParserAsync\ndescription: The parser async interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ParserAsync\n\nThe parser async interface.\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n- `TConfig` <Property {...properties.TConfig} />\n\n## Definition\n\n- `ParserAsync`\n  - <Property {...properties.function} />\n  - `schema` <Property {...properties.schema} />\n  - `config` <Property {...properties.config} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ParserAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TConfig: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'Config',\n          href: '../Config/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TSchema',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  function: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: 'unknown',\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'Promise',\n        generics: [\n          {\n            type: 'custom',\n            name: 'InferOutput',\n            href: '../InferOutput/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'TSchema',\n              },\n            ],\n          },\n        ],\n      },\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  config: {\n    type: {\n      type: 'custom',\n      name: 'TConfig',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/PartialCheckAction/index.mdx",
    "content": "---\ntitle: PartialCheckAction\ndescription: Partial check action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# PartialCheckAction\n\nPartial check action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TPaths` <Property {...properties.TPaths} />\n- `TSelection` <Property {...properties.TSelection} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `PartialCheckAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `paths` <Property {...properties.paths} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/PartialCheckAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'PartialInput',\n      href: '../PartialInput/',\n    },\n  },\n  TPaths: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Paths',\n      href: '../Paths/',\n    },\n  },\n  TSelection: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'DeepPickN',\n      href: '../DeepPickN/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TPaths',\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'PartialCheckIssue',\n              href: '../PartialCheckIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TSelection',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'PartialCheckIssue',\n          href: '../PartialCheckIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TSelection',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'partial_check',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'partialCheck',\n      href: '../partialCheck/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  paths: {\n    type: {\n      type: 'custom',\n      name: 'TPaths',\n    },\n  },\n  requirement: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: {\n            type: 'custom',\n            name: 'TSelection',\n          },\n        },\n      ],\n      return: 'boolean',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/PartialCheckActionAsync/index.mdx",
    "content": "---\ntitle: PartialCheckActionAsync\ndescription: Partial check action async interface.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# PartialCheckActionAsync\n\nPartial check action async interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TPaths` <Property {...properties.TPaths} />\n- `TSelection` <Property {...properties.TSelection} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `PartialCheckActionAsync` <Property {...properties.BaseValidationAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `paths` <Property {...properties.paths} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/PartialCheckActionAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'PartialInput',\n      href: '../PartialInput/',\n    },\n  },\n  TPaths: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Paths',\n      href: '../Paths/',\n    },\n  },\n  TSelection: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'DeepPickN',\n      href: '../DeepPickN/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TPaths',\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'PartialCheckIssue',\n              href: '../PartialCheckIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TSelection',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidationAsync: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidationAsync',\n      href: '../BaseValidationAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'PartialCheckIssue',\n          href: '../PartialCheckIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TSelection',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'partial_check',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'partialCheckAsync',\n      href: '../partialCheckAsync/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  paths: {\n    type: {\n      type: 'custom',\n      name: 'TPaths',\n    },\n  },\n  requirement: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: {\n            type: 'custom',\n            name: 'TSelection',\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'MaybePromise',\n        href: '../MaybePromise/',\n        generics: ['boolean'],\n      },\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/PartialCheckIssue/index.mdx",
    "content": "---\ntitle: PartialCheckIssue\ndescription: Partial check issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# PartialCheckIssue\n\nPartial check issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `PartialCheckIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/PartialCheckIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'PartialInput',\n      href: '../PartialInput/',\n    },\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'partial_check',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: {\n            type: 'custom',\n            name: 'TInput',\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'MaybePromise',\n        generics: ['boolean'],\n      },\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/PartialDataset/index.mdx",
    "content": "---\ntitle: PartialDataset\ndescription: Partial dataset interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# PartialDataset\n\nPartial dataset interface.\n\n## Generics\n\n- `TValue` <Property {...properties.TValue} />\n- `TIssue` <Property {...properties.TIssue} />\n\n## Definition\n\n- `UntypedDataset`\n  - `typed` <Property {...properties.typed} />\n  - `value` <Property {...properties.value} />\n  - `issues` <Property {...properties.issues} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/PartialDataset/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TValue: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  typed: {\n    type: {\n      type: 'boolean',\n      value: true,\n    },\n  },\n  value: {\n    type: {\n      type: 'custom',\n      name: 'TValue',\n    },\n  },\n  issues: {\n    type: {\n      type: 'tuple',\n      items: [\n        {\n          type: 'custom',\n          name: 'TIssue',\n        },\n        {\n          type: 'array',\n          spread: true,\n          item: {\n            type: 'custom',\n            name: 'TIssue',\n          },\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/PartialInput/index.mdx",
    "content": "---\ntitle: PartialInput\ndescription: Partial input type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# PartialInput\n\nPartial input type.\n\n## Definition\n\n- `PartialInput` <Property {...properties.PartialInput} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/PartialInput/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  PartialInput: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'Record',\n          generics: ['string', 'unknown'],\n        },\n        {\n          type: 'custom',\n          name: 'ArrayLike',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/Path/index.mdx",
    "content": "---\ntitle: Path\ndescription: Path type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# Path\n\nPath type.\n\n## Definition\n\n- `Path` <Property {...properties.Path} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/Path/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  Path: {\n    type: {\n      type: 'array',\n      modifier: 'readonly',\n      item: {\n        type: 'union',\n        options: ['string', 'number'],\n      },\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/PicklistIssue/index.mdx",
    "content": "---\ntitle: PicklistIssue\ndescription: Picklist issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# PicklistIssue\n\nPicklist issue interface.\n\n## Definition\n\n- `PicklistIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/PicklistIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'picklist',\n    },\n  },\n  expected: {\n    type: 'string',\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/PicklistOptions/index.mdx",
    "content": "---\ntitle: PicklistOptions\ndescription: Picklist options type.\ncontributors:\n  - fabian-hiller\n  - sqmasep\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# PicklistOptions\n\nPicklist options type.\n\n## Definition\n\n- `PicklistOptions` <Property {...properties.PicklistOptions} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/PicklistOptions/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  PicklistOptions: {\n    type: {\n      type: 'custom',\n      name: 'MaybeReadonly',\n      href: '../MaybeReadonly/',\n      generics: [\n        {\n          type: 'array',\n          item: {\n            type: 'union',\n            options: ['string', 'number', 'bigint'],\n          },\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/PicklistSchema/index.mdx",
    "content": "---\ntitle: PicklistSchema\ndescription: Picklist schema interface.\ncontributors:\n  - fabian-hiller\n  - sqmasep\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# PicklistSchema\n\nPicklist schema interface.\n\n## Generics\n\n- `TOptions` <Property {...properties.TOptions} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `PicklistSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `options` <Property {...properties.options} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/PicklistSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TOptions: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'PicklistOptions',\n      href: '../PicklistOptions/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'PicklistIssue',\n              href: '../PicklistIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TOptions',\n          indexes: ['number'],\n        },\n        {\n          type: 'custom',\n          name: 'TOptions',\n          indexes: ['number'],\n        },\n        {\n          type: 'custom',\n          name: 'PicklistIssue',\n          href: '../PicklistIssue/',\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'picklist',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'picklist',\n      href: '../picklist/',\n    },\n  },\n  options: {\n    type: {\n      type: 'custom',\n      name: 'TOptions',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/PipeAction/index.mdx",
    "content": "---\ntitle: PipeAction\ndescription: Pipe action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# PipeAction\n\nPipe action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n- `TIssue` <Property {...properties.TIssue} />\n\n## Definition\n\n- `PipeAction` <Property {...properties.PipeAction} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/PipeAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  PipeAction: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseValidation',\n          href: '../BaseValidation/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TOutput',\n            },\n            {\n              type: 'custom',\n              name: 'TIssue',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseTransformation',\n          href: '../BaseTransformation/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TOutput',\n            },\n            {\n              type: 'custom',\n              name: 'TIssue',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseMetadata',\n          href: '../BaseMetadata/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/PipeActionAsync/index.mdx",
    "content": "---\ntitle: PipeActionAsync\ndescription: Pipe action async interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# PipeActionAsync\n\nPipe action async interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n- `TIssue` <Property {...properties.TIssue} />\n\n## Definition\n\n- `PipeActionAsync` <Property {...properties.PipeActionAsync} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/PipeActionAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  PipeActionAsync: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseValidationAsync',\n          href: '../BaseValidationAsync/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TOutput',\n            },\n            {\n              type: 'custom',\n              name: 'TIssue',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseTransformationAsync',\n          href: '../BaseTransformationAsync/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TOutput',\n            },\n            {\n              type: 'custom',\n              name: 'TIssue',\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/PipeItem/index.mdx",
    "content": "---\ntitle: PipeItem\ndescription: Pipe item type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# PipeItem\n\nPipe item type.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n- `TIssue` <Property {...properties.TIssue} />\n\n## Definition\n\n- `PipeItem` <Property {...properties.PipeItem} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/PipeItem/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  PipeItem: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TOutput',\n            },\n            {\n              type: 'custom',\n              name: 'TIssue',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'PipeAction',\n          href: '../PipeAction/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TOutput',\n            },\n            {\n              type: 'custom',\n              name: 'TIssue',\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/PipeItemAsync/index.mdx",
    "content": "---\ntitle: PipeItemAsync\ndescription: Pipe item async  type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# PipeItemAsync\n\nPipe item async type.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n- `TIssue` <Property {...properties.TIssue} />\n\n## Definition\n\n- `PipeItemAsync` <Property {...properties.PipeItemAsync} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/PipeItemAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  PipeItemAsync: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TOutput',\n            },\n            {\n              type: 'custom',\n              name: 'TIssue',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'PipeActionAsync',\n          href: '../PipeActionAsync/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TOutput',\n            },\n            {\n              type: 'custom',\n              name: 'TIssue',\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/PromiseIssue/index.mdx",
    "content": "---\ntitle: PromiseIssue\ndescription: Promise issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# PromiseIssue\n\nPromise issue interface.\n\n## Definition\n\n- `PromiseIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/PromiseIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'promise',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: 'Promise',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/PromiseSchema/index.mdx",
    "content": "---\ntitle: PromiseSchema\ndescription: Promise schema interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# PromiseSchema\n\nPromise schema interface.\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `PromiseSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/PromiseSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'PromiseIssue',\n              href: '../PromiseIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'Promise',\n          generics: ['unknown'],\n        },\n        {\n          type: 'custom',\n          name: 'Promise',\n          generics: ['unknown'],\n        },\n        {\n          type: 'custom',\n          name: 'PromiseIssue',\n          href: '../PromiseIssue/',\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'promise',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'promise',\n      href: '../promise/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Promise',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/RawCheckAction/index.mdx",
    "content": "---\ntitle: RawCheckAction\ndescription: Raw check action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# RawCheckAction\n\nRaw check action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `RawCheckAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/RawCheckAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'RawCheckIssue',\n          href: '../RawCheckIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'raw_check',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'rawCheck',\n      href: '../rawCheck/',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/RawCheckActionAsync/index.mdx",
    "content": "---\ntitle: RawCheckActionAsync\ndescription: Raw check action async interface.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# RawCheckActionAsync\n\nRaw check action async interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `RawCheckActionAsync` <Property {...properties.BaseValidationAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/RawCheckActionAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  BaseValidationAsync: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidationAsync',\n      href: '../BaseValidationAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'RawCheckIssue',\n          href: '../RawCheckIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'raw_check',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'rawCheckAsync',\n      href: '../rawCheckAsync/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/RawCheckAddIssue/index.mdx",
    "content": "---\ntitle: RawCheckAddIssue\ndescription: Raw check add issue type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# RawCheckAddIssue\n\nRaw check add issue type.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `RawCheckAddIssue` <Property {...properties.RawCheckAddIssue} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/RawCheckAddIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  RawCheckAddIssue: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'info',\n          optional: true,\n          type: {\n            type: 'custom',\n            name: 'RawCheckIssueInfo',\n            href: '../RawCheckIssueInfo/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'TInput',\n              },\n            ],\n          },\n        },\n      ],\n      return: 'void',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/RawCheckContext/index.mdx",
    "content": "---\ntitle: RawCheckContext\ndescription: Raw check context interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# RawCheckContext\n\nRaw check context interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `RawCheckContext`\n  - `dataset` <Property {...properties.dataset} />\n  - `config` <Property {...properties.config} />\n  - `addIssue` <Property {...properties.addIssue} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/RawCheckContext/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  dataset: {\n    type: {\n      type: 'custom',\n      name: 'OutputDataset',\n      href: '../OutputDataset/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  config: {\n    type: {\n      type: 'custom',\n      name: 'Config',\n      href: '../Config/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'RawCheckIssue',\n          href: '../RawCheckIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  addIssue: {\n    type: {\n      type: 'custom',\n      name: 'RawCheckAddIssue',\n      href: '../RawCheckAddIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/RawCheckIssue/index.mdx",
    "content": "---\ntitle: RawCheckIssue\ndescription: Raw check issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# RawCheckIssue\n\nRaw check issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `RawCheckIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/RawCheckIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'raw_check',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/RawCheckIssueInfo/index.mdx",
    "content": "---\ntitle: RawCheckIssueInfo\ndescription: Raw check issue info interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# RawCheckIssueInfo\n\nRaw check issue info interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `RawCheckIssueInfo`\n  - `label` <Property {...properties.label} />\n  - `input` <Property {...properties.input} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `message` <Property {...properties.message} />\n  - `path` <Property {...properties.path} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/RawCheckIssueInfo/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  label: {\n    type: {\n      type: 'union',\n      options: ['string', 'undefined'],\n    },\n  },\n  input: {\n    type: {\n      type: 'union',\n      options: ['unknown', 'undefined'],\n    },\n  },\n  expected: {\n    type: {\n      type: 'union',\n      options: ['string', 'undefined'],\n    },\n  },\n  received: {\n    type: {\n      type: 'union',\n      options: ['string', 'undefined'],\n    },\n  },\n  message: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'RawCheckIssue',\n              href: '../RawCheckIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  path: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'tuple',\n          items: [\n            {\n              type: 'custom',\n              name: 'IssuePathItem',\n              href: '../IssuePathItem/',\n            },\n            {\n              type: 'array',\n              spread: true,\n              item: {\n                type: 'custom',\n                name: 'IssuePathItem',\n                href: '../IssuePathItem/',\n              },\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/RawTransformAction/index.mdx",
    "content": "---\ntitle: RawTransformAction\ndescription: Raw transform action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# RawTransformAction\n\nRaw transform action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n\n## Definition\n\n- `RawTransformAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/RawTransformAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TOutput',\n        },\n        {\n          type: 'custom',\n          name: 'RawTransformIssue',\n          href: '../RawTransformIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'raw_transform',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'rawTransform',\n      href: '../rawTransform/',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/RawTransformActionAsync/index.mdx",
    "content": "---\ntitle: RawTransformActionAsync\ndescription: Raw transform action async interface.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# RawTransformActionAsync\n\nRaw transform action async interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n\n## Definition\n\n- `RawTransformActionAsync` <Property {...properties.BaseTransformationAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/RawTransformActionAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  BaseTransformationAsync: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformationAsync',\n      href: '../BaseTransformationAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TOutput',\n        },\n        {\n          type: 'custom',\n          name: 'RawTransformIssue',\n          href: '../RawTransformIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'raw_transform',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'rawTransformAsync',\n      href: '../rawTransformAsync/',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/RawTransformAddIssue/index.mdx",
    "content": "---\ntitle: RawTransformAddIssue\ndescription: Raw transform add issue type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# RawTransformAddIssue\n\nRaw transform add issue type.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `RawTransformAddIssue` <Property {...properties.RawTransformAddIssue} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/RawTransformAddIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  RawTransformAddIssue: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'info',\n          optional: true,\n          type: {\n            type: 'custom',\n            name: 'RawTransformIssueInfo',\n            href: '../RawTransformIssueInfo/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'TInput',\n              },\n            ],\n          },\n        },\n      ],\n      return: 'void',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/RawTransformContext/index.mdx",
    "content": "---\ntitle: RawTransformContext\ndescription: Raw transform context interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# RawTransformContext\n\nRaw transform context interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `RawTransformContext`\n  - `dataset` <Property {...properties.dataset} />\n  - `config` <Property {...properties.config} />\n  - `addIssue` <Property {...properties.addIssue} />\n  - `NEVER` <Property {...properties.NEVER} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/RawTransformContext/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  dataset: {\n    type: {\n      type: 'custom',\n      name: 'SuccessDataset',\n      href: '../SuccessDataset/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  config: {\n    type: {\n      type: 'custom',\n      name: 'Config',\n      href: '../Config/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'RawTransformIssue',\n          href: '../RawTransformIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  addIssue: {\n    type: {\n      type: 'custom',\n      name: 'RawTransformAddIssue',\n      href: '../RawTransformAddIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  NEVER: {\n    type: 'never',\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/RawTransformIssue/index.mdx",
    "content": "---\ntitle: RawTransformIssue\ndescription: Raw transform issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# RawTransformIssue\n\nRaw transform issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `RawTransformIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/RawTransformIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'raw_transform',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/RawTransformIssueInfo/index.mdx",
    "content": "---\ntitle: RawTransformIssueInfo\ndescription: Raw transform issue info interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# RawTransformIssueInfo\n\nRaw transform issue info interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `RawTransformIssueInfo`\n  - `label` <Property {...properties.label} />\n  - `input` <Property {...properties.input} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `message` <Property {...properties.message} />\n  - `path` <Property {...properties.path} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/RawTransformIssueInfo/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  label: {\n    type: {\n      type: 'union',\n      options: ['string', 'undefined'],\n    },\n  },\n  input: {\n    type: {\n      type: 'union',\n      options: ['unknown', 'undefined'],\n    },\n  },\n  expected: {\n    type: {\n      type: 'union',\n      options: ['string', 'undefined'],\n    },\n  },\n  received: {\n    type: {\n      type: 'union',\n      options: ['string', 'undefined'],\n    },\n  },\n  message: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'RawTransformIssue',\n              href: '../RawTransformIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  path: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'tuple',\n          items: [\n            {\n              type: 'custom',\n              name: 'IssuePathItem',\n              href: '../IssuePathItem/',\n            },\n            {\n              type: 'array',\n              spread: true,\n              item: {\n                type: 'custom',\n                name: 'IssuePathItem',\n                href: '../IssuePathItem/',\n              },\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ReadonlyAction/index.mdx",
    "content": "---\ntitle: ReadonlyAction\ndescription: Readonly action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ReadonlyAction\n\nReadonly action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `ReadonlyAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ReadonlyAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'Readonly',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n        'never',\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'readonly',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'readonly',\n      href: '../readonly/',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/RecordIssue/index.mdx",
    "content": "---\ntitle: RecordIssue\ndescription: Record issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# RecordIssue\n\nRecord issue interface.\n\n## Definition\n\n- `RecordIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/RecordIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'record',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: 'Object',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/RecordSchema/index.mdx",
    "content": "---\ntitle: RecordSchema\ndescription: Record schema interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# RecordSchema\n\nRecord schema interface.\n\n## Generics\n\n- `TKey` <Property {...properties.TKey} />\n- `TValue` <Property {...properties.TValue} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `RecordSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `key` <Property {...properties.key} />\n  - `value` <Property {...properties.value} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/RecordSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TKey: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'string',\n        {\n          type: 'union',\n          options: ['string', 'number', 'symbol'],\n        },\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TValue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'RecordIssue',\n              href: '../RecordIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferRecordInput',\n          href: '../InferRecordInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TKey',\n            },\n            {\n              type: 'custom',\n              name: 'TValue',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferRecordOutput',\n          href: '../InferRecordOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TKey',\n            },\n            {\n              type: 'custom',\n              name: 'TValue',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'RecordIssue',\n              href: '../RecordIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TKey',\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TValue',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'record',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'record',\n      href: '../record/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Object',\n    },\n  },\n  key: {\n    type: {\n      type: 'custom',\n      name: 'TKey',\n    },\n  },\n  value: {\n    type: {\n      type: 'custom',\n      name: 'TValue',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/RecordSchemaAsync/index.mdx",
    "content": "---\ntitle: RecordSchemaAsync\ndescription: Record schema async interface.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# RecordSchemaAsync\n\nRecord schema async interface.\n\n## Generics\n\n- `TKey` <Property {...properties.TKey} />\n- `TValue` <Property {...properties.TValue} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `RecordSchemaAsync` <Property {...properties.BaseSchemaAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `key` <Property {...properties.key} />\n  - `value` <Property {...properties.value} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/RecordSchemaAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TKey: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'string',\n            {\n              type: 'union',\n              options: ['string', 'number', 'symbol'],\n            },\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'string',\n            {\n              type: 'union',\n              options: ['string', 'number', 'symbol'],\n            },\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TValue: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'RecordIssue',\n              href: '../RecordIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchemaAsync: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchemaAsync',\n      href: '../BaseSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferRecordInput',\n          href: '../InferRecordInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TKey',\n            },\n            {\n              type: 'custom',\n              name: 'TValue',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferRecordOutput',\n          href: '../InferRecordOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TKey',\n            },\n            {\n              type: 'custom',\n              name: 'TValue',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'RecordIssue',\n              href: '../RecordIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TKey',\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TValue',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'record',\n    },\n  },\n  reference: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'record',\n          href: '../record/',\n        },\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'recordAsync',\n          href: '../recordAsync/',\n        },\n      ],\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Object',\n    },\n  },\n  key: {\n    type: {\n      type: 'custom',\n      name: 'TKey',\n    },\n  },\n  value: {\n    type: {\n      type: 'custom',\n      name: 'TValue',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ReduceItemsAction/index.mdx",
    "content": "---\ntitle: ReduceItemsAction\ndescription: Reduce items action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ReduceItemsAction\n\nReduce items action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n\n## Definition\n\n- `ReduceItemsAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `operation` <Property {...properties.operation} />\n  - `initial` <Property {...properties.initial} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ReduceItemsAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ArrayInput',\n      href: '../ArrayInput/',\n    },\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TOuput',\n        },\n        'never',\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'reduce_items',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'reduceItems',\n      href: '../reduceItems/',\n    },\n  },\n  operation: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'output',\n          type: {\n            type: 'custom',\n            name: 'TOutput',\n          },\n        },\n        {\n          name: 'item',\n          type: {\n            type: 'custom',\n            name: 'TInput',\n            indexes: ['number'],\n          },\n        },\n        {\n          name: 'index',\n          type: 'number',\n        },\n        {\n          name: 'array',\n          type: {\n            type: 'custom',\n            name: 'TInput',\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'TOutput',\n      },\n    },\n  },\n  initial: {\n    type: {\n      type: 'custom',\n      name: 'TOutput',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/Reference/index.mdx",
    "content": "---\ntitle: Reference\ndescription: Reference type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# Reference\n\nReference type.\n\n## Definition\n\n- `Reference` <Property {...properties.Reference} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/Reference/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  Reference: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'args',\n          spread: true,\n          type: {\n            type: 'array',\n            item: 'any',\n          },\n        },\n      ],\n      return: {\n        type: 'union',\n        options: [\n          {\n            type: 'custom',\n            name: 'BaseSchema',\n            href: '../BaseSchema/',\n            generics: [\n              'unknown',\n              'unknown',\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n          {\n            type: 'custom',\n            name: 'BaseSchemaAsync',\n            href: '../BaseSchemaAsync/',\n            generics: [\n              'unknown',\n              'unknown',\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n          {\n            type: 'custom',\n            name: 'BaseValidation',\n            href: '../BaseValidation/',\n            generics: [\n              'unknown',\n              'unknown',\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n          {\n            type: 'custom',\n            name: 'BaseValidationAsync',\n            href: '../BaseValidationAsync/',\n            generics: [\n              'unknown',\n              'unknown',\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n          {\n            type: 'custom',\n            name: 'BaseTransformation',\n            href: '../BaseTransformation/',\n            generics: [\n              'unknown',\n              'unknown',\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n          {\n            type: 'custom',\n            name: 'BaseTransformationAsync',\n            href: '../BaseTransformationAsync/',\n            generics: [\n              'unknown',\n              'unknown',\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n        ],\n      },\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/RegexAction/index.mdx",
    "content": "---\ntitle: RegexAction\ndescription: Regex action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# RegexAction\n\nRegex action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `RegexAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/RegexAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'RegexIssue',\n              href: '../RegexIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'RegexIssue',\n          href: '../RegexIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'regex',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'regex',\n      href: '../regex/',\n    },\n  },\n  expects: {\n    type: 'string',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/RegexIssue/index.mdx",
    "content": "---\ntitle: RegexIssue\ndescription: Regex issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# RegexIssue\n\nRegex issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `RegexIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/RegexIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'regex',\n    },\n  },\n  expected: {\n    type: 'string',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/RequiredPath/index.mdx",
    "content": "---\ntitle: RequiredPath\ndescription: Required path type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# RequiredPath\n\nRequired path type.\n\n## Definition\n\n- `RequiredPath` <Property {...properties.RequiredPath} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/RequiredPath/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  RequiredPath: {\n    type: {\n      type: 'tuple',\n      modifier: 'readonly',\n      items: [\n        {\n          type: 'union',\n          options: ['string', 'number'],\n        },\n        {\n          type: 'custom',\n          spread: true,\n          name: 'Path',\n          href: '../Path/',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/RequiredPaths/index.mdx",
    "content": "---\ntitle: RequiredPaths\ndescription: Required paths type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# RequiredPaths\n\nRequired paths type.\n\n## Definition\n\n- `RequiredPaths` <Property {...properties.RequiredPaths} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/RequiredPaths/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  RequiredPaths: {\n    type: {\n      type: 'tuple',\n      modifier: 'readonly',\n      items: [\n        {\n          type: 'custom',\n          name: 'RequiredPath',\n          href: '../RequiredPath/',\n        },\n        {\n          type: 'array',\n          spread: true,\n          item: {\n            type: 'custom',\n            name: 'RequiredPath',\n            href: '../RequiredPath/',\n          },\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ReturnsAction/index.mdx",
    "content": "---\ntitle: ReturnsAction\ndescription: Returns action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ReturnsAction\n\nReturns action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TSchema` <Property {...properties.TSchema} />\n\n## Definition\n\n- `ReturnsAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `schema` <Property {...properties.schema} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ReturnsAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'function',\n      params: [\n        {\n          spread: true,\n          name: 'args',\n          type: {\n            type: 'array',\n            item: 'any',\n          },\n        },\n      ],\n      return: 'unknown',\n    },\n  },\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'function',\n          params: [\n            {\n              spread: true,\n              name: 'args',\n              type: {\n                type: 'custom',\n                name: 'Parameters',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TInput',\n                  },\n                ],\n              },\n            },\n          ],\n          return: {\n            type: 'custom',\n            name: 'InferOutput',\n            href: '../InferOutput/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'TSchema',\n              },\n            ],\n          },\n        },\n        'never',\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'returns',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'returns',\n      href: '../returns/',\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ReturnsActionAsync/index.mdx",
    "content": "---\ntitle: ReturnsActionAsync\ndescription: Returns action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ReturnsActionAsync\n\nReturns action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TSchema` <Property {...properties.TSchema} />\n\n## Definition\n\n- `ReturnsActionAsync` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `schema` <Property {...properties.schema} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ReturnsActionAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'function',\n      params: [\n        {\n          spread: true,\n          name: 'args',\n          type: {\n            type: 'array',\n            item: 'any',\n          },\n        },\n      ],\n      return: 'unknown',\n    },\n  },\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'function',\n          params: [\n            {\n              spread: true,\n              name: 'args',\n              type: {\n                type: 'custom',\n                name: 'Parameters',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TInput',\n                  },\n                ],\n              },\n            },\n          ],\n          return: {\n            type: 'custom',\n            name: 'Promise',\n            generics: [\n              {\n                type: 'custom',\n                name: 'Awaited',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'InferOutput',\n                    href: '../InferOutput/',\n                    generics: [\n                      {\n                        type: 'custom',\n                        name: 'TSchema',\n                      },\n                    ],\n                  },\n                ],\n              },\n            ],\n          },\n        },\n        'never',\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'returns',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'returnsAsync',\n      href: '../returnsAsync/',\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/RfcEmailAction/index.mdx",
    "content": "---\ntitle: RfcEmailAction\ndescription: RFC email action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# RfcEmailAction\n\nRFC email action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `EmailAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/RfcEmailAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'RfcEmailIssue',\n              href: '../RfcEmailIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'RfcEmailIssue',\n          href: '../RfcEmailIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'rfc_email',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'rfcEmail',\n      href: '../rfcEmail/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/RfcEmailIssue/index.mdx",
    "content": "---\ntitle: RrcEmailIssue\ndescription: RFC email issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# RfcEmailIssue\n\nRFC email issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `EmailIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/RfcEmailIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'rfc_email',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/SafeIntegerAction/index.mdx",
    "content": "---\ntitle: SafeIntegerAction\ndescription: Safe integer action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# SafeIntegerAction\n\nSafe integer action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `SafeIntegerAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/SafeIntegerAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'SafeIntegerIssue',\n              href: '../SafeIntegerIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'SafeIntegerIssue',\n          href: '../SafeIntegerIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'safe_integer',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'safeInteger',\n      href: '../safeInteger/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: 'number',\n        },\n      ],\n      return: 'boolean',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/SafeIntegerIssue/index.mdx",
    "content": "---\ntitle: SafeIntegerIssue\ndescription: Safe integer issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# SafeIntegerIssue\n\nSafe integer issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `SafeIntegerIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/SafeIntegerIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'safe_integer',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: ['number'],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: 'number',\n        },\n      ],\n      return: 'boolean',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/SafeParseResult/index.mdx",
    "content": "---\ntitle: SafeParseResult\ndescription: Safe parse result type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# SafeParseResult\n\nSafe parse result type.\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n\n## Definition\n\n- `SafeParseResult`\n  - `typed` <Property {...properties.typed} />\n  - `success` <Property {...properties.success} />\n  - `output` <Property {...properties.output} />\n  - `issues` <Property {...properties.issues} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/SafeParseResult/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  typed: {\n    type: 'boolean',\n  },\n  success: {\n    type: 'boolean',\n  },\n  output: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'InferOutput',\n          href: '../InferOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TSchema',\n            },\n          ],\n        },\n        'unknown',\n      ],\n    },\n  },\n  issues: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'tuple',\n          items: [\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TSchema',\n                },\n              ],\n            },\n            {\n              type: 'array',\n              spread: true,\n              item: {\n                type: 'custom',\n                name: 'InferIssue',\n                href: '../InferIssue/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TSchema',\n                  },\n                ],\n              },\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/SafeParser/index.mdx",
    "content": "---\ntitle: SafeParser\ndescription: The safe parser interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# SafeParser\n\nThe safe parser interface.\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n- `TConfig` <Property {...properties.TConfig} />\n\n## Definition\n\n- `SafeParser`\n  - <Property {...properties.function} />\n  - `schema` <Property {...properties.schema} />\n  - `config` <Property {...properties.config} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/SafeParser/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TConfig: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'Config',\n          href: '../Config/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TSchema',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  function: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: 'unknown',\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'SafeParseResult',\n        href: '../SafeParseResult/',\n        generics: [\n          {\n            type: 'custom',\n            name: 'TSchema',\n          },\n        ],\n      },\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  config: {\n    type: {\n      type: 'custom',\n      name: 'TConfig',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/SafeParserAsync/index.mdx",
    "content": "---\ntitle: SafeParserAsync\ndescription: The safe parser async interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# SafeParserAsync\n\nThe safe parser async interface.\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n- `TConfig` <Property {...properties.TConfig} />\n\n## Definition\n\n- `SafeParserAsync`\n  - <Property {...properties.function} />\n  - `schema` <Property {...properties.schema} />\n  - `config` <Property {...properties.config} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/SafeParserAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TConfig: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'Config',\n          href: '../Config/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TSchema',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  function: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: 'unknown',\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'Promise',\n        generics: [\n          {\n            type: 'custom',\n            name: 'SafeParseResult',\n            href: '../SafeParseResult/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'TSchema',\n              },\n            ],\n          },\n        ],\n      },\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  config: {\n    type: {\n      type: 'custom',\n      name: 'TConfig',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/SchemaWithCache/index.mdx",
    "content": "---\ntitle: SchemaWithCache\ndescription: Schema with cache type.\ncontributors:\n  - EskiMojo14\n  - fabianhiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# SchemaWithCache\n\nSchema with cache type.\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n- `TCacheConfig` <Property {...properties.TCacheConfig} />\n\n## Definition\n\n- `SchemaWithCache` <Property {...properties.SchemaWithCache} />\n  - `cacheConfig` <Property {...properties.cacheConfig} />\n  - `cache` <Property {...properties.cache} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/SchemaWithCache/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TCacheConfig: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'CacheConfig',\n          href: '../CacheConfig/',\n        },\n        'undefined',\n      ],\n    },\n  },\n  cacheConfig: {\n    type: {\n      type: 'custom',\n      name: 'TCacheConfig',\n    },\n  },\n  cache: {\n    type: {\n      type: 'custom',\n      name: 'Cache',\n      href: '../Cache/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'OutputDataset',\n          href: '../OutputDataset/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'InferOutput',\n              href: '../InferOutput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TSchema',\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TSchema',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  SchemaWithCache: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/SchemaWithCacheAsync/index.mdx",
    "content": "---\ntitle: SchemaWithCacheAsync\ndescription: Schema with cache async type.\ncontributors:\n  - EskiMojo14\n  - fabianhiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# SchemaWithCacheAsync\n\nSchema with cache async type.\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n- `TCacheConfig` <Property {...properties.TCacheConfig} />\n\n## Definition\n\n- `SchemaWithCacheAsync` <Property {...properties.SchemaWithCacheAsync} />\n  - `async` <Property {...properties.async} />\n  - `cacheConfig` <Property {...properties.cacheConfig} />\n  - `cache` <Property {...properties.cache} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/SchemaWithCacheAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  async: {\n    type: {\n      type: 'boolean',\n      value: true,\n    },\n  },\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TCacheConfig: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'CacheConfig',\n          href: '../CacheConfig/',\n        },\n        'undefined',\n      ],\n    },\n  },\n  cacheConfig: {\n    type: {\n      type: 'custom',\n      name: 'TCacheConfig',\n    },\n  },\n  cache: {\n    type: {\n      type: 'custom',\n      name: 'Cache',\n      href: '../Cache/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'OutputDataset',\n          href: '../OutputDataset/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'InferOutput',\n              href: '../InferOutput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TSchema',\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TSchema',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  SchemaWithCacheAsync: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/SchemaWithFallback/index.mdx",
    "content": "---\ntitle: SchemaWithFallback\ndescription: Schema with fallback type.\ncontributors:\n  - fabian-hiller\n  - sqmasep\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# SchemaWithFallback\n\nSchema with fallback type.\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n- `TFallback` <Property {...properties.TFallback} />\n\n## Definition\n\n- `SchemaWithFallback` <Property {...properties.BaseSchema} />\n  - `fallback` <Property {...properties.fallback} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/SchemaWithFallback/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TFallback: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Fallback',\n      href: '../Fallback/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  fallback: {\n    type: {\n      type: 'custom',\n      name: 'TFallback',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/SchemaWithFallbackAsync/index.mdx",
    "content": "---\ntitle: SchemaWithFallbackAsync\ndescription: Schema with fallback async type.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# SchemaWithFallbackAsync\n\nSchema with fallback async type.\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n- `TFallback` <Property {...properties.TFallback} />\n\n## Definition\n\n- `SchemaWithFallbackAsync` <Property {...properties.ModifiedBaseSchemaOrAsync} />\n  - `fallback` <Property {...properties.fallback} />\n  - `async` <Property {...properties.async} />\n  - `~run` <Property {...properties['~run']} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/SchemaWithFallbackAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TFallback: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'FallbackAsync',\n      href: '../FallbackAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n      ],\n    },\n  },\n  ModifiedBaseSchemaOrAsync: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Omit',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'string',\n              value: 'async',\n            },\n            {\n              type: 'string',\n              value: '~run',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  fallback: {\n    type: {\n      type: 'custom',\n      name: 'TFallback',\n    },\n  },\n  async: {\n    type: {\n      type: 'boolean',\n      value: true,\n    },\n  },\n  '~run': {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'dataset',\n          type: {\n            type: 'custom',\n            name: 'UnknownDataset',\n            href: '../UnknownDataset/',\n          },\n        },\n        {\n          name: 'config',\n          type: {\n            type: 'custom',\n            name: 'Config',\n            href: '../Config/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'Promise',\n        generics: [\n          {\n            type: 'custom',\n            name: 'OutputDataset',\n            href: '../OutputDataset/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'InferOutput',\n                href: '../InferOutput/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TSchema',\n                  },\n                ],\n              },\n              {\n                type: 'custom',\n                name: 'InferIssue',\n                href: '../InferIssue/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TSchema',\n                  },\n                ],\n              },\n            ],\n          },\n        ],\n      },\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/SchemaWithPartial/index.mdx",
    "content": "---\ntitle: SchemaWithPartial\ndescription: Schema with partial type.\ncontributors:\n  - fabian-hiller\n---\n\n# SchemaWithPartial\n\nSchema with partial type.\n\n> This type is too complex to display. Please refer to the [source code](https://github.com/open-circle/valibot/blob/main/library/src/methods/partial/partial.ts).\n"
  },
  {
    "path": "website/src/routes/api/(types)/SchemaWithPartialAsync/index.mdx",
    "content": "---\ntitle: SchemaWithPartialAsync\ndescription: Schema with partial async type.\ncontributors:\n  - EltonLobo07\n---\n\n# SchemaWithPartialAsync\n\nSchema with partial async type.\n\n> This type is too complex to display. Please refer to the [source code](https://github.com/open-circle/valibot/blob/main/library/src/methods/partial/partialAsync.ts).\n"
  },
  {
    "path": "website/src/routes/api/(types)/SchemaWithPipe/index.mdx",
    "content": "---\ntitle: SchemaWithPipe\ndescription: Schema with pipe type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# SchemaWithPipe\n\nSchema with pipe type.\n\n## Generics\n\n- `TPipe` <Property {...properties.TPipe} />\n\n## Definition\n\n- `SchemaWithPipe` <Property {...properties.SchemaWithPipe} />\n  - `pipe` <Property {...properties.pipe} />\n  - `~types` <Property {...properties['~types']} />\n  - `~run` <Property {...properties['~run']} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/SchemaWithPipe/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TPipe: {\n    modifier: 'extends',\n    type: {\n      type: 'tuple',\n      modifier: 'readonly',\n      items: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'array',\n          spread: true,\n          item: {\n            type: 'custom',\n            name: 'PipeItem',\n            href: '../PipeItem/',\n            generics: [\n              'any',\n              'unknown',\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n        },\n      ],\n    },\n  },\n  SchemaWithPipe: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Omit',\n      generics: [\n        {\n          type: 'custom',\n          name: 'FirstTupleItem',\n          href: '../FirstTupleItem/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TPipe',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'string',\n              value: '~types',\n            },\n            {\n              type: 'string',\n              value: '~run',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  pipe: {\n    type: {\n      type: 'custom',\n      name: 'TPipe',\n    },\n  },\n  '~types': {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'object',\n          entries: [\n            {\n              key: 'input',\n              value: {\n                type: 'custom',\n                name: 'InferInput',\n                href: '../InferInput/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'FirstTupleItem',\n                    href: '../FirstTupleItem/',\n                    generics: [\n                      {\n                        type: 'custom',\n                        name: 'TPipe',\n                      },\n                    ],\n                  },\n                ],\n              },\n            },\n            {\n              key: 'output',\n              value: {\n                type: 'custom',\n                name: 'InferOutput',\n                href: '../InferOutput/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'LastTupleItem',\n                    href: '../LastTupleItem/',\n                    generics: [\n                      {\n                        type: 'custom',\n                        name: 'TPipe',\n                      },\n                    ],\n                  },\n                ],\n              },\n            },\n            {\n              key: 'issue',\n              value: {\n                type: 'custom',\n                name: 'InferIssue',\n                href: '../InferIssue/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TPipe',\n                    indexes: ['number'],\n                  },\n                ],\n              },\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  '~run': {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'dataset',\n          type: {\n            type: 'custom',\n            name: 'UnknownDataset',\n            href: '../UnknownDataset/',\n          },\n        },\n        {\n          name: 'config',\n          type: {\n            type: 'custom',\n            name: 'Config',\n            href: '../Config/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'OutputDataset',\n        href: '../OutputDataset/',\n        generics: [\n          {\n            type: 'custom',\n            name: 'InferOutput',\n            href: '../InferOutput/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'LastTupleItem',\n                href: '../LastTupleItem/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TPipe',\n                  },\n                ],\n              },\n            ],\n          },\n          {\n            type: 'custom',\n            name: 'InferIssue',\n            href: '../InferIssue/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'TPipe',\n                indexes: ['number'],\n              },\n            ],\n          },\n        ],\n      },\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/SchemaWithPipeAsync/index.mdx",
    "content": "---\ntitle: SchemaWithPipeAsync\ndescription: Schema with pipe async type.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# SchemaWithPipeAsync\n\nSchema with pipe async type.\n\n## Generics\n\n- `TPipe` <Property {...properties.TPipe} />\n\n## Definition\n\n- `SchemaWithPipeAsync` <Property {...properties.SchemaWithPipe} />\n  - `pipe` <Property {...properties.pipe} />\n  - `async` <Property {...properties.async} />\n  - `~types` <Property {...properties['~types']} />\n  - `~run` <Property {...properties['~run']} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/SchemaWithPipeAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TPipe: {\n    modifier: 'extends',\n    type: {\n      type: 'tuple',\n      modifier: 'readonly',\n      items: [\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'BaseSchema',\n              href: '../BaseSchema/',\n              generics: [\n                'unknown',\n                'unknown',\n                {\n                  type: 'custom',\n                  name: 'BaseIssue',\n                  href: '../BaseIssue/',\n                  generics: ['unknown'],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'BaseSchemaAsync',\n              href: '../BaseSchemaAsync/',\n              generics: [\n                'unknown',\n                'unknown',\n                {\n                  type: 'custom',\n                  name: 'BaseIssue',\n                  href: '../BaseIssue/',\n                  generics: ['unknown'],\n                },\n              ],\n            },\n          ],\n        },\n        {\n          type: 'array',\n          spread: true,\n          item: {\n            type: 'union',\n            options: [\n              {\n                type: 'custom',\n                name: 'PipeItem',\n                href: '../PipeItem/',\n                generics: [\n                  'any',\n                  'unknown',\n                  {\n                    type: 'custom',\n                    name: 'BaseIssue',\n                    href: '../BaseIssue/',\n                    generics: ['unknown'],\n                  },\n                ],\n              },\n              {\n                type: 'custom',\n                name: 'PipeItemAsync',\n                href: '../PipeItemAsync/',\n                generics: [\n                  'any',\n                  'unknown',\n                  {\n                    type: 'custom',\n                    name: 'BaseIssue',\n                    href: '../BaseIssue/',\n                    generics: ['unknown'],\n                  },\n                ],\n              },\n            ],\n          },\n        },\n      ],\n    },\n  },\n  SchemaWithPipe: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Omit',\n      generics: [\n        {\n          type: 'custom',\n          name: 'FirstTupleItem',\n          href: '../FirstTupleItem/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TPipe',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'string',\n              value: 'async',\n            },\n            {\n              type: 'string',\n              value: '~types',\n            },\n            {\n              type: 'string',\n              value: '~run',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  pipe: {\n    type: {\n      type: 'custom',\n      name: 'TPipe',\n    },\n  },\n  async: {\n    type: {\n      type: 'boolean',\n      value: true,\n    },\n  },\n  '~types': {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'object',\n          entries: [\n            {\n              key: 'input',\n              value: {\n                type: 'custom',\n                name: 'InferInput',\n                href: '../InferInput/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'FirstTupleItem',\n                    href: '../FirstTupleItem/',\n                    generics: [\n                      {\n                        type: 'custom',\n                        name: 'TPipe',\n                      },\n                    ],\n                  },\n                ],\n              },\n            },\n            {\n              key: 'output',\n              value: {\n                type: 'custom',\n                name: 'InferOutput',\n                href: '../InferOutput/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'LastTupleItem',\n                    href: '../LastTupleItem/',\n                    generics: [\n                      {\n                        type: 'custom',\n                        name: 'TPipe',\n                      },\n                    ],\n                  },\n                ],\n              },\n            },\n            {\n              key: 'issue',\n              value: {\n                type: 'custom',\n                name: 'InferIssue',\n                href: '../InferIssue/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TPipe',\n                    indexes: ['number'],\n                  },\n                ],\n              },\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  '~run': {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'dataset',\n          type: {\n            type: 'custom',\n            name: 'UnknownDataset',\n            href: '../UnknownDataset/',\n          },\n        },\n        {\n          name: 'config',\n          type: {\n            type: 'custom',\n            name: 'Config',\n            href: '../Config/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'Promise',\n        generics: [\n          {\n            type: 'custom',\n            name: 'OutputDataset',\n            href: '../OutputDataset/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'InferOutput',\n                href: '../InferOutput/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'LastTupleItem',\n                    href: '../LastTupleItem/',\n                    generics: [\n                      {\n                        type: 'custom',\n                        name: 'TPipe',\n                      },\n                    ],\n                  },\n                ],\n              },\n              {\n                type: 'custom',\n                name: 'InferIssue',\n                href: '../InferIssue/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TPipe',\n                    indexes: ['number'],\n                  },\n                ],\n              },\n            ],\n          },\n        ],\n      },\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/SchemaWithRequired/index.mdx",
    "content": "---\ntitle: SchemaWithRequired\ndescription: Schema with required type.\ncontributors:\n  - EltonLobo07\n---\n\n# SchemaWithRequired\n\nSchema with required type.\n\n> This type is too complex to display. Please refer to the [source code](https://github.com/open-circle/valibot/blob/main/library/src/methods/required/required.ts).\n"
  },
  {
    "path": "website/src/routes/api/(types)/SchemaWithRequiredAsync/index.mdx",
    "content": "---\ntitle: SchemaWithRequiredAsync\ndescription: Schema with required async type.\ncontributors:\n  - EltonLobo07\n---\n\n# SchemaWithRequiredAsync\n\nSchema with required async type.\n\n> This type is too complex to display. Please refer to the [source code](https://github.com/open-circle/valibot/blob/main/library/src/methods/required/requiredAsync.ts).\n"
  },
  {
    "path": "website/src/routes/api/(types)/SchemaWithoutPipe/index.mdx",
    "content": "---\ntitle: SchemaWithoutPipe\ndescription: Schema without pipe type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# SchemaWithoutPipe\n\nSchema without pipe type.\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n\n## Definition\n\n- `SchemaWithoutPipe` <Property {...properties.SchemaWithoutPipe} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/SchemaWithoutPipe/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  SchemaWithoutPipe: {\n    type: {\n      type: 'intersect',\n      options: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n        {\n          type: 'object',\n          entries: [\n            {\n              key: 'pipe',\n              optional: true,\n              value: 'never',\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/SetIssue/index.mdx",
    "content": "---\ntitle: RecordIssue\ndescription: Record issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# RecordIssue\n\nRecord issue interface.\n\n## Definition\n\n- `RecordIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/SetIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'set',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: 'Set',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/SetPathItem/index.mdx",
    "content": "---\ntitle: SetPathItem\ndescription: Set path item interface.\ncontributors:\n  - fabian-hiller\n  - kazizi55\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# SetPathItem\n\nSet path item interface.\n\n## Definition\n\n- `SetPathItem` <Property type=\"object\" />\n  - `type` <Property {...properties.type} />\n  - `origin` <Property {...properties.origin} />\n  - `input` <Property {...properties.input} />\n  - `value` <Property type=\"unknown\" />\n\nThe `input` of a path item may differ from the `input` of its issue. This is because path items are subsequently added by parent schemas and are related to their input. Transformations of child schemas are not taken into account.\n"
  },
  {
    "path": "website/src/routes/api/(types)/SetPathItem/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  type: {\n    type: {\n      type: 'string',\n      value: 'set',\n    },\n  },\n  origin: {\n    type: {\n      type: 'string',\n      value: 'value',\n    },\n  },\n  input: {\n    type: {\n      type: 'custom',\n      name: 'Set',\n      generics: ['unknown'],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/SetSchema/index.mdx",
    "content": "---\ntitle: SetSchema\ndescription: Set schema interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# SetSchema\n\nSet schema interface.\n\n## Generics\n\n- `TValue` <Property {...properties.TValue} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `SetSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `value` <Property {...properties.value} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/SetSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TValue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'SetIssue',\n              href: '../SetIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferSetInput',\n          href: '../InferSetInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TValue',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferSetOutput',\n          href: '../InferSetOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TValue',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'SetIssue',\n              href: '../SetIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TValue',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'set',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'set',\n      href: '../set/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Set',\n    },\n  },\n  value: {\n    type: {\n      type: 'custom',\n      name: 'TValue',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/SetSchemaAsync/index.mdx",
    "content": "---\ntitle: SetSchemaAsync\ndescription: Set schema async interface.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# SetSchemaAsync\n\nSet schema async interface.\n\n## Generics\n\n- `TValue` <Property {...properties.TValue} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `SetSchemaAsync` <Property {...properties.BaseSchemaAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `value` <Property {...properties.value} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/SetSchemaAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TValue: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'SetIssue',\n              href: '../SetIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchemaAsync: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchemaAsync',\n      href: '../BaseSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferSetInput',\n          href: '../InferSetInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TValue',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferSetOutput',\n          href: '../InferSetOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TValue',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'SetIssue',\n              href: '../SetIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TValue',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'set',\n    },\n  },\n  reference: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'set',\n          href: '../set/',\n        },\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'setAsync',\n          href: '../setAsync/',\n        },\n      ],\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Set',\n    },\n  },\n  value: {\n    type: {\n      type: 'custom',\n      name: 'TValue',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/SizeAction/index.mdx",
    "content": "---\ntitle: SizeAction\ndescription: Size action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# SizeAction\n\nSize action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `SizeAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/SizeAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'SizeInput',\n      href: '../SizeInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'SizeIssue',\n              href: '../SizeIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'SizeIssue',\n          href: '../SizeIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'size',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'size',\n      href: '../size/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/SizeInput/index.mdx",
    "content": "---\ntitle: SizeInput\ndescription: Size input type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# SizeInput\n\nSize input type.\n\n## Definition\n\n- `SizeInput` <Property {...properties.SizeInput} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/SizeInput/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  SizeInput: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'Blob',\n        },\n        {\n          type: 'custom',\n          name: 'Map',\n          generics: ['unknown', 'unknown'],\n        },\n        {\n          type: 'custom',\n          name: 'Set',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/SizeIssue/index.mdx",
    "content": "---\ntitle: SizeIssue\ndescription: Size issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# SizeIssue\n\nSize issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `SizeIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/SizeIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'SizeInput',\n      href: '../SizeInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'size',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: ['number'],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/SlugAction/index.mdx",
    "content": "---\ntitle: SlugAction\ndescription: Slug action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# SlugAction\n\nSlug action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `SlugAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/SlugAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'SlugIssue',\n              href: '../SlugIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'SlugIssue',\n          href: '../SlugIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'slug',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'slug',\n      href: '../slug/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/SlugIssue/index.mdx",
    "content": "---\ntitle: SlugIssue\ndescription: Slug issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# SlugIssue\n\nSlug issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `SlugIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/SlugIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'slug',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/SomeItemAction/index.mdx",
    "content": "---\ntitle: SomeItemAction\ndescription: Some action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# SomeItemAction\n\nSome action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `SomeItemAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/SomeItemAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      modifier: 'readonly',\n      type: 'array',\n      item: 'unknown',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'SomeItemIssue',\n              href: '../SomeItemIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'SomeItemIssue',\n          href: '../SomeItemIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'some_item',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'someItem',\n      href: '../someItem/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'item',\n          type: {\n            type: 'custom',\n            name: 'TInput',\n            indexes: ['number'],\n          },\n        },\n        {\n          name: 'index',\n          type: 'number',\n        },\n        {\n          name: 'array',\n          type: {\n            type: 'custom',\n            name: 'TInput',\n          },\n        },\n      ],\n      return: 'boolean',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/SomeItemIssue/index.mdx",
    "content": "---\ntitle: SomeItemIssue\ndescription: Some item issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# SomeItemIssue\n\nSome item issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `SomeItemIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/SomeItemIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ArrayInput',\n      href: '../ArrayInput/',\n    },\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'some_item',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'ArrayRequirement',\n      href: '../ArrayRequirement/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/SortItemsAction/index.mdx",
    "content": "---\ntitle: SortItemsAction\ndescription: Sort items action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# SortItemsAction\n\nSort items action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `SortItemsAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `operation` <Property {...properties.operation} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/SortItemsAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ArrayInput',\n      href: '../ArrayInput/',\n    },\n  },\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        'never',\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'sort_items',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'sortItems',\n      href: '../sortItems/',\n    },\n  },\n  operation: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'function',\n          params: [\n            {\n              name: 'itemA',\n              type: {\n                type: 'custom',\n                name: 'TInput',\n                indexes: ['number'],\n              },\n            },\n            {\n              name: 'itemB',\n              type: {\n                type: 'custom',\n                name: 'TInput',\n                indexes: ['number'],\n              },\n            },\n          ],\n          return: 'number',\n        },\n        'undefined',\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/StandardFailureResult/index.mdx",
    "content": "---\ntitle: StandardFailureResult\ndescription: The result interface if validation fails.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# StandardFailureResult\n\nThe result interface if validation fails.\n\n## Definition\n\n- `StandardFailureResult`\n  - `issues` <Property {...properties.issues} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/StandardFailureResult/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  issues: {\n    type: {\n      type: 'array',\n      modifier: 'readonly',\n      item: {\n        type: 'custom',\n        name: 'StandardIssue',\n        href: '../StandardIssue/',\n      },\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/StandardIssue/index.mdx",
    "content": "---\ntitle: StandardIssue\ndescription: The issue interface of the failure output.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# StandardIssue\n\nThe issue interface of the failure output.\n\n## Definition\n\n- `StandardIssue`\n  - `message` <Property {...properties.message} />\n  - `path` <Property {...properties.path} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/StandardIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  message: {\n    type: 'string',\n  },\n  path: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'array',\n          modifier: 'readonly',\n          item: {\n            type: 'union',\n            options: [\n              {\n                type: 'custom',\n                name: 'PropertyKey',\n              },\n              {\n                type: 'custom',\n                name: 'StandardPathItem',\n                href: '../StandardPathItem/',\n              },\n            ],\n          },\n        },\n        'undefined',\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/StandardPathItem/index.mdx",
    "content": "---\ntitle: StandardPathItem\ndescription: The path item interface of the issue.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# StandardPathItem\n\nThe path item interface of the issue.\n\n## Definition\n\n- `StandardPathItem`\n  - `key` <Property {...properties.key} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/StandardPathItem/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  key: {\n    type: {\n      type: 'custom',\n      name: 'PropertyKey',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/StandardProps/index.mdx",
    "content": "---\ntitle: StandardProps\ndescription: The Standard Schema properties interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# StandardProps\n\nThe Standard Schema properties interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n\n## Definition\n\n- `StandardProps`\n  - `version` <Property {...properties.version} />\n  - `vendor` <Property {...properties.vendor} />\n  - `validate` <Property {...properties.validate} />\n  - `types` <Property {...properties.types} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/StandardProps/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  version: {\n    type: {\n      type: 'number',\n      value: 1,\n    },\n  },\n  vendor: {\n    type: {\n      type: 'string',\n      value: 'valibot',\n    },\n  },\n  validate: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'value',\n          type: 'unknown',\n        },\n      ],\n      return: {\n        type: 'union',\n        options: [\n          {\n            type: 'custom',\n            name: 'StandardResult',\n            href: '../StandardResult/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'TOutput',\n              },\n            ],\n          },\n          {\n            type: 'custom',\n            name: 'Promise',\n            generics: [\n              {\n                type: 'custom',\n                name: 'StandardResult',\n                href: '../StandardResult/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TOutput',\n                  },\n                ],\n              },\n            ],\n          },\n        ],\n      },\n    },\n  },\n  types: {\n    type: {\n      type: 'custom',\n      name: 'StandardTypes',\n      href: '../StandardTypes/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TOutput',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/StandardResult/index.mdx",
    "content": "---\ntitle: StandardResult\ndescription: The result interface of the validate function.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# StandardResult\n\nThe result interface of the validate function.\n\n## Generics\n\n- `TOutput` <Property {...properties.TOutput} />\n\n## Definition\n\n- `StandardResult` <Property {...properties.StandardResult} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/StandardResult/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  StandardResult: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'StandardSuccessResult',\n          href: '../StandardSuccessResult/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TOutput',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'StandardFailureResult',\n          href: '../StandardFailureResult/',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/StandardSuccessResult/index.mdx",
    "content": "---\ntitle: StandardSuccessResult\ndescription: The result interface if validation succeeds.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# StandardSuccessResult\n\nThe result interface if validation succeeds.\n\n## Generics\n\n- `TOutput` <Property {...properties.TOutput} />\n\n## Definition\n\n- `StandardSuccessResult`\n  - `value` <Property {...properties.value} />\n  - `issues` <Property {...properties.issues} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/StandardSuccessResult/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  value: {\n    type: {\n      type: 'custom',\n      name: 'TOutput',\n    },\n  },\n  issues: {\n    type: 'undefined',\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/StandardTypes/index.mdx",
    "content": "---\ntitle: StandardTypes\ndescription: The Standard Schema types interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# StandardTypes\n\nThe Standard Schema types interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n\n## Definition\n\n- `StandardTypes`\n  - `input` <Property {...properties.input} />\n  - `output` <Property {...properties.output} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/StandardTypes/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  input: {\n    type: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  output: {\n    type: {\n      type: 'custom',\n      name: 'TOutput',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/StartsWithAction/index.mdx",
    "content": "---\ntitle: StartsWithAction\ndescription: Starts with action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# StartsWithAction\n\nStarts with action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `StartsWithAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/StartsWithAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'StartsWithIssue',\n              href: '../StartsWithIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'StartsWithIssue',\n          href: '../StartsWithIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'starts_with',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'startsWith',\n      href: '../startsWith/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/StartsWithIssue/index.mdx",
    "content": "---\ntitle: StartsWithIssue\ndescription: Starts with issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# StartsWithIssue\n\nStarts with issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `StartsWithIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/StartsWithIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'starts_with',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/StrictObjectIssue/index.mdx",
    "content": "---\ntitle: StrictObjectIssue\ndescription: Strict object issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# StrictObjectIssue\n\nStrict object issue interface.\n\n## Definition\n\n- `StrictObjectIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/StrictObjectIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'strict_object',\n    },\n  },\n  expected: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'string',\n          value: 'Object',\n        },\n        {\n          type: 'template',\n          parts: [\n            {\n              type: 'string',\n              value: '\"',\n            },\n            'string',\n            {\n              type: 'string',\n              value: '\"',\n            },\n          ],\n        },\n        {\n          type: 'string',\n          value: 'never',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/StrictObjectSchema/index.mdx",
    "content": "---\ntitle: StrictObjectSchema\ndescription: Strict object schema interface.\ncontributors:\n  - fabian-hiller\n  - kazizi55\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# StrictObjectSchema\n\nStrict object schema interface.\n\n## Generics\n\n- `TEntries` <Property {...properties.TEntries} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `StrictObjectSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `entries` <Property {...properties.entries} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/StrictObjectSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TEntries: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ObjectEntries',\n      href: '../ObjectEntries/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'StrictObjectIssue',\n              href: '../StrictObjectIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferObjectInput',\n          href: '../InferObjectInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TEntries',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferObjectOutput',\n          href: '../InferObjectOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TEntries',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'StrictObjectIssue',\n              href: '../StrictObjectIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferObjectIssue',\n              href: '../InferObjectIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TEntries',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'strict_object',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'strictObject',\n      href: '../strictObject/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Object',\n    },\n  },\n  entries: {\n    type: {\n      type: 'custom',\n      name: 'TEntries',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/StrictObjectSchemaAsync/index.mdx",
    "content": "---\ntitle: StrictObjectSchemaAsync\ndescription: Strict object schema async interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# StrictObjectSchemaAsync\n\nStrict object schema async interface.\n\n## Generics\n\n- `TEntries` <Property {...properties.TEntries} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `StrictObjectSchemaAsync` <Property {...properties.BaseSchemaAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `entries` <Property {...properties.entries} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/StrictObjectSchemaAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TEntries: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ObjectEntriesAsync',\n      href: '../ObjectEntriesAsync/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'StrictObjectIssue',\n              href: '../StrictObjectIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchemaAsync: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchemaAsync',\n      href: '../BaseSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferObjectInput',\n          href: '../InferObjectInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TEntries',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferObjectOutput',\n          href: '../InferObjectOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TEntries',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'StrictObjectIssue',\n              href: '../StrictObjectIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferObjectIssue',\n              href: '../InferObjectIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TEntries',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'strict_object',\n    },\n  },\n  reference: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'strictObject',\n          href: '../strictObject/',\n        },\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'strictObjectAsync',\n          href: '../strictObjectAsync/',\n        },\n      ],\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Object',\n    },\n  },\n  entries: {\n    type: {\n      type: 'custom',\n      name: 'TEntries',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/StrictTupleIssue/index.mdx",
    "content": "---\ntitle: StrictTupleIssue\ndescription: Strict tuple issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# StrictTupleIssue\n\nStrict tuple issue interface.\n\n## Definition\n\n- `StrictTupleIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/StrictTupleIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'strict_tuple',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: 'Array',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/StrictTupleSchema/index.mdx",
    "content": "---\ntitle: StrictTupleSchema\ndescription: Strict tuple schema interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# StrictTupleSchema\n\nStrict tuple schema interface.\n\n## Generics\n\n- `TItems` <Property {...properties.TItems} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `StrictTupleSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `items` <Property {...properties.items} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/StrictTupleSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TItems: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TupleItems',\n      href: '../TupleItems/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'StrictTupleIssue',\n              href: '../StrictTupleIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferTupleInput',\n          href: '../InferTupleInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TItems',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferTupleOutput',\n          href: '../InferTupleOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TItems',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'StrictTupleIssue',\n              href: '../StrictTupleIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferTupleIssue',\n              href: '../InferTupleIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TItems',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'strict_tuple',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'strictTuple',\n      href: '../strictTuple/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Array',\n    },\n  },\n  items: {\n    type: {\n      type: 'custom',\n      name: 'TItems',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/StrictTupleSchemaAsync/index.mdx",
    "content": "---\ntitle: StrictTupleSchemaAsync\ndescription: Strict tuple schema async interface.\ncontributors:\n  - fabian-hiller\n  - mehm8128\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# StrictTupleSchemaAsync\n\nStrict tuple schema async interface.\n\n## Generics\n\n- `TItems` <Property {...properties.TItems} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `StrictTupleSchemaAsync` <Property {...properties.BaseSchemaAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `items` <Property {...properties.items} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/StrictTupleSchemaAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TItems: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TupleItemsAsync',\n      href: '../TupleItemsAsync/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'StrictTupleIssue',\n              href: '../StrictTupleIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchemaAsync: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchemaAsync',\n      href: '../BaseSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferTupleInput',\n          href: '../InferTupleInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TItems',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferTupleOutput',\n          href: '../InferTupleOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TItems',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'StrictTupleIssue',\n              href: '../StrictTupleIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferTupleIssue',\n              href: '../InferTupleIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TItems',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'strict_tuple',\n    },\n  },\n  reference: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'strictTuple',\n          href: '../strictTuple/',\n        },\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'strictTupleAsync',\n          href: '../strictTupleAsync/',\n        },\n      ],\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Array',\n    },\n  },\n  items: {\n    type: {\n      type: 'custom',\n      name: 'TItems',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/StringIssue/index.mdx",
    "content": "---\ntitle: RecordIssue\ndescription: Record issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# RecordIssue\n\nRecord issue interface.\n\n## Definition\n\n- `RecordIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/StringIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'string',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: 'string',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/StringSchema/index.mdx",
    "content": "---\ntitle: StringSchema\ndescription: String schema interface.\ncontributors:\n  - fabian-hiller\n  - kazizi55\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# StringSchema\n\nString schema interface.\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `StringSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/StringSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'string',\n        'string',\n        {\n          type: 'custom',\n          name: 'StringIssue',\n          href: '../StringIssue/',\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'string',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'string',\n      href: '../string/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'string',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/StringifyJsonAction/index.mdx",
    "content": "---\ntitle: StringifyJsonAction\ndescription: JSON stringify action interface.\ncontributors:\n  - EskiMojo14\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# StringifyJsonAction\n\nJSON stringify action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TConfig` <Property {...properties.TConfig} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `StringifyJsonAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `config` <Property {...properties.config} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/StringifyJsonAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TConfig: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'StringifyJsonConfig',\n          href: '../StringifyJsonConfig/',\n        },\n        'undefined',\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'StringifyJsonIssue',\n              href: '../StringifyJsonIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        'string',\n        {\n          type: 'custom',\n          name: 'StringifyJsonIssue',\n          href: '../StringifyJsonIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'stringify_json',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'stringifyJson',\n      href: '../stringifyJson/',\n    },\n  },\n  config: {\n    type: {\n      type: 'custom',\n      name: 'TConfig',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/StringifyJsonConfig/index.mdx",
    "content": "---\ntitle: StringifyJsonConfig\ndescription: JSON stringify config interface.\ncontributors:\n  - EskiMojo14\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# StringifyJsonConfig\n\nJSON stringify config interface.\n\n## Definition\n\n- `StringifyJsonConfig`\n  - `replacer` <Property {...properties.replacer} />\n  - `space` <Property {...properties.space} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/StringifyJsonConfig/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  replacer: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'function',\n          params: [\n            {\n              name: 'this',\n              type: 'any',\n            },\n            {\n              name: 'key',\n              type: 'string',\n            },\n            {\n              name: 'value',\n              type: 'any',\n            },\n          ],\n          return: 'any',\n        },\n        {\n          type: 'array',\n          item: {\n            type: 'union',\n            options: ['string', 'number'],\n          },\n        },\n        'undefined',\n      ],\n    },\n  },\n  space: {\n    type: {\n      type: 'union',\n      options: ['string', 'number', 'undefined'],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/StringifyJsonIssue/index.mdx",
    "content": "---\ntitle: StringifyJsonIssue\ndescription: JSON stringify issue interface.\ncontributors:\n  - EskiMojo14\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# StringifyJsonIssue\n\nJSON stringify issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `StringifyJsonIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/StringifyJsonIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'transformation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'stringify_json',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/SuccessDataset/index.mdx",
    "content": "---\ntitle: SuccessDataset\ndescription: Success dataset interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# SuccessDataset\n\nSuccess dataset interface.\n\n## Generics\n\n- `TValue` <Property {...properties.TValue} />\n\n## Definition\n\n- `TypedDataset`\n  - `typed` <Property {...properties.typed} />\n  - `value` <Property {...properties.value} />\n  - `issues` <Property {...properties.issues} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/SuccessDataset/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TValue: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  typed: {\n    type: {\n      type: 'boolean',\n      value: true,\n    },\n  },\n  value: {\n    type: {\n      type: 'custom',\n      name: 'TValue',\n    },\n  },\n  issues: {\n    type: 'undefined',\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/SymbolIssue/index.mdx",
    "content": "---\ntitle: SymbolIssue\ndescription: Symbol issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# SymbolIssue\n\nSymbol issue interface.\n\n## Definition\n\n- `SymbolIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/SymbolIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'symbol',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: 'symbol',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/SymbolSchema/index.mdx",
    "content": "---\ntitle: SymbolSchema\ndescription: Symbol schema interface.\ncontributors:\n  - fabian-hiller\n  - wout-junius\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# SymbolSchema\n\nSymbol schema interface.\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `SymbolSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/SymbolSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'symbol',\n        'symbol',\n        {\n          type: 'custom',\n          name: 'SymbolIssue',\n          href: '../SymbolIssue/',\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'symbol',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'symbol',\n      href: '../symbol/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'symbol',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/TitleAction/index.mdx",
    "content": "---\ntitle: TitleAction\ndescription: Title action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# TitleAction\n\nTitle action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TTitle` <Property {...properties.TTitle} />\n\n## Definition\n\n- `TitleAction` <Property {...properties.BaseMetadata} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `title` <Property {...properties.title} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/TitleAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TTitle: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseMetadata: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseMetadata',\n      href: '../BaseMetadata/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'title',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'title',\n      href: '../title/',\n    },\n  },\n  title: {\n    type: {\n      type: 'custom',\n      name: 'TTitle',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ToBigintAction/index.mdx",
    "content": "---\ntitle: ToBigintAction\ndescription: To bigint action interface.\ncontributors:\n  - EskiMojo14\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ToBigintAction\n\nTo bigint action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `ToBigintAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ToBigintAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ToBigintIssue',\n              href: '../ToBigintIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        'bigint',\n        {\n          type: 'custom',\n          name: 'ToBigintIssue',\n          href: '../ToBigintIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'to_bigint',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'toBigint',\n      href: '../toBigint/',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ToBigintIssue/index.mdx",
    "content": "---\ntitle: ToBigintIssue\ndescription: To bigint issue interface.\ncontributors:\n  - EskiMojo14\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ToBigintIssue\n\nTo bigint issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `ToBigintIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ToBigintIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'transformation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'to_bigint',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ToBooleanAction/index.mdx",
    "content": "---\ntitle: ToBooleanAction\ndescription: To boolean action interface.\ncontributors:\n  - EskiMojo14\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ToBooleanAction\n\nTo boolean action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `ToBooleanAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ToBooleanAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        'boolean',\n        'never',\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'to_boolean',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'toBoolean',\n      href: '../toBoolean/',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ToDateAction/index.mdx",
    "content": "---\ntitle: ToDateAction\ndescription: To date action interface.\ncontributors:\n  - EskiMojo14\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ToDateAction\n\nTo date action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `ToDateAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ToDateAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ToDateIssue',\n              href: '../ToDateIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'Date',\n        },\n        {\n          type: 'custom',\n          name: 'ToDateIssue',\n          href: '../ToDateIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'to_date',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'toDate',\n      href: '../toDate/',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ToDateIssue/index.mdx",
    "content": "---\ntitle: ToDateIssue\ndescription: To date issue interface.\ncontributors:\n  - EskiMojo14\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ToDateIssue\n\nTo date issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `ToDateIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ToDateIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'Date',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'transformation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'to_date',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ToLowerCaseAction/index.mdx",
    "content": "---\ntitle: ToLowerCaseAction\ndescription: To lower case action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ToLowerCaseAction\n\nTo lower case action interface.\n\n## Definition\n\n- `ToLowerCaseAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ToLowerCaseAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        'never',\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'to_lower_case',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'toLowerCase',\n      href: '../toLowerCase/',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ToMaxValueAction/index.mdx",
    "content": "---\ntitle: ToMinValueAction\ndescription: To min value action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ToMinValueAction\n\nTo min value action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `ToMinValueAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ToMaxValueAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ValueInput',\n      href: '../ValueInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        'never',\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'to_min_value',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'toMinValue',\n      href: '../toMinValue/',\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ToMinValueAction/index.mdx",
    "content": "---\ntitle: ToMaxValueAction\ndescription: To max value action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ToMaxValueAction\n\nTo max value action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `ToMaxValueAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ToMinValueAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ValueInput',\n      href: '../ValueInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        'never',\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'to_max_value',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'toMaxValue',\n      href: '../toMaxValue/',\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ToNumberAction/index.mdx",
    "content": "---\ntitle: ToNumberAction\ndescription: To number action interface.\ncontributors:\n  - EskiMojo14\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ToNumberAction\n\nTo number action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `ToNumberAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ToNumberAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ToNumberIssue',\n              href: '../ToNumberIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        'number',\n        {\n          type: 'custom',\n          name: 'ToNumberIssue',\n          href: '../ToNumberIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'to_number',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'toNumber',\n      href: '../toNumber/',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ToNumberIssue/index.mdx",
    "content": "---\ntitle: ToNumberIssue\ndescription: To number issue interface.\ncontributors:\n  - EskiMojo14\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ToNumberIssue\n\nTo number issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `ToNumberIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ToNumberIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            'number',\n          ],\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'transformation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'to_number',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ToStringAction/index.mdx",
    "content": "---\ntitle: ToStringAction\ndescription: To string action interface.\ncontributors:\n  - EskiMojo14\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ToStringAction\n\nTo string action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `ToStringAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ToStringAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ToStringIssue',\n              href: '../ToStringIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        'string',\n        {\n          type: 'custom',\n          name: 'ToStringIssue',\n          href: '../ToStringIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'to_string',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'toString',\n      href: '../toString/',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ToStringIssue/index.mdx",
    "content": "---\ntitle: ToStringIssue\ndescription: To string issue interface.\ncontributors:\n  - EskiMojo14\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ToStringIssue\n\nTo string issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `ToStringIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ToStringIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'transformation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'to_string',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ToUpperCaseAction/index.mdx",
    "content": "---\ntitle: ToUpperCaseAction\ndescription: To upper case action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ToUpperCaseAction\n\nTo upper case action interface.\n\n## Definition\n\n- `ToUpperCaseAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ToUpperCaseAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        'never',\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'to_upper_case',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'toUpperCase',\n      href: '../toUpperCase/',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/TransformAction/index.mdx",
    "content": "---\ntitle: TransformAction\ndescription: Transform action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# TransformAction\n\nTransform action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n\n## Definition\n\n- `TransformAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `operation` <Property {...properties.operation} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/TransformAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TOutput',\n        },\n        'never',\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'transform',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'transform',\n      href: '../transform/',\n    },\n  },\n  operation: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: {\n            type: 'custom',\n            name: 'TInput',\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'TOutput',\n      },\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/TransformActionAsync/index.mdx",
    "content": "---\ntitle: TransformActionAsync\ndescription: Transform action async interface.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# TransformActionAsync\n\nTransform action async interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TOutput` <Property {...properties.TOutput} />\n\n## Definition\n\n- `TransformActionAsync` <Property {...properties.BaseTransformationAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `operation` <Property {...properties.operation} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/TransformActionAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  TOutput: {\n    modifier: 'extends',\n    type: 'any',\n  },\n  BaseTransformationAsync: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformationAsync',\n      href: '../BaseTransformationAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TOutput',\n        },\n        'never',\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'transform',\n    },\n  },\n  reference: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'transform',\n          href: '../transform/',\n        },\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'transformAsync',\n          href: '../transformAsync/',\n        },\n      ],\n    },\n  },\n  operation: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: {\n            type: 'custom',\n            name: 'TInput',\n          },\n        },\n      ],\n      return: {\n        type: 'custom',\n        name: 'Promise',\n        generics: [\n          {\n            type: 'custom',\n            name: 'TOutput',\n          },\n        ],\n      },\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/TrimAction/index.mdx",
    "content": "---\ntitle: TrimAction\ndescription: Trim action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# TrimAction\n\nTrim action interface.\n\n## Definition\n\n- `TrimAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/TrimAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: ['string', 'string', 'never'],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'trim',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'trim',\n      href: '../trim/',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/TrimEndAction/index.mdx",
    "content": "---\ntitle: TrimEndAction\ndescription: Trim end action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# TrimEndAction\n\nTrim end action interface.\n\n## Definition\n\n- `TrimEndAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/TrimEndAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: ['string', 'string', 'never'],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'trim_end',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'trimEnd',\n      href: '../trimEnd/',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/TrimStartAction/index.mdx",
    "content": "---\ntitle: TrimStartAction\ndescription: Trim start action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# TrimStartAction\n\nTrim start action interface.\n\n## Definition\n\n- `TrimStartAction` <Property {...properties.BaseTransformation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/TrimStartAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseTransformation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseTransformation',\n      href: '../BaseTransformation/',\n      generics: ['string', 'string', 'never'],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'trim_start',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'trimStart',\n      href: '../trimStart/',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/TupleIssue/index.mdx",
    "content": "---\ntitle: TupleIssue\ndescription: Tuple issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# TupleIssue\n\nTuple issue interface.\n\n## Definition\n\n- `TupleIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/TupleIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'tuple',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: 'Array',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/TupleItems/index.mdx",
    "content": "---\ntitle: TupleItems\ndescription: Tuple items type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# TupleItems\n\nTuple items type.\n\n## Definition\n\n- `TupleItems` <Property {...properties.TupleItems} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/TupleItems/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TupleItems: {\n    type: {\n      type: 'custom',\n      name: 'MaybeReadonly',\n      href: '../MaybeReadonly/',\n      generics: [\n        {\n          type: 'array',\n          item: {\n            type: 'custom',\n            name: 'BaseSchema',\n            href: '../BaseSchema/',\n            generics: [\n              'unknown',\n              'unknown',\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/TupleItemsAsync/index.mdx",
    "content": "---\ntitle: TupleItemsAsync\ndescription: Tuple items async type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# TupleItemsAsync\n\nTuple items async type.\n\n## Definition\n\n- `TupleItemsAsync` <Property {...properties.TupleItemsAsync} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/TupleItemsAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TupleItemsAsync: {\n    type: {\n      type: 'custom',\n      name: 'MaybeReadonly',\n      href: '../MaybeReadonly/',\n      generics: [\n        {\n          type: 'array',\n          item: {\n            type: 'union',\n            options: [\n              {\n                type: 'custom',\n                name: 'BaseSchema',\n                href: '../BaseSchema/',\n                generics: [\n                  'unknown',\n                  'unknown',\n                  {\n                    type: 'custom',\n                    name: 'BaseIssue',\n                    href: '../BaseIssue/',\n                    generics: ['unknown'],\n                  },\n                ],\n              },\n              {\n                type: 'custom',\n                name: 'BaseSchemaAsync',\n                href: '../BaseSchemaAsync/',\n                generics: [\n                  'unknown',\n                  'unknown',\n                  {\n                    type: 'custom',\n                    name: 'BaseIssue',\n                    href: '../BaseIssue/',\n                    generics: ['unknown'],\n                  },\n                ],\n              },\n            ],\n          },\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/TupleSchema/index.mdx",
    "content": "---\ntitle: TupleSchema\ndescription: Tuple schema interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# TupleSchema\n\nTuple schema interface.\n\n## Generics\n\n- `TItems` <Property {...properties.TItems} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `TupleSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `items` <Property {...properties.items} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/TupleSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TItems: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TupleItems',\n      href: '../TupleItems/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleIssue',\n              href: '../TupleIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferTupleInput',\n          href: '../InferTupleInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TItems',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferTupleOutput',\n          href: '../InferTupleOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TItems',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'TupleIssue',\n              href: '../TupleIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferTupleIssue',\n              href: '../InferTupleIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TItems',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'tuple',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'tuple',\n      href: '../tuple/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Array',\n    },\n  },\n  items: {\n    type: {\n      type: 'custom',\n      name: 'TItems',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/TupleSchemaAsync/index.mdx",
    "content": "---\ntitle: TupleSchemaAsync\ndescription: Tuple schema async interface.\ncontributors:\n  - fabian-hiller\n  - mehm8128\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# TupleSchemaAsync\n\nTuple schema async interface.\n\n## Generics\n\n- `TItems` <Property {...properties.TItems} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `TupleSchemaAsync` <Property {...properties.BaseSchemaAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `items` <Property {...properties.items} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/TupleSchemaAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TItems: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TupleItemsAsync',\n      href: '../TupleItemsAsync/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleIssue',\n              href: '../TupleIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchemaAsync: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchemaAsync',\n      href: '../BaseSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferTupleInput',\n          href: '../InferTupleInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TItems',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferTupleOutput',\n          href: '../InferTupleOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TItems',\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'TupleIssue',\n              href: '../TupleIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferTupleIssue',\n              href: '../InferTupleIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TItems',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'tuple',\n    },\n  },\n  reference: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'tuple',\n          href: '../tuple/',\n        },\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'tupleAsync',\n          href: '../tupleAsync/',\n        },\n      ],\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Array',\n    },\n  },\n  items: {\n    type: {\n      type: 'custom',\n      name: 'TItems',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/TupleWithRestIssue/index.mdx",
    "content": "---\ntitle: TupleWithRestIssue\ndescription: Tuple with rest issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# TupleWithRestIssue\n\nTuple with rest issue interface.\n\n## Definition\n\n- `TupleWithRestIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/TupleWithRestIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'tuple_with_rest',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: 'Array',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/TupleWithRestSchema/index.mdx",
    "content": "---\ntitle: TupleWithRestSchema\ndescription: Tuple with rest schema interface.\ncontributors:\n  - fabian-hiller\n  - mehm8128\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# TupleWithRestSchema\n\nTuple with rest schema interface.\n\n## Generics\n\n- `TItems` <Property {...properties.TItems} />\n- `TRest` <Property {...properties.TRest} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `TupleWithRestSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `items` <Property {...properties.items} />\n  - `rest` <Property {...properties.rest} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/TupleWithRestSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TItems: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TupleItems',\n      href: '../TupleItems/',\n    },\n  },\n  TRest: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleWithRestIssue',\n              href: '../TupleWithRestIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'tuple',\n          items: [\n            {\n              type: 'custom',\n              spread: true,\n              name: 'InferTupleInput',\n              href: '../InferTupleInput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TItems',\n                },\n              ],\n            },\n            {\n              type: 'array',\n              spread: true,\n              item: {\n                type: 'custom',\n                name: 'InferInput',\n                href: '../InferInput/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TRest',\n                  },\n                ],\n              },\n            },\n          ],\n        },\n        {\n          type: 'tuple',\n          items: [\n            {\n              type: 'custom',\n              spread: true,\n              name: 'InferTupleOutput',\n              href: '../InferTupleOutput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TItems',\n                },\n              ],\n            },\n            {\n              type: 'array',\n              spread: true,\n              item: {\n                type: 'custom',\n                name: 'InferOutput',\n                href: '../InferOutput/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TRest',\n                  },\n                ],\n              },\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'TupleWithRestIssue',\n              href: '../TupleWithRestIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferTupleIssue',\n              href: '../InferTupleIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TItems',\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TRest',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'tuple_with_rest',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'tupleWithRest',\n      href: '../tupleWithRest/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Array',\n    },\n  },\n  items: {\n    type: {\n      type: 'custom',\n      name: 'TItems',\n    },\n  },\n  rest: {\n    type: {\n      type: 'custom',\n      name: 'TRest',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/TupleWithRestSchemaAsync/index.mdx",
    "content": "---\ntitle: TupleWithRestSchemaAsync\ndescription: Tuple with rest schema async interface.\ncontributors:\n  - fabian-hiller\n  - mehm8128\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# TupleWithRestSchemaAsync\n\nTuple with rest schema async interface.\n\n## Generics\n\n- `TItems` <Property {...properties.TItems} />\n- `TRest` <Property {...properties.TRest} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `TupleWithRestSchemaAsync` <Property {...properties.BaseSchemaAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `items` <Property {...properties.items} />\n  - `rest` <Property {...properties.rest} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/TupleWithRestSchemaAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TItems: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TupleItemsAsync',\n      href: '../TupleItemsAsync/',\n    },\n  },\n  TRest: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TupleWithRestIssue',\n              href: '../TupleWithRestIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchemaAsync: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchemaAsync',\n      href: '../BaseSchemaAsync/',\n      generics: [\n        {\n          type: 'tuple',\n          items: [\n            {\n              type: 'custom',\n              spread: true,\n              name: 'InferTupleInput',\n              href: '../InferTupleInput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TItems',\n                },\n              ],\n            },\n            {\n              type: 'array',\n              spread: true,\n              item: {\n                type: 'custom',\n                name: 'InferInput',\n                href: '../InferInput/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TRest',\n                  },\n                ],\n              },\n            },\n          ],\n        },\n        {\n          type: 'tuple',\n          items: [\n            {\n              type: 'custom',\n              spread: true,\n              name: 'InferTupleOutput',\n              href: '../InferTupleOutput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TItems',\n                },\n              ],\n            },\n            {\n              type: 'array',\n              spread: true,\n              item: {\n                type: 'custom',\n                name: 'InferOutput',\n                href: '../InferOutput/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TRest',\n                  },\n                ],\n              },\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'TupleWithRestIssue',\n              href: '../TupleWithRestIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferTupleIssue',\n              href: '../InferTupleIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TItems',\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TRest',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'tuple_with_rest',\n    },\n  },\n  reference: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'tupleWithRest',\n          href: '../tupleWithRest/',\n        },\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'tupleWithRestAsync',\n          href: '../tupleWithRestAsync/',\n        },\n      ],\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Array',\n    },\n  },\n  items: {\n    type: {\n      type: 'custom',\n      name: 'TItems',\n    },\n  },\n  rest: {\n    type: {\n      type: 'custom',\n      name: 'TRest',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/UlidAction/index.mdx",
    "content": "---\ntitle: UlidAction\ndescription: ULID action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# UlidAction\n\nULID action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `UlidAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/UlidAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'UlidIssue',\n              href: '../UlidIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'UlidIssue',\n          href: '../UlidIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'ulid',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'ulid',\n      href: '../ulid/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/UlidIssue/index.mdx",
    "content": "---\ntitle: UlidIssue\ndescription: ULID issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# UlidIssue\n\nULID issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `UlidIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/UlidIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'ulid',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/UndefinedIssue/index.mdx",
    "content": "---\ntitle: UndefinedIssue\ndescription: Undefined issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# UndefinedIssue\n\nUndefined issue interface.\n\n## Definition\n\n- `UndefinedIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/UndefinedIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'undefined',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: 'undefined',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/UndefinedSchema/index.mdx",
    "content": "---\ntitle: UndefinedSchema\ndescription: Undefined schema interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# UndefinedSchema\n\nUndefined schema interface.\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `UndefinedSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/UndefinedSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'UndefinedIssue',\n              href: '../UndefinedIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'undefined',\n        'undefined',\n        {\n          type: 'custom',\n          name: 'UndefinedIssue',\n          href: '../UndefinedIssue/',\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'undefined',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'undefined',\n      href: '../undefined/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'undefined',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/UndefinedableSchema/index.mdx",
    "content": "---\ntitle: UndefinedableSchema\ndescription: Undefinedable schema interface.\ncontributors:\n  - fabian-hiller\n  - sqmasep\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# UndefinedableSchema\n\nUndefinedable schema interface.\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TDefault` <Property {...properties.TDefault} />\n\n## Definition\n\n- `UndefinedableSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `wrapped` <Property {...properties.wrapped} />\n  - `default` <Property {...properties.default} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/UndefinedableSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'unknown',\n        'unknown',\n        {\n          type: 'custom',\n          name: 'BaseIssue',\n          href: '../BaseIssue/',\n          generics: ['unknown'],\n        },\n      ],\n    },\n  },\n  TDefault: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Default',\n      href: '../Default/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'InferInput',\n              href: '../InferInput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TWrapped',\n                },\n              ],\n            },\n            'undefined',\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferUndefinedableOutput',\n          href: '../InferUndefinedableOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n            {\n              type: 'custom',\n              name: 'TDefault',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferIssue',\n          href: '../InferIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'undefinedable',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'undefinedable',\n      href: '../undefinedable/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '(',\n        },\n        {\n          type: 'custom',\n          name: 'TWrapped',\n          indexes: [\n            {\n              type: 'string',\n              value: 'expects',\n            },\n          ],\n        },\n        {\n          type: 'string',\n          value: ' | undefined)',\n        },\n      ],\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  default: {\n    type: {\n      type: 'custom',\n      name: 'TDefault',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/UndefinedableSchemaAsync/index.mdx",
    "content": "---\ntitle: UndefinedableSchemaAsync\ndescription: Undefinedable schema async interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# UndefinedableSchemaAsync\n\nUndefinedable schema async interface.\n\n## Generics\n\n- `TWrapped` <Property {...properties.TWrapped} />\n- `TDefault` <Property {...properties.TDefault} />\n\n## Definition\n\n- `UndefinedableSchemaAsync` <Property {...properties.BaseSchemaAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `wrapped` <Property {...properties.wrapped} />\n  - `default` <Property {...properties.default} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/UndefinedableSchemaAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TWrapped: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  TDefault: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'DefaultAsync',\n      href: '../DefaultAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TWrapped',\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchemaAsync: {\n    type: {\n      type: 'custom',\n      name: 'BaseSchemaAsync',\n      href: '../BaseSchemaAsync/',\n      generics: [\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'InferInput',\n              href: '../InferInput/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TWrapped',\n                },\n              ],\n            },\n            'undefined',\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferUndefinedableOutput',\n          href: '../InferUndefinedableOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n            {\n              type: 'custom',\n              name: 'TDefault',\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferIssue',\n          href: '../InferIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TWrapped',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'undefinedable',\n    },\n  },\n  reference: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'undefinedable',\n          href: '../undefinedable/',\n        },\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'undefinedableAsync',\n          href: '../undefinedableAsync/',\n        },\n      ],\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '(',\n        },\n        {\n          type: 'custom',\n          name: 'TWrapped',\n          indexes: [\n            {\n              type: 'string',\n              value: 'expects',\n            },\n          ],\n        },\n        {\n          type: 'string',\n          value: ' | undefined)',\n        },\n      ],\n    },\n  },\n  wrapped: {\n    type: {\n      type: 'custom',\n      name: 'TWrapped',\n    },\n  },\n  default: {\n    type: {\n      type: 'custom',\n      name: 'TDefault',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/UnionIssue/index.mdx",
    "content": "---\ntitle: UnionIssue\ndescription: Union issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# UnionIssue\n\nUnion issue interface.\n\n## Generics\n\n- `TSubIssue` <Property {...properties.TSubIssue} />\n\n## Definition\n\n- `UnionIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `issues` <Property {...properties.issues} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/UnionIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSubIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'union',\n    },\n  },\n  expected: {\n    type: 'string',\n  },\n  issues: {\n    type: {\n      type: 'tuple',\n      items: [\n        {\n          type: 'custom',\n          name: 'TSubIssue',\n        },\n        {\n          type: 'array',\n          spread: true,\n          item: {\n            type: 'custom',\n            name: 'TSubIssue',\n          },\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/UnionOptions/index.mdx",
    "content": "---\ntitle: UnionOptions\ndescription: Union options type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# UnionOptions\n\nUnion options type.\n\n## Definition\n\n- `UnionOptions` <Property {...properties.UnionOptions} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/UnionOptions/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  UnionOptions: {\n    type: {\n      type: 'custom',\n      name: 'MaybeReadonly',\n      href: '../MaybeReadonly/',\n      generics: [\n        {\n          type: 'array',\n          item: {\n            type: 'custom',\n            name: 'BaseSchema',\n            href: '../BaseSchema/',\n            generics: [\n              'unknown',\n              'unknown',\n              {\n                type: 'custom',\n                name: 'BaseIssue',\n                href: '../BaseIssue/',\n                generics: ['unknown'],\n              },\n            ],\n          },\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/UnionOptionsAsync/index.mdx",
    "content": "---\ntitle: UnionOptionsAsync\ndescription: Union options async type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# UnionOptionsAsync\n\nUnion options async type.\n\n## Definition\n\n- `UnionOptionsAsync` <Property {...properties.UnionOptionsAsync} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/UnionOptionsAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  UnionOptionsAsync: {\n    type: {\n      type: 'custom',\n      name: 'MaybeReadonly',\n      href: '../MaybeReadonly/',\n      generics: [\n        {\n          type: 'array',\n          item: {\n            type: 'union',\n            options: [\n              {\n                type: 'custom',\n                name: 'BaseSchema',\n                href: '../BaseSchema/',\n                generics: [\n                  'unknown',\n                  'unknown',\n                  {\n                    type: 'custom',\n                    name: 'BaseIssue',\n                    href: '../BaseIssue/',\n                    generics: ['unknown'],\n                  },\n                ],\n              },\n              {\n                type: 'custom',\n                name: 'BaseSchemaAsync',\n                href: '../BaseSchemaAsync/',\n                generics: [\n                  'unknown',\n                  'unknown',\n                  {\n                    type: 'custom',\n                    name: 'BaseIssue',\n                    href: '../BaseIssue/',\n                    generics: ['unknown'],\n                  },\n                ],\n              },\n            ],\n          },\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/UnionSchema/index.mdx",
    "content": "---\ntitle: UnionSchema\ndescription: Union schema interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# UnionSchema\n\nUnion schema interface.\n\n## Generics\n\n- `TOptions` <Property {...properties.TOptions} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `UnionSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `options` <Property {...properties.options} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/UnionSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TOptions: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'UnionOptions',\n      href: '../UnionOptions/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'UnionIssue',\n              href: '../UnionIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'InferIssue',\n                  href: '../InferIssue/',\n                  indexes: ['number'],\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferInput',\n          href: '../InferInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TOptions',\n              indexes: ['number'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferOutput',\n          href: '../InferOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TOptions',\n              indexes: ['number'],\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'UnionIssue',\n              href: '../UnionIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'InferIssue',\n                  href: '../InferIssue/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'TOptions',\n                      indexes: ['number'],\n                    },\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TOptions',\n                  indexes: ['number'],\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'union',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'union',\n      href: '../union/',\n    },\n  },\n  options: {\n    type: {\n      type: 'custom',\n      name: 'TOptions',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/UnionSchemaAsync/index.mdx",
    "content": "---\ntitle: UnionSchemaAsync\ndescription: Union schema async interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# UnionSchemaAsync\n\nUnion schema async interface.\n\n## Generics\n\n- `TOptions` <Property {...properties.TOptions} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `UnionSchemaAsync` <Property {...properties.BaseSchemaAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `options` <Property {...properties.options} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/UnionSchemaAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TOptions: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'UnionOptionsAsync',\n      href: '../UnionOptionsAsync/',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'UnionIssue',\n              href: '../UnionIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'InferIssue',\n                  href: '../InferIssue/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'TOptions',\n                      indexes: ['number'],\n                    },\n                  ],\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchemaAsync: {\n    type: {\n      type: 'custom',\n      name: 'BaseSchemaAsync',\n      href: '../BaseSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferInput',\n          href: '../InferInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TOptions',\n              indexes: ['number'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferOutput',\n          href: '../InferOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TOptions',\n              indexes: ['number'],\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'UnionIssue',\n              href: '../UnionIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'InferIssue',\n                  href: '../InferIssue/',\n                  generics: [\n                    {\n                      type: 'custom',\n                      name: 'TOptions',\n                      indexes: ['number'],\n                    },\n                  ],\n                },\n              ],\n            },\n            {\n              type: 'custom',\n              name: 'InferIssue',\n              href: '../InferIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TOptions',\n                  indexes: ['number'],\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'union',\n    },\n  },\n  reference: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'union',\n          href: '../union/',\n        },\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'unionAsync',\n          href: '../unionAsync/',\n        },\n      ],\n    },\n  },\n  options: {\n    type: {\n      type: 'custom',\n      name: 'TOptions',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/UnknownDataset/index.mdx",
    "content": "---\ntitle: UnknownDataset\ndescription: Unknown dataset interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# UnknownDataset\n\nUnknown dataset interface.\n\n## Definition\n\n- `TypedDataset`\n  - `typed` <Property {...properties.typed} />\n  - `value` <Property {...properties.value} />\n  - `issues` <Property {...properties.issues} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/UnknownDataset/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  typed: {\n    type: {\n      type: 'boolean',\n      value: false,\n    },\n  },\n  value: {\n    type: 'unknown',\n  },\n  issues: {\n    type: 'undefined',\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/UnknownPathItem/index.mdx",
    "content": "---\ntitle: UnknownPathItem\ndescription: Unknown path item interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# UnknownPathItem\n\nUnknown path item interface.\n\n## Definition\n\n- `UnknownPathItem`\n  - `type` <Property {...properties.type} />\n  - `origin` <Property {...properties.origin} />\n  - `input` <Property type=\"unknown\" />\n  - `key` <Property type=\"unknown\" />\n  - `value` <Property type=\"unknown\" />\n\nThe `input` of a path item may differ from the `input` of its issue. This is because path items are subsequently added by parent schemas and are related to their input. Transformations of child schemas are not taken into account.\n"
  },
  {
    "path": "website/src/routes/api/(types)/UnknownPathItem/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  type: {\n    type: {\n      type: 'string',\n      value: 'unknown',\n    },\n  },\n  origin: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'string',\n          value: 'key',\n        },\n        {\n          type: 'string',\n          value: 'value',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/UnknownSchema/index.mdx",
    "content": "---\ntitle: UnknownSchema\ndescription: Unknown schema interface.\ncontributors:\n  - fabian-hiller\n  - mwskwong\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# UnknownSchema\n\nUnknown schema interface.\n\n## Definition\n\n- `UnknownSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/UnknownSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: ['unknown', 'unknown', 'never'],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'unknown',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'unknown',\n      href: '../unknown/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'unknown',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/UrlAction/index.mdx",
    "content": "---\ntitle: UrlAction\ndescription: URL action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# UrlAction\n\nURL action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `UrlAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/UrlAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'UrlIssue',\n              href: '../UrlIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'UrlIssue',\n          href: '../UrlIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'url',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'url',\n      href: '../url/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: 'string',\n        },\n      ],\n      return: 'boolean',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/UrlIssue/index.mdx",
    "content": "---\ntitle: UrlIssue\ndescription: URL issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# UrlIssue\n\nURL issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `UrlIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/UrlIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'url',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'function',\n      params: [\n        {\n          name: 'input',\n          type: 'string',\n        },\n      ],\n      return: 'boolean',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/UuidAction/index.mdx",
    "content": "---\ntitle: UuidAction\ndescription: UUID action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# UuidAction\n\nUUID action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `UuidAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/UuidAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'UuidIssue',\n              href: '../UuidIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'UuidIssue',\n          href: '../UuidIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'uuid',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'uuid',\n      href: '../uuid/',\n    },\n  },\n  expects: {\n    type: 'null',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/UuidIssue/index.mdx",
    "content": "---\ntitle: UuidIssue\ndescription: UUID issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# UuidIssue\n\nUUID issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n\n## Definition\n\n- `UuidIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/UuidIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'uuid',\n    },\n  },\n  expected: {\n    type: 'null',\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'string',\n          value: '\"',\n        },\n        'string',\n        {\n          type: 'string',\n          value: '\"',\n        },\n      ],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'RegExp',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ValueAction/index.mdx",
    "content": "---\ntitle: ValueAction\ndescription: Value action interface.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ValueAction\n\nValue action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `ValueAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ValueAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ValueInput',\n      href: '../ValueInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ValueIssue',\n              href: '../ValueIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'ValueIssue',\n          href: '../ValueIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'value',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'value',\n      href: '../value/',\n    },\n  },\n  expects: {\n    type: 'string',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ValueInput/index.mdx",
    "content": "---\ntitle: ValueInput\ndescription: Value input type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ValueInput\n\nValue input type.\n\n## Definition\n\n- `ValueInput` <Property {...properties.ValueInput} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ValueInput/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  ValueInput: {\n    type: {\n      type: 'union',\n      options: [\n        'string',\n        'number',\n        'bigint',\n        'boolean',\n        {\n          type: 'custom',\n          name: 'Date',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ValueIssue/index.mdx",
    "content": "---\ntitle: ValueIssue\ndescription: Value issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ValueIssue\n\nValue issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `ValueIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ValueIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ValueInput',\n      href: '../ValueInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TInput',\n    },\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'value',\n    },\n  },\n  expected: {\n    type: 'string',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ValuesAction/index.mdx",
    "content": "---\ntitle: ValuesAction\ndescription: Values action type.\ncontributors:\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ValuesAction\n\nValues action type.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `ValuesAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ValuesAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ValueInput',\n      href: '../ValueInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      modifier: 'readonly',\n      type: 'array',\n      item: {\n        type: 'custom',\n        name: 'TInput',\n      },\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'ValuesIssue',\n              href: '../ValuesIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'ValuesIssue',\n          href: '../ValuesIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'values',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'values',\n      href: '../values/',\n    },\n  },\n  expects: {\n    type: 'string',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/ValuesIssue/index.mdx",
    "content": "---\ntitle: ValuesIssue\ndescription: Values issue type.\ncontributors:\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ValuesIssue\n\nValues issue type.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `ValuesIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/ValuesIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'ValueInput',\n      href: '../ValueInput/',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: {\n      modifier: 'readonly',\n      type: 'array',\n      item: {\n        type: 'custom',\n        name: 'TInput',\n      },\n    },\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'values',\n    },\n  },\n  expected: {\n    type: 'string',\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/VariantIssue/index.mdx",
    "content": "---\ntitle: VariantIssue\ndescription: Variant issue interface.\ncontributors:\n  - fabian-hiller\n  - ikeyan\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# VariantIssue\n\nVariant issue interface.\n\n## Definition\n\n- `VariantIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/VariantIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'variant',\n    },\n  },\n  expected: {\n    type: 'string',\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/VariantOption/index.mdx",
    "content": "---\ntitle: VariantOption\ndescription: Variant option type.\ncontributors:\n  - fabian-hiller\n---\n\n# VariantOption\n\nVariant option type.\n\n> This type is too complex to display. Please refer to the [source code](https://github.com/open-circle/valibot/blob/main/library/src/schemas/variant/types.ts).\n"
  },
  {
    "path": "website/src/routes/api/(types)/VariantOption/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TKey: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  VariantOption: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ObjectSchema',\n          href: '../ObjectSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'Record',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TKey',\n                },\n                {\n                  type: 'custom',\n                  name: 'BaseSchema',\n                  href: '../BaseSchema/',\n                },\n              ],\n            },\n            'any',\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'VariantSchema',\n          href: '../VariantSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TKey',\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/VariantOptionAsync/index.mdx",
    "content": "---\ntitle: VariantOptionAsync\ndescription: Variant option async type.\ncontributors:\n  - fabian-hiller\n---\n\n# VariantOptionAsync\n\nVariant option async type.\n\n> This type is too complex to display. Please refer to the [source code](https://github.com/open-circle/valibot/blob/main/library/src/schemas/variant/types.ts).\n"
  },
  {
    "path": "website/src/routes/api/(types)/VariantOptionAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TKey: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  VariantOption: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ObjectSchema',\n          href: '../ObjectSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'Record',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TKey',\n                },\n                {\n                  type: 'custom',\n                  name: 'BaseSchema',\n                  href: '../BaseSchema/',\n                },\n              ],\n            },\n            'any',\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'VariantSchema',\n          href: '../VariantSchema/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TKey',\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/VariantOptions/index.mdx",
    "content": "---\ntitle: VariantOptions\ndescription: Variant options type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# VariantOptions\n\nVariant options type.\n\n## Generics\n\n- `TKey` <Property {...properties.TKey} />\n\n## Definition\n\n- `VariantOptions` <Property {...properties.VariantOptions} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/VariantOptions/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TKey: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  VariantOptions: {\n    type: {\n      type: 'custom',\n      name: 'MaybeReadonly',\n      href: '../MaybeReadonly/',\n      generics: [\n        {\n          type: 'array',\n          item: {\n            type: 'custom',\n            name: 'VariantOption',\n            href: '../VariantOption/',\n            generics: [\n              {\n                type: 'custom',\n                name: 'TKey',\n              },\n            ],\n          },\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/VariantOptionsAsync/index.mdx",
    "content": "---\ntitle: VariantOptionsAsync\ndescription: Variant options async type.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# VariantOptionsAsync\n\nVariant options async type.\n\n## Generics\n\n- `TKey` <Property {...properties.TKey} />\n\n## Definition\n\n- `VariantOptionsAsync` <Property {...properties.VariantOptionsAsync} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/VariantOptionsAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TKey: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  VariantOptionsAsync: {\n    type: {\n      type: 'custom',\n      name: 'MaybeReadonly',\n      href: '../MaybeReadonly/',\n      generics: [\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'array',\n              item: {\n                type: 'custom',\n                name: 'VariantOption',\n                href: '../VariantOption/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TKey',\n                  },\n                ],\n              },\n            },\n            {\n              type: 'array',\n              item: {\n                type: 'custom',\n                name: 'VariantOptionAsync',\n                href: '../VariantOptionAsync/',\n                generics: [\n                  {\n                    type: 'custom',\n                    name: 'TKey',\n                  },\n                ],\n              },\n            },\n          ],\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/VariantSchema/index.mdx",
    "content": "---\ntitle: VariantSchema\ndescription: Variant schema interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# VariantSchema\n\nVariant schema interface.\n\n## Generics\n\n- `TKey` <Property {...properties.TKey} />\n- `TOptions` <Property {...properties.TOptions} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `VariantSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `key` <Property {...properties.key} />\n  - `options` <Property {...properties.options} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/VariantSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TKey: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TOptions: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'VariantOptions',\n      href: '../VariantOptions/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TKey',\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'VariantIssue',\n              href: '../VariantIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferInput',\n          href: '../InferInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TOptions',\n              indexes: ['number'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferOutput',\n          href: '../InferOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TOptions',\n              indexes: ['number'],\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'VariantIssue',\n              href: '../VariantIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferVariantIssue',\n              href: '../InferVariantIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TOptions',\n                  indexes: ['number'],\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'variant',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'variant',\n      href: '../variant/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Object',\n    },\n  },\n  key: {\n    type: {\n      type: 'custom',\n      name: 'TKey',\n    },\n  },\n  options: {\n    type: {\n      type: 'custom',\n      name: 'TOptions',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/VariantSchemaAsync/index.mdx",
    "content": "---\ntitle: VariantSchemaAsync\ndescription: Variant schema async interface.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# VariantSchemaAsync\n\nVariant schema async interface.\n\n## Generics\n\n- `TKey` <Property {...properties.TKey} />\n- `TOptions` <Property {...properties.TOptions} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `VariantSchemaAsync` <Property {...properties.BaseSchemaAsync} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `key` <Property {...properties.key} />\n  - `options` <Property {...properties.options} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/VariantSchemaAsync/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TKey: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TOptions: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'VariantOptionsAsync',\n      href: '../VariantOptionsAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TKey',\n        },\n      ],\n    },\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'VariantIssue',\n              href: '../VariantIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchemaAsync: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchemaAsync',\n      href: '../BaseSchemaAsync/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'InferInput',\n          href: '../InferInput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TOptions',\n              indexes: ['number'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'InferOutput',\n          href: '../InferOutput/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TOptions',\n              indexes: ['number'],\n            },\n          ],\n        },\n        {\n          type: 'union',\n          options: [\n            {\n              type: 'custom',\n              name: 'VariantIssue',\n              href: '../VariantIssue/',\n            },\n            {\n              type: 'custom',\n              name: 'InferVariantIssue',\n              href: '../InferVariantIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TOptions',\n                },\n              ],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'variant',\n    },\n  },\n  reference: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'variant',\n          href: '../variant/',\n        },\n        {\n          type: 'custom',\n          modifier: 'typeof',\n          name: 'variantAsync',\n          href: '../variantAsync/',\n        },\n      ],\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'Object',\n    },\n  },\n  key: {\n    type: {\n      type: 'custom',\n      name: 'TKey',\n    },\n  },\n  options: {\n    type: {\n      type: 'custom',\n      name: 'TOptions',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/VoidIssue/index.mdx",
    "content": "---\ntitle: VoidIssue\ndescription: Void issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# VoidIssue\n\nVoid issue interface.\n\n## Definition\n\n- `VoidIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/VoidIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: ['unknown'],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'schema',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'void',\n    },\n  },\n  expected: {\n    type: {\n      type: 'string',\n      value: 'void',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/VoidSchema/index.mdx",
    "content": "---\ntitle: VoidSchema\ndescription: Void schema interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# VoidSchema\n\nVoid schema interface.\n\n## Generics\n\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `VoidSchema` <Property {...properties.BaseSchema} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/VoidSchema/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'VoidIssue',\n              href: '../VoidIssue/',\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseSchema',\n      href: '../BaseSchema/',\n      generics: [\n        'void',\n        'void',\n        {\n          type: 'custom',\n          name: 'VoidIssue',\n          href: '../VoidIssue/',\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'void',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'void',\n      href: '../void/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'string',\n      value: 'void',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/WordsAction/index.mdx",
    "content": "---\ntitle: WordsAction\ndescription: Words action interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# WordsAction\n\nWords action interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TLocales` <Property {...properties.TLocales} />\n- `TRequirement` <Property {...properties.TRequirement} />\n- `TMessage` <Property {...properties.TMessage} />\n\n## Definition\n\n- `WordsAction` <Property {...properties.BaseValidation} />\n  - `type` <Property {...properties.type} />\n  - `reference` <Property {...properties.reference} />\n  - `expects` <Property {...properties.expects} />\n  - `locales` <Property {...properties.locales} />\n  - `requirement` <Property {...properties.requirement} />\n  - `message` <Property {...properties.message} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/WordsAction/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TLocales: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'Intl.LocalesArgument',\n    },\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  TMessage: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'ErrorMessage',\n          href: '../ErrorMessage/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'WordsIssue',\n              href: '../WordsIssue/',\n              generics: [\n                {\n                  type: 'custom',\n                  name: 'TInput',\n                },\n                {\n                  type: 'custom',\n                  name: 'TRequirement',\n                },\n              ],\n            },\n          ],\n        },\n        'undefined',\n      ],\n    },\n  },\n  BaseValidation: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseValidation',\n      href: '../BaseValidation/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n        {\n          type: 'custom',\n          name: 'WordsIssue',\n          href: '../WordsIssue/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TInput',\n            },\n            {\n              type: 'custom',\n              name: 'TRequirement',\n            },\n          ],\n        },\n      ],\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'words',\n    },\n  },\n  reference: {\n    type: {\n      type: 'custom',\n      modifier: 'typeof',\n      name: 'words',\n      href: '../words/',\n    },\n  },\n  expects: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  locales: {\n    type: {\n      type: 'custom',\n      name: 'TLocales',\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n  message: {\n    type: {\n      type: 'custom',\n      name: 'TMessage',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(types)/WordsIssue/index.mdx",
    "content": "---\ntitle: WordsIssue\ndescription: Words issue interface.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# WordsIssue\n\nWords issue interface.\n\n## Generics\n\n- `TInput` <Property {...properties.TInput} />\n- `TRequirement` <Property {...properties.TRequirement} />\n\n## Definition\n\n- `WordsIssue` <Property {...properties.BaseIssue} />\n  - `kind` <Property {...properties.kind} />\n  - `type` <Property {...properties.type} />\n  - `expected` <Property {...properties.expected} />\n  - `received` <Property {...properties.received} />\n  - `requirement` <Property {...properties.requirement} />\n"
  },
  {
    "path": "website/src/routes/api/(types)/WordsIssue/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TInput: {\n    modifier: 'extends',\n    type: 'string',\n  },\n  TRequirement: {\n    modifier: 'extends',\n    type: 'number',\n  },\n  BaseIssue: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'BaseIssue',\n      href: '../BaseIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TInput',\n        },\n      ],\n    },\n  },\n  kind: {\n    type: {\n      type: 'string',\n      value: 'validation',\n    },\n  },\n  type: {\n    type: {\n      type: 'string',\n      value: 'words',\n    },\n  },\n  expected: {\n    type: {\n      type: 'template',\n      parts: [\n        {\n          type: 'custom',\n          name: 'TRequirement',\n        },\n      ],\n    },\n  },\n  received: {\n    type: {\n      type: 'template',\n      parts: ['number'],\n    },\n  },\n  requirement: {\n    type: {\n      type: 'custom',\n      name: 'TRequirement',\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(utils)/ValiError/index.mdx",
    "content": "---\ntitle: ValiError\ndescription: Creates a Valibot error with useful information.\nsource: /utils/ValiError/ValiError.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# ValiError\n\nCreates a Valibot error with useful information.\n\n```ts\nconst error = new v.ValiError<TSchema>(issues);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n\n## Parameters\n\n- `issues` <Property {...properties.issues} />\n\n## Returns\n\n- `error` <Property {...properties.error} />\n"
  },
  {
    "path": "website/src/routes/api/(utils)/ValiError/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  issues: {\n    type: {\n      type: 'tuple',\n      items: [\n        {\n          type: 'custom',\n          name: 'InferIssue',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TSchema',\n            },\n          ],\n        },\n        {\n          type: 'array',\n          spread: true,\n          item: {\n            type: 'custom',\n            name: 'InferIssue',\n            generics: [\n              {\n                type: 'custom',\n                name: 'TSchema',\n              },\n            ],\n          },\n        },\n      ],\n    },\n  },\n  error: {\n    type: {\n      type: 'custom',\n      name: 'ValiError',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(utils)/entriesFromList/index.mdx",
    "content": "---\ntitle: entriesFromList\ndescription: Creates an object entries definition from a list of keys and a schema.\nsource: /utils/entriesFromList/entriesFromList.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# entriesFromList\n\nCreates an object entries definition from a list of keys and a schema.\n\n```ts\nconst entries = v.entriesFromList<TList, TSchema>(list, schema);\n```\n\n## Generics\n\n- `TList` <Property {...properties.TList} />\n- `TSchema` <Property {...properties.TSchema} />\n\n## Parameters\n\n- `list` <Property {...properties.list} />\n- `schema` <Property {...properties.schema} />\n\n## Returns\n\n- `entries` <Property {...properties.entries} />\n\n## Examples\n\nThe following example show how `entriesFromList` can be used.\n\n```ts\nconst ObjectSchema = v.object(\n  v.entriesFromList(['foo', 'bar', 'baz'], v.string())\n);\n```\n\n## Related\n\nThe following APIs can be combined with `entriesFromList`.\n\n### Schemas\n\n<ApiList\n  items={[\n    'any',\n    'array',\n    'bigint',\n    'blob',\n    'boolean',\n    'custom',\n    'date',\n    'enum',\n    'exactOptional',\n    'file',\n    'function',\n    'instance',\n    'intersect',\n    'literal',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'null',\n    'nullable',\n    'nullish',\n    'number',\n    'object',\n    'objectWithRest',\n    'optional',\n    'picklist',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'string',\n    'symbol',\n    'tuple',\n    'undefined',\n    'undefinedable',\n    'union',\n    'unionWithRest',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n"
  },
  {
    "path": "website/src/routes/api/(utils)/entriesFromList/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TList: {\n    modifier: 'extends',\n    type: {\n      type: 'array',\n      item: {\n        type: 'union',\n        options: ['string', 'number', 'symbol'],\n      },\n    },\n  },\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  list: {\n    type: {\n      type: 'custom',\n      name: 'TList',\n    },\n  },\n  schema: {\n    type: {\n      type: 'custom',\n      name: 'TSchema',\n    },\n  },\n  entries: {\n    type: {\n      type: 'custom',\n      name: 'Record',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TList',\n          indexes: ['number'],\n        },\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(utils)/entriesFromObjects/index.mdx",
    "content": "---\ntitle: entriesFromObjects\ndescription: Creates a new object entries definition from existing object schemas.\nsource: /utils/entriesFromObjects/entriesFromObjects.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { ApiList, Property } from '~/components';\nimport { properties } from './properties';\n\n# entriesFromObjects\n\nCreates a new object entries definition from existing object schemas.\n\n```ts\nconst entries = v.entriesFromObjects<TSchemas>(schemas);\n```\n\n## Generics\n\n- `TSchemas` <Property {...properties.TSchemas} />\n\n## Parameters\n\n- `schemas` <Property {...properties.schemas} />\n\n## Returns\n\n- `entries` <Property {...properties.entries} />\n\n## Examples\n\nThe following example show how `entriesFromObjects` can be used.\n\n> Hint: The third schema of the list overwrites the `foo` and `baz` properties of the previous schemas.\n\n```ts\nconst ObjectSchema = v.object(\n  v.entriesFromObjects([\n     v.object({ foo:  v.string(), bar:  v.string() });\n     v.object({ baz:  v.number(), qux:  v.number() });\n     v.object({ foo:  v.boolean(), baz:  v.boolean() });\n  ])\n);\n```\n\n## Related\n\nThe following APIs can be combined with `entriesFromObjects`.\n\n### Schemas\n\n<ApiList items={['looseObject', 'object', 'objectWithRest', 'strictObject']} />\n"
  },
  {
    "path": "website/src/routes/api/(utils)/entriesFromObjects/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchemas: {\n    modifier: 'extends',\n    type: {\n      type: 'tuple',\n      items: [\n        {\n          type: 'custom',\n          name: 'Schema',\n        },\n        {\n          type: 'array',\n          spread: true,\n          item: {\n            type: 'custom',\n            name: 'Schema',\n          },\n        },\n      ],\n    },\n  },\n  schemas: {\n    type: {\n      type: 'custom',\n      name: 'TSchemas',\n    },\n  },\n  entries: {\n    type: {\n      type: 'custom',\n      name: 'MergedEntries',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchemas',\n        },\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(utils)/getDotPath/index.mdx",
    "content": "---\ntitle: getDotPath\ndescription: Creates and returns the dot path of an issue if possible.\nsource: /utils/getDotPath/getDotPath.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# getDotPath\n\nCreates and returns the dot path of an issue if possible.\n\n```ts\nconst dotPath = v.getDotPath<TSchema>(issue);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n\n## Parameters\n\n- `issue` <Property {...properties.issue} />\n\n## Returns\n\n- `dotPath` <Property {...properties.dotPath} />\n"
  },
  {
    "path": "website/src/routes/api/(utils)/getDotPath/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  issue: {\n    type: {\n      type: 'custom',\n      name: 'InferIssue',\n      href: '../InferIssue/',\n      generics: [\n        {\n          type: 'custom',\n          name: 'TSchema',\n        },\n      ],\n    },\n  },\n  dotPath: {\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'IssueDotPath',\n          href: '../IssueDotPath/',\n          generics: [\n            {\n              type: 'custom',\n              name: 'TSchema',\n            },\n          ],\n        },\n        'null',\n      ],\n    },\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(utils)/isOfKind/index.mdx",
    "content": "---\ntitle: isOfKind\ndescription: A generic type guard to check the kind of an object.\nsource: /utils/isOfKind/isOfKind.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# isOfKind\n\nA generic type guard to check the kind of an object.\n\n```ts\nconst result = v.isOfKind<TKind, TObject>(kind, object);\n```\n\n## Generics\n\n- `TKind` <Property {...properties.TKind} />\n- `TObject` <Property {...properties.TObject} />\n\n## Parameters\n\n- `kind` <Property {...properties.kind} />\n- `object` <Property {...properties.object} />\n\n## Returns\n\n- `result` <Property {...properties.result} />\n"
  },
  {
    "path": "website/src/routes/api/(utils)/isOfKind/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TKind: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TObject',\n      indexes: [{ type: 'string', value: 'kind' }],\n    },\n  },\n  TObject: {\n    modifier: 'extends',\n    type: {\n      type: 'object',\n      entries: [{ key: 'kind', value: 'string' }],\n    },\n  },\n  kind: {\n    type: {\n      type: 'custom',\n      name: 'TKind',\n    },\n  },\n  object: {\n    type: {\n      type: 'custom',\n      name: 'TObject',\n    },\n  },\n  result: {\n    type: 'boolean',\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(utils)/isOfType/index.mdx",
    "content": "---\ntitle: isOfType\ndescription: A generic type guard to check the type of an object.\nsource: /utils/isOfType/isOfType.ts\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# isOfType\n\nA generic type guard to check the type of an object.\n\n```ts\nconst result = v.isOfType<TType, TObject>(type, object);\n```\n\n## Generics\n\n- `TType` <Property {...properties.TType} />\n- `TObject` <Property {...properties.TObject} />\n\n## Parameters\n\n- `type` <Property {...properties.type} />\n- `object` <Property {...properties.object} />\n\n## Returns\n\n- `result` <Property {...properties.result} />\n"
  },
  {
    "path": "website/src/routes/api/(utils)/isOfType/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TType: {\n    modifier: 'extends',\n    type: {\n      type: 'custom',\n      name: 'TObject',\n      indexes: [{ type: 'string', value: 'type' }],\n    },\n  },\n  TObject: {\n    modifier: 'extends',\n    type: {\n      type: 'object',\n      entries: [{ key: 'type', value: 'string' }],\n    },\n  },\n  type: {\n    type: {\n      type: 'custom',\n      name: 'TType',\n    },\n  },\n  object: {\n    type: {\n      type: 'custom',\n      name: 'TObject',\n    },\n  },\n  result: {\n    type: 'boolean',\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/(utils)/isValiError/index.mdx",
    "content": "---\ntitle: isValiError\ndescription: A type guard to check if an error is a ValiError.\nsource: /utils/isValiError/isValiError.ts\ncontributors:\n  - fabian-hiller\n---\n\nimport { Property } from '~/components';\nimport { properties } from './properties';\n\n# isValiError\n\nA type guard to check if an error is a ValiError.\n\n```ts\nconst result = v.isValiError<TSchema>(error);\n```\n\n## Generics\n\n- `TSchema` <Property {...properties.TSchema} />\n\n## Parameters\n\n- `error` <Property {...properties.error} />\n\n## Returns\n\n- `result` <Property {...properties.result} />\n"
  },
  {
    "path": "website/src/routes/api/(utils)/isValiError/properties.ts",
    "content": "import type { PropertyProps } from '~/components';\n\nexport const properties: Record<string, PropertyProps> = {\n  TSchema: {\n    modifier: 'extends',\n    type: {\n      type: 'union',\n      options: [\n        {\n          type: 'custom',\n          name: 'BaseSchema',\n          href: '../BaseSchema/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n        {\n          type: 'custom',\n          name: 'BaseSchemaAsync',\n          href: '../BaseSchemaAsync/',\n          generics: [\n            'unknown',\n            'unknown',\n            {\n              type: 'custom',\n              name: 'BaseIssue',\n              href: '../BaseIssue/',\n              generics: ['unknown'],\n            },\n          ],\n        },\n      ],\n    },\n  },\n  error: {\n    type: 'unknown',\n  },\n  result: {\n    type: 'boolean',\n  },\n};\n"
  },
  {
    "path": "website/src/routes/api/index.tsx",
    "content": "import { component$, Fragment } from '@builder.io/qwik';\nimport { type DocumentHead, useContent } from '@builder.io/qwik-city';\nimport { ApiList } from '~/components';\n\nexport const head: DocumentHead = {\n  title: 'API reference',\n  meta: [\n    {\n      name: 'description',\n      content:\n        'This section of our website contains detailed reference documentation for working with Valibot.',\n    },\n  ],\n  frontmatter: {\n    contributors: ['fabian-hiller'],\n  },\n};\n\nexport default component$(() => {\n  // Use content\n  const content = useContent();\n\n  return (\n    <>\n      <h1>API reference</h1>\n      <p>\n        This section of our website contains detailed reference documentation\n        for working with Valibot. Please create an{' '}\n        <a\n          href=\"https://github.com/open-circle/valibot/issues/new\"\n          target=\"_blank\"\n          rel=\"noreferrer\"\n        >\n          issue\n        </a>{' '}\n        if you are missing any information.\n      </p>\n\n      {content.menu?.items?.map(\n        (item) =>\n          item.items && (\n            <Fragment key={item.text}>\n              <h2 id={item.text.toLowerCase()}>{item.text}</h2>\n              <ApiList items={item.items.map((i) => i.text)} />\n            </Fragment>\n          )\n      )}\n    </>\n  );\n});\n"
  },
  {
    "path": "website/src/routes/api/layout.tsx",
    "content": "import { component$, Slot } from '@builder.io/qwik';\nimport { DocsLayout } from '~/components';\n\nexport default component$(() => (\n  <DocsLayout>\n    <Slot />\n  </DocsLayout>\n));\n"
  },
  {
    "path": "website/src/routes/api/menu.md",
    "content": "# API reference\n\n## Schemas\n\n- [any](/api/any/)\n- [array](/api/array/)\n- [bigint](/api/bigint/)\n- [blob](/api/blob/)\n- [boolean](/api/boolean/)\n- [custom](/api/custom/)\n- [date](/api/date/)\n- [enum](/api/enum/)\n- [exactOptional](/api/exactOptional/)\n- [file](/api/file/)\n- [function](/api/function/)\n- [instance](/api/instance/)\n- [intersect](/api/intersect/)\n- [lazy](/api/lazy/)\n- [literal](/api/literal/)\n- [looseObject](/api/looseObject/)\n- [looseTuple](/api/looseTuple/)\n- [map](/api/map/)\n- [nan](/api/nan/)\n- [never](/api/never/)\n- [nonNullable](/api/nonNullable/)\n- [nonNullish](/api/nonNullish/)\n- [nonOptional](/api/nonOptional/)\n- [null](/api/null/)\n- [nullable](/api/nullable/)\n- [nullish](/api/nullish/)\n- [number](/api/number/)\n- [object](/api/object/)\n- [objectWithRest](/api/objectWithRest/)\n- [optional](/api/optional/)\n- [picklist](/api/picklist/)\n- [promise](/api/promise/)\n- [record](/api/record/)\n- [set](/api/set/)\n- [strictObject](/api/strictObject/)\n- [strictTuple](/api/strictTuple/)\n- [string](/api/string/)\n- [symbol](/api/symbol/)\n- [tuple](/api/tuple/)\n- [tupleWithRest](/api/tupleWithRest/)\n- [undefined](/api/undefined/)\n- [undefinedable](/api/undefinedable/)\n- [union](/api/union/)\n- [unknown](/api/unknown/)\n- [variant](/api/variant/)\n- [void](/api/void/)\n\n## Methods\n\n- [assert](/api/assert/)\n- [cache](/api/cache/)\n- [config](/api/config/)\n- [fallback](/api/fallback/)\n- [flatten](/api/flatten/)\n- [forward](/api/forward/)\n- [getDefault](/api/getDefault/)\n- [getDefaults](/api/getDefaults/)\n- [getDescription](/api/getDescription/)\n- [getExamples](/api/getExamples/)\n- [getFallback](/api/getFallback/)\n- [getFallbacks](/api/getFallbacks/)\n- [getMetadata](/api/getMetadata/)\n- [getTitle](/api/getTitle/)\n- [is](/api/is/)\n- [keyof](/api/keyof/)\n- [message](/api/message/)\n- [omit](/api/omit/)\n- [parse](/api/parse/)\n- [parser](/api/parser/)\n- [partial](/api/partial/)\n- [pick](/api/pick/)\n- [pipe](/api/pipe/)\n- [required](/api/required/)\n- [safeParse](/api/safeParse/)\n- [safeParser](/api/safeParser/)\n- [summarize](/api/summarize/)\n- [unwrap](/api/unwrap/)\n\n## Actions\n\n- [args](/api/args/)\n- [base64](/api/base64/)\n- [bic](/api/bic/)\n- [brand](/api/brand/)\n- [bytes](/api/bytes/)\n- [check](/api/check/)\n- [checkItems](/api/checkItems/)\n- [creditCard](/api/creditCard/)\n- [cuid2](/api/cuid2/)\n- [decimal](/api/decimal/)\n- [description](/api/description/)\n- [digits](/api/digits/)\n- [domain](/api/domain/)\n- [email](/api/email/)\n- [emoji](/api/emoji/)\n- [empty](/api/empty/)\n- [endsWith](/api/endsWith/)\n- [entries](/api/entries/)\n- [everyItem](/api/everyItem/)\n- [examples](/api/examples/)\n- [excludes](/api/excludes/)\n- [filterItems](/api/filterItems/)\n- [findItem](/api/findItem/)\n- [finite](/api/finite/)\n- [flavor](/api/flavor/)\n- [graphemes](/api/graphemes/)\n- [gtValue](/api/gtValue/)\n- [guard](/api/guard/)\n- [hash](/api/hash/)\n- [hexadecimal](/api/hexadecimal/)\n- [hexColor](/api/hexColor/)\n- [imei](/api/imei/)\n- [includes](/api/includes/)\n- [integer](/api/integer/)\n- [ip](/api/ip/)\n- [ipv4](/api/ipv4/)\n- [ipv6](/api/ipv6/)\n- [isbn](/api/isbn/)\n- [isrc](/api/isrc/)\n- [isoDate](/api/isoDate/)\n- [isoDateTime](/api/isoDateTime/)\n- [isoTime](/api/isoTime/)\n- [isoTimeSecond](/api/isoTimeSecond/)\n- [isoTimestamp](/api/isoTimestamp/)\n- [isoWeek](/api/isoWeek/)\n- [jwsCompact](/api/jwsCompact/)\n- [length](/api/length/)\n- [ltValue](/api/ltValue)\n- [mac](/api/mac/)\n- [mac48](/api/mac48/)\n- [mac64](/api/mac64/)\n- [mapItems](/api/mapItems/)\n- [maxBytes](/api/maxBytes/)\n- [maxEntries](/api/maxEntries/)\n- [maxGraphemes](/api/maxGraphemes/)\n- [maxLength](/api/maxLength/)\n- [maxSize](/api/maxSize/)\n- [maxValue](/api/maxValue/)\n- [maxWords](/api/maxWords/)\n- [metadata](/api/metadata/)\n- [mimeType](/api/mimeType/)\n- [minBytes](/api/minBytes/)\n- [minEntries](/api/minEntries/)\n- [minGraphemes](/api/minGraphemes/)\n- [minLength](/api/minLength/)\n- [minSize](/api/minSize/)\n- [minValue](/api/minValue/)\n- [minWords](/api/minWords/)\n- [multipleOf](/api/multipleOf/)\n- [nanoid](/api/nanoid/)\n- [nonEmpty](/api/nonEmpty/)\n- [normalize](/api/normalize/)\n- [notBytes](/api/notBytes/)\n- [notEntries](/api/notEntries/)\n- [notGraphemes](/api/notGraphemes/)\n- [notLength](/api/notLength/)\n- [notSize](/api/notSize/)\n- [notValue](/api/notValue/)\n- [notValues](/api/notValues/)\n- [notWords](/api/notWords/)\n- [octal](/api/octal/)\n- [parseBoolean](/api/parseBoolean/)\n- [parseJson](/api/parseJson/)\n- [partialCheck](/api/partialCheck/)\n- [rawCheck](/api/rawCheck/)\n- [rawTransform](/api/rawTransform/)\n- [readonly](/api/readonly/)\n- [reduceItems](/api/reduceItems/)\n- [regex](/api/regex/)\n- [returns](/api/returns/)\n- [rfcEmail](/api/rfcEmail/)\n- [safeInteger](/api/safeInteger/)\n- [size](/api/size/)\n- [slug](/api/slug/)\n- [someItem](/api/someItem/)\n- [sortItems](/api/sortItems/)\n- [startsWith](/api/startsWith/)\n- [stringifyJson](/api/stringifyJson/)\n- [title](/api/title/)\n- [toBigint](/api/toBigint/)\n- [toBoolean](/api/toBoolean/)\n- [toDate](/api/toDate/)\n- [toLowerCase](/api/toLowerCase/)\n- [toMaxValue](/api/toMaxValue/)\n- [toMinValue](/api/toMinValue/)\n- [toNumber](/api/toNumber/)\n- [toString](/api/toString/)\n- [toUpperCase](/api/toUpperCase/)\n- [transform](/api/transform/)\n- [trim](/api/trim/)\n- [trimEnd](/api/trimEnd/)\n- [trimStart](/api/trimStart/)\n- [ulid](/api/ulid/)\n- [url](/api/url/)\n- [uuid](/api/uuid/)\n- [value](/api/value/)\n- [values](/api/values/)\n- [words](/api/words/)\n\n## Storages\n\n- [deleteGlobalConfig](/api/deleteGlobalConfig/)\n- [deleteGlobalMessage](/api/deleteGlobalMessage/)\n- [deleteSchemaMessage](/api/deleteSchemaMessage/)\n- [deleteSpecificMessage](/api/deleteSpecificMessage/)\n- [getGlobalConfig](/api/getGlobalConfig/)\n- [getGlobalMessage](/api/getGlobalMessage/)\n- [getSchemaMessage](/api/getSchemaMessage/)\n- [getSpecificMessage](/api/getSpecificMessage/)\n- [setGlobalConfig](/api/setGlobalConfig/)\n- [setGlobalMessage](/api/setGlobalMessage/)\n- [setSchemaMessage](/api/setSchemaMessage/)\n- [setSpecificMessage](/api/setSpecificMessage/)\n\n## Utils\n\n- [entriesFromList](/api/entriesFromList/)\n- [entriesFromObjects](/api/entriesFromObjects/)\n- [getDotPath](/api/getDotPath/)\n- [isOfKind](/api/isOfKind/)\n- [isOfType](/api/isOfType/)\n- [isValiError](/api/isValiError/)\n- [ValiError](/api/ValiError/)\n\n## Async\n\n- [argsAsync](/api/argsAsync/)\n- [arrayAsync](/api/arrayAsync/)\n- [awaitAsync](/api/awaitAsync/)\n- [cacheAsync](/api/cacheAsync/)\n- [checkAsync](/api/checkAsync/)\n- [checkItemsAsync](/api/checkItemsAsync/)\n- [customAsync](/api/customAsync/)\n- [exactOptionalAsync](/api/exactOptionalAsync/)\n- [fallbackAsync](/api/fallbackAsync/)\n- [forwardAsync](/api/forwardAsync/)\n- [getDefaultsAsync](/api/getDefaultsAsync/)\n- [getFallbacksAsync](/api/getFallbacksAsync/)\n- [intersectAsync](/api/intersectAsync/)\n- [lazyAsync](/api/lazyAsync/)\n- [looseObjectAsync](/api/looseObjectAsync/)\n- [looseTupleAsync](/api/looseTupleAsync/)\n- [mapAsync](/api/mapAsync/)\n- [nonNullableAsync](/api/nonNullableAsync/)\n- [nonNullishAsync](/api/nonNullishAsync/)\n- [nonOptionalAsync](/api/nonOptionalAsync/)\n- [nullableAsync](/api/nullableAsync/)\n- [nullishAsync](/api/nullishAsync/)\n- [objectAsync](/api/objectAsync/)\n- [objectWithRestAsync](/api/objectWithRestAsync/)\n- [optionalAsync](/api/optionalAsync/)\n- [parseAsync](/api/parseAsync/)\n- [parserAsync](/api/parserAsync/)\n- [partialAsync](/api/partialAsync/)\n- [partialCheckAsync](/api/partialCheckAsync/)\n- [pipeAsync](/api/pipeAsync/)\n- [rawCheckAsync](/api/rawCheckAsync/)\n- [rawTransformAsync](/api/rawTransformAsync/)\n- [recordAsync](/api/recordAsync/)\n- [requiredAsync](/api/requiredAsync/)\n- [returnsAsync](/api/returnsAsync/)\n- [safeParseAsync](/api/safeParseAsync/)\n- [safeParserAsync](/api/safeParserAsync/)\n- [setAsync](/api/setAsync/)\n- [strictObjectAsync](/api/strictObjectAsync/)\n- [strictTupleAsync](/api/strictTupleAsync/)\n- [transformAsync](/api/transformAsync/)\n- [tupleAsync](/api/tupleAsync/)\n- [tupleWithRestAsync](/api/tupleWithRestAsync/)\n- [undefinedableAsync](/api/undefinedableAsync/)\n- [unionAsync](/api/unionAsync/)\n- [variantAsync](/api/variantAsync/)\n\n## Types\n\n- [AnySchema](/api/AnySchema/)\n- [ArgsAction](/api/ArgsAction/)\n- [ArgsActionAsync](/api/ArgsActionAsync/)\n- [ArrayInput](/api/ArrayInput/)\n- [ArrayIssue](/api/ArrayIssue/)\n- [ArrayPathItem](/api/ArrayPathItem/)\n- [ArrayRequirement](/api/ArrayRequirement/)\n- [ArrayRequirementAsync](/api/ArrayRequirementAsync/)\n- [ArraySchema](/api/ArraySchema/)\n- [ArraySchemaAsync](/api/ArraySchemaAsync/)\n- [AwaitActionAsync](/api/AwaitActionAsync/)\n- [Base64Action](/api/Base64Action/)\n- [Base64Issue](/api/Base64Issue/)\n- [BaseIssue](/api/BaseIssue/)\n- [BaseMetadata](/api/BaseMetadata/)\n- [BaseSchema](/api/BaseSchema/)\n- [BaseSchemaAsync](/api/BaseSchemaAsync/)\n- [BaseTransformation](/api/BaseTransformation/)\n- [BaseTransformationAsync](/api/BaseTransformationAsync/)\n- [BaseValidation](/api/BaseValidation/)\n- [BaseValidationAsync](/api/BaseValidationAsync/)\n- [BicAction](/api/BicAction/)\n- [BicIssue](/api/BicIssue/)\n- [BigintIssue](/api/BigintIssue/)\n- [BigintSchema](/api/BigintSchema/)\n- [BlobIssue](/api/BlobIssue/)\n- [BlobSchema](/api/BlobSchema/)\n- [BooleanIssue](/api/BooleanIssue/)\n- [BooleanSchema](/api/BooleanSchema/)\n- [Brand](/api/Brand/)\n- [BrandAction](/api/BrandAction/)\n- [BrandName](/api/BrandName/)\n- [BytesAction](/api/BytesAction/)\n- [BytesIssue](/api/BytesIssue/)\n- [Cache](/api/Cache/)\n- [CacheConfig](/api/CacheConfig/)\n- [CheckAction](/api/CheckAction/)\n- [CheckActionAsync](/api/CheckActionAsync/)\n- [CheckIssue](/api/CheckIssue/)\n- [CheckItemsAction](/api/CheckItemsAction/)\n- [CheckItemsActionAsync](/api/CheckItemsActionAsync/)\n- [CheckItemsIssue](/api/CheckItemsIssue/)\n- [Class](/api/Class/)\n- [Config](/api/Config/)\n- [ContentInput](/api/ContentInput/)\n- [ContentRequirement](/api/ContentRequirement/)\n- [CreditCardAction](/api/CreditCardAction/)\n- [CreditCardIssue](/api/CreditCardIssue/)\n- [Cuid2Action](/api/Cuid2Action/)\n- [Cuid2Issue](/api/Cuid2Issue/)\n- [CustomIssue](/api/CustomIssue/)\n- [CustomSchema](/api/CustomSchema/)\n- [CustomSchemaAsync](/api/CustomSchemaAsync/)\n- [DateIssue](/api/DateIssue/)\n- [DateSchema](/api/DateSchema/)\n- [DecimalAction](/api/DecimalAction/)\n- [DecimalIssue](/api/DecimalIssue/)\n- [DeepPickN](/api/DeepPickN/)\n- [Default](/api/Default/)\n- [DefaultAsync](/api/DefaultAsync/)\n- [DefaultValue](/api/DefaultValue/)\n- [DescriptionAction](/api/DescriptionAction/)\n- [DigitsAction](/api/DigitsAction/)\n- [DigitsIssue](/api/DigitsIssue/)\n- [DomainAction](/api/DomainAction/)\n- [DomainIssue](/api/DomainIssue/)\n- [EmailAction](/api/EmailAction/)\n- [EmailIssue](/api/EmailIssue/)\n- [EmojiAction](/api/EmojiAction/)\n- [EmojiIssue](/api/EmojiIssue/)\n- [EmptyAction](/api/EmptyAction/)\n- [EmptyIssue](/api/EmptyIssue/)\n- [EndsWithAction](/api/EndsWithAction/)\n- [EndsWithIssue](/api/EndsWithIssue/)\n- [EntriesAction](/api/EntriesAction/)\n- [EntriesInput](/api/EntriesInput/)\n- [EntriesIssue](/api/EntriesIssue/)\n- [Enum](/api/Enum/)\n- [EnumIssue](/api/EnumIssue/)\n- [EnumSchema](/api/EnumSchema/)\n- [ErrorMessage](/api/ErrorMessage/)\n- [EveryItemAction](/api/EveryItemAction/)\n- [EveryItemIssue](/api/EveryItemIssue/)\n- [ExactOptionalSchema](/api/ExactOptionalSchema/)\n- [ExactOptionalSchemaAsync](/api/ExactOptionalSchemaAsync/)\n- [ExamplesAction](/api/ExamplesAction/)\n- [ExcludesAction](/api/ExcludesAction/)\n- [ExcludesIssue](/api/ExcludesIssue/)\n- [FailureDataset](/api/FailureDataset/)\n- [Fallback](/api/Fallback/)\n- [FallbackAsync](/api/FallbackAsync/)\n- [FileIssue](/api/FileIssue/)\n- [FileSchema](/api/FileSchema/)\n- [FilterItemsAction](/api/FilterItemsAction/)\n- [FindItemAction](/api/FindItemAction/)\n- [FiniteAction](/api/FiniteAction/)\n- [FiniteIssue](/api/FiniteIssue/)\n- [FirstTupleItem](/api/FirstTupleItem/)\n- [FlatErrors](/api/FlatErrors/)\n- [Flavor](/api/Flavor/)\n- [FlavorAction](/api/FlavorAction/)\n- [FlavorName](/api/FlavorName/)\n- [FunctionIssue](/api/FunctionIssue/)\n- [FunctionSchema](/api/FunctionSchema/)\n- [GenericIssue](/api/GenericIssue/)\n- [GenericMetadata](/api/GenericMetadata/)\n- [GenericPipeAction](/api/GenericPipeAction/)\n- [GenericPipeActionAsync](/api/GenericPipeActionAsync/)\n- [GenericPipeItem](/api/GenericPipeItem/)\n- [GenericPipeItemAsync](/api/GenericPipeItemAsync/)\n- [GenericSchema](/api/GenericSchema/)\n- [GenericSchemaAsync](/api/GenericSchemaAsync/)\n- [GenericTransformation](/api/GenericTransformation/)\n- [GenericTransformationAsync](/api/GenericTransformationAsync/)\n- [GenericValidation](/api/GenericValidation/)\n- [GenericValidationAsync](/api/GenericValidationAsync/)\n- [GlobalConfig](/api/GlobalConfig/)\n- [GraphemesAction](/api/GraphemesAction/)\n- [GraphemesIssue](/api/GraphemesIssue/)\n- [GtValueAction](/api/GtValueAction/)\n- [GtValueIssue](/api/GtValueIssue/)\n- [GuardAction](/api/GuardAction/)\n- [GuardFunction](/api/GuardFunction/)\n- [GuardIssue](/api/GuardIssue/)\n- [HashAction](/api/HashAction/)\n- [HashIssue](/api/HashIssue/)\n- [HashType](/api/HashType/)\n- [HexadecimalAction](/api/HexadecimalAction/)\n- [HexadecimalIssue](/api/HexadecimalIssue/)\n- [HexColorAction](/api/HexColorAction/)\n- [HexColorIssue](/api/HexColorIssue/)\n- [ImeiAction](/api/ImeiAction/)\n- [ImeiIssue](/api/ImeiIssue/)\n- [IncludesAction](/api/IncludesAction/)\n- [IncludesIssue](/api/IncludesIssue/)\n- [InferDefault](/api/InferDefault/)\n- [InferDefaults](/api/InferDefaults/)\n- [InferExamples](/api/InferExamples/)\n- [InferFallback](/api/InferFallback/)\n- [InferFallbacks](/api/InferFallbacks/)\n- [InferGuardOutput](/api/InferGuardOutput/)\n- [InferInput](/api/InferInput/)\n- [InferIntersectInput](/api/InferIntersectInput/)\n- [InferIntersectOutput](/api/InferIntersectOutput/)\n- [InferIssue](/api/InferIssue/)\n- [InferMapInput](/api/InferMapInput/)\n- [InferMapOutput](/api/InferMapOutput/)\n- [InferMetadata](/api/InferMetadata/)\n- [InferNonNullableInput](/api/InferNonNullableInput/)\n- [InferNonNullableIssue](/api/InferNonNullableIssue/)\n- [InferNonNullableOutput](/api/InferNonNullableOutput/)\n- [InferNonNullishInput](/api/InferNonNullishInput/)\n- [InferNonNullishIssue](/api/InferNonNullishIssue/)\n- [InferNonNullishOutput](/api/InferNonNullishOutput/)\n- [InferNonOptionalInput](/api/InferNonOptionalInput/)\n- [InferNonOptionalIssue](/api/InferNonOptionalIssue/)\n- [InferNonOptionalOutput](/api/InferNonOptionalOutput/)\n- [InferNullableOutput](/api/InferNullableOutput/)\n- [InferNullishOutput](/api/InferNullishOutput/)\n- [InferObjectInput](/api/InferObjectInput/)\n- [InferObjectIssue](/api/InferObjectIssue/)\n- [InferObjectOutput](/api/InferObjectOutput/)\n- [InferOptionalOutput](/api/InferOptionalOutput/)\n- [InferOutput](/api/InferOutput/)\n- [InferRecordInput](/api/InferRecordInput/)\n- [InferRecordOutput](/api/InferRecordOutput/)\n- [InferSetInput](/api/InferSetInput/)\n- [InferSetOutput](/api/InferSetOutput/)\n- [InferTupleInput](/api/InferTupleInput/)\n- [InferTupleIssue](/api/InferTupleIssue/)\n- [InferTupleOutput](/api/InferTupleOutput/)\n- [InferVariantIssue](/api/InferVariantIssue/)\n- [InstanceIssue](/api/InstanceIssue/)\n- [InstanceSchema](/api/InstanceSchema/)\n- [IntegerAction](/api/IntegerAction/)\n- [IntegerIssue](/api/IntegerIssue/)\n- [IntersectIssue](/api/IntersectIssue/)\n- [IntersectOptions](/api/IntersectOptions/)\n- [IntersectOptionsAsync](/api/IntersectOptionsAsync/)\n- [IntersectSchema](/api/IntersectSchema/)\n- [IntersectSchemaAsync](/api/IntersectSchemaAsync/)\n- [IpAction](/api/IpAction/)\n- [IpIssue](/api/IpIssue/)\n- [Ipv4Action](/api/Ipv4Action/)\n- [Ipv4Issue](/api/Ipv4Issue/)\n- [Ipv6Action](/api/Ipv6Action/)\n- [Ipv6Issue](/api/Ipv6Issue/)\n- [IsbnAction](/api/IsbnAction/)\n- [IsbnIssue](/api/IsbnIssue/)\n- [IsrcAction](/api/IsrcAction/)\n- [IsrcIssue](/api/IsrcIssue/)\n- [IsoDateAction](/api/IsoDateAction/)\n- [IsoDateIssue](/api/IsoDateIssue/)\n- [IsoDateTimeAction](/api/IsoDateTimeAction/)\n- [IsoDateTimeIssue](/api/IsoDateTimeIssue/)\n- [IsoTimeAction](/api/IsoTimeAction/)\n- [IsoTimeIssue](/api/IsoTimeIssue/)\n- [IsoTimeSecondAction](/api/IsoTimeSecondAction/)\n- [IsoTimeSecondIssue](/api/IsoTimeSecondIssue/)\n- [IsoTimestampAction](/api/IsoTimestampAction/)\n- [IsoTimestampIssue](/api/IsoTimestampIssue/)\n- [IsoWeekAction](/api/IsoWeekAction/)\n- [IsoWeekIssue](/api/IsoWeekIssue/)\n- [IssueDotPath](/api/IssueDotPath/)\n- [IssuePathItem](/api/IssuePathItem/)\n- [JwsCompactAction](/api/JwsCompactAction/)\n- [JwsCompactIssue](/api/JwsCompactIssue/)\n- [LazySchema](/api/LazySchema/)\n- [LazySchemaAsync](/api/LazySchemaAsync/)\n- [LengthAction](/api/LengthAction/)\n- [LengthInput](/api/LengthInput/)\n- [LengthIssue](/api/LengthIssue/)\n- [Literal](/api/Literal/)\n- [LiteralIssue](/api/LiteralIssue/)\n- [LooseObjectIssue](/api/LooseObjectIssue/)\n- [LooseObjectSchema](/api/LooseObjectSchema/)\n- [LooseObjectSchemaAsync](/api/LooseObjectSchemaAsync/)\n- [LooseTupleIssue](/api/LooseTupleIssue/)\n- [LooseTupleSchema](/api/LooseTupleSchema/)\n- [LooseTupleSchemaAsync](/api/LooseTupleSchemaAsync/)\n- [LiteralSchema](/api/LiteralSchema/)\n- [LtValueAction](/api/LtValueAction/)\n- [LtValueIssue](/api/LtValueIssue/)\n- [Mac48Action](/api/Mac48Action/)\n- [Mac48Issue](/api/Mac48Issue/)\n- [Mac64Action](/api/Mac64Action/)\n- [Mac64Issue](/api/Mac64Issue/)\n- [MacAction](/api/MacAction/)\n- [MacIssue](/api/MacIssue/)\n- [MapIssue](/api/MapIssue/)\n- [MapItemsAction](/api/MapItemsAction/)\n- [MapPathItem](/api/MapPathItem/)\n- [MapSchema](/api/MapSchema/)\n- [MapSchemaAsync](/api/MapSchemaAsync/)\n- [MaxBytesAction](/api/MaxBytesAction/)\n- [MaxBytesIssue](/api/MaxBytesIssue/)\n- [MaxEntriesAction](/api/MaxEntriesAction/)\n- [MaxEntriesIssue](/api/MaxEntriesIssue/)\n- [MaxGraphemesAction](/api/MaxGraphemesAction/)\n- [MaxGraphemesIssue](/api/MaxGraphemesIssue/)\n- [MaxLengthAction](/api/MaxLengthAction/)\n- [MaxLengthIssue](/api/MaxLengthIssue/)\n- [MaxSizeAction](/api/MaxSizeAction/)\n- [MaxSizeIssue](/api/MaxSizeIssue/)\n- [MaxValueAction](/api/MaxValueAction/)\n- [MaxValueIssue](/api/MaxValueIssue/)\n- [MaxWordsAction](/api/MaxWordsAction/)\n- [MaxWordsIssue](/api/MaxWordsIssue/)\n- [MaybePromise](/api/MaybePromise/)\n- [MaybeReadonly](/api/MaybeReadonly/)\n- [MetadataAction](/api/MetadataAction/)\n- [MimeTypeAction](/api/MimeTypeAction/)\n- [MimeTypeIssue](/api/MimeTypeIssue/)\n- [MinBytesAction](/api/MinBytesAction/)\n- [MinBytesIssue](/api/MinBytesIssue/)\n- [MinEntriesAction](/api/MinEntriesAction/)\n- [MinEntriesIssue](/api/MinEntriesIssue/)\n- [MinGraphemesAction](/api/MinGraphemesAction/)\n- [MinGraphemesIssue](/api/MinGraphemesIssue/)\n- [MinLengthAction](/api/MinLengthAction/)\n- [MinLengthIssue](/api/MinLengthIssue/)\n- [MinSizeAction](/api/MinSizeAction/)\n- [MinSizeIssue](/api/MinSizeIssue/)\n- [MinValueAction](/api/MinValueAction/)\n- [MinValueIssue](/api/MinValueIssue/)\n- [MinWordsAction](/api/MinWordsAction/)\n- [MinWordsIssue](/api/MinWordsIssue/)\n- [MultipleOfAction](/api/MultipleOfAction/)\n- [MultipleOfIssue](/api/MultipleOfIssue/)\n- [NanIssue](/api/NanIssue/)\n- [NanSchema](/api/NanSchema/)\n- [NeverIssue](/api/NeverIssue/)\n- [NeverSchema](/api/NeverSchema/)\n- [NonEmptyAction](/api/NonEmptyAction/)\n- [NonEmptyIssue](/api/NonEmptyIssue/)\n- [NonNullable](/api/NonNullable/)\n- [NonNullableIssue](/api/NonNullableIssue/)\n- [NonNullableSchema](/api/NonNullableSchema/)\n- [NonNullableSchemaAsync](/api/NonNullableSchemaAsync/)\n- [NonNullish](/api/NonNullish/)\n- [NonNullishIssue](/api/NonNullishIssue/)\n- [NonNullishSchema](/api/NonNullishSchema/)\n- [NonNullishSchemaAsync](/api/NonNullishSchemaAsync/)\n- [NonOptional](/api/NonOptional/)\n- [NonOptionalIssue](/api/NonOptionalIssue/)\n- [NonOptionalSchema](/api/NonOptionalSchema/)\n- [NonOptionalSchemaAsync](/api/NonOptionalSchemaAsync/)\n- [NormalizeAction](/api/NormalizeAction/)\n- [NormalizeForm](/api/NormalizeForm/)\n- [NotBytesAction](/api/NotBytesAction/)\n- [NotBytesIssue](/api/NotBytesIssue/)\n- [NotEntriesAction](/api/NotEntriesAction/)\n- [NotEntriesIssue](/api/NotEntriesIssue/)\n- [NotGraphemesAction](/api/NotGraphemesAction/)\n- [NotGraphemesIssue](/api/NotGraphemesIssue/)\n- [NotLengthAction](/api/NotLengthAction/)\n- [NotLengthIssue](/api/NotLengthIssue/)\n- [NotSizeAction](/api/NotSizeAction/)\n- [NotSizeIssue](/api/NotSizeIssue/)\n- [NotValueAction](/api/NotValueAction/)\n- [NotValuesAction](/api/NotValuesAction/)\n- [NotValueIssue](/api/NotValueIssue/)\n- [NotValuesIssue](/api/NotValuesIssue/)\n- [NotWordsAction](/api/NotWordsAction/)\n- [NotWordsIssue](/api/NotWordsIssue/)\n- [NullableSchema](/api/NullableSchema/)\n- [NullableSchemaAsync](/api/NullableSchemaAsync/)\n- [NullishSchema](/api/NullishSchema/)\n- [NullishSchemaAsync](/api/NullishSchemaAsync/)\n- [NullIssue](/api/NullIssue/)\n- [NullSchema](/api/NullSchema/)\n- [NumberIssue](/api/NumberIssue/)\n- [NumberSchema](/api/NumberSchema/)\n- [ObjectEntries](/api/ObjectEntries/)\n- [ObjectEntriesAsync](/api/ObjectEntriesAsync/)\n- [ObjectIssue](/api/ObjectIssue/)\n- [ObjectKeys](/api/ObjectKeys/)\n- [ObjectPathItem](/api/ObjectPathItem/)\n- [ObjectSchema](/api/ObjectSchema/)\n- [ObjectSchemaAsync](/api/ObjectSchemaAsync/)\n- [ObjectWithRestIssue](/api/ObjectWithRestIssue/)\n- [ObjectWithRestSchema](/api/ObjectWithRestSchema/)\n- [ObjectWithRestSchemaAsync](/api/ObjectWithRestSchemaAsync/)\n- [OctalAction](/api/OctalAction/)\n- [OctalIssue](/api/OctalIssue/)\n- [OptionalSchema](/api/OptionalSchema/)\n- [OptionalSchemaAsync](/api/OptionalSchemaAsync/)\n- [OutputDataset](/api/OutputDataset/)\n- [ParseBooleanAction](/api/ParseBooleanAction/)\n- [ParseBooleanConfig](/api/ParseBooleanConfig/)\n- [ParseBooleanIssue](/api/ParseBooleanIssue/)\n- [ParseJsonAction](/api/ParseJsonAction/)\n- [ParseJsonConfig](/api/ParseJsonConfig/)\n- [ParseJsonIssue](/api/ParseJsonIssue/)\n- [Parser](/api/Parser/)\n- [ParserAsync](/api/ParserAsync/)\n- [PartialCheckAction](/api/PartialCheckAction/)\n- [PartialCheckActionAsync](/api/PartialCheckActionAsync/)\n- [PartialCheckIssue](/api/PartialCheckIssue/)\n- [PartialDataset](/api/PartialDataset/)\n- [PartialInput](/api/PartialInput/)\n- [Path](/api/Path/)\n- [PicklistOptions](/api/PicklistOptions/)\n- [PicklistIssue](/api/PicklistIssue/)\n- [PicklistSchema](/api/PicklistSchema/)\n- [PipeAction](/api/PipeAction/)\n- [PipeActionAsync](/api/PipeActionAsync/)\n- [PipeItem](/api/PipeItem/)\n- [PipeItemAsync](/api/PipeItemAsync/)\n- [PromiseIssue](/api/PromiseIssue/)\n- [PromiseSchema](/api/PromiseSchema/)\n- [RawCheckAction](/api/RawCheckAction/)\n- [RawCheckActionAsync](/api/RawCheckActionAsync/)\n- [RawCheckAddIssue](/api/RawCheckAddIssue/)\n- [RawCheckContext](/api/RawCheckContext/)\n- [RawCheckIssue](/api/RawCheckIssue/)\n- [RawCheckIssueInfo](/api/RawCheckIssueInfo/)\n- [RawTransformAction](/api/RawTransformAction/)\n- [RawTransformActionAsync](/api/RawTransformActionAsync/)\n- [RawTransformAddIssue](/api/RawTransformAddIssue/)\n- [RawTransformContext](/api/RawTransformContext/)\n- [RawTransformIssue](/api/RawTransformIssue/)\n- [RawTransformIssueInfo](/api/RawTransformIssueInfo/)\n- [ReadonlyAction](/api/ReadonlyAction/)\n- [RecordIssue](/api/RecordIssue/)\n- [RecordSchema](/api/RecordSchema/)\n- [RecordSchemaAsync](/api/RecordSchemaAsync/)\n- [ReduceItemsAction](/api/ReduceItemsAction/)\n- [RegexAction](/api/RegexAction/)\n- [RegexIssue](/api/RegexIssue/)\n- [RequiredPath](/api/RequiredPath/)\n- [RequiredPaths](/api/RequiredPaths/)\n- [ReturnsAction](/api/ReturnsAction/)\n- [ReturnsActionAsync](/api/ReturnsActionAsync/)\n- [RfcEmailAction](/api/RfcEmailAction/)\n- [RfcEmailIssue](/api/RfcEmailIssue/)\n- [SafeIntegerAction](/api/SafeIntegerAction/)\n- [SafeIntegerIssue](/api/SafeIntegerIssue/)\n- [SafeParser](/api/SafeParser/)\n- [SafeParserAsync](/api/SafeParserAsync/)\n- [SafeParseResult](/api/SafeParseResult/)\n- [SchemaWithCache](/api/SchemaWithCache/)\n- [SchemaWithCacheAsync](/api/SchemaWithCacheAsync/)\n- [SchemaWithFallback](/api/SchemaWithFallback/)\n- [SchemaWithFallbackAsync](/api/SchemaWithFallbackAsync/)\n- [SchemaWithoutPipe](/api/SchemaWithoutPipe/)\n- [SchemaWithPartial](/api/SchemaWithPartial/)\n- [SchemaWithPartialAsync](/api/SchemaWithPartialAsync/)\n- [SchemaWithPipe](/api/SchemaWithPipe/)\n- [SchemaWithPipeAsync](/api/SchemaWithPipeAsync/)\n- [SchemaWithRequired](/api/SchemaWithRequired/)\n- [SchemaWithRequiredAsync](/api/SchemaWithRequiredAsync/)\n- [SetPathItem](/api/SetPathItem/)\n- [SetIssue](/api/SetIssue/)\n- [SetSchema](/api/SetSchema/)\n- [SetSchemaAsync](/api/SetSchemaAsync/)\n- [SizeAction](/api/SizeAction/)\n- [SizeInput](/api/SizeInput/)\n- [SizeIssue](/api/SizeIssue/)\n- [SlugAction](/api/SlugAction/)\n- [SlugIssue](/api/SlugIssue/)\n- [SomeItemAction](/api/SomeItemAction/)\n- [SomeItemIssue](/api/SomeItemIssue/)\n- [SortItemsAction](/api/SortItemsAction/)\n- [StandardFailureResult](/api/StandardFailureResult/)\n- [StandardIssue](/api/StandardIssue/)\n- [StandardPathItem](/api/StandardPathItem/)\n- [StandardProps](/api/StandardProps/)\n- [StandardResult](/api/StandardResult/)\n- [StandardSuccessResult](/api/StandardSuccessResult/)\n- [StandardTypes](/api/StandardTypes/)\n- [StartsWithAction](/api/StartsWithAction/)\n- [StartsWithIssue](/api/StartsWithIssue/)\n- [StrictObjectIssue](/api/StrictObjectIssue/)\n- [StrictObjectSchema](/api/StrictObjectSchema/)\n- [StrictObjectSchemaAsync](/api/StrictObjectSchemaAsync/)\n- [StrictTupleIssue](/api/StrictTupleIssue/)\n- [StrictTupleSchema](/api/StrictTupleSchema/)\n- [StrictTupleSchemaAsync](/api/StrictTupleSchemaAsync/)\n- [StringIssue](/api/StringIssue/)\n- [StringSchema](/api/StringSchema/)\n- [StringifyJsonAction](/api/StringifyJsonAction/)\n- [StringifyJsonConfig](/api/StringifyJsonConfig/)\n- [StringifyJsonIssue](/api/StringifyJsonIssue/)\n- [SuccessDataset](/api/SuccessDataset/)\n- [SymbolIssue](/api/SymbolIssue/)\n- [SymbolSchema](/api/SymbolSchema/)\n- [TitleAction](/api/TitleAction/)\n- [ToBigintAction](/api/ToBigintAction/)\n- [ToBigintIssue](/api/ToBigintIssue/)\n- [ToBooleanAction](/api/ToBooleanAction/)\n- [ToDateAction](/api/ToDateAction/)\n- [ToDateIssue](/api/ToDateIssue/)\n- [ToLowerCaseAction](/api/ToLowerCaseAction/)\n- [ToMaxValueAction](/api/ToMaxValueAction/)\n- [ToMinValueAction](/api/ToMinValueAction/)\n- [ToNumberAction](/api/ToNumberAction/)\n- [ToNumberIssue](/api/ToNumberIssue/)\n- [ToStringAction](/api/ToStringAction/)\n- [ToStringIssue](/api/ToStringIssue/)\n- [ToUpperCaseAction](/api/ToUpperCaseAction/)\n- [TransformAction](/api/TransformAction/)\n- [TransformActionAsync](/api/TransformActionAsync/)\n- [TrimAction](/api/TrimAction/)\n- [TrimEndAction](/api/TrimEndAction/)\n- [TrimStartAction](/api/TrimStartAction/)\n- [TupleIssue](/api/TupleIssue/)\n- [TupleItems](/api/TupleItems/)\n- [TupleItemsAsync](/api/TupleItemsAsync/)\n- [TupleSchema](/api/TupleSchema/)\n- [TupleSchemaAsync](/api/TupleSchemaAsync/)\n- [TupleWithRestIssue](/api/TupleWithRestIssue/)\n- [TupleWithRestSchema](/api/TupleWithRestSchema/)\n- [TupleWithRestSchemaAsync](/api/TupleWithRestSchemaAsync/)\n- [UlidAction](/api/UlidAction/)\n- [UlidIssue](/api/UlidIssue/)\n- [UndefinedableSchema](/api/UndefinedableSchema/)\n- [UndefinedableSchemaAsync](/api/UndefinedableSchemaAsync/)\n- [UndefinedIssue](/api/UndefinedIssue/)\n- [UndefinedSchema](/api/UndefinedSchema/)\n- [UnionOptions](/api/UnionOptions/)\n- [UnionOptionsAsync](/api/UnionOptionsAsync/)\n- [UnionIssue](/api/UnionIssue/)\n- [UnionSchema](/api/UnionSchema/)\n- [UnionSchemaAsync](/api/UnionSchemaAsync/)\n- [UnknownDataset](/api/UnknownDataset/)\n- [UnknownPathItem](/api/UnknownPathItem/)\n- [UnknownSchema](/api/UnknownSchema/)\n- [UrlAction](/api/UrlAction/)\n- [UrlIssue](/api/UrlIssue/)\n- [UuidAction](/api/UuidAction/)\n- [UuidIssue](/api/UuidIssue/)\n- [ValueAction](/api/ValueAction/)\n- [ValuesAction](/api/ValuesAction/)\n- [ValueInput](/api/ValueInput/)\n- [ValueIssue](/api/ValueIssue/)\n- [ValuesIssue](/api/ValuesIssue/)\n- [VariantIssue](/api/VariantIssue/)\n- [VariantOptions](/api/VariantOptions/)\n- [VariantOptionsAsync](/api/VariantOptionsAsync/)\n- [VariantSchema](/api/VariantSchema/)\n- [VariantSchemaAsync](/api/VariantSchemaAsync/)\n- [VoidIssue](/api/VoidIssue/)\n- [VoidSchema](/api/VoidSchema/)\n- [WordsAction](/api/WordsAction/)\n- [WordsIssue](/api/WordsIssue/)\n"
  },
  {
    "path": "website/src/routes/blog/(posts)/first-draft-of-the-new-pipe-function/index.mdx",
    "content": "---\ncover: First Draft\ntitle: First draft of the new pipe function\ndescription: >-\n  One month after I published my last post to discuss Valibot's API, it is\n  finally time to share a first draft with you.\npublished: 2024-04-02\nauthors:\n  - fabian-hiller\n  - Demivan\n---\n\nimport { Link } from '~/components';\nimport TypeSafeIssues from './type-safe-issues.jpg?jsx';\n\nOne month after I published my <Link href=\"../should-we-change-valibots-api/\">last post</Link> to discuss Valibot's API, it is finally time to share a first draft with you. I have not only implemented the `pipe` functions. In the end, I basically rewrote the whole library. I improved many things while keeping performance, bundle size and developer experience in mind.\n\n> Except for the `pipe` function, the basic API remains the same. However, to make the migration as smooth as possible for you, we plan to partner with [Codemod](https://codemod.com/) to automatically migrate most of the changes with a single CLI command.\n\n## `pipe` function\n\nFirst of all, thank you for your feedback! It was amazing to see how the Valibot community came together to discuss this change. In total, my post on X got more than 15,000 impressions and more than 70 developers participated on GitHub.\n\n### Better mental model\n\nThe `pipe` function reduces the mental model of Valibot to schemas, methods and actions. Schemas validate data types like strings, numbers and objects. Methods are small utilities that help you use or modify a schema. For example, the `pipe` function is a \"method\" that adds a pipeline to a schema. Actions are used exclusively within a pipeline to further validate or transform a particular data type.\n\n### Simplified source code\n\nBy moving the pipeline into its own function, we made Valibot even more modular. This has several advantages. The most obvious is that it reduces the bundle size if your schemas do not require this feature. But even if you use the pipe function, you can expect an average 15-20% reduction in bundle size with the new implementation.\n\nAnother great benefit is that we were able to simplify the schema functions by removing the `pipe` argument. Schema functions are now more independent and only cover the validation of their data type. This allows us to simplify the unit tests, making the library even safer to use.\n\nFurthermore, for any primitive data type schema such as `string`, we could remove its async `stringAsync` implementation, since this was only necessary to support async validation within the `pipe` argument. This will further reduce the overall bundle size of the library.\n\n### More flexibility and control\n\nThe `pipe` function also adds flexibility to the library and gives you more control over your schemas. Previously, it was very difficult to extend the pipeline of a schema with additional validations or transformations. This changes with the `pipe` functions because they can be nested, making your code more composable.\n\n```ts\nimport * as v from 'valibot';\n\nconst EmailSchema = v.pipe(v.string(), v.email());\nconst GmailSchema = v.pipe(EmailSchema, v.endsWith('@gmail.com'));\n```\n\nAnother great benefit is that pipelines now support data type transformations. There is no longer any confusion between a transformation method and pipeline transformations. You can even add another schema function after a transformation to validate its output.\n\n```ts\nimport * as v from 'valibot';\n\nconst PixelSchema = v.pipe(\n  v.string(),\n  v.regex(/^\\d+px$/),\n  v.transform(parseInt),\n  v.number(),\n  v.maxValue(100)\n);\n```\n\nWhen building forms, this also gives you more control over the input and output type of a schema. It is now possible for a field to have an input type of `string | null` but an output type of `string` without specifying a default value.\n\n```ts\nimport * as v from 'valibot';\n\n// This schema\nconst ProfileSchema = v.object({\n  name: v.string(),\n  age: v.pipe(v.nullable(v.number()), v.number()),\n  bio: v.pipe(v.nullable(v.string()), v.string()),\n});\n\n// Has this input type\ntype ProfileInput = {\n  name: string;\n  age: number | null;\n  bio: string | null;\n};\n\n// But this output type\ntype ProfileOutput = {\n  name: string;\n  age: number;\n  bio: string;\n};\n```\n\n## `object` schema\n\nAnother major change is that I have removed the `rest` argument from the `object` schema. This reduces the bundle size by up to 150 bytes if you don't need this functionality. If you do need it, you can use the newly added `objectWithRest` schema, and to allow or not allow unknown entries, there is now a special `looseObject` and `strictObject` schema for a better developer experience.\n\n```ts\nimport * as v from 'valibot';\n\nconst NormalObjectSchema = v.object({ ... });\nconst ObjectWithRestSchema = v.objectWithRest({ ... }, v.string());\nconst LooseObjectSchema = v.looseObject({ ... });\nconst StrictObjectSchema = v.strictObject({ ... });\n```\n\n> I also plan to remove the `rest` argument from the `tuple` schema and provide a `tupleWithRest`, `looseTuple` and `strictTuple` schema.\n\n## Type safety\n\nI am happy to announce that I have been able to drastically improve the type safety of the library. Previously, like many other libraries out there, less important parts were only generally typed.\n\nA concrete example is the issues that Valibot returns when the data does not match your schema. Even though each issue contains very specific data depending on the schema and validation function, they were all previously typed with a generic `SchemaIssue` type.\n\nWith this rewrite, each schema and validation function brings its own issues type. This way each schema knows exactly what kind of issues can occur. We also added the `isOfKind` and `isOfType` util functions to filter and handle specific objects in a type-safe way.\n\n<TypeSafeIssues alt=\"Code example of a type safe issue\" />\n\n## Unit tests\n\nValibot was kind of my first project that came with unit testing. When I implemented the first tests, I had very little experience with testing. Even though the current tests cover 100% of the library, I don't feel comfortable releasing v1 before rewriting them and making them perfect. Also, we have had some type issues in the past. That's why I'm also planning to add type testing to ensure the developer experience when using TypeScript.\n\nIt is important to me to ensure the functionality of the library and to make sure that no unexpected bugs occur when changes are made to the code in the future. Developers should be able to fully rely on Valibot. If you are a testing expert, please have a look and review the `string` and `object` schema tests.\n\n## Next steps\n\nI created [this draft PR](https://github.com/open-circle/valibot/pull/502) for two reasons. One is to get feedback from the community before rewriting the entire library. I have already discussed a lot of details with [@Demivan](https://github.com/Demivan) and think we are on a good path, but maybe we missed something. Feel free to investigate the source code and reach out via the comments.\n\nWith the following commands you can clone, bundle and play with the new source code in advance:\n\n```bash\n# Clone repository\ngit clone git@github.com:open-circle/valibot.git\n\n# Switch branch\ngit switch rewrite-with-pipe\n\n# Install dependencies\ncd ./valibot && pnpm install\n\n# Bundle library\ncd ./library && pnpm build\n\n# Modify `playground.ts`\n\n# Run playground\npnpm play\n```\n\nOn the other hand, I created [this PR](https://github.com/open-circle/valibot/pull/502) also to ask you to help me implement the missing parts. If you are passionate about open source and want to join an exponentially growing open source project, now might be the time.\n\nStarting April 8, everyone is welcome to take over the implementation of a schema or action function. I recommend starting with a simple function like `minBytes`, where you only have to copy and modify the `minLength` action, and maybe look at the previous implementation of the same function.\n\nTo participate, just add a comment to [this PR](https://github.com/open-circle/valibot/pull/502) with the part you want to take over. Please only add a comment if you are able to do the implementation within 3 days, to not block the rewrite. After you get my thumbs up, you can create a PR that merges your changes into the `rewrite-with-pipe` branch.\n\nThe goal is to have everything implemented this month. ⚡️\n"
  },
  {
    "path": "website/src/routes/blog/(posts)/how-valibot-has-evolved-this-year/index.mdx",
    "content": "---\ncover: Retrospect\ntitle: How Valibot has evolved this year\ndescription: >-\n  Especially in the last months Valibot has evolved a lot. In this blog post I\n  would like to look back on our efforts and achievements.\npublished: 2024-06-19\nauthors:\n  - fabian-hiller\n---\n\nimport { Link } from '~/components';\nimport MonthlyDownloads from './monthly-downloads.jpg?jsx';\nimport PlaygroundDark from './playground-dark.jpg?jsx';\nimport PlaygroundLight from './playground-light.jpg?jsx';\n\nIn the context of an independent study at the [Seidenberg School of Computer Science and Information Systems](https://www.pace.edu/seidenberg) at Pace University in New York I continued the maintenance, research and development for my open source project Valibot, which I started 11 months ago with Miško Hevery and Ryan Carniato as part of my [bachelor's thesis](/thesis.pdf) at the Stuttgart Media University. Especially in the last months the project has evolved a lot. In this blog post I would like to look back on our efforts and achievements.\n\n## Statistics\n\nLast year, Valibot was downloaded 350k times via the npm registry. With 210k monthly downloads in January, the project started very successfully into the new year. I am very happy to report that we were able to increase the total downloads to over 3 million and the monthly downloads to almost 800k. This means that in less than 6 months the total downloads and the monthly downloads have increased by more than 500%.\n\n<MonthlyDownloads alt=\"Monthly downloads of Valibot in the past 12 months\" />\n\nOur website, which contains a detailed documentation of the library, has been visited more than 60k times with more than 400k page views since the beginning of this year. According to our website statistics, Valibot is used all over the world. The top countries with more than 4% share of visits are the United States, Japan, Germany, France and India.\n\nOn Github the project now has 5,483 stars and 102 contributors. During this year, the community created 323 new issues, pull requests and discussions, which I labeled and answered. I released 8 new versions with various improvements. I will highlight some of them in the next sections of this post.\n\n## Website\n\nIn December 2023 we started to add a detailed <Link href=\"/api/\">API reference</Link> to provide additional information besides the guides that mainly explain the general concept of Valibot. With more than 400 symbols this was a pretty big task and I am happy about the [support](https://github.com/open-circle/valibot/issues/287) I got from the community. Some references are still missing and will be added in the next weeks.\n\nAnother highlight is the new <Link href=\"/playground/\">playground</Link> that I added in February with the help of [Milo](https://github.com/milomg), a SolidJS core team member and student at the University of Toronto. The playground can be used to write, test, and share schemas directly on our website. Since then, the button to execute code has been clicked more than 13k times.\n\n<PlaygroundDark\n  alt=\"The new playground to write, test and share schemas\"\n  class=\"hidden dark:block\"\n/>\n<PlaygroundLight\n  alt=\"The new playground to write, test and share schemas\"\n  class=\"dark:hidden\"\n/>\n\n## Library\n\nOn February 6th, we shipped a pretty big update with [v0.28.0](https://github.com/open-circle/valibot/releases/tag/v0.28.0), which included our <Link href=\"/guides/internationalization/\">i18n feature</Link>. We also refactored a large part of Valibot's source code and expanded and improved the default error messages. They now provide much more helpful details than before, and I am happy to announce that the community has translated them into 21 languages besides English for our official i18n package.\n\nAt the end of February, I started preparing our v1 release in my head, until [@Demivan](https://github.com/Demivan) and [@xcfox](https://github.com/xcfox) came up with two API proposals. I was skeptical at first, but I also knew that the API design had some major limitations that could harm the developer experience and the project in general in the long run. That's why I reached out to the community on [GitHub](https://github.com/open-circle/valibot/discussions/463) to get their feedback.\n\nIt was great to see that more than 70 developers participated. The overall feedback was very positive. So I started working on a <Link href=\"../first-draft-of-the-new-pipe-function/\">first draft</Link> in March. Back then, the only change I planned to introduce was the new <Link href=\"/api/pipe/\">`pipe`</Link> method, but in the process I saw many more areas where I could improve Valibot. In the end, I started to rewrite the whole library from scratch with the help of the community. The results are promising. Feel free to read my <Link href=\"../valibot-v0.31.0-is-finally-available/\">previous blog post</Link> for more details.\n\n## Upcoming\n\nIn the next few weeks, I plan to investigate the implementation of a `function` and `promise` schema, and take a look at [PR #655](https://github.com/open-circle/valibot/pull/655), which introduces a metadata feature. After that, I plan to focus on our documentation to expand and update our <Link href=\"/api/\">API reference</Link>. As we get closer to our v1 release, I will be thinking about a v1 roadmap soon. At the moment I expect to release a release candidate in August and the final release in September. Stay tuned for further updates!\n\n> Recently I was a guest on Nick's show and talked about Valibot. If you missed our stream, you can watch it [here](https://www.youtube.com/live/fR2GJx_SQTE) on YouTube.\n"
  },
  {
    "path": "website/src/routes/blog/(posts)/introducing-open-circle/index.mdx",
    "content": "---\ncover: Open Circle\ntitle: Introducing Open Circle\ndescription: >-\n  A few months ago, we moved the Valibot and Formisch repositories from Fabian's personal GitHub account into the Open Circle organization. This post explains what Open Circle is, why we made this change, and what this means for you and the projects going forward.\npublished: 2026-01-27\nauthors:\n  - flySewa\n---\n\nimport { Link } from '~/components';\n\nA few months ago, we moved the Valibot and Formisch repositories from Fabian's personal GitHub account into the Open Circle organization. This post explains what Open Circle is, why we made this change, and what this means for you and the projects going forward.\n\n## TL;DR\n\n- Valibot and Formisch now live under the Open Circle GitHub organization\n- Nothing changes except the GitHub repository URL\n- Sponsorships are now handled transparently through Open Collective\n\n## What is Open Circle?\n\n[Open Circle](https://github.com/open-circle) is a GitHub organization that serves as the shared home for Valibot, Formisch, and future projects that share our philosophy around modularity, type safety, and developer experience. Think of the organization as a container for related projects. It is not a tool or library you install.\n\n## Why Open Circle?\n\n### Access control\n\nAs Valibot and Formisch grew, more people wanted to help maintain them, but personal GitHub accounts only allowed full access or bottlenecks through a single maintainer. With Open Circle, we can grant different levels of control to team members without giving any single person full control.\n\n### Sponsorships\n\nBefore, sponsorships went directly to a personal account. Now they flow through [Open Collective](https://opencollective.com/valibot), which provides complete transparency. Every donation and expense is visible to everyone. This builds trust with sponsors because they can see exactly where their money goes. It also makes it possible to fairly compensate contributors for their work. Open source maintainers deserve to be paid for the value they create, and a transparent financial structure makes that possible and sustainable long term.\n\nFabian Hiller forwards 100% of his GitHub sponsorings to Open Collective, and going forward this money will mainly be used to fund contributors.\n\n#### Fiscal host\n\n[Open Source Collective](https://oscollective.org/) is now our fiscal host. This means that all sponsorings go into a non-profit organization, providing legal and financial infrastructure that helps us operate transparently and sustainably.\n\n### Unified ecosystem\n\nWe moved projects like Valibot and Formisch under Open Circle so related projects can be maintained together. Related tools, documentation, and resources are now easier to find for anyone building or maintaining systems with the same design principles.\n\n## What's Changed?\n\nThe main change is the repository URL and the new financial structure.\n\n## What This Means for the Future\n\n- Clearer contribution guidelines for new maintainers\n- An expanded core team with formalized roles and shared decision-making\n- Better compensation and recognition for contributor work\n- A proper home for future projects aligned with our philosophy\n\n## The Reality of Open Source Funding\n\nThe recent Tailwind situation—revenue down 80%, 75% of engineering laid off despite record usage—is a tough reminder: AI tools reduce doc traffic and paid conversions, making it harder than ever to sustain pure open source projects.\n\nWe know this firsthand. Valibot currently brings in around $400 per month, with over 50% from a single backer. To fully fund engineering, content, and community work, we estimate needing around $10,000 USD per month.\n\nIf Valibot, Standard Schema, or Formisch power your business, please consider [sponsoring our work](https://opencollective.com/valibot). Even small amounts help.\n\n## Thank you\n\nThis move would not be possible without the community around Valibot and Formisch. Contributors, users, and companies running these projects in production have all shaped how these projects have evolved and what they require now structurally.\n\nThanks as well to everyone who has sponsored the work. Your support makes it possible to invest in maintenance decisions that prioritize long term stability over convenience decisions that benefit these projects.\n"
  },
  {
    "path": "website/src/routes/blog/(posts)/json-schema-package-upgrade/index.mdx",
    "content": "---\ncover: JSON Schema\ntitle: JSON Schema package upgrade\ndescription: >-\n  This blog post introduces new configurations such as \"typeMode\" and\n  \"overrideSchema\", as well as the new \"toJsonSchemaDefs\" function, which were\n  added in the last two minor versions.\npublished: 2025-06-01\nauthors:\n  - fabian-hiller\n---\n\nimport { Link } from '~/components';\n\nValibot's [JSON Schema package](https://github.com/open-circle/valibot/tree/main/packages/to-json-schema) has seen significant growth in adoption over the past few weeks, reaching almost 200,000 monthly downloads on npm. We believe it is particularly popular for documentation and code generation purposes via the OpenAPI specification, as well as for generating structured LLM outputs.\n\nAs these use cases will probably become more common in future, we have listened to your feedback and decided to invest more time in developing the package to make it extremely powerful. This blog post will introduce the new features added in the last two minor versions.\n\n## Convert input or output of schema\n\nThe JSON Schema package now supports a new `typeMode` configuration option, which allows you to specify whether you want to convert the input or output of a Valibot schema.\n\nThis is particularly useful when validating and defining an API endpoint with Valibot and your schemas contain transformations. This is because external developers are usually interested in the input schema of the request data but in the output schema of the response data.\n\n{/* prettier-ignore */}\n```ts\nimport * as v from 'valibot';\nimport { toJsonSchema } from '@valibot/to-json-schema';\n\nconst ValibotSchema = v.pipe(\n  v.string(),\n  v.decimal(),\n  v.transform(Number),\n  v.number(),\n  v.maxValue(100)\n);\n\ntoJsonSchema(ValibotSchema, { typeMode: 'input' });\n\n// {\n//   $schema: \"http://json-schema.org/draft-07/schema#\",\n//   type: \"string\",\n//   pattern: \"^[+-]?(?:\\\\d*\\\\.)?\\\\d+$\"\n// }\n\ntoJsonSchema(ValibotSchema, { typeMode: 'output' });\n\n// {\n//   $schema: \"http://json-schema.org/draft-07/schema#\",\n//   type: \"number\",\n//   maximum: 100\n// }\n```\n\n## Override default JSON Schema conversion\n\nThe JSON Schema package now enables you to override the default behaviour of the JSON Schema conversion process. This can be achieved using the three new configuration options: `overrideSchema`, `overrideAction` and `overrideRef`. These let you specify a custom function that will be called for each schema, action or reference during conversion.\n\nYou can either return a value to override the default behaviour, or return `null` or `undefined` to skip the override. Furthermore, all three callback functions provide the full context via the first function argument, enabling you to perform the same actions as we do internally.\n\n{/* prettier-ignore */}\n```ts\nimport * as v from 'valibot';\nimport { toJsonSchema } from '@valibot/to-json-schema';\n\nconst ValibotSchema = v.object({ createdAt: v.date() });\n\ntoJsonSchema(ValibotSchema, {\n  overrideSchema(context) {\n    if (context.valibotSchema.type === 'date') {\n      return { type: 'string', format: 'date-time' };\n    }\n  },\n});\n\n// {\n//   $schema: \"http://json-schema.org/draft-07/schema#\",\n//   type: \"object\",\n//   properties: {\n//     createdAt: { type: \"string\" format: \"date-time\" }\n//   },\n//   required: [\"createdAt\"]\n// }\n```\n\n## New global definition storage\n\nIf you are reusing Valibot schemas within other Valibot schemas, you may be interested in representing these schemas as references in the JSON Schema output. To facilitate this, the JSON Schema package now includes a new global definition storage.\n\nThis feature allows you to define these definitions after creating a Valibot schema, rather than when calling `toJsonSchema`. This can be particularly useful for larger projects with many schemas, as it helps to keep your code clean and organised.\n\n{/* prettier-ignore */}\n```ts\nimport * as v from 'valibot';\nimport { addGlobalDefs, toJsonSchema } from '@valibot/to-json-schema';\n\nconst ValibotSchema1 = v.string();\nconst ValibotSchema2 = v.number();\n\naddGlobalDefs({ ValibotSchema1, ValibotSchema2 });\n\nconst ValibotSchema3 = v.tuple([ValibotSchema1, ValibotSchema2]);\n\ntoJsonSchema(ValibotSchema3);\n\n// {\n//   $schema: \"http://json-schema.org/draft-07/schema#\",\n//   type: \"array\",\n//   items: [\n//     { $ref: \"#/$defs/ValibotSchema1\" },\n//     { $ref: \"#/$defs/ValibotSchema2\" }\n//   ],\n//   minItems: 2,\n//   $defs: {\n//     ValibotSchema1: { type: \"string\" },\n//     ValibotSchema2: { type: \"number\" }\n//   }\n// }\n```\n\n## Output schema definitions only\n\nIf you're working with the OpenAPI specification, you might be interested in generating only the JSON Schema definitions and overriding the reference IDs to customise them. The new `toJsonSchemaDefs` function and `overrideRef` configuration option now make this possible.\n\n{/* prettier-ignore */}\n```ts\nimport * as v from 'valibot';\nimport { toJsonSchemaDefs } from '@valibot/to-json-schema';\n\nconst ValibotSchema1 = v.string();\nconst ValibotSchema2 = v.number();\nconst ValibotSchema3 = v.tuple([ValibotSchema1, ValibotSchema2]);\n\ntoJsonSchemaDefs(\n  { ValibotSchema1, ValibotSchema2, ValibotSchema3 },\n  { overrideRef: (context) => `#/schemas/${context.referenceId}` }\n);\n\n// {\n//   ValibotSchema1: { type: \"string\" },\n//   ValibotSchema2: { type: \"number\" },\n//   ValibotSchema3: {\n//     type: \"array\",\n//     items: [\n//       { $ref: \"#/schemas/ValibotSchema1\" },\n//       { $ref: \"#/schemas/ValibotSchema2\" }\n//     ],\n//     minItems: 2\n//   }\n// }\n```\n\nYou can also convert global definitions added via the new `addGlobalDefs` function. To do this, call `getGlobalDefs` to retrieve the definitions and pass them as the first argument to `toJsonSchemaDefs`.\n\n## Enhanced metadata support\n\nPreviously we only supported the <Link href=\"/api/title/\">`title`</Link> and <Link href=\"/api/description/\">`description`</Link> action directly but not the generic <Link href=\"/api/metadata/\">`metadata`</Link> action. This was improved so that title, description and examples can now also be specified via the generic <Link href=\"/api/metadata/\">`metadata`</Link> action, providing you with more flexibility in defining your schemas.\n\n{/* prettier-ignore */}\n```ts\nimport * as v from 'valibot';\nimport { toJsonSchema } from '@valibot/to-json-schema';\n\nconst ValibotSchema = v.pipe(\n  v.string(),\n  v.email(),\n  v.metadata({\n    title: 'Email Schema',\n    description: 'A schema that validates email addresses.',\n    examples: ['jane@example.com'],\n  })\n);\n\ntoJsonSchema(ValibotSchema);\n\n// {\n//   $schema: \"http://json-schema.org/draft-07/schema#\",\n//   type: \"string\",\n//   format: \"email\",\n//   title: \"Email Schema\",\n//   description: \"A schema that validates email addresses.\",\n//   examples: [\"jane@example.com\"]\n// }\n```\n\n## What's next?\n\nFirstly, I would like to thank [@Xiot](https://github.com/Xiot) for his detailed feedback on the JSON Schema package and all the new changes. His help in identifying edge cases and advising on the API design was invaluable.\n\nNext, we will probably release the Zod-to-Valibot codemod to help you migrate to Valibot if you are interested. Stay tuned for that!\n"
  },
  {
    "path": "website/src/routes/blog/(posts)/layout.tsx",
    "content": "import { component$, Slot } from '@builder.io/qwik';\nimport { useDocumentHead, useLocation } from '@builder.io/qwik-city';\nimport { Credits, IconButton, PostCover, PostMeta } from '~/components';\nimport { PenIcon } from '~/icons';\n\ntype PostFrontmatter = {\n  cover: string;\n  authors: string[];\n  published: string;\n};\n\nexport default component$(() => {\n  // Use document head and location\n  const head = useDocumentHead<PostFrontmatter>();\n  const location = useLocation();\n\n  return (\n    <main class=\"flex flex-1 flex-col items-center py-12 md:py-20 lg:py-28 xl:py-32\">\n      {/* Article */}\n      <article class=\"flex w-full max-w-(--breakpoint-xl) flex-col gap-12 md:gap-20 lg:gap-24\">\n        <div class=\"mx-8 flex max-w-(--breakpoint-md) flex-col gap-5 md:items-center md:gap-7 md:self-center lg:mx-10 lg:gap-9\">\n          {/* Title */}\n          <h1 class=\"text-2xl leading-normal font-medium text-slate-900 md:text-center md:text-3xl lg:text-4xl dark:text-slate-200\">\n            {head.title}\n          </h1>\n\n          {/* Meta */}\n          <PostMeta\n            variant=\"post\"\n            authors={head.frontmatter.authors}\n            published={head.frontmatter.published}\n          />\n        </div>\n\n        {/* Cover */}\n        <PostCover variant=\"post\" label={head.frontmatter.cover} />\n\n        {/* Content */}\n        <div class=\"mdx flex w-full max-w-(--breakpoint-lg) flex-col lg:self-center\">\n          <Slot />\n\n          {/* Edit page buttton */}\n          <IconButton\n            class=\"mx-8 lg:mx-10\"\n            variant=\"secondary\"\n            type=\"link\"\n            href={`https://github.com/open-circle/valibot/blob/main/website/src/routes/blog/(posts)${location.url.pathname.slice(5)}index.mdx`}\n            target=\"_blank\"\n            label=\"Edit page\"\n          >\n            <PenIcon class=\"h-[18px]\" />\n          </IconButton>\n        </div>\n      </article>\n\n      {/* Credits */}\n      <div class=\"w-full max-w-(--breakpoint-lg)\">\n        <Credits />\n      </div>\n    </main>\n  );\n});\n"
  },
  {
    "path": "website/src/routes/blog/(posts)/should-we-change-the-object-schema/index.mdx",
    "content": "---\ncover: API Design\ntitle: Should we change the object schema?\ndescription: >-\n  Great news! Valibot v1 RC is just around the corner. There are only a few \n  issues holding us back.\npublished: 2025-01-18\nauthors:\n  - fabian-hiller\n  - andersk\n  - EltonLobo07\n---\n\nimport { Link } from '~/components';\n\nGreat news! Valibot v1 RC is just around the corner. There are only a few issues holding us back. One of them is [issue #983](https://github.com/open-circle/valibot/issues/983), which may lead to a breaking change. That's why I want to discuss this with you before making a final decision. This blog post will explain the current situation and the reasons for the proposed changes.\n\n## The problem\n\nCurrently, Valibot does not distinguish between missing and undefined object entries. This leads to a mismatch between the input and output values of a schema and their types when TypeScript's [`exactOptionalPropertyTypes` configuration](https://www.typescriptlang.org/tsconfig/#exactOptionalPropertyTypes) is enabled.\n\n```ts\nimport * as v from 'valibot';\n\n// This throws no error and types `output` as `{ key?: string }`\nconst Schema = v.object({ key: v.optional(v.string()) });\nconst output = v.parse(Schema, { key: undefined });\n\n// TypeScript thinks that `key` is a string if it is present\n// but this is wrong because `key` is actually `undefined`\nif ('key' in output) {\n  const key = output.key;\n}\n```\n\n## The solution\n\nThe solution to this mismatch is to finalize [PR #1013](https://github.com/open-circle/valibot/pull/1013) and change the implementation of <Link href=\"/api/object/\">`object`</Link> and <Link href=\"/api/optional/\">`optional`</Link> to distinguish between missing and undefined object entries. To allow missing entries, <Link href=\"/api/optional/\">`optional`</Link> must be used as the outermost schema of an object entry. To explicitly allow `undefined` as a value, another schema function called <Link href=\"/api/undefinedable/\">`undefinedable`</Link> must be used.\n\n{/* prettier-ignore */}\n```ts\nconst Schema = v.object({\n  key1: v.string(),                               // key1: string\n  key2: v.optional(v.string()),                   // key2?: string\n  key3: v.undefinedable(v.string()),              // key3: string | undefined\n  key4: v.optional(v.undefinedable(v.string())),  // key4?: string | undefined\n});\n```\n\n## The impact\n\nAs seen in the previous code example, defining an object entry that can be both missing and undefined gets a little verbose. This gets especially ugly if you define a default value for both cases.\n\n```ts\nconst Schema = v.object({\n  key: v.optional(\n    v.undefinedable(v.string(), 'undefinedable_default'),\n    'optional_default'\n  ),\n});\n```\n\nTo fix this, we could add a new function that covers both. The problem is that there is a third schema function called <Link href=\"/api/nullable/\">`nullable`</Link> that also allows `null` values. So adding a new function to cover every possible combination of <Link href=\"/api/optional/\">`optional`</Link>, <Link href=\"/api/undefinedable/\">`undefinedable`</Link> and <Link href=\"/api/nullable/\">`nullable`</Link> would result in 7 functions in total. I doubt this will make the API any better.\n\n## Let's discuss\n\nWhat do you think? Should we distinguish between missing and undefined object entries and fully support TypeScript's `exactOptionalPropertyTypes` configuration? If so, should we remove <Link href=\"/api/nullish/\">`nullish`</Link> and only provide 3 strong primitives with <Link href=\"/api/optional/\">`optional`</Link>, <Link href=\"/api/undefinedable/\">`undefinedable`</Link> and <Link href=\"/api/nullable/\">`nullable`</Link>? Or should we add 4 more functions to cover all possible combinations? If so, what names would you use?\n\nYour opinion matters to me. I encourage everyone to share their thoughts. Even quick feedback like \"I like this ... and I don't like that ...\" is welcome and will help to shape Valibot's future API design. Please discuss with us on [GitHub](https://github.com/open-circle/valibot/discussions/1022) or share your thoughts on social media.\n"
  },
  {
    "path": "website/src/routes/blog/(posts)/should-we-change-valibots-api/index.mdx",
    "content": "---\ncover: API Design\ntitle: Should we change Valibot's API?\ndescription: >-\n  Today I am writing this message to you to discuss the further development of Valibot's API.\npublished: 2024-02-29\nauthors:\n  - fabian-hiller\n  - Demivan\n  - xcfox\n---\n\nimport NpmDownloads from './npm-downloads.jpg?jsx';\n\nHi folks, I am [Fabian](https://github.com/fabian-hiller), the creator and maintainer of Valibot. Today I am writing this message to you to discuss the further development of Valibot's API. With currently more than 80,000 weekly downloads, the library is growing into a serious open source project used by thousands of JavaScript and TypeScript developers around the world.\n\n<NpmDownloads alt=\"Daily downloads from August 2023 to March 2024\" />\n\nIn the last few days I received two [API proposals](https://github.com/open-circle/valibot/discussions/453) from [@Demivan](https://github.com/Demivan) and [@xcfox](https://github.com/xcfox). Both of them addressed similar pain points of Valibot's current API design. As our v1 release is getting closer and closer, it is important to me to involve the community in such a big decision.\n\n## Current pain points\n\nValibot's current mental model is divided into schemas, methods, validations, and transformations. Schemas validate data types like strings, numbers and objects. Methods are small utilities that help you use or modify a schema. Validations and transformations are used in the `pipe` argument of a schema. They can make changes to the input and check other details, such as the formatting of a string.\n\n```ts\n// With Valibot's current API\nconst EmailSchema = string([toTrimmed(), email(), endsWith('@example.com')]);\n```\n\nA drawback of this API design is that the current pipeline implementation is not modular. This increases the initial bundle size of simple schemas like [`string`](https://valibot.dev/api/string/) by more than 200 bytes. This is almost 30% of the total bundle size.\n\nAnother pain point is that the current pipeline implementation does not allow you to transform the data type. This forced me to add a [`transform`](https://valibot.dev/api/transform/) method, resulting in two places where transformations can happen.\n\n```ts\n// With Valibot's current API\nconst NumberSchema = transform(string([toTrimmed(), decimal()]), (input) => {\n  return parseInt(input);\n});\n```\n\nSpeaking of methods, it can quickly become confusing if you need to apply multiple methods to the same schema, as these functions must always be nested.\n\n```ts\n// With Valibot's current API\nconst LengthSchema = brand(\n  transform(optional(string(), ''), (input) => input.length),\n  'Length'\n);\n```\n\nThe last pain point that comes to mind is that the current API design gives you less control over the input and output type of a schema. When working with form libraries, it can be useful to have an input type of `string | null` for the initial values, but an output type of just `string` for a required field.\n\n## The `pipe` function\n\nAfter several design iterations, [@Demivan](https://github.com/Demivan) came up with the idea of a `pipe` function. Similar to the current `pipe` argument, it can be used for validations and transformations. The first argument is always a schema, followed by various actions or schemas.\n\n```ts\n// With the new `pipe` function\nconst LoginSchema = object({\n  email: pipe(string(), minLength(1), email()),\n  password: pipe(string(), minLength(8)),\n});\n\n// With Valibot's current API\nconst LoginSchema = object({\n  email: string([minLength(1), email()]),\n  password: string([minLength(8)]),\n});\n```\n\nThe big difference is that the `pipe` function also allows you to transform the data type. This would allow us to move methods like [`transform`](https://valibot.dev/api/transform/) and [`brand`](https://valibot.dev/api/brand/) into the pipeline. This prevents nesting of functions for these methods and simplifies the mental model.\n\nWith the `pipe` function, the mental model is reduced to schemas, methods, and actions. Actions are always used within the `pipe` function to further validate and transform the input and type of a schema.\n\n> Alternative names for `pipe` are `flow` (idea by [@mtt-artis](https://github.com/mtt-artis)), `schema` (idea by [@genki](https://github.com/genki)), `compose` (idea by [@MohammedEsafi](https://github.com/MohammedEsafi)), and `vali` (idea by [@Hugos68](https://github.com/Hugos68)). Please [share](https://github.com/open-circle/valibot/discussions/463) your thoughts.\n\n## The advantages\n\nThe `pipe` function makes Valibot even more modular, resulting in a smaller bundle size for very simple schemas without a pipeline. For very complex schemas it reduces function nesting when using [`transform`](https://valibot.dev/api/transform/) and [`brand`](https://valibot.dev/api/brand/).\n\n```ts\n// With the new `pipe` function\nconst LengthSchema = pipe(\n  optional(string(), ''),\n  transform((input) => input.length),\n  brand('Length')\n);\n\n// With Valibot's current API\nconst LengthSchema = brand(\n  transform(optional(string(), ''), (input) => input.length),\n  'Length'\n);\n```\n\nIt also gives you more control over the input and output type, and simplifies the mental model by eliminating the confusion between the [`transform`](https://valibot.dev/api/transform/) method and the pipeline transformations of the current API.\n\n```ts\n// With the new `pipe` function\nconst NumberSchema = pipe(\n  string(),\n  toTrimmed(),\n  decimal(),\n  transform(parseInt)\n);\n\n// With Valibot's current API\nconst NumberSchema = transform(\n  string([toTrimmed(), decimal()]),\n  parseInt\n);\n```\n\nBesides that, the `pipe` function would also allow us to easily add a [metadata feature](https://github.com/open-circle/valibot/issues/373) to Valibot. This could be interesting when working with databases to define SQL properties like `PRIMARY KEY`.\n\n```ts\n// With the new `pipe` function\nconst UserSchema = pipe(\n  object({\n    id: pipe(string(), uuid(), primaryKey()),\n    name: pipe(string(), maxLength(32), unique()),\n    bio: pipe(string(), description('Text ...')),\n  }),\n  table('users')\n);\n```\n\n## The disadvantages\n\nThe main disadvantage of the `pipe` function is that it requires a bit more code to write for medium sized schemas, and for more complex schemas you may end up nesting multiple pipelines.\n\n```ts\n// With the new `pipe` function\nconst NumberSchema = pipe(\n  union([pipe(string(), decimal()), pipe(number(), integer())]),\n  transform(Number)\n);\n\n// With Valibot's current API\nconst NumberSchema = transform(\n  union([string([decimal()]), number([integer()])]),\n  Number\n);\n```\n\n## Let's discuss\n\nYour opinion matters to me. I encourage everyone to share their thoughts. Even quick feedback like \"I like this ... and I don't like that ...\" is welcome and will help to shape Valibot's future API design. Please discuss with me on [GitHub](https://github.com/open-circle/valibot/discussions/463) or share your thoughts on [Twitter](https://x.com/FabianHiller/status/1763253086464639035).\n"
  },
  {
    "path": "website/src/routes/blog/(posts)/valibot-v0.31.0-is-finally-available/index.mdx",
    "content": "---\ncover: v0.31.0\ntitle: Valibot v0.31.0 is finally available\ndescription: >-\n  After 3 months of hard work I am happy to announce that Valibot v0.31.0 is\n  finally available.\npublished: 2024-06-06\nauthors:\n  - fabian-hiller\n---\n\nimport { Link } from '~/components';\nimport IssueTypeDark from './issue-type-dark.jpg?jsx';\nimport IssueTypeLight from './issue-type-light.jpg?jsx';\nimport MentalModelDark from './mental-model-dark.jpg?jsx';\nimport MentalModelLight from './mental-model-light.jpg?jsx';\nimport StringSizeDark from './string-size-dark.jpg?jsx';\nimport StringSizeLight from './string-size-light.jpg?jsx';\n\nAfter 3 months of hard work I am happy to announce that Valibot v0.31.0 is finally available. This is not a regular release as we have rewritten the whole library from scratch.\n\nBased on your feedback and all the lessons learned from the past, we were able to drastically improve the mental model, bundle size, flexibility, type safety and stability of the library. I would like to highlight some of the major improvements and changes in this post.\n\n> Because this release introduces some breaking changes, we put a lot of effort into making the migration experience as smooth as possible. I worked closely with the open source community to create a detailed <Link href=\"/guides/migrate-to-v0.31.0/\">migration guide</Link> and two codemods to automatically update your schemas.\n\n## Mental model\n\nWe believe that Valibot will be easier to use because we have drastically improved the mental model. For a modular library like Valibot, this is crucial, as each functionality is imported as its own function.\n\nThe mental model is now reduced to **schemas**, **methods** and **actions**. Schemas are used to validate a specific data type like a string, object or date. They are the starting point for using Valibot.\n\nMethods help you either modify or use a schema. For example, the new <Link href=\"/api/pipe/\">`pipe`</Link> method extends the functionality of a schema by adding additional validation and transformation rules. When using a method, you always pass a schema as the first argument.\n\nFinally, there are actions. Actions are used exclusively in the pipeline of a schema. They can be used to further validate or transform a particular data type. For example, the following schema can be used to trim a string and check if it is a valid email address.\n\n<MentalModelDark\n  alt=\"Code example with a schema, method and actions\"\n  class=\"hidden dark:block\"\n/>\n<MentalModelLight\n  alt=\"Code example with a schema, method and actions\"\n  class=\"dark:hidden\"\n/>\n\n> We recommend using Valibot with a wildcard import as this improves the developer experience. Tree shaking still works when using `v.`. We tested it with various build-systems.\n\nYou can find a list of all schemas, methods and actions in our <Link href=\"/api/\">API reference</Link>.\n\n## Bundle Size\n\nAfter increasing the initial bundle size by introducing new features to the core of Valibot in the past, I am pleased to announce that this release reduces the individual bundle size of your schemas by approximately 15 to 30% without losing any functionality. This has been achieved by simplifying and unifying the internal structure and implementation.\n\nFor example, the <Link href=\"/api/string/\">`string`</Link> schema required 800 bytes in the previous version, while the same schema now requires only 560 bytes. This is a reduction of 30%. As the library is optimized for compression, and most of these bytes are shared across all schemas and actions, the bundle size increases only slightly when adding more schemas or actions.\n\n<StringSizeDark\n  alt=\"Comparison of string schema bundle size between v0.30.0 and v0.31.0\"\n  class=\"hidden dark:block\"\n/>\n<StringSizeLight\n  alt=\"Comparison of string schema bundle size between v0.30.0 and v0.31.0\"\n  class=\"dark:hidden\"\n/>\n\nFor example, adding the <Link href=\"/api/number/\">`number`</Link> schema increases the bundle size by only 40 bytes, resulting in a total bundle size of 600 bytes. This is a huge improvement and makes Valibot even more attractive when using schemas to validate unknown data in the browser, on the edge, or in serverless environments. A smaller bundle size can greatly improve the startup performance of your application by reducing the time it takes to download and parse the JavaScript code.\n\n> I am planning an experimental library with the same external API but slightly less functionality. If it works out, it could become a drop-in replacement if you do not need the full functionality of Valibot. I expect the initial bundle size of this library to start around 200 bytes. Stay tuned!\n\n## Flexibility\n\nAnother huge improvement is the flexibility gained by our new <Link href=\"/api/pipe/\">`pipe`</Link> method. Compared to the previous versions, we removed many limitation. For example, it is now possible to transform the data type inside of pipelines. This simplifies the usage and readability as it reduces function nesting.\n\n```ts\n// With the previous API\nconst BirthdaySchema = v.brand(\n  v.transform(v.string([v.isoDate()]), (input) => new Date(input)),\n  'birthday'\n);\n\n// With the brand new API\nconst BirthdaySchema = v.pipe(\n  v.string(),\n  v.isoDate(),\n  v.transform((input) => new Date(input)),\n  v.brand('birthday')\n);\n```\n\nFurthermore, it is now possible to extend the pipeline of an existing schema by adding additional validation and transformation rules. This makes it possible to reuse already created schemas to construct more specific ones. Similar to how you extend a class in object-oriented programming to make it more specialized.\n\n```ts\nconst EmailSchema = v.pipe(v.string(), v.email());\nconst GmailSchema = v.pipe(EmailSchema, v.endsWith('@gmail.com'));\n```\n\n## Type safety\n\nAfter I started working on a first draft in early March, I spent at least two weeks thinking about the structure and interplay of everything. I also thought a lot about the type safety of the library.\n\nPreviously, many parts were only typed generically. An example is the issues that a schema returns when parsing invalid data. Even though each issue contains very specific data depending on the schema or action, they were all previously typed as a generic `SchemaIssue`.\n\nThis changes with this release. Wherever possible, we have tried to achieve 100% type safety. You can even infer the issue type of any schema or action used. We expect this improvement to result in a better developer experience and fewer bugs.\n\n<IssueTypeDark\n  alt=\"Code example showing how the issue type of a schema is automatically inferred\"\n  class=\"hidden dark:block\"\n/>\n<IssueTypeLight\n  alt=\"Code example showing how the issue type of a schema is automatically inferred\"\n  class=\"dark:hidden\"\n/>\n\n## Stability\n\nOnce most of the decisions were made, we spent a lot of time writing unit and type tests. This explains why it took us two and a half months to release the first release candidate. The tests have allowed us to fix some previously undetected bugs and enhance the stability of the library in the long run.\n\nBefore v1, I would like to further improve the test coverage to be able to fully guarantee the functionality of each function. This is an ambitious goal, but I am confident that we will reach it soon.\n\n## Thank you!\n\nThis release was a team effort! Because so many of you contributed to this release in so many different ways, I am not able to mention everyone. However, I have tried to link all of your GitHub profiles and highlight some very important contributions. Please ping me if your avatar is missing.\n\n<ul class=\"mx-8! mt-10! flex list-none! flex-wrap gap-2 md:mt-12! lg:mx-10! lg:mt-14! lg:gap-3\">\n  {[\n    'Afsoon',\n    'AlexXanderGrib',\n    'Andarist',\n    'AndreyYolkin',\n    'ariskemper',\n    'colinhacks',\n    'Demivan',\n    'DylanThomasFr',\n    'EltonLobo07',\n    'GabrielHangor',\n    'Hugos68',\n    'IlyaSemenov',\n    'MohammedEsafi',\n    'MrGeniusProgrammer',\n    'Saeris',\n    'Sandros94',\n    'Sec-ant',\n    'alexbit-codemod',\n    'ammarriq',\n    'anuraghazra',\n    'arybitskiy',\n    'bingtsingw',\n    'brandonpittman',\n    'brenelz',\n    'chertik77',\n    'chimame',\n    'christophsturm',\n    'dboune',\n    'devcaeg',\n    'dusty',\n    'fredericoo',\n    'gmaxlev',\n    'homersimpsons',\n    'jansedlon',\n    'jchatard',\n    'joshwashywash',\n    'jsudelko',\n    'juliusmarminge',\n    'kovalchukq',\n    'linkb15',\n    'lukemorton',\n    'macarie',\n    'morgante',\n    'mtt-artis',\n    'mutewinter',\n    'mxdvl',\n    'nakanoasaservice',\n    'naveen-bharathi',\n    'sacrosanctic',\n    'samualtnorman',\n    'saturnonearth',\n    'seren5240',\n    'sillvva',\n    'ssalbdivad',\n    'vladshcherbin',\n    'xcfox',\n    'yudinmaxim',\n    'znycheporuk',\n  ].map((sponsor) => (\n    <li key={sponsor} class=\"m-0! p-0!\">\n      <a\n        href={`https://github.com/${sponsor}`}\n        target=\"_blank\"\n        rel=\"noreferrer\"\n      >\n        <img\n          width=\"88\"\n          height=\"88\"\n          loading=\"lazy\"\n          src={`https://github.com/${sponsor}.png?size=88`}\n          alt={`GitHub profile picture of @${sponsor}`}\n          class=\"w-9 rounded-full md:w-10 lg:w-11\"\n        />\n      </a>\n    </li>\n  ))}\n</ul>\n\nThanks to <a href=\"https://github.com/Demivan\">@Demivan</a> and <a href=\"https://github.com/xcfox\">@xcfox</a> for their contributions to the new API design. <a href=\"https://github.com/Demivan\">@Demivan</a> had the initial idea for the <Link href=\"/api/pipe/\">`pipe`</Link> method and helped me with many decisions along the way. Thanks to <a href=\"https://github.com/ariskemper\">@ariskemper</a> for influencing the new structure of our unit tests, thanks to <a href=\"https://github.com/EltonLobo07\">@EltonLobo07</a> for porting over 25 actions to the new implementation and thanks to <a href=\"https://github.com/anuraghazra\">@anuraghazra</a> for finding a TypeScript workaround that made the new <Link href=\"/api/pipe/\">`pipe`</Link> method possible in this way.\n\nI would also like to thank our partners and sponsors who provide intellectual and financial support to the project. In particular, I would like to thank the <a href=\"https://www.pace.edu/seidenberg\">Seidenberg School of Computer Science and Information Systems</a> at Pace University. Without their support over the past few months, this release would not have been possible.\n\n> Please <a href=\"mailto:hello@fabianhiller.com\">contact us</a> if your organization is interested in becoming a partner of Valibot to help us ensure the long-term development and maintenance of the project.\n"
  },
  {
    "path": "website/src/routes/blog/(posts)/valibot-v1-rc-is-available/index.mdx",
    "content": "---\ncover: Valibot v1 RC\ntitle: Valibot v1 RC is now available\ndescription: >-\n  Many of you have been waiting for our first stable release, and with this\n  blog post I am happy to announce that we are very very close.\npublished: 2025-02-10\nauthors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { Link } from '~/components';\nimport ChapterNavDark from './chapter-nav-dark.jpg?jsx';\nimport ChapterNavLight from './chapter-nav-light.jpg?jsx';\nimport MentalModelDark from './mental-model-dark.jpg?jsx';\nimport MentalModelLight from './mental-model-light.jpg?jsx';\nimport MonthlyDownloads from './monthly-downloads.webp?jsx';\nimport ObjectFixDark from './object-fix-dark.jpg?jsx';\nimport ObjectFixLight from './object-fix-light.jpg?jsx';\n\nAfter taking three steps back about a year ago to rewrite the entire library from scratch, Valibot has come back stronger than ever. In the past 12 months, the project has grown from 300k monthly downloads on npm to now more than 4.5 million. Many of you have been waiting for our first stable release, and with this blog post I am happy to announce that we are very very close.\n\n<MonthlyDownloads alt=\"Monthly downloads of Valibot in the past 12 months\" />\n\nWith this announcement post we want to look back on our work of the last months and show you the new features and functions you will enjoy when you upgrade to Valibot v1 RC.\n\n## Better API design\n\nIn June 2024 we released v0.31.0, introducing our new <Link href=\"/api/pipe/\">`pipe`</Link> API and massively improving Valibot's type safety. I recommend reading <Link href=\"../valibot-v0.31.0-is-finally-available/\">the blog post</Link> we published at the time to learn more. Even though it was a big change, we got a lot of positive feedback. That's why we kept <Link href=\"/guides/mental-model/\">the new mental model</Link> and have continued to improve the new API since then.\n\n<MentalModelDark\n  alt=\"Code example with a schema, method and actions\"\n  class=\"hidden dark:block\"\n/>\n<MentalModelLight\n  alt=\"Code example with a schema, method and actions\"\n  class=\"dark:hidden\"\n/>\n\n## Better compatibility\n\nA few months later, in September 2024, we intensified our work on [Standard Schema](https://standardschema.dev/). What had been just [an idea](https://x.com/colinhacks/status/1634284724796661761) was now starting to take shape. Together with [@colinhacks](https://github.com/colinhacks), the creator of [Zod](https://zod.dev/), we developed a first draft of the specification and investigated how it could be integrated into our libraries. Later, [@ssalbdivad](https://github.com/ssalbdivad), the creator of [ArkType](https://arktype.io/), joined us to help us get the details right.\n\nStandard Schema could be a game-changer not only for the further adoption and growth of Valibot, but also for the JavaScript ecosystem in general. If you haven't heard of it yet, you should definitely check it out. Thanks to Colin and David for this great collaboration!\n\nAnother part of our ecosystem compatibility efforts has been to develop and provide an official JSON Schema solution. Together with [@gcornut](https://github.com/gcornut), we created a new package called `@valibot/to-json-schema` that can convert Valibot schemas to their JSON Schema representation. I am proud of our implementation because it is fast, highly efficient (1.67 kB gzip), and can handle complex cases such as recursion. If you are interested in this topic, please have a look at our <Link href=\"/guides/json-schema/\">JSON Schema guide</Link>.\n\n```ts\nimport { toJsonSchema } from '@valibot/to-json-schema';\nimport * as v from 'valibot';\n\nconst ValibotEmailSchema = v.pipe(v.string(), v.email());\nconst JsonEmailSchema = toJsonSchema(ValibotEmailSchema);\n// -> { type: 'string', format: 'email' }\n```\n\n## Better object schema\n\nOur initial object schema implementation was good, but not perfect. It could not distinguish between missing and present but undefined properties, resulting in mismatches between validation logic and generated TypeScript types in edge cases.\n\nOver the past few weeks, we have fixed these issues and are now able to fully support TypeScript's [`exactOptionalPropertyTypes` configuration](https://www.typescriptlang.org/tsconfig/#exactOptionalPropertyTypes). We also fixed the order of optional properties in the generated TypeScript types. Thanks to [@andersk](https://github.com/andersk) for driving this effort!\n\n<ObjectFixDark\n  alt=\"Code example showing the order fix of optional object properties\"\n  class=\"hidden dark:block\"\n/>\n<ObjectFixLight\n  alt=\"Code example showing the order fix of optional object properties\"\n  class=\"dark:hidden\"\n/>\n\n## Better tree shaking\n\n[@antfu](https://github.com/antfu) himself created [a PR](https://github.com/open-circle/valibot/pull/995) in December 2024 to further improve Valibot's tree shaking capabilities. If you use some of your schemas only for their TypeScript type but not at runtime, for example to validate unknown data, they can now be fully tree-shaken and excluded from your production build, reducing the bundle size of your application even further.\n\n## Better documentation\n\nA few weeks ago we made some nice UI and UX improvements to Valibot's documentation and playground. For example, there is now a \"play\" button to open the code snippets of our guides directly in our playground. Also, you can now enable chapter navigation in Valibot's documentation to make it easier to navigate through the content of a large page.\n\n<ChapterNavDark\n  alt=\"Screenshot of our new chapter navigation feature\"\n  class=\"hidden dark:block\"\n/>\n<ChapterNavLight\n  alt=\"Screenshot of our new chapter navigation feature\"\n  class=\"dark:hidden\"\n/>\n\nI would also like to point out that [@EltonLobo07](https://github.com/EltonLobo07) finalized the last pages of our <Link href=\"/api/\">API reference</Link>. With more than 600 pages, this was a huge effort driven by several community members over the last year. Thanks to everyone who contributed!\n\n## Other highlights\n\nIn addition to these bigger changes, we shipped many new functions and improved the implementation of existing ones. For example, we added a <Link href=\"/api/function/\">`function`</Link> and <Link href=\"/api/promise/\">`promise`</Link> schema along with <Link href=\"/api/args/\">`args`</Link>, <Link href=\"/api/returns/\">`returns`</Link>, and <Link href=\"/api/awaitAsync/\">`awaitAsync`</Link> actions to support validation of JavaScript functions and promises.\n\nWe also shipped a <Link href=\"/api/rawCheck/\">`rawCheck`</Link> and <Link href=\"/api/rawTransform/\">`rawTransform`</Link> action to give you full control in edge cases. They allow you to hook into the raw implementation of <Link href=\"/api/pipe/\">`pipe`</Link> to write advanced validation and transformation logic.\n\nAnother cool addition to Valibot's capabilities is our new <Link href=\"/guides/pipelines/#metadata\">metadata feature</Link>. This is especially useful for documentation purposes and for deep integration of the schema library with other libraries. For example, an ORM could now provide its own metadata actions such as `table`, `primaryKey` and `index` built on top of Valibot instead of writing everything from scratch.\n\n```ts\nimport * as o from 'orm-actions';\nimport * as v from 'valibot';\n\nconst UserTableSchema = v.pipe(\n  v.object({\n    id: v.pipe(v.number(), v.integer(), o.primaryKey()),\n    name: v.pipe(v.string(), v.nonEmpty(), o.index()),\n    email: v.pipe(v.string(), v.email(), o.index()),\n    // ...\n  }),\n  o.table('users')\n);\n```\n\nThere are many more new exciting functions like <Link href=\"/api/assert/\">`assert`</Link>, <Link href=\"/api/rfcEmail/\">`rfcEmail`</Link> and <Link href=\"/api/maxWords/\">`maxWords`</Link>. Please have a look at [the release on GitHub](https://github.com/open-circle/valibot/releases/tag/v1.0.0-rc.0) and our <Link href=\"/api/\">API reference</Link> for more details.\n\n## What's next?\n\nMany more validation actions like `ltValue`, `gtValue`, `values`, `notValues`, `slug`, `toSnakeCase` and `btcAddress` are already implemented and will be reviewed and merged soon. This shows the great advantage of a modular architecture, as we can add more and more features without increasing the size of your individual bundle. One day, everything you need will be just a Valibot action away. 😎\n\nWe expect Valibot to reach v1 in 3 to 6 weeks. Please upgrade now to give us lots of feedback in the meantime. An official migration guide will be available soon, but most of you who are already on >=v0.31.0 will most likely be able to upgrade without touching any existing code.\n"
  },
  {
    "path": "website/src/routes/blog/(posts)/valibot-v1-the-1-kb-schema-library/index.mdx",
    "content": "---\ncover: Valibot v1\ntitle: Valibot v1 - The 1 kB schema library\ndescription: >-\n  I am excited to announce the release of Valibot v1, a 1 kB alternative to\n  Zod with a type-safe and easy-to-remember API.\npublished: 2025-03-19\nauthors:\n  - fabian-hiller\n---\n\nimport clsx from 'clsx';\nimport { Link } from '~/components';\nimport { PlayIcon } from '~/icons';\nimport { valibotTalkDarkUrl, valibotTalkLigthUrl } from '~/images';\nimport {\n  AlgoliaLogo,\n  BoltLogo,\n  BuilderLogo,\n  DailyDevLogo,\n  DigitalOceanLogo,\n  HdmLogo,\n  NetlifyLogo,\n  PaceLogo,\n  StainlessLogo,\n  VercelLogo,\n} from '~/logos';\nimport ValibotTalk from './valibot-talk.webp?jsx';\n\nI am excited to announce the release of Valibot v1. Valibot is a modular and fully tree-shakable schema library that helps you describe and validate your data with a type-safe and easy-to-remember API. As a 1 kB alternative to Zod, Valibot is perfect for validating forms and securing backend-frontend communication with a single source of truth.\n\n## How everything started\n\nSome of you may remember my [introduction post](https://www.builder.io/blog/introducing-valibot) that I published on Builder.io in July 2023 with my supervisors Miško Hevery (creator of Angular and Qwik) and Ryan Carniato (creator of SolidJS). Back then, as part of my [bachelor thesis](https://valibot.dev/thesis.pdf), I was investigating how to drastically reduce the bundle size of JavaScript libraries by more then 90%. As part of my research, I analysed [Zod](https://zod.dev/), [ArkType](https://arktype.io/) and [Typia](https://typia.io/), and created with Valibot a new schema library from scratch.\n\nIf all this makes you curious, you should definitely check out the talk I gave last October at the web development meetup I hosted with Miško Hevery and Rich Harris at Pace University.\n\n<div class=\"relative mx-3 flex aspect-video items-center justify-center overflow-hidden rounded-2xl lg:mx-10 lg:rounded-3xl 2xl:mx-0\">\n  <ValibotTalk\n    class=\"absolute -z-10 h-full w-full\"\n    alt=\"Talk: Going fully modular with Valibot\"\n  />\n  <a\n    class=\"focus-ring absolute flex h-10 w-16 animate-bounce items-center justify-center rounded-xl! bg-sky-500/10 backdrop-blur hover:bg-sky-500/20 md:h-12 md:w-20 lg:h-16 lg:w-28 lg:backdrop-blur-lg dark:bg-sky-400/10 dark:hover:bg-sky-400/20\"\n    href=\"https://youtu.be/AnXbYrGdxv0\"\n    target=\"_blank\"\n    rel=\"noreferrer\"\n  >\n    <PlayIcon class=\"h-4 text-sky-500 md:h-5 lg:h-6 dark:text-sky-400\" />\n  </a>\n</div>\n\n## How the 1 kB thing works\n\nSimilar to how types can be defined in TypeScript, Valibot allows you to define a schema with various small functions. This applies to primitive values like strings as well as to more complex data sets like objects. In addition, the library helps to perform more detailed validations and transformations with the help of pipelines.\n\n{/* prettier-ignore */}\n```ts\nimport * as v from 'valibot'; // 1.31 kB\n\n// Create login schema with email and password\nconst LoginSchema = v.object({\n  email: v.pipe(v.string(), v.email()),\n  password: v.pipe(v.string(), v.minLength(8)),\n});\n\n// Infer output TypeScript type of login schema as\n// { email: string; password: string }\ntype LoginData = v.InferOutput<typeof LoginSchema>;\n\n// Throws error for email and password\nconst output1 = v.parse(LoginSchema, { email: '', password: '' });\n\n// Returns data as { email: string; password: string }\nconst output2 = v.parse(LoginSchema, {\n  email: 'jane@example.com',\n  password: '12345678',\n});\n```\n\nInstead of relying on a few large classes or functions with many methods, Valibot's API design is based on many small and independent functions. Each with just a few lines of code and a single task. This modular design has several advantages.\n\nOn the one hand, it provides the flexibility to replace and extend Valibot's functions with custom code. On the other hand, it makes the source code more robust and secure, because the functionality of a single function as well as special edge cases can be tested more specifically. This makes it easy for us to achieve 100% test coverage, reducing bugs to a minimum.\n\nHowever, perhaps the biggest advantage is that a bundler like [Rolldown](https://rolldown.rs/) or [Rspack](https://rspack.dev/) can use the static import statements to remove any code that is not needed. Thus, only the code that is actually used ends up in your production build. This allows us to extend the functionality of the library without increasing your individual bundle size, which is between 1 and 2 kB for most users.\n\nThis can make a big difference, especially for client-side validation and serverless environments, by reducing bundle size and speeding up startup time.\n\n> Curious to learn more? Check out the [publication of my bachelor thesis](https://www.builder.io/blog/valibot-bundle-size), where I explain why Valibot can be 10x smaller than Zod.\n\n## Who is using Valibot?\n\nWe are proud that Valibot is used on sites like [The Guardian](https://www.theguardian.com/) and that our work adds value to more than 50,000 dependent public GitHub repositories. Our users include many startups and open source projects such as [Rolldown](https://rolldown.rs/) and [React Router](https://reactrouter.com/). Chances are you have already run a Valibot schema on your devices without even knowing it.\n\nValibot has grown from a research paper to a community-driven project with more than 140 contributors and various partners. I want to give a shoutout to [Elton](https://github.com/EltonLobo07), who joined the project as a co-maintainer. He helped rewrite the entire library from scratch and contributed a significant amount to the API reference in our docs. Another shoutout goes to [CodingBill](https://github.com/Bilboramix), who has become a moderator on Discord. If you have any schema-related questions, he is the guy to talk to!\n\nBelow you will find our most influential contributors as well as our current and past sponsors and partners who helped make Valibot v1 possible. If your company uses Valibot and benefits from our work, please consider supporting the project through [GitHub sponsors](https://github.com/open-circle/valibot).\n\n<ul class=\"mx-8! mt-10! flex list-none! flex-wrap gap-2 md:mt-12! lg:mx-10! lg:mt-14! lg:gap-3\">\n  {[\n    'Bilboramix',\n    'Demivan',\n    'EltonLobo07',\n    'Saeris',\n    'UniquePixels',\n    'andersk',\n    'anuraghazra',\n    'ariskemper',\n    'colinhacks',\n    'gcornut',\n    'kazizi55',\n    'kurtextrem',\n    'mhevery',\n    'ruiaraujo012',\n    'ryansolid',\n    'ssalbdivad',\n    'xcfox',\n  ].map((sponsor) => (\n    <li key={sponsor} class=\"m-0! p-0!\">\n      <a\n        href={`https://github.com/${sponsor}`}\n        target=\"_blank\"\n        rel=\"noreferrer\"\n      >\n        <img\n          width=\"88\"\n          height=\"88\"\n          loading=\"lazy\"\n          src={`https://github.com/${sponsor}.png?size=88`}\n          alt={`GitHub profile picture of @${sponsor}`}\n          class=\"w-9 rounded-full md:w-10 lg:w-11\"\n        />\n      </a>\n    </li>\n  ))}\n</ul>\n\n<ul class=\"mx-8! mt-10! flex list-none! flex-wrap gap-2 md:mt-12! lg:mx-10! lg:mt-14! lg:gap-3\">\n  {[\n    'antfu',\n    '/andrewmd5',\n    '/osdiab',\n    '/hyunbinseo',\n    '/F0rce',\n    '/caegdeveloper',\n    '/Thanaen',\n    '/ruiaraujo012',\n    '/dslatkin',\n    '/jdgamble555',\n    '/KubaJastrz',\n    '/BrianCurliss',\n    '/nickytonline',\n    '/marcusbuffett',\n    '/ffMathy',\n    '/KATT',\n    '/armandsalle',\n    '/aggroot',\n    '/herodevs',\n    '/luckasnix',\n    '/akhmadqasim',\n    '/ivan-mihalic',\n    '/seahindeniz',\n    '/richardvanbergen',\n    '/isoden',\n    '/andrew-3kb',\n    '/herkulano',\n  ].map((sponsor) => (\n    <li key={sponsor} class=\"m-0! p-0!\">\n      <a\n        href={`https://github.com/${sponsor}`}\n        target=\"_blank\"\n        rel=\"noreferrer\"\n      >\n        <img\n          width=\"88\"\n          height=\"88\"\n          loading=\"lazy\"\n          src={`https://github.com/${sponsor}.png?size=88`}\n          alt={`GitHub profile picture of @${sponsor}`}\n          class=\"w-9 rounded-full md:w-10 lg:w-11\"\n        />\n      </a>\n    </li>\n  ))}\n</ul>\n\n<ul class=\"mx-8! mt-10! flex list-none! flex-wrap gap-x-6 gap-y-3 md:mt-12! md:gap-x-8 md:gap-y-4 lg:mx-10! lg:mt-14! lg:gap-x-10 lg:gap-y-5\">\n  {[\n    { Logo: PaceLogo, href: 'https://www.pace.edu' },\n    { Logo: BoltLogo, href: 'https://bolt.new/' },\n    { Logo: BuilderLogo, href: 'https://www.builder.io' },\n    { Logo: HdmLogo, href: 'https://www.hdm-stuttgart.de' },\n    { Logo: DailyDevLogo, href: 'https://daily.dev/' },\n    { Logo: StainlessLogo, href: 'https://www.stainless.com/' },\n    { Logo: VercelLogo, href: 'https://vercel.com' },\n    { Logo: AlgoliaLogo, href: 'https://www.algolia.com' },\n    { Logo: NetlifyLogo, href: 'https://www.netlify.com' },\n    { Logo: DigitalOceanLogo, href: 'https://www.digitalocean.com/' },\n  ].map(({ Logo, href }) => (\n    <li key={href} class=\"m-0! p-0!\">\n      <a href={href} target=\"_blank\" rel=\"noreferrer\">\n        <Logo class=\"h-9 md:h-11 lg:h-12\" />\n      </a>\n    </li>\n  ))}\n</ul>\n\n## What's next on our list?\n\nWith Valibot v1, you can rest assured that the library is stable and ready for production. But we are not done yet, we are basically just getting started. On our list are things like a VS Code extension to improve the developer experience, a Zod-to-Valibot codemod to increase adoption, and an OpenAPI package to improve compatibility with other libraries. If you would like to lead or contribute to these efforts, please [contact us on Discord](https://discord.gg/tkMjQACf2P)!\n\n> Just in case this is the first time you hear about Valibot and you have never tried it before, feel free to take a look at our <Link href='/guides/quick-start/' target='_blank'>quick start guide</Link> and experiment with the library in our <Link href='/playground/' target='_blank'>online playground</Link>.\n"
  },
  {
    "path": "website/src/routes/blog/(posts)/valibot-v1.1-release-notes/index.mdx",
    "content": "---\ncover: Valibot v1.1\ntitle: Valibot v1.1 release notes\ndescription: >-\n  Valibot v1.1 is out! This version comes with many new actions and methods to\n  simplify your code even more!\npublished: 2025-05-07\nauthors:\n  - fabian-hiller\n  - EltonLobo07\n---\n\nimport { Link } from '~/components';\n\nValibot v1.1 is out! This version comes with many new actions and methods to simplify your code even more! For example, you can now define a custom error message with our new <Link href=\"/api/message/\">`message`</Link> method for multiple schemas and actions at once, or use our new <Link href=\"/api/summarize/\">`summarize`</Link> method to summarize your validation errors into a pretty-printable multi-line string.\n\nThis is our first minor release since v1, and it is worth mentioning that there has been no need for a patch release since then. The work we put into our type and unit tests to reach 100% test coverage is paying off! Before we dive into the details of Valibot v1.1, I want to give a quick update on our newest partners and contributors.\n\n## New partners and contributors\n\nWe are excited to announce [Motion](https://www.usemotion.com/) as our newest partner. Motion builds an AI-powered project management software and uses Valibot to validate user input in their web application. They are a great example of how Valibot can be used at scale in a real-world application, and we are thrilled to have them on board. In addition, [DigitalOcean](https://www.digitalocean.com/) has extended their support and we will soon be able to announce another exciting partnership.\n\nWe would also like to welcome [@muningis](https://github.com/muningis) and [@EskiMojo14](https://github.com/EskiMojo14) as new contributors to the project, who have had a big impact on this release. Thank you for your hard work and dedication to making Valibot better for everyone!\n\n## Easier custom error messages\n\nPreviously, it was a bit cumbersome to define the same custom error messages for multiple schemas and actions. You could use our <Link href=\"/api/config/\">`config`</Link> method or just repeat the same message over and over again. With Valibot v1.1 this got a lot easier! You can now use the <Link href=\"/api/message/\">`message`</Link> method to define a custom error message for multiple schemas and actions at once.\n\n```ts\nconst EmailSchema = v.message(\n  v.pipe(v.string(), v.trim(), v.nonEmpty(), v.email(), v.maxLength(100)),\n  'The email is not in the required format.'\n);\n```\n\n## Simpler error pretty-printing\n\nInspired by Zod v4's new `prettifyError` method and pushed by [@MOZGIII](https://github.com/MOZGIII)'s feedback on GitHub, we now provide an official way to format all your validation errors into a pretty printable multi-line string. This is especially useful for debugging and logging purposes, as it gives you a great overview of everything that went wrong.\n\nImagine the following issues returned after the user entered invalid data into a login form:\n\n```json\n[\n  {\n    kind: \"validation\",\n    type: \"email\",\n    input: \"jane@example\",\n    expected: null,\n    received: \"\\\"jane@example\\\"\",\n    message: \"Invalid email: Received \\\"jane@example\\\"\",\n    requirement: /^[\\w+-]+(?:\\.[\\w+-]+)*@[\\da-z]+(?:[.-][\\da-z]+)*\\.[a-z]{2,}$/iu,\n    path: [...],\n  }, {\n    kind: \"validation\",\n    type: \"min_length\",\n    input: \"1234567\",\n    expected: \">=8\",\n    received: \"7\",\n    message: \"Invalid length: Expected >=8 but received 7\",\n    requirement: 8,\n    path: [...],\n  }\n]\n```\n\nUsing the new <Link href=\"/api/summarize/\">`summarize`</Link> method, you can now format this into a human-readable string:\n\n```\n× Invalid email: Received \"jane@example\"\n  → at email\n× Invalid length: Expected >=8 but received 7\n  → at password\n```\n\nWe will consider using <Link href=\"/api/summarize/\">`summarize`</Link> for the default error message when throwing a <Link href=\"/api/ValiError/\">`ValiError`</Link> for Valibot's next major release. Please join [this issue](https://github.com/open-circle/valibot/issues/1139) on GitHub to discuss with us.\n\n## Extract metadata with one line\n\nA probably still very underrated feature are our metadata actions. With <Link href=\"/api/title/\">`title`</Link>, <Link href=\"/api/description/\">`description`</Link> and <Link href=\"/api/metadata/\">`metadata`</Link> we provide 3 common metadata actions already out-of-the-box. But Valibot's modularity also allows you to build your own metdata actions on top! For example, this allows you to build your own ORM on top of Valibot to define the schema of your models.\n\n```ts\nimport * as o from 'orm-actions';\nimport * as v from 'valibot';\n\nconst UserTableSchema = v.pipe(\n  v.object({\n    id: v.pipe(v.number(), v.integer(), o.primaryKey()),\n    name: v.pipe(v.string(), v.nonEmpty(), o.index()),\n    email: v.pipe(v.string(), v.email(), o.index()),\n    // ...\n  }),\n  o.table('users')\n);\n```\n\nWith Valibot v1.1 we have expanded our out-of-the-box capabilities with 3 new methods. With <Link href=\"/api/getTitle/\">`getTitle`</Link>, <Link href=\"/api/getDescription/\">`getDescription`</Link> and <Link href=\"/api/getMetadata/\">`getMetadata`</Link> you can now extract the metadata of a schema with a single line of code. All 3 methods use special algorithms to extract the correct metadata even if multiple metadata actions are defined. For example, <Link href=\"/api/getMetadata/\">`getMetadata`</Link> shallow merges multiple metadata using depth-first search and returns a correctly typed object.\n\n```ts\nconst Schema1 = v.pipe(v.string(), v.metadata({ key1: 'foo', key2: 'bar' }));\nconst Schema2 = v.pipe(Schema1, v.metadata({ key2: 'baz', key3: 'qux' }));\n\nconst metadata = v.getMetadata(Schema2); // { key1: 'foo', key2: 'baz', key3: 'qux' }\n```\n\n## Parse and stringify JSON\n\nA probably long awaited feature was a native way to parse and stringify JSON in Valibot's pipelines. This is now possible with our new <Link href=\"/api/parseJson/\">`parseJson`</Link> and <Link href=\"/api/stringifyJson/\">`stringifyJson`</Link> transformation actions. They automatically catch errors and take care of all edge cases, and you can combine them with other schemas and actions for 100% reliable results.\n\n```ts\nconst ProductSchema = v.pipe(\n  v.string(),\n  v.parseJson(),\n  v.object({\n    id: v.pipe(v.string(), v.uuid()),\n    name: v.pipe(v.string(), v.nonEmpty()),\n    price: v.pipe(v.number(), v.minValue(0)),\n    tags: v.pipe(v.array(v.string()), v.maxLength(10)),\n  })\n);\n```\n\nFor a full list of new features and changes, please see [the release notes](https://github.com/open-circle/valibot/releases/tag/v1.1.0) on GitHub.\n\n## The future is bright!\n\n[@EltonLobo07](https://github.com/EltonLobo07) has started working on an official Zod-to-Valibot codemod! We will be releasing some updates and demos soon. We also plan to focus a bit more on educating developers on the benefits of choosing Valibot. Stay tuned for more content on social media and this blog in the coming weeks and months!\n\nWe have also started using [milestones on GitHub](https://github.com/open-circle/valibot/milestones) to keep track of our progress and give you a better overview of what we are currently working on. Feel free to take a look at what's coming in Valibot v1.2 and beyond and please contact us if you have any questions or suggestions. We are always happy to hear from you!\n"
  },
  {
    "path": "website/src/routes/blog/(posts)/valibot-v1.2-release-notes/index.mdx",
    "content": "---\ncover: Valibot v1.2\ntitle: 'Valibot v1.2: Type coercion, AI metadata, and ISBN validation'\ndescription: >-\n  Valibot v1.2 adds powerful transformation actions for type coercion, new\n  metadata features to improve AI tool integration, and ISBN validation.\npublished: 2025-11-24\nauthors:\n  - fabian-hiller\n  - EskiMojo14\n  - flySewa\n---\n\nimport { Link } from '~/components';\n\nValibot v1.2 adds powerful transformation actions for type coercion, new metadata features to improve AI tool integration, and ISBN validation. These additions make it easier to work with forms, APIs, and AI-powered applications while maintaining Valibot's modular design and minimal bundle size.\n\n> This release also includes an important security fix for a ReDoS vulnerability in the <Link href=\"/api/emoji/\">`emoji`</Link> action. If you're using this action, we strongly recommend upgrading as soon as possible.\n\nHuge thanks to [@EskiMojo14](https://github.com/EskiMojo14) for implementing type coercion and examples metadata, and to [@ysknsid25](https://github.com/ysknsid25), a certified librarian, for contributing ISBN validation.\n\n## Type coercion actions\n\nFive new transformation actions make type coercion straightforward: <Link href=\"/api/toBigint/\">`toBigint`</Link>, <Link href=\"/api/toBoolean/\">`toBoolean`</Link>, <Link href=\"/api/toDate/\">`toDate`</Link>, <Link href=\"/api/toNumber/\">`toNumber`</Link>, and <Link href=\"/api/toString/\">`toString`</Link>.\n\nPerfect for HTML forms and query parameters where everything arrives as strings. These actions use JavaScript's native coercion functions with added error handling. For example, `toNumber` checks for `NaN` after conversion, and `toDate` validates that the resulting date is valid.\n\n```ts\nimport * as v from 'valibot';\n\n// Coerce form data to proper types\nconst FormSchema = v.object({\n  quantity: v.pipe(v.string(), v.toNumber()),\n  balance: v.pipe(v.string(), v.toBigint()),\n  createdAt: v.pipe(v.string(), v.toDate()),\n});\n\n// Input: { quantity: '25', balance: '1000', createdAt: '2025-11-23' }\n// Output: { quantity: 25, balance: 1000n, createdAt: Date }\n```\n\nUnlike Zod's `z.coerce`, Valibot's coercion actions can be composed anywhere in your pipeline, giving you precise control over when and how transformations occur.\n\n```ts\nconst QuerySchema = v.object({\n  page: v.pipe(\n    v.string(),\n    v.toNumber(),\n    v.integer(),\n    v.minValue(1),\n    v.maxValue(999)\n  ),\n  limit: v.pipe(\n    v.string(),\n    v.toNumber(),\n    v.integer(),\n    v.minValue(1),\n    v.maxValue(100)\n  ),\n});\n```\n\n## Examples for AI tools and documentation\n\nAs AI-powered applications become standard, providing machine-readable metadata about your schemas is increasingly important. The new <Link href=\"/api/examples/\">`examples()`</Link> action lets you attach example values to any schema.\n\n```ts\nimport * as v from 'valibot';\n\nconst UserSchema = v.object({\n  id: v.pipe(\n    v.string(),\n    v.uuid(),\n    v.examples(['550e8400-e29b-41d4-a716-446655440000'])\n  ),\n  name: v.pipe(\n    v.string(),\n    v.nonEmpty(),\n    v.examples(['Alice Smith', 'Bob Johnson'])\n  ),\n  email: v.pipe(\n    v.string(),\n    v.email(),\n    v.examples(['alice@example.com', 'bob@example.com'])\n  ),\n});\n\n// Extract email examples\nconst emailExamples = v.getExamples(UserSchema.entries.email);\n```\n\nWhen multiple <Link href=\"/api/examples/\">`examples()`</Link> actions appear in a pipeline, <Link href=\"/api/getExamples/\">`getExamples()`</Link> automatically concatenates them using depth-first search, giving you a complete list of all examples in the schema tree. Use this for AI tool integration, generating documentation, or creating test fixtures.\n\n## ISBN validation\n\nThanks to [@ysknsid25](https://github.com/ysknsid25), a certified librarian, we now have built-in <Link href=\"/api/isbn/\">`isbn()`</Link> validation for both ISBN-10 and ISBN-13 formats.\n\n```ts\nimport * as v from 'valibot';\n\nconst BookSchema = v.object({\n  title: v.pipe(v.string(), v.nonEmpty()),\n  isbn: v.pipe(v.string(), v.isbn('The ISBN is badly formatted.')),\n  author: v.pipe(v.string(), v.nonEmpty()),\n});\n\n// Valid ISBN-10 formats:\n// '0-306-40615-2', '0306406152', '0 306 40615 2'\n\n// Valid ISBN-13 formats:\n// '978-0-306-40615-7', '9780306406157', '978 0 306 40615 7'\n```\n\nThe action accepts hyphens and spaces as separators and validates the checksum to ensure mathematical correctness. Perfect for library management systems, bookstores, or any application handling book identifiers.\n\n## Security fix: ReDoS vulnerability\n\nThis release also includes an important security fix for a ReDoS (Regular Expression Denial of Service) vulnerability in the `EMOJI_REGEX` pattern used by the <Link href=\"/api/emoji/\">`emoji`</Link> action. If you're using the <Link href=\"/api/emoji/\">`emoji`</Link> action in your application, we strongly recommend upgrading to v1.2 as soon as possible.\n\nThe vulnerability could allow an attacker to cause excessive CPU usage by providing specially crafted input strings. We've updated the regex pattern to eliminate this risk while maintaining the same validation functionality. Thank you to [@makenowjust](https://github.com/makenowjust) for finding and responsibly disclosing this issue.\n\n## Faster builds with tsdown\n\nWe've switched from tsup to [tsdown](https://www.npmjs.com/package/tsdown) (built on [Rolldown](https://rolldown.rs/), which uses Valibot for validation). This speeds up our build times.\n\n## New partner announcement\n\nWe're excited to welcome [LambdaTest](https://lambdatest.com/) as a new partner! LambdaTest is a leading cloud-based testing platform that helps developers test their web applications across 3000+ browsers and operating systems. If your company uses Valibot and benefits from our work, please consider supporting the project through [GitHub sponsors](https://github.com/open-circle/valibot).\n\n## What's next?\n\nWe're creating more guides to help you get the most out of Valibot. Got a specific use case or pattern you'd like us to cover? Let us know on [Discord](https://discord.gg/Jwf9vjvReZ) or open a discussion on [GitHub](https://github.com/open-circle/valibot/discussions).\n\nNew to Valibot? [Get started](/start). Coming from Zod? [Migration guide](/migration). [Full changelog](https://github.com/open-circle/valibot/releases/tag/v1.2.0).\n"
  },
  {
    "path": "website/src/routes/blog/(posts)/valibot-v1.3-release-notes/index.mdx",
    "content": "---\ncover: Valibot v1.3\ntitle: 'Valibot v1.3: Smarter pipelines, result caching, and new validators'\ndescription: >-\n  Valibot v1.3 adds new pipeline tools for type refinement and boolean parsing,\n  introduces schema result caching, and expands string validation with domain,\n  JWS compact, and ISRC checks.\npublished: 2026-03-17\nauthors:\n  - fabian-hiller\n---\n\nimport { Link } from '~/components';\n\nValibot v1.3 adds new tools for building smarter pipelines, avoiding repeated validation work, and validating more real-world string formats. With <Link href=\"/api/guard/\">`guard`</Link> and <Link href=\"/api/parseBoolean/\">`parseBoolean`</Link> you can refine types and parse boolish input directly in a pipeline, while <Link href=\"/api/cache/\">`cache`</Link> helps you reuse schema results for repeated inputs. This release also adds <Link href=\"/api/domain/\">`domain`</Link>, <Link href=\"/api/jwsCompact/\">`jwsCompact`</Link>, and <Link href=\"/api/isrc/\">`isrc`</Link>, plus a few important compatibility fixes.\n\n## TL;DR\n\n- New pipeline tools: <Link href=\"/api/guard/\">`guard`</Link> for type refinement and <Link href=\"/api/parseBoolean/\">`parseBoolean`</Link> for boolish input.\n- New caching APIs: <Link href=\"/api/cache/\">`cache`</Link> and <Link href=\"/api/cacheAsync/\">`cacheAsync`</Link>.\n- New validators: <Link href=\"/api/domain/\">`domain`</Link>, <Link href=\"/api/jwsCompact/\">`jwsCompact`</Link>, and <Link href=\"/api/isrc/\">`isrc`</Link>.\n- Compatibility fixes for <Link href=\"/api/creditCard/\">`creditCard`</Link>, <Link href=\"/api/isoTimestamp/\">`isoTimestamp`</Link>, and deeply readonly defaults and fallbacks.\n\nHuge thanks to [@EskiMojo14](https://github.com/EskiMojo14), [@yslpn](https://github.com/yslpn), [@alexilyaev](https://github.com/alexilyaev), [@idleberg](https://github.com/idleberg), [@BerkliumBirb](https://github.com/BerkliumBirb), and [@frenzzy](https://github.com/frenzzy) for their contributions to this release.\n\n## Smarter pipelines\n\nTwo new additions make it easier to refine and transform data directly inside a pipeline. <Link href=\"/api/guard/\">`guard`</Link> lets you narrow values using an existing type predicate (a function that checks and confirms a more specific type), and <Link href=\"/api/parseBoolean/\">`parseBoolean`</Link> turns common boolish input into a real boolean.\n\nThis is especially useful when your input starts as a broad type and becomes more precise step by step.\n\n```ts\nimport * as v from 'valibot';\n\ntype PixelString = `${number}px`;\n\nconst SizeSchema = v.pipe(\n  v.string(),\n  v.guard((input): input is PixelString => /^\\d+px$/u.test(input))\n);\n\n// Output type: `${number}px`\nconst size = v.parse(SizeSchema, '320px');\n```\n\n`parseBoolean` is built for the kind of values you often get from environment variables, query strings, and forms. By default, it accepts values like `\"true\"`, `\"1\"`, `\"yes\"`, `\"on\"`, `\"enabled\"`, `\"false\"`, `\"0\"`, `\"no\"`, `\"off\"`, and `\"disabled\"`. String matching is case-insensitive, and you can define your own truthy and falsy values when needed.\n\n```ts\nimport * as v from 'valibot';\n\nconst EnvSchema = v.object({\n  PROD: v.pipe(v.string(), v.parseBoolean()),\n  LOG_MODE: v.pipe(\n    v.string(),\n    v.parseBoolean({\n      truthy: ['verbose', 'chatty'],\n      falsy: ['silent', 'quiet'],\n    })\n  ),\n});\n```\n\nTogether, these APIs make it easier to keep transformation, validation, and type refinement inside a single pipeline instead of splitting logic across helper functions.\n\n## Schema result caching\n\nIf you validate or transform the same input more than once, <Link href=\"/api/cache/\">`cache`</Link> can save work by caching the output of a schema. This is useful when parsing is expensive, when the same value appears repeatedly, or when a pipeline is reused in hot paths.\n\n```ts\nimport * as v from 'valibot';\nimport { isUsernameAvailable } from '~/api';\n\nconst UsernameSchema = v.cacheAsync(\n  v.pipe(\n    v.string(),\n    v.minLength(3),\n    v.checkAsync(isUsernameAvailable, 'This username is already taken.')\n  ),\n  { maxSize: 500, maxAge: 10_000 }\n);\n```\n\nFor async workflows, <Link href=\"/api/cacheAsync/\">`cacheAsync`</Link> can also deduplicate matching concurrent runs, which is especially useful when validation involves a network request.\n\nOne important detail from the implementation: primitive values like strings and numbers are cached by value, while objects and functions are cached by their reference, meaning the exact instance in memory. That means mutating an input object and reusing the same reference can return a stale cached result. For best results, use caching with immutable inputs and avoid mutating cached output objects.\n\n## New validators\n\nValibot v1.3 expands its built-in string validation with three new actions: <Link href=\"/api/domain/\">`domain`</Link>, <Link href=\"/api/jwsCompact/\">`jwsCompact`</Link>, and <Link href=\"/api/isrc/\">`isrc`</Link>.\n\nThe new <Link href=\"/api/domain/\">`domain`</Link> action validates domain names without requiring a full URL. This is useful when users enter a host name such as `example.com` and you explicitly do not want to accept protocols, paths, or query strings.\n\n```ts\nimport * as v from 'valibot';\n\nconst DomainSchema = v.pipe(\n  v.string(),\n  v.nonEmpty('Please enter your domain.'),\n  v.domain('The domain is badly formatted.')\n);\n```\n\nThe validation is intentionally focused on ASCII domains. Internationalized domain names and Punycode-encoded labels are not supported here, so if you need full URL validation you should continue using <Link href=\"/api/url/\">`url`</Link> or add your own preprocessing step.\n\nFor authentication flows, <Link href=\"/api/jwsCompact/\">`jwsCompact`</Link> checks whether a string matches the three-part JWS compact serialization shape with unpadded Base64URL-like segments. This is a lightweight structural check and does not verify the token's authenticity.\n\n```ts\nconst AccessTokenSchema = v.pipe(\n  v.string(),\n  v.nonEmpty('Provide an access token.'),\n  v.jwsCompact('The token must be a valid JWS compact string.')\n);\n```\n\nAnd for music-related applications, <Link href=\"/api/isrc/\">`isrc`</Link> validates International Standard Recording Codes in both compact and hyphenated form.\n\n```ts\nconst RecordingSchema = v.object({\n  title: v.pipe(v.string(), v.nonEmpty()),\n  isrc: v.pipe(v.string(), v.isrc('The ISRC is badly formatted.')),\n});\n\n// Valid formats:\n// 'USRC17607839'\n// 'US-RC1-76-07839'\n```\n\n## Compatibility fixes\n\nThis release also includes a few targeted fixes that improve compatibility with existing data.\n\nThe <Link href=\"/api/creditCard/\">`creditCard`</Link> action now accepts legacy 13-digit Visa card numbers, which were previously rejected even though they are valid card numbers.\n\nWe also updated <Link href=\"/api/isoTimestamp/\">`isoTimestamp`</Link> to allow an optional space before the UTC offset. This improves compatibility with PostgreSQL `timestamptz` output such as `2025-05-13 14:15:41.123904 +00:00`.\n\nFinally, the type system now handles deeply readonly default and fallback values correctly, which makes schemas with nested readonly data structures easier to use without type workarounds.\n\n## What's next?\n\nWe will continue to improve integrations, and refine the developer experience around common validation workflows. If there is a validator, transformation, or guide you would like to see next, let us know on [Discord](https://discord.gg/Jwf9vjvReZ) or open a discussion on [GitHub](https://github.com/open-circle/valibot/discussions).\n\nNew to Valibot? Check our [quick start guide](/guides/quick-start/). Coming from Zod? Check our [migration guide](/guides/migrate-from-zod/).\n"
  },
  {
    "path": "website/src/routes/blog/index.tsx",
    "content": "import { component$ } from '@builder.io/qwik';\nimport {\n  type DocumentHead,\n  type DocumentHeadValue,\n  routeLoader$,\n} from '@builder.io/qwik-city';\nimport { PostList } from '~/components';\n\nexport const head: DocumentHead = {\n  title: 'Blog',\n  meta: [\n    {\n      name: 'description',\n      content:\n        \"Official announcements, project updates and insightful content directly from the Valibot core team. We're excited to share our journey with you! Let's validate together!\",\n    },\n  ],\n};\n\ntype PostFrontmatter = {\n  cover: string;\n  title: string;\n  published: string;\n  authors: string[];\n};\n\ntype PostData = PostFrontmatter & {\n  href: string;\n};\n\ninterface PostSection {\n  heading: string;\n  posts: PostData[];\n}\n\n/**\n * Loads the required data for each blog post.\n */\nexport const usePosts = routeLoader$(async () => {\n  // Dynamically import all blog post metadata from the file system\n  const posts: PostData[] = (\n    await Promise.all(\n      Object.entries(\n        import.meta.glob<DocumentHeadValue<PostFrontmatter>>('./**/index.mdx')\n      ).map(async ([path, readFile]) => {\n        const { frontmatter } = await readFile();\n        return {\n          cover: frontmatter!.cover,\n          title: frontmatter!.title,\n          published: frontmatter!.published,\n          authors: frontmatter!.authors,\n          href: `./${path.split('/').slice(2, 3)[0]}/`,\n        };\n      })\n    )\n  ).sort((a, b) => (a.published < b.published ? 1 : -1));\n\n  // Create variables for latest posts and posts by year\n  const latestCutoff = new Date(Date.now() - 7776000000); // 3 months\n  const latestPosts: PostData[] = [];\n  const postsByYear: Record<string, PostData[]> = {};\n\n  // Add posts to latest or by year based on published date\n  for (const post of posts) {\n    if (new Date(post.published) >= latestCutoff) {\n      latestPosts.push(post);\n    } else {\n      const year = post.published.slice(0, 4);\n      if (postsByYear[year]) {\n        postsByYear[year].push(post);\n      } else {\n        postsByYear[year] = [post];\n      }\n    }\n  }\n\n  // Convert posts by year into a post sections array\n  const postSections: PostSection[] = Object.entries(postsByYear)\n    .sort(([yearA], [yearB]) => (yearA < yearB ? 1 : -1))\n    .map(([year, posts]) => ({\n      heading: `Posts of ${year}`,\n      posts,\n    }));\n\n  // Add latest posts section to beginning if there are any\n  if (latestPosts.length > 0) {\n    postSections.unshift({ heading: 'Latest posts', posts: latestPosts });\n  }\n\n  // Return final post sections array\n  return postSections;\n});\n\nexport default component$(() => {\n  const posts = usePosts();\n  return (\n    <main class=\"flex w-full max-w-(--breakpoint-lg) flex-1 flex-col gap-12 self-center py-12 md:gap-14 md:py-14 lg:gap-16 lg:py-24 xl:py-32\">\n      <div class=\"mdx\">\n        <h1>Blog</h1>\n        <p>\n          Official announcements, project updates and insightful content\n          directly from the Valibot core team. We're excited to share our\n          journey with you! Let's validate together!\n        </p>\n      </div>\n      {posts.value.map((section) => (\n        <section key={section.heading}>\n          <div class=\"mdx\">\n            <h2>{section.heading}</h2>\n          </div>\n          <PostList posts={section.posts} />\n        </section>\n      ))}\n    </main>\n  );\n});\n"
  },
  {
    "path": "website/src/routes/guides/(advanced)/async-validation/index.mdx",
    "content": "---\ntitle: Async validation\ndescription: >-\n  By default, Valibot validates each schema synchronously. This is usually the\n  fastest way to validate unknown data, but sometimes you need to validate\n  something asynchronously.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Link } from '~/components';\n\n# Async validation\n\nBy default, Valibot validates each schema synchronously. This is usually the fastest way to validate unknown data, but sometimes you need to validate something asynchronously. For example, you might want to check if a username already exists in your database.\n\n## How it works\n\nTo be able to do this, Valibot provides an asynchronous implementation when necessary. The only difference is that the asynchronous implementation is promise-based. Otherwise, the API and functionality is exactly the same.\n\n### Naming\n\nThe asynchronous implementation starts with the same name as the synchronous one, but adds the suffix `Async` to the end. For example, the asynchronous implementation of <Link href=\"/api/pipe/\">`pipe`</Link> is called <Link href=\"/api/pipeAsync/\">`pipeAsync`</Link> and the asynchronous implementation of <Link href=\"/api/object/\">`object`</Link> is called <Link href=\"/api/objectAsync/\">`objectAsync`</Link>.\n\n### Nesting\n\nAsynchronous functions can only be nested inside other asynchronous functions. This means that if you need to validate a string within an object asynchronously, you must also switch the object validation to the asynchronous implementation.\n\nThis is not necessary in the other direction. You can nest synchronous functions within asynchronous functions, and we recommend that you do so in most cases to keep complexity and bundle size to a minimum.\n\n#### Rule of thumb\n\nWe recommend that you always start with the synchronous implementation, and only move the necessary parts to the asynchronous implementation as needed. If you are using TypeScript, it is not possible to make a mistake here, as our API is completely type-safe and will notify you when you embed an asynchronous function into a synchronous function.\n\n### Example\n\nLet's say you want to validate a profile object and the username should be checked asynchronously against your database. Only the object and username validation needs to be asynchronous, the rest can stay synchronous.\n\n```ts\nimport * as v from 'valibot';\nimport { isUsernameAvailable } from '~/api';\n\nconst ProfileSchema = v.objectAsync({\n  username: v.pipeAsync(v.string(), v.checkAsync(isUsernameAvailable)),\n  avatar: v.pipe(v.string(), v.url()),\n  description: v.pipe(v.string(), v.maxLength(1000)),\n});\n```\n"
  },
  {
    "path": "website/src/routes/guides/(advanced)/extend-valibot/index.mdx",
    "content": "---\ntitle: Extend Valibot\ndescription: >-\n  How to build fully compatible custom schemas, validation actions,\n  transformation actions, and dynamic schema factories from scratch.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Link } from '~/components';\n\n# Extend Valibot\n\nThis guide is for developers who need to go beyond Valibot's built-in primitives — for example when validating a domain-specific format, wrapping a schema in a reusable envelope, or building a library on top of Valibot. Because every schema and action is just a plain object satisfying a shared interface, custom schemas and actions are first-class citizens — not second-class extensions.\n\nWe cover three levels of extension: Composing existing schemas into reusable factories, building fully custom schemas from scratch, and building fully custom actions from scratch.\n\n## Dynamic schemas\n\nThe lightest form of extension is composing existing schemas into a reusable generic factory — no custom interfaces or internal utilities required. We can wrap any user-provided schema by using <Link href=\"/api/GenericSchema/\">`GenericSchema`</Link> as the type constraint. It is an alias for <Link href=\"/api/BaseSchema/\">`BaseSchema`</Link> with all type parameters defaulting to `unknown`, designed specifically for this purpose. TypeScript propagates the concrete type so the return type is fully inferred.\n\nA common use case is wrapping a user-provided item schema in a reusable envelope, like a pagination wrapper:\n\n```ts\nimport * as v from 'valibot';\n\nfunction paginatedList<TItem extends v.GenericSchema>(item: TItem) {\n  return v.object({\n    items: v.array(item),\n    total: v.number(),\n    page: v.number(),\n  });\n}\n\nconst UserList = paginatedList(v.object({ id: v.number(), name: v.string() }));\n\ntype UserList = v.InferOutput<typeof UserList>;\n// {\n//   items: { id: number; name: string }[];\n//   total: number;\n//   page: number;\n// }\n```\n\n## Custom schemas\n\nA custom schema is a plain object with three parts: A typed issue interface extending <Link href=\"/api/BaseIssue/\">`BaseIssue`</Link>, a typed schema interface extending <Link href=\"/api/BaseSchema/\">`BaseSchema`</Link>, and a factory function that returns the object.\n\nTwo internal utilities do the heavy lifting: `_getStandardProps` wires up the Standard Schema `'~standard'` getter, and `_addIssue` constructs and attaches a well-formed issue to the dataset. The `label` argument passed to `_addIssue` (e.g. `'type'`) describes what kind of issue it is and is used to build the human-readable `message`.\n\nHere is a simplified version of Valibot's own `string` schema:\n\n```ts\nimport * as v from 'valibot';\n\n// 1. Define the issue interface\ninterface StringIssue extends v.BaseIssue<unknown> {\n  kind: 'schema';\n  type: 'string';\n  expected: 'string';\n}\n\n// 2. Define the schema interface\ninterface StringSchema<TMessage extends v.ErrorMessage<StringIssue> | undefined>\n  extends v.BaseSchema<string, string, StringIssue> {\n  type: 'string';\n  reference: typeof string;\n  expects: 'string';\n  message: TMessage;\n}\n\n// 3. Implement the factory function\nfunction string<TMessage extends v.ErrorMessage<StringIssue> | undefined>(\n  message?: TMessage\n): StringSchema<TMessage> {\n  return {\n    kind: 'schema',\n    type: 'string',\n    reference: string,\n    expects: 'string',\n    async: false,\n    message,\n    get '~standard'() {\n      return v._getStandardProps(this);\n    },\n    '~run'(dataset, config) {\n      if (typeof dataset.value === 'string') {\n        // @ts-expect-error\n        dataset.typed = true;\n      } else {\n        v._addIssue(this, 'type', dataset, config);\n      }\n      // @ts-expect-error\n      return dataset as v.OutputDataset<string, StringIssue>;\n    },\n  };\n}\n```\n\nThe `// @ts-expect-error` comments are a deliberate trade-off in Valibot's codebase to avoid complex conditional generics and improve runtime performance by mutating the `dataset` object. They are safe here because the `typed` flag and return type are always consistent with the logic above.\n\n> `_addIssue` and `_getStandardProps` are prefixed with an underscore to signal that they are internal. They are exported for advanced use cases like this, but their signatures may change between minor versions.\n\n`v.ErrorMessage<T>` accepts either a plain string or a callback `(issue: T) => string`, so custom error messages can be static or dynamically derived from the issue.\n\n## Custom actions\n\nActions follow the same plain-object pattern. Valibot has three action kinds — <Link href=\"/api/BaseValidation/\">`BaseValidation`</Link>, <Link href=\"/api/BaseTransformation/\">`BaseTransformation`</Link>, and <Link href=\"/api/BaseMetadata/\">`BaseMetadata`</Link> — each with its own `kind` string. Validation actions check a typed value and may add issues. Transformation actions convert the value to a new type or value. Metadata actions carry static annotations and are never executed during pipeline runs.\n\nHere is a simplified version of Valibot's own `email` validation action:\n\n```ts\nimport * as v from 'valibot';\n\nconst EMAIL_REGEX =\n  /^[\\w+-]+(?:\\.[\\w+-]+)*@[\\w+-]+(?:\\.[\\w+-]+)*\\.[a-zA-Z]{2,}$/iu;\n\n// 1. Define the issue interface\ninterface EmailIssue<TInput extends string> extends v.BaseIssue<TInput> {\n  kind: 'validation';\n  type: 'email';\n  expected: null;\n  received: `\"${string}\"`;\n  requirement: RegExp;\n}\n\n// 2. Define the action interface\ninterface EmailAction<\n  TInput extends string,\n  TMessage extends v.ErrorMessage<EmailIssue<TInput>> | undefined,\n> extends v.BaseValidation<TInput, TInput, EmailIssue<TInput>> {\n  type: 'email';\n  reference: typeof email;\n  expects: null;\n  requirement: RegExp;\n  message: TMessage;\n}\n\n// 3. Implement the factory function\nfunction email<\n  TInput extends string,\n  TMessage extends v.ErrorMessage<EmailIssue<TInput>> | undefined,\n>(message?: TMessage): EmailAction<TInput, TMessage> {\n  return {\n    kind: 'validation',\n    type: 'email',\n    reference: email,\n    expects: null,\n    async: false,\n    requirement: EMAIL_REGEX,\n    message,\n    '~run'(dataset, config) {\n      if (dataset.typed && !this.requirement.test(dataset.value)) {\n        v._addIssue(this, 'email', dataset, config);\n      }\n      return dataset;\n    },\n  };\n}\n```\n\nNotice that `'~run'` first checks `dataset.typed` before testing the value. This is the correct pattern for all validation actions — if the dataset is not yet typed (e.g. a schema earlier in the pipe failed), we skip the check entirely.\n"
  },
  {
    "path": "website/src/routes/guides/(advanced)/integrate-valibot/index.mdx",
    "content": "---\ntitle: Integrate Valibot\ndescription: >-\n  How to integrate Valibot into external tools using Standard Schema,\n  schema introspection, type guards, and schema tree traversal.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Link } from '~/components';\n\n# Integrate Valibot\n\nThis guide is aimed at library authors who want to build on top of Valibot — whether that is a form library, an ORM, an API framework, a code generator, or other tooling. It covers Standard Schema for schema-agnostic integrations, schema introspection for extracting types and runtime properties, and schema tree traversal for analysis and code generation.\n\n## Standard Schema\n\nValibot implements [Standard Schema v1](https://standardschema.dev/schema). Every schema object exposes a `'~standard'` property that provides a vendor-neutral `validate` function and inferred TypeScript types. We recommend reading the Standard Schema documentation for the full interface specification.\n\nWhen building a library that accepts user-defined schemas, we recommend accepting a `StandardSchemaV1` instead of a Valibot-specific type — unless your integration requires Valibot-specific APIs. This ensures your library works with any Standard Schema-compatible library, not just Valibot.\n\n```ts\nimport type { StandardSchemaV1 } from '@standard-schema/spec';\n\nasync function validateData(schema: StandardSchemaV1, data: unknown) {\n  const result = await schema['~standard'].validate(data);\n  if (result.issues) {\n    // Validation failed — result.issues is a readonly array of StandardIssue\n    console.log(result.issues);\n  } else {\n    // Validation succeeded — result.value is the typed output\n    console.log(result.value);\n  }\n}\n```\n\nOne important limitation: `'~standard'.validate` always uses Valibot's global config. There is no way to pass a custom config (such as `abortEarly` or a custom `lang`) through the Standard Schema interface. If you need that level of control, use Valibot's own parsing APIs directly.\n\n> Valibot also supports the [Standard JSON Schema](https://standardschema.dev/json-schema) specification via the `@valibot/to-json-schema` package, which exposes a `toStandardJsonSchema` function.\n\n## Schema introspection\n\nValibot schemas are plain objects, so all their properties are readable at runtime. This section covers how to extract static TypeScript types, read runtime properties, and use built-in type guards to narrow schema values safely.\n\n### Static types\n\nValibot exposes three generic utility types for extracting type information from any schema, validation, transformation, or metadata object.\n\n```ts\nimport * as v from 'valibot';\n\nconst Schema = v.pipe(v.string(), v.decimal(), v.toNumber());\n\ntype Input = v.InferInput<typeof Schema>; // string\ntype Output = v.InferOutput<typeof Schema>; // number\ntype Issue = v.InferIssue<typeof Schema>; // StringIssue | DecimalIssue | ToNumberIssue\n```\n\n<Link href=\"/api/InferInput/\">`InferInput`</Link>,\n<Link href=\"/api/InferOutput/\">`InferOutput`</Link>, and\n<Link href=\"/api/InferIssue/\">`InferIssue`</Link> read the phantom `'~types'`\nfield. They work on schemas, validations, transformations, and metadata alike.\n`'~types'` is always `undefined` at runtime — this field exists solely for\nTypeScript's type inference, so we recommend never reading it in runtime code.\n\n### Runtime properties\n\nEvery schema and action is a plain object, so you can read its properties directly at runtime. The base properties (`kind`, `type`, `async`, etc.) are always present. Use `kind` to distinguish schemas from actions, and `type` to identify specific schemas and actions. Some schemas expose additional properties listed in the table below.\n\n| Schema                                     | Extra property    | Description                                       |\n| ------------------------------------------ | ----------------- | ------------------------------------------------- |\n| `object`, `looseObject`, `strictObject`    | `entries`         | `Record<string, BaseSchema>` of named fields      |\n| `objectWithRest`                           | `entries`, `rest` | named fields + rest element schema                |\n| `array`                                    | `item`            | element schema                                    |\n| `tuple`, `looseTuple`, `strictTuple`       | `items`           | ordered tuple of element schemas                  |\n| `tupleWithRest`                            | `items`, `rest`   | ordered elements + rest element schema            |\n| `record`, `map`                            | `key`, `value`    | key and value schemas                             |\n| `set`                                      | `value`           | value schema                                      |\n| `union`, `intersect`                       | `options`         | array of member schemas                           |\n| `variant`                                  | `key`, `options`  | discriminant key string + array of object schemas |\n| `optional`, `nullable`, and other wrappers | `wrapped`         | inner schema                                      |\n| `lazy`                                     | `getter`          | `(input: unknown) => BaseSchema` deferred getter  |\n| any schema passed through `pipe`           | `pipe`            | tuple of the root schema followed by pipe items   |\n\n### Type guards\n\nUse these helpers to narrow the TypeScript type of an unknown Valibot object before accessing its properties. Valibot exports three type guard helpers — <Link href=\"/api/isOfKind/\">`isOfKind`</Link>, <Link href=\"/api/isOfType/\">`isOfType`</Link>, and <Link href=\"/api/isValiError/\">`isValiError`</Link> — that narrow `kind` and `type` with TypeScript inference:\n\n```ts\nimport * as v from 'valibot';\n\n// Narrows to BaseSchema by kind\nif (v.isOfKind('schema', item)) {\n  item; // BaseSchema<...>\n}\n\n// Narrows to StringSchema by type\nif (v.isOfType('string', schema)) {\n  schema; // StringSchema<...>\n}\n```\n\nDirect `===` comparisons on `kind` and `type` are fine too, but `isOfKind` and `isOfType` can better narrow the TypeScript type of the object in some edge cases.\n\n<Link href=\"/api/isValiError/\">`isValiError`</Link> is a separate helper for\nerror handling. <Link href=\"/api/ValiError/\">`ValiError`</Link> is the error\nclass thrown by <Link href=\"/api/parse/\">`parse`</Link> and\n<Link href=\"/api/parser/\">`parser`</Link>. It extends `Error` with `name =\n'ValiError'` and a typed `issues` array:\n\n```ts\nimport * as v from 'valibot';\n\ntry {\n  v.parse(Schema, input);\n} catch (error) {\n  if (v.isValiError<typeof Schema>(error)) {\n    // error is ValiError<typeof Schema>\n    console.log(error.issues);\n  }\n}\n```\n\n## Schema tree traversal\n\nBecause schemas are plain objects, we can walk a schema tree by reading its properties (see [Runtime properties](#runtime-properties)). When traversing a piped schema, read the `pipe` tuple — its first item is the root schema and subsequent items are pipe actions or nested schemas.\n\nHere is a simplified example inspired by <Link href=\"/api/getDefaults/\">`getDefaults`</Link> that extracts deeply nested default values from object and tuple schemas:\n\n```ts\nimport * as v from 'valibot';\n\nfunction getDefaults<\n  const TSchema extends\n    | v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>\n    | v.ObjectSchema<v.ObjectEntries, v.ErrorMessage<v.ObjectIssue> | undefined>\n    | v.TupleSchema<v.TupleItems, v.ErrorMessage<v.TupleIssue> | undefined>,\n>(schema: TSchema): v.InferDefaults<TSchema> {\n  // If it is an object schema, return defaults of entries\n  if ('entries' in schema) {\n    const object: Record<string, unknown> = {};\n    for (const key in schema.entries) {\n      object[key] = getDefaults(schema.entries[key]);\n    }\n    return object;\n  }\n\n  // If it is a tuple schema, return defaults of items\n  if ('items' in schema) {\n    return schema.items.map(getDefaults);\n  }\n\n  // Otherwise, return default or `undefined`\n  return v.getDefault(schema);\n}\n```\n"
  },
  {
    "path": "website/src/routes/guides/(advanced)/internal-architecture/index.mdx",
    "content": "---\ntitle: Internal Architecture\ndescription: >-\n  A deep technical guide on Valibot's internal object model and pipeline\n  execution engine — the plain object design that powers every schema and\n  action.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Link } from '~/components';\n\n# Internal Architecture\n\nThis guide targets library authors and advanced users who want to understand how Valibot works under the hood. It covers the internal object model — schemas, actions, datasets, issues, and config — and how they fit together in the pipeline execution engine.\n\nValibot is built around a simple modularity principle: every schema and action is an independent, interchangeable building block. Like Lego bricks, they each expose a standard connector — a shared interface contract — and can be freely combined, nested, and replaced without any central registry or shared state. Valibot's built-in schemas and actions follow the exact same rules as any custom ones you write yourself, which means the library can be extended or partially replaced without special privileges.\n\nThis design is backed by a concrete technical choice: Every schema and action is a plain object literal returned by a pure factory function. There are no classes, no prototypes beyond `Object`, and no shared mutable state. Because each factory is a pure function with no side effects, it is annotated with `// @__NO_SIDE_EFFECTS__`, which allows bundlers to eliminate every unused schema and action from the final bundle.\n\n## Schemas\n\nSchemas are the starting point for using Valibot. They validate a specific data type, like a string, object, or date, and can be reused or nested to reflect more complex data structures. Every schema is a plain object that satisfies <Link href=\"/api/BaseSchema/\">`BaseSchema`</Link>:\n\n| Property      | Type            | Description                                                                 |\n| ------------- | --------------- | --------------------------------------------------------------------------- |\n| `kind`        | `'schema'`      | Identifies this object as a schema                                          |\n| `type`        | `string`        | snake_case name, e.g. `'string'`, `'loose_object'`                          |\n| `reference`   | `Function`      | The factory function itself (for identity checks)                           |\n| `expects`     | `string`        | Human-readable expected type, e.g. `'string'`                               |\n| `async`       | `false`         | `true` on async variants                                                    |\n| `'~standard'` | `StandardProps` | Standard Schema v1 properties (lazy getter)                                 |\n| `'~run'`      | `Function`      | Parses an `UnknownDataset` and returns an output dataset                    |\n| `'~types'`    | `undefined`     | Phantom field for TypeScript inference only — always `undefined` at runtime |\n\nValidation logic beyond the base type check lives in a `pipe` array added by the <Link href=\"/api/pipe/\">`pipe`</Link> method and some schemas expose additional schema-specific properties. See [Runtime properties](/guides/integrate-valibot/#runtime-properties) for a full breakdown.\n\nAny object that satisfies the `BaseSchema` interface is a valid schema — whether it comes from Valibot's built-ins, a third-party package, or your own code. The guide [Extend Valibot](/guides/extend-valibot/) walks through building one from scratch.\n\n## Actions\n\nActions come in three kinds. The first and probably most important one are validation actions. They check an already-typed value and may add issues. Every validation action is a plain object that satisfies <Link href=\"/api/BaseValidation/\">`BaseValidation`</Link>:\n\n| Property    | Type             | Description                                                                 |\n| ----------- | ---------------- | --------------------------------------------------------------------------- |\n| `kind`      | `'validation'`   | Identifies this object as a validation action                               |\n| `type`      | `string`         | snake_case name, e.g. `'min_length'`, `'email'`                             |\n| `reference` | `Function`       | The factory function itself (for identity checks)                           |\n| `expects`   | `string \\| null` | Human-readable expected value description; used in issue messages           |\n| `async`     | `false`          | `true` on async variants                                                    |\n| `'~run'`    | `Function`       | Validates the current dataset value                                         |\n| `'~types'`  | `undefined`      | Phantom field for TypeScript inference only — always `undefined` at runtime |\n\nThe second one are transformation actions. They convert the value to a new type and/or value. Every transformation action is a plain object that satisfies <Link href=\"/api/BaseTransformation/\">`BaseTransformation`</Link>:\n\n| Property    | Type               | Description                                                                 |\n| ----------- | ------------------ | --------------------------------------------------------------------------- |\n| `kind`      | `'transformation'` | Identifies this object as a transformation action                           |\n| `type`      | `string`           | snake_case name, e.g. `'trim'`, `'to_lower_case'`                           |\n| `reference` | `Function`         | The factory function itself (for identity checks)                           |\n| `async`     | `false`            | `true` on async variants                                                    |\n| `'~run'`    | `Function`         | Transforms the current dataset value                                        |\n| `'~types'`  | `undefined`        | Phantom field for TypeScript inference only — always `undefined` at runtime |\n\nThe third one are metadata actions. They carry static annotations and are always skipped during pipeline execution. Every metadata action is a plain object that satisfies <Link href=\"/api/BaseMetadata/\">`BaseMetadata`</Link>:\n\n| Property    | Type         | Description                                       |\n| ----------- | ------------ | ------------------------------------------------- |\n| `kind`      | `'metadata'` | Identifies this object as a metadata action       |\n| `type`      | `string`     | snake_case name, e.g. `'title'`, `'description'`  |\n| `reference` | `Function`   | The factory function itself (for identity checks) |\n\nJust like schemas, any object that satisfies one of these action interfaces is a valid action that can be dropped into any pipeline.\n\n## Datasets\n\nA dataset is the container that carries a value through the validation pipeline. It is passed to each `'~run'` method in sequence, and as the pipeline executes, the dataset's `typed` flag and `issues` array are updated to reflect the current state of validation.\n\nDatasets are **mutable by design** for performance reasons. `'~run'` implementations modify `dataset.value` and `dataset.typed` in place rather than returning new objects.\n\n| Type                       | `typed`     | `issues`              | Description                              |\n| -------------------------- | ----------- | --------------------- | ---------------------------------------- |\n| `UnknownDataset`           | `undefined` | `undefined`           | Raw input, not yet validated             |\n| `SuccessDataset<T>`        | `true`      | `undefined`           | Fully typed, no issues                   |\n| `PartialDataset<T, Issue>` | `true`      | `[Issue, ...Issue[]]` | Typed but has value or formatting issues |\n| `FailureDataset<Issue>`    | `false`     | `[Issue, ...Issue[]]` | Not typed, has fatal issues              |\n\n## Issues\n\nWhen a schema or validation action finds a problem with the input, it adds an issue to the dataset. Every issue is a plain object that satisfies <Link href=\"/api/BaseIssue/\">`BaseIssue`</Link>:\n\n| Property      | Type                                           | Description                                              |\n| ------------- | ---------------------------------------------- | -------------------------------------------------------- |\n| `kind`        | `'schema' \\| 'validation' \\| 'transformation'` | Mirrors the kind of the object that raised it            |\n| `type`        | `string`                                       | Mirrors the type of the object that raised it            |\n| `input`       | `unknown`                                      | The raw input value that caused the issue                |\n| `expected`    | `string \\| null`                               | Human-readable description of what was expected          |\n| `received`    | `string`                                       | Human-readable description of what was actually received |\n| `message`     | `string`                                       | The final, resolved error message string                 |\n| `requirement` | `unknown \\| undefined`                         | The specific constraint that failed, e.g. a `RegExp`     |\n| `path`        | `IssuePathItem[] \\| undefined`                 | Location of the issue in a nested structure              |\n| `issues`      | `BaseIssue[] \\| undefined`                     | Sub-issues, used by union and intersect schemas          |\n\n`BaseIssue` also extends <Link href=\"/api/Config/\">`Config`</Link>, so the `lang`, `message`, `abortEarly`, and `abortPipeEarly` fields from the parse config are carried into the issue object as well.\n\n## Config\n\nEvery `'~run'` call receives a config object alongside the dataset. It controls language selection, custom error messages, and early-abort behavior. The <Link href=\"/api/Config/\">`Config`</Link> interface has four fields:\n\n| Property         | Type                        | Description                                         |\n| ---------------- | --------------------------- | --------------------------------------------------- |\n| `lang`           | `string \\| undefined`       | BCP 47 language tag for i18n error messages         |\n| `message`        | `ErrorMessage \\| undefined` | A global error message override for the parse call  |\n| `abortEarly`     | `boolean \\| undefined`      | Stop on the first issue anywhere in the schema tree |\n| `abortPipeEarly` | `boolean \\| undefined`      | Stop on the first issue within a single pipe        |\n\n## Pipe execution\n\nThe <Link href=\"/api/pipe/\">`pipe`</Link> method is the universal connector between all building blocks. It returns a new schema object that spreads all properties of the root schema and adds a `pipe` property — a tuple with the root schema at index 0 and additional pipe items at index 1+.\n\nPipe items can be validation actions, transformation actions, metadata actions, or even other schemas. The `'~run'` method is replaced with a new implementation that iterates all items in the tuple.\n\n`pipe` itself has no knowledge of any specific schema or action. It only depends on the shared interface contracts (`kind` and `'~run'`), which is what makes the entire system composable:\n\n```ts\nfunction pipe(...pipe) {\n  return {\n    // Spread all properties of the root schema\n    ...pipe[0],\n    // Add the pipe tuple (root schema at index 0, other pipe items at index 1+)\n    pipe,\n    // Replace '~standard' with a lazy getter so that `this` refers to the new schema object\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    // Replace '~run' with a new implementation that executes the pipeline\n    '~run'(dataset, config) {\n      for (const item of pipe) {\n        // Metadata actions are never executed\n        if (item.kind !== 'metadata') {\n          // Schemas and transformations abort if the dataset already has issues\n          if (\n            dataset.issues &&\n            (item.kind === 'schema' || item.kind === 'transformation')\n          ) {\n            dataset.typed = false;\n            break;\n          }\n\n          // Run pipe item unless an early abort is configured\n          if (\n            !dataset.issues ||\n            (!config.abortEarly && !config.abortPipeEarly)\n          ) {\n            dataset = item['~run'](dataset, config);\n          }\n        }\n      }\n      return dataset;\n    },\n  };\n}\n```\n\nThe following rules apply during pipe execution:\n\n- Metadata items are always skipped.\n- Schemas and transformations abort if the dataset already has issues.\n- Validations continue across existing issues unless `abortEarly` or `abortPipeEarly` is configured.\n\nBecause the result of `pipe` is itself a `BaseSchema`, it can be nested inside other schemas or passed to `pipe` again just like any other schema.\n\n## Immutability\n\nWe treat all schema and action objects as immutable. Mutating them directly after creation leads to unpredictable behavior, especially when schemas are shared across multiple pipelines or modules.\n\nWhen we need a modified copy of a schema, we spread it into a new object and replace only the properties we want to change. Here is a simplified version of our <Link href=\"/api/fallback/\">`fallback`</Link> method to demonstrate this pattern:\n\n```ts\nfunction fallback(schema, fallbackValue) {\n  return {\n    // Copy all properties from the original schema\n    ...schema,\n    // Add the new fallback property as metadata\n    fallback: fallbackValue,\n    // Re-bind '~standard' so `this` refers to the new object\n    get '~standard'() {\n      return _getStandardProps(this);\n    },\n    // Override '~run' to return the fallback value on failure\n    '~run'(dataset, config) {\n      const outputDataset = schema['~run'](dataset, config);\n      return outputDataset.issues\n        ? { typed: true, value: fallbackValue }\n        : outputDataset;\n    },\n  };\n}\n```\n\nTwo things are important when creating a modified copy. First, always re-bind the `'~standard'` getter so that `this` inside it refers to the new object instead of the original. Second, capture the original schema in a closure rather than reading `this` in `'~run'`, so the original `'~run'` logic is called correctly.\n\nIf you want to create an entirely new schema or action from scratch rather than wrapping an existing one, see the [Extend Valibot](/guides/extend-valibot/) guide.\n"
  },
  {
    "path": "website/src/routes/guides/(advanced)/internationalization/index.mdx",
    "content": "---\ntitle: Internationalization\ndescription: >-\n  Providing error messages in the native language of your users can improve the \n  user experience and adoption rate of your software.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Link } from '~/components';\n\n# Internationalization\n\nProviding error messages in the native language of your users can improve the user experience and adoption rate of your software. That is why we offer several flexible ways to easily implement i18n.\n\n## Official translations\n\nThe fastest way to get started with i18n is to use Valibot's official translations. They are provided in a separate package called [`@valibot/i18n`](https://github.com/open-circle/valibot/tree/main/packages/i18n).\n\n> If you are missing a translation, feel free to open an [issue](https://github.com/open-circle/valibot/issues/new) or pull request on GitHub.\n\n### Import translations\n\nEach translation in this package is implemented modularly and exported as a submodule. This allows you to import only the translations you actually need to keep your bundle size small.\n\n{/* prettier-ignore */}\n```ts\n// Import every translation (not recommended)\nimport '@valibot/i18n';\n\n// Import every translation for a specific language\nimport '@valibot/i18n/de';\n\n// Import only the translation for schema functions\nimport '@valibot/i18n/de/schema';\n\n// Import only the translation for a specific pipeline function\nimport '@valibot/i18n/de/minLength';\n```\n\nThe submodules use sideeffects to load the translations into a global storage that the schema and validation functions access when adding the error message to an issue.\n\n### Select language\n\nThe language used is then selected by the `lang` configuration. You can set it globally with <Link href=\"/api/setGlobalConfig/\">`setGlobalConfig`</Link> or locally when parsing unknown data via <Link href=\"/api/parse/\">`parse`</Link> or <Link href=\"/api/safeParse/\">`safeParse`</Link>.\n\n```ts\nimport * as v from 'valibot';\n\n// Set the language configuration globally\nv.setGlobalConfig({ lang: 'de' });\n\n// Set the language configuration locally\nv.parse(Schema, input, { lang: 'de' });\n```\n\n## Custom translations\n\nYou can use the same APIs as [`@valibot/i18n`](https://github.com/open-circle/valibot/tree/main/packages/i18n) to add your own translations to the global storage. Alternatively, you can also pass them directly to a specific schema or validation function as the first optional argument. This can be useful if you want to customize an existing language or define a completely custom language yourself.\n\n> You can either enter the translations manually or use an i18n library like [Paraglide JS](https://inlang.com/m/gerre34r/library-inlang-paraglideJs).\n\n### Set translations globally\n\nYou can add translations with <Link href=\"/api/setGlobalMessage/\">`setGlobalMessage`</Link>, <Link href=\"/api/setSchemaMessage/\">`setSchemaMessage`</Link> and <Link href=\"/api/setSpecificMessage/\">`setSpecificMessage`</Link> in three different hierarchy levels. When creating an issue, Valibot first checks if a specific translation is available, then the translation for schema functions, and finally the global translation.\n\nUnlike the official translations, you do not need to import an `@valibot/i18n` submodule for this. The `lang` value is just a key that Valibot uses to look up the registered translations. Therefore, it can be any string you want.\n\n```ts\nimport * as v from 'valibot';\n\n// Set the translation globally (can be used as a fallback)\nv.setGlobalMessage((issue) => `Invalid input: ...`, 'custom');\n\n// Set the translation globally for every schema functions\nv.setSchemaMessage((issue) => `Invalid type: ...`, 'custom');\n\n// Set the translation globally for a specific function\nv.setSpecificMessage(v.minLength, (issue) => `Invalid length: ...`, 'custom');\n\n// Use the registered translations\nv.setGlobalConfig({ lang: 'custom' });\n```\n\n### Set translations locally\n\nIf you prefer to define the translations individually, you can pass them as the first optional argument to schema and validation functions. We recommend using an i18n library like [Paraglide JS](https://inlang.com/m/gerre34r/library-inlang-paraglideJs) in this case.\n\n{/* prettier-ignore */}\n```ts\nimport * as v from 'valibot';\nimport * as m from './paraglide/messages.js';\n\nconst LoginSchema = v.object({\n  email: v.pipe(\n    v.string(),\n    v.nonEmpty(m.emailRequired),\n    v.email(m.emailInvalid)\n  ),\n  password: v.pipe(\n    v.string(),\n    v.nonEmpty(m.passwordRequired),\n    v.minLength(8, m.passwordInvalid)\n  ),\n});\n```\n"
  },
  {
    "path": "website/src/routes/guides/(advanced)/json-schema/index.mdx",
    "content": "---\ntitle: JSON Schema\ndescription: This guide will show you how to convert Valibot schemas to JSON Schema format.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Link } from '~/components';\n\n# JSON Schema\n\nIn favor of a larger feature set and smaller bundle size, Valibot is not implemented with JSON Schema in mind. However, in some use cases, you may still need a JSON Schema. This guide will show you how to convert Valibot schemas to JSON Schema format.\n\n## Valibot to JSON Schema\n\nA large part of Valibot's schemas are JSON Schema compatible and can be easily converted to the JSON Schema format using the official `toJsonSchema` function. This function is provided via a separate package called [`@valibot/to-json-schema`](https://github.com/open-circle/valibot/tree/main/packages/to-json-schema).\n\n> See the [README](https://github.com/open-circle/valibot/blob/main/packages/to-json-schema/README.md) of the `@valibot/to-json-schema` package for more details. It is also recommended that you take a look at <Link href=\"/blog/json-schema-package-upgrade/\">this blog post</Link>, which highlights recent improvements.\n\n```ts\nimport { toJsonSchema } from '@valibot/to-json-schema';\nimport * as v from 'valibot';\n\nconst ValibotEmailSchema = v.pipe(v.string(), v.email());\nconst JsonEmailSchema = toJsonSchema(ValibotEmailSchema);\n// -> { type: 'string', format: 'email' }\n```\n\n## Cons of JSON Schema\n\nValibot schemas intentionally do not output JSON Schema natively. This is because JSON Schema is limited to JSON-compliant data structures. In addition, more advanced features like transformations are not supported. Since we want to leverage the full power of TypeScript, we output a custom format instead.\n\nAnother drawback of JSON Schema is that JSON Schema itself does not contain any validation logic. Therefore, an additional function is required that can validate the entire JSON Schema specification. This approach is usually not tree-shakable and results in a large bundle size.\n\nIn contrast, Valibot's API design and implementation is completely modular. Every schema is independent and contains its own validation logic. This allows the schemas to be plugged together like LEGO bricks, resulting in a much smaller bundle size due to tree shaking.\n\n## Pros of JSON Schema\n\nDespite these drawbacks, JSON Schema is still widely used in the industry because it also has many advantages. For example, JSON Schemas can be used across programming languages and tools. In addition, JSON Schemas are serializable and can be easily stored in a database or transmitted over a network.\n"
  },
  {
    "path": "website/src/routes/guides/(advanced)/naming-convention/index.mdx",
    "content": "---\ntitle: Naming convention\ndescription: >-\n  There are two naming conventions that we recommend you to use when working\n  with Valibot. In this guide we will explain both of them.\ncontributors:\n  - fabian-hiller\n  - shairez\n---\n\n# Naming convention\n\nIn many cases a schema is created and exported together with the inferred type. There are two naming conventions for this procedure that we recommend you to use when working with Valibot. In this guide we will explain both of them and share why we think they might make sense.\n\n> You don't have to follow any of these conventions. They are only recommendations.\n\n## Convention 1\n\nThe first naming convention exports the schema and type with the same name. The advantage of this is that the names are short and the boilerplate is low, since the schema and type can be imported together.\n\nWe also recommend to follow the [PascalCase](<https://en.wikipedia.org/wiki/Naming_convention_(programming)>) naming convention. This means that each word starts with an uppercase letter. This is a common convention for TypeScript types, and since schemas basically provide runtime validation of types, it makes sense to use this convention for schemas as well.\n\n### Example\n\nIn the following example, a schema is created for a user object. In order to follow the naming convention, the schema and the type are exported with the same name.\n\n```ts\nimport * as v from 'valibot';\n\nexport const PublicUser = v.object({\n  name: v.pipe(v.string(), v.maxLength(30)),\n  email: v.pipe(v.string(), v.email()),\n  avatar: v.nullable(v.file()),\n  bio: v.pipe(v.string(), v.maxLength(1000)),\n});\n\nexport type PublicUser = v.InferOutput<typeof PublicUser>;\n```\n\nThe schema and type can then be imported and used together.\n\n```ts\nimport * as v from 'valibot';\nimport { PublicUser } from './types';\n\n// Use `PublicUser` as a type\nconst publicUsers: PublicUser[] = [];\n\npublicUsers.push(\n  // Use `PublicUser` as a schema\n  v.parse(PublicUser, {\n    name: 'Jane Doe',\n    email: 'jane@example.com',\n    avatar: null,\n    bio: 'Lorem ipsum ...',\n  })\n);\n```\n\n## Convention 2\n\nThe first naming convention can cause naming conflicts with other classes and types. It also causes a problem when you need to export both the input and output types of a schema.\n\nThe second naming convention provides a solution. It also follows the [PascalCase](<https://en.wikipedia.org/wiki/Naming_convention_(programming)>) naming convention, but adds an appropriate suffix to each export. Schemas get the suffix `Schema`, input types get the suffix `Input` and output types get the suffix `Output`.\n\n> If there is no difference between the input and output type, the suffix `Data` can optionally be used to indicate this.\n\nThis requires the schema and types to be imported separately, which increases the overhead. However, the naming convention is more precise, flexible, and works in any use case.\n\n### Example\n\nIn the following example, a schema is created for an image object. In order to follow the naming convention, the schema and the types are exported with different names.\n\n```ts\nimport * as v from 'valibot';\n\nexport const ImageSchema = v.object({\n  status: v.optional(v.picklist(['public', 'private']), 'private'),\n  created: v.optional(v.date(), () => new Date()),\n  title: v.pipe(v.string(), v.maxLength(100)),\n  source: v.pipe(v.string(), v.url()),\n  size: v.pipe(v.number(), v.minValue(0)),\n});\n\nexport type ImageInput = v.InferInput<typeof ImageSchema>;\nexport type ImageOutput = v.InferOutput<typeof ImageSchema>;\n```\n\nThe schema and the input and output types can then be imported and used separately.\n\n```ts\nimport * as v from 'valibot';\nimport { ImageInput, ImageOutput, ImageSchema } from './types';\n\nexport function createImage(input: ImageInput): ImageOutput {\n  return v.parse(ImageSchema, input);\n}\n```\n\n> Do you have ideas for improving these conventions? We welcome your feedback and suggestions. Feel free to create an [issue](https://github.com/open-circle/valibot/issues/new) on GitHub.\n"
  },
  {
    "path": "website/src/routes/guides/(get-started)/comparison/index.mdx",
    "content": "---\ntitle: Comparison\ndescription: >-\n  Even though Valibot's API resembles other solutions at first glance, the\n  implementation and structure of the source code is very different.\ncontributors:\n  - fabian-hiller\n  - nikolailehbrink\n  - Neon-20\n---\n\n# Comparison\n\nEven though Valibot's API resembles other solutions at first glance, the implementation and structure of the source code is very different. In the following, we would like to highlight the differences that can be beneficial for both you and your users.\n\n## Modular design\n\nInstead of relying on a few large functions with many methods, Valibot's API design and source code is based on many small and independent functions, each with just a single task. This modular design has several advantages.\n\nOn one hand, the functionality of Valibot can be easily extended with external code. On the other, it makes the source code more robust and secure because the functionality of the individual functions as well as special edge cases can be tested much easier through unit tests.\n\nHowever, perhaps the biggest advantage is that a bundler can use the static import statements to remove any code that is not needed. Thus, only the code that is actually used ends up in the production build. This allows us to extend the functionality of the library with additional functions without increasing the bundle size for all users.\n\nThis can make a big difference, especially for client-side validation, as it reduces the bundle size and, depending on the framework, speeds up the startup time.\n\n{/* prettier-ignore */}\n```ts\nimport * as v from 'valibot'; // 1.37 kB\n\nconst LoginSchema = v.object({\n  email: v.pipe(\n    v.string(),\n    v.nonEmpty('Please enter your email.'),\n    v.email('The email address is badly formatted.')\n  ),\n  password: v.pipe(\n    v.string(),\n    v.nonEmpty('Please enter your password.'),\n    v.minLength(8, 'Your password must have 8 characters or more.')\n  ),\n});\n```\n\n### Comparison with Zod\n\nFor example, to validate a simple login form, [Zod](https://zod.dev/) requires [17.7 kB with esbuild](https://bundlejs.com/?q=zod&treeshake=%5B%7B+object%2Cstring+%7D%5D) and 15.18 kB with Rolldown, whereas Valibot requires only [1.37 kB](https://bundlejs.com/?q=valibot&treeshake=%5B%7B+email%2CminLength%2CnonEmpty%2Cobject%2Cstring%2Cpipe+%7D%5D). That's a 90 % reduction in bundle size. This is due to the fact that Zod's functions have several methods with additional functionalities, that cannot be easily removed by current bundlers when they are not executed in your source code.\n\n{/* prettier-ignore */}\n```ts\n// 17.7 kB with esbuild and 15.18 kB with Rolldown\nimport * as z from 'zod'; \n\nconst LoginSchema = z.object({\n  email: z.string()\n    .min(1, 'Please enter your email.')\n    .email('The email address is badly formatted.'),\n  password: z.string()\n    .min(1, 'Please enter your password.')\n    .min(8, 'Your password must have 8 characters or more.'),\n});\n```\n\nZod v4 also introduces Zod Mini, a tree-shakable, functional variant aimed at reducing bundle size. For the same login form, Zod Mini requires approximately [6.88 kB with esbuild](https://bundlejs.com/?q=zod%2Fmini&treeshake=%5B%7B+check%2Cemail%2CminLength%2Cobject%2Cstring+%7D%5D) and 3.94 kB with Rolldown, still about 3 to 5x larger than Valibot's [1.37 kB](https://bundlejs.com/?q=valibot&treeshake=%5B%7B+email%2CminLength%2CnonEmpty%2Cobject%2Cstring%2Cpipe+%7D%5D), representing a ~73 % reduction when using Valibot over Zod Mini.\n\n{/* prettier-ignore */}\n```ts\n// 6.88 kB with esbuild and 3.94 kB with Rolldown\nimport * as z from 'zod/mini'; \n\nconst LoginSchema = z.object({\n  email: z.check(\n    z.string(),\n    z.minLength(1, 'Please enter your email.'),\n    z.email('The email address is badly formatted.')\n  ),\n  password: z.check(\n    z.string(),\n    z.minLength(1, 'Please enter your password.'),\n    z.minLength(8, 'Your password must have 8 characters or more.')\n  ),\n});\n```\n\n> You can migrate from Zod to Valibot using our [migration guide](/guides/migrate-from-zod/). It provides a codemod and a detailed overview of the differences between the two libraries.\n\n## Performance\n\nWith a schema library, a distinction must be made between startup performance and runtime performance. Startup performance describes the time required to load and initialize the library. This benchmark is mainly influenced by the bundle size and the amount of work required to create a schema. Runtime performance describes the time required to validate unknown data using a schema.\n\nSince Valibot's implementation is optimized to minimize the bundle size and the effort of initialization, there is hardly any library that performs better in a [TTI](https://web.dev/articles/tti) benchmark. In terms of runtime performance, Valibot is in the midfield. Roughly speaking, the library is about twice as fast as [Zod](https://zod.dev/) v3, and has similar runtime performance to Zod v4 (including Zod Mini), but is much slower than [Typia](https://typia.io/) and [TypeBox](https://github.com/sinclairzx81/typebox), because we don't yet use a compiler that can generate highly optimized runtime code, and our implementation doesn't allow the use of the [`Function`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/Function) constructor.\n\n> Further details on performance can be found in the [bachelor's thesis](/thesis.pdf) Valibot is based on.\n"
  },
  {
    "path": "website/src/routes/guides/(get-started)/ecosystem/index.mdx",
    "content": "---\ntitle: Ecosystem\ndescription: >-\n  This page is for you if you are looking for frameworks or libraries that\n  support Valibot.\ncontributors:\n  - fabian-hiller\n  - scythewyvern\n  - chimame\n  - unnoq\n  - camflan\n  - shairez\n  - Code-Hex\n  - xcfox\n  - gcornut\n  - JuerGenie\n  - y-hiraoka\n  - LouisMazel\n  - TheEdoRan\n  - ciscoheat\n  - qlaffont\n  - Saeris\n  - songkeys\n  - decs\n  - IlyaSemenov\n  - jmcdo29\n  - ZerNico\n  - logaretm\n  - victorgarciaesgi\n  - gadicc\n---\n\n# Ecosystem\n\nThis page is for you if you are looking for frameworks or libraries that support Valibot.\n\n> Use the button at the bottom left of this page to add your project to this ecosystem page. Please make sure to add your project to an appropriate existing category in alphabetical order or create a new category if necessary.\n\n## Frameworks\n\n- [NestJS](https://docs.nestjs.com): A progressive Node.js framework for building efficient, reliable and scalable server-side applications\n- [Qwik](https://qwik.dev): A web framework which helps you build instantly-interactive web apps at any scale without effort.\n\n## API libraries\n\n- [Drizzle ORM](https://orm.drizzle.team/): TypeScript ORM that feels like writing SQL\n- [GQLoom](https://gqloom.dev/): Weave GraphQL schema and resolvers using Valibot\n- [Hono](https://hono.dev/): Ultrafast web framework for the Edges\n- [next-safe-action](https://next-safe-action.dev) Type safe and validated Server Actions for Next.js\n- [oRPC](https://orpc.unnoq.com/): Typesafe APIs Made Simple\n- [piying-orm](https://github.com/piying-org/piying-orm): ORM for Valibot; Supports TypeORM, with more to come.\n- [tRPC](https://trpc.io/): Move Fast and Break Nothing. End-to-end typesafe APIs made easy\n- [upfetch](https://github.com/L-Blondy/up-fetch): Advanced fetch client builder\n\n## AI libraries\n\n- [AI SDK](https://sdk.vercel.ai/): Build AI-powered applications with React, Svelte, Vue, and Solid\n\n## Form libraries\n\n- [@rvf/valibot](https://github.com/airjp73/rvf/tree/main/packages/valibot): Valibot schema parser for [RVF](https://rvf-js.io/)\n- [conform](https://conform.guide/): A type-safe form validation library utilizing web fundamentals to progressively enhance HTML Forms with full support for server frameworks like Remix and Next.js.\n- [mantine-form-valibot-resolver](https://github.com/Songkeys/mantine-form-valibot-resolver): Valibot schema resolver for [@mantine/form](https://mantine.dev/form/use-form/)\n- [maz-ui](https://maz-ui.com/composables/use-form-validator): Vue3 flexible and typed composable to manage forms simply with multiple modes and advanced features\n- [Modular Forms](https://modularforms.dev/): Modular and type-safe form library for SolidJS, Qwik, Preact and React\n- [piying-view](https://github.com/piying-org/piying-view): Frontend Form Solution; Supports Angular, Vue, React, with more to come.\n- [React Hook Form](https://react-hook-form.com/): React Hooks for form state management and validation\n- [regle](https://github.com/victorgarciaesgi/regle): Headless form validation library for Vue.js\n- [Superforms](https://superforms.rocks): A comprehensive SvelteKit form library for server and client validation\n- [svelte-jsonschema-form](https://x0k.dev/svelte-jsonschema-form/validators/valibot/): Svelte 5 library for creating forms based on JSON schema\n- [TanStack Form](https://tanstack.com/form): Powerful and type-safe form state management for the web\n- [VeeValidate](https://vee-validate.logaretm.com/v4/): Painless Vue.js forms\n- [vue-valibot-form](https://github.com/IlyaSemenov/vue-valibot-form): Minimalistic Vue3 composable for handling form submit\n\n## Component libraries\n\n- [Nuxt UI](https://ui.nuxt.com/): Fully styled and customizable components for Nuxt\n\n## Valibot to X\n\n- [@gcornut/cli-valibot-to-json-schema](https://github.com/gcornut/cli-valibot-to-json-schema): CLI wrapper for @valibot/to-json-schema\n- [@valibot/to-json-schema](https://github.com/open-circle/valibot/tree/main/packages/to-json-schema): The official JSON schema converter for Valibot\n- [Hono OpenAPI](https://github.com/rhinobase/hono-openapi): A plugin for Hono to generate OpenAPI Swagger documentation\n- [TypeMap](https://github.com/sinclairzx81/typemap/): Uniform Syntax, Mapping and Compiler Library for TypeBox, Valibot and Zod\n- [TypeSchema](https://typeschema.com/): Universal adapter for schema validation\n- [Valibot-Fast-Check](https://github.com/Eronmmer/valibot-fast-check): A library to generate [fast-check](https://fast-check.dev) arbitraries from Valibot schemas for property-based testing\n- [valibot-serialize](https://github.com/gadicc/valibot-serialize): Serialize a schema to JSON and back again, or to (tree-shaking safe) static code\n\n## X to Valibot\n\n- [@hey-api/openapi-ts](https://heyapi.dev/openapi-ts/plugins/valibot): OpenAPI to TypeScript codegen. Production-ready SDKs, Zod schemas, TanStack Query hooks, and 20+ plugins. Used by Vercel, OpenCode, and PayPal.\n- [@traversable/valibot](https://github.com/traversable/schema/tree/main/packages/valibot): Build your own \"Valibot to X\" library, or pick one of 10+ off-the-shelf transformers\n- [DRZL](https://github.com/use-drzl/drzl): Analyze Drizzle ORM schema(s) and auto-generate Valibot validators, typed services, and strongly typed routers (oRPC/tRPC/etc) via a modular pipeline.\n- [graphql-codegen-typescript-validation-schema](https://github.com/Code-Hex/graphql-codegen-typescript-validation-schema): GraphQL Code Generator plugin to generate form validation schema from your GraphQL schema.\n- [Prisma Valibot Generator](https://github.com/omar-dulaimi/prisma-valibot-generator): Generate Valibot validators from your Prisma schema so types and runtime stay in sync.\n- [TypeBox-Codegen](https://sinclairzx81.github.io/typebox-workbench/): Code generation for schema libraries\n- [TypeMap](https://github.com/sinclairzx81/typemap/): Uniform Syntax, Mapping and Compiler Library for TypeBox, Valibot and Zod\n- [valibot-serialize](https://github.com/gadicc/valibot-serialize): From serialized JSON back to a schema instance or the (tree-shaking safe) code to create that instance\n\n## Utilities\n\n- [@camflan/valibot-openapi-generator](https://github.com/camflan/valibot-openapi-generator): Functions to help build OpenAPI documentation using Valibot schemas\n- [@nest-lab/typeschema](https://github.com/jmcdo29/nest-lab/tree/main/packages/typeschema): A ValidationPipe that handles many schema validators in a class-based fashion for NestJS's input validation\n- [@traversable/valibot-test](https://github.com/traversable/schema/tree/main/packages/valibot-test): Random Valibot schema generator built for fuzz testing, includes generators for both valid and invalid data\n- [@valibot/i18n](https://github.com/open-circle/valibot/tree/main/packages/i18n): The official i18n translations for Valibot\n- [fastify-type-provider-valibot](https://github.com/qlaffont/fastify-type-provider-valibot): Fastify Type Provider with Valibot\n- [valibot-env](https://y-hiraoka.github.io/valibot-env): Environment variables validator with Valibot\n- [valibotx](https://github.com/IlyaSemenov/valibotx): A collection of extensions and shortcuts to core Valibot functions\n- [valiload](https://github.com/JuerGenie/valiload): A simple and lightweight library for overloading functions in TypeScript\n- [valimock](https://github.com/saeris/valimock): Generate mock data using your Valibot schemas using [Faker](https://github.com/faker-js/faker)\n- [valipass](https://github.com/Saeris/valipass): Collection of password validation actions for Valibot schemas\n"
  },
  {
    "path": "website/src/routes/guides/(get-started)/installation/index.mdx",
    "content": "---\ntitle: Installation\ndescription: >-\n  Valibot is currently available for Node, Bun and Deno. Below you will learn\n  how to add the library to your project.\ncontributors:\n  - fabian-hiller\n  - Shyam-Chen\n  - jojojojojoj5564656465465\n  - flySewa\n---\n\n# Installation\n\nValibot is currently available for Node, Bun and Deno. Below you will learn how to add the library to your project.\n\n## General\n\nExcept for this guide, the rest of this documentation assumes that you are using npm for the import statements in the code examples.\n\nIt does not make a difference whether you use individual imports or a wildcard import. Tree shaking and code splitting should work in both cases.\n\nIf you are using TypeScript, we recommend that you enable strict mode in your `tsconfig.json` so that all types are calculated correctly.\n\n> The minimum required TypeScript version is v5.0.2.\n\n```js\n{\n  \"compilerOptions\": {\n    \"strict\": true,\n    // ...\n  }\n}\n```\n\n## For AI Agents\n\nWe provide an agent skill that teaches AI agents the correct patterns for generating Valibot schemas. You can install it by running the following command in your terminal:\n\n```bash\nnpx skills add open-circle/agent-skills --skill valibot\n```\n\nYou can learn more about the Valibot agent skill [here](https://github.com/open-circle/agent-skills).\n\n## From npm\n\nFor Node and Bun, you can add the library to your project with a single command using your favorite package manager.\n\n```bash\nnpm install valibot     # npm\nyarn add valibot        # yarn\npnpm add valibot        # pnpm\nbun add valibot         # bun\n```\n\nThen you can import it into any JavaScript or TypeScript file.\n\n```ts\n// With individual imports\nimport { … } from 'valibot';\n\n// With a wildcard import\nimport * as v from 'valibot';\n```\n\n## From JSR\n\nFor Node, Deno and Bun, you can add the library to your project with a single command using your favorite package manager.\n\n```bash\ndeno add jsr:@valibot/valibot      # deno\nnpx jsr add @valibot/valibot       # npm\nyarn dlx jsr add @valibot/valibot  # yarn\npnpm dlx jsr add @valibot/valibot  # pnpm\nbunx jsr add @valibot/valibot      # bun\n```\n\nThen you can import it into any JavaScript or TypeScript file.\n\n```ts\n// With individual imports\nimport { … } from '@valibot/valibot';\n\n// With a wildcard import\nimport * as v from '@valibot/valibot';\n```\n\nIn Deno, you can also directly reference me using `jsr:` specifiers.\n\n```ts\n// With individual imports\nimport { … } from 'jsr:@valibot/valibot';\n\n// With a wildcard import\nimport * as v from 'jsr:@valibot/valibot';\n```\n\n## From Deno\n\nWith Deno, you can reference the library directly through our deno.land/x URL.\n\n```ts\n// With individual imports\nimport { … } from 'https://deno.land/x/valibot/mod.ts';\n\n// With a wildcard import\nimport * as v from 'https://deno.land/x/valibot/mod.ts';\n```\n"
  },
  {
    "path": "website/src/routes/guides/(get-started)/introduction/index.mdx",
    "content": "---\ntitle: Introduction\ndescription: >-\n  Hello, I am Valibot and I would like to help you validate data easily using a\n  schema. No matter if it is incoming data on a server, a form or even\n  configuration files.\ncontributors:\n  - fabian-hiller\n  - millette\n  - hnakamur\n---\n\nimport { Link } from '~/components';\n\n# Introduction\n\nHello, I am Valibot and I would like to help you validate data easily using a schema. No matter if it is incoming data on a server, a form or even configuration files. I have no dependencies and can run in any JavaScript environment.\n\n> I highly recommend you read the [announcement post](https://www.builder.io/blog/introducing-valibot), and if you are a nerd like me, the [bachelor's thesis](/thesis.pdf) I am based on.\n\n## Highlights\n\n- Fully type safe with static type inference\n- Small bundle size starting at less than 700 bytes\n- Validate everything from strings to complex objects\n- Open source and fully tested with 100 % coverage\n- Many transformation and validation actions included\n- Well structured source code without dependencies\n- Minimal, readable and well thought out API\n\n## Example\n\nFirst you create a schema that describes a structured data set. A schema can be compared to a type definition in TypeScript. The big difference is that TypeScript types are \"not executed\" and are more or less a DX feature. A schema on the other hand, apart from the inferred type definition, can also be executed at runtime to guarantee type safety of unknown data.\n\n{/* prettier-ignore */}\n```ts\nimport * as v from 'valibot'; // 1.31 kB\n\n// Create login schema with email and password\nconst LoginSchema = v.object({\n  email: v.pipe(v.string(), v.email()),\n  password: v.pipe(v.string(), v.minLength(8)),\n});\n\n// Infer output TypeScript type of login schema as\n// { email: string; password: string }\ntype LoginData = v.InferOutput<typeof LoginSchema>;\n\n// Throws error for email and password\nconst output1 = v.parse(LoginSchema, { email: '', password: '' });\n\n// Returns data as { email: string; password: string }\nconst output2 = v.parse(LoginSchema, {\n  email: 'jane@example.com',\n  password: '12345678',\n});\n```\n\nApart from <Link href=\"/api/parse/\">`parse`</Link> I also offer a non-exception-based API with <Link href=\"/api/safeParse/\">`safeParse`</Link> and a type guard function with <Link href=\"/api/is/\">`is`</Link>. You can read more about it <Link href=\"/guides/parse-data/\">here</Link>.\n\n## Comparison\n\nInstead of relying on a few large functions with many methods, my API design and source code is based on many small and independent functions, each with just a single task. This modular design has several advantages.\n\nFor example, this allows a bundler to use the import statements to remove code that is not needed. This way, only the code that is actually used gets into your production build. This can reduce the bundle size by up to 95 % compared to [Zod](https://zod.dev/).\n\nIn addition, it allows you to easily extend my functionality with external code and makes my source code more robust and secure because the functionality of the individual functions can be tested much more easily through unit tests.\n\n## Credits\n\nMy friend [Fabian](https://github.com/fabian-hiller) created me as part of his bachelor thesis at [Stuttgart Media University](https://www.hdm-stuttgart.de/en/), supervised by Walter Kriha, [Miško Hevery](https://github.com/mhevery) and [Ryan Carniato](https://github.com/ryansolid). My role models also include [Colin McDonnell](https://github.com/colinhacks), who had a big influence on my API design with [Zod](https://zod.dev/).\n\n## Feedback\n\nFind a bug or have an idea how to improve my code? Please fill out an [issue](https://github.com/open-circle/valibot/issues/new). Together we can make the library even better!\n\n## License\n\nI am completely free and licensed under the [MIT license](https://github.com/open-circle/valibot/blob/main/LICENSE.md). But if you like, you can feed me with a star on [GitHub](https://github.com/open-circle/valibot).\n"
  },
  {
    "path": "website/src/routes/guides/(get-started)/llms-txt/index.mdx",
    "content": "---\ntitle: LLMs.txt\ndescription: >-\n  If you are using AI to generate Valibot schemas, you can use our LLMs.txt\n  files to help the AI better understand the library.\ncontributors:\n  - fabian-hiller\n  - flySewa\n---\n\n# LLMs.txt\n\nIf you are using AI to generate Valibot schemas, you can use our LLMs.txt files to help the AI better understand the library.\n\n## What is LLMs.txt?\n\nAn [LLMs.txt](https://llmstxt.org/) file is a plain text file that provides instructions or metadata for large language models (LLMs). It often specifies how the LLMs should process or interact with content. It is similar to a robots.txt file, but is tailored for AI models.\n\n## Available routes\n\nWe provide several LLMs.txt routes. Use the route that works best with your AI tool.\n\n- [`llms.txt`](/llms.txt) contains a table of contents with links to Markdown files\n- [`llms-full.txt`](/llms-full.txt) contains the Markdown content of the entire docs\n- [`llms-guides.txt`](/llms-guides.txt) contains the Markdown content of the guides\n- [`llms-api.txt`](/llms-api.txt) contains the Markdown content of the API reference\n\n> We also provide a Markdown version of every documentation page. You can access it by replacing the trailing slash (`/`) in the URL with `.md`. For example, `/guides/installation/` becomes `/guides/installation.md`.\n\n## For AI Agents\n\nOur [`SKILL.md`](https://github.com/open-circle/agent-skills/blob/main/skills/valibot/SKILL.md) contains specialized instructions for AI agents to write, migrate, and optimize Valibot schemas according to the latest best practices.\n\n## How to use it\n\nTo help you get started, here are some examples of how the LLMs.txt files can be used with various AI tools.\n\n> Please help us by adding more examples of other AI tools. If you use a tool that supports LLMs.txt files, please [open a pull request](https://github.com/open-circle/valibot/pulls) to add it to this page.\n\n### Cursor\n\nYou can add a custom documentation as context in Cursor using the `@Docs` feature. Read more about it [here](https://docs.cursor.com/context/@-symbols/@-docs).\n"
  },
  {
    "path": "website/src/routes/guides/(get-started)/quick-start/index.mdx",
    "content": "---\ntitle: Quick start\ndescription: >-\n  This quick start guide will give you an overview of the library and help you\n  get started creating your first schema.\ncontributors:\n  - fabian-hiller\n  - BastiDood\n---\n\nimport { Link } from '~/components';\n\n# Quick start\n\nA Valibot schema can be compared to a type definition in TypeScript. The big difference is that TypeScript types are \"not executed\" and are more or less a DX feature. A schema on the other hand, apart from the inferred type definition, can also be executed at runtime to truly guarantee type safety of unknown data.\n\n## Basic concept\n\nSimilar to how types can be defined in TypeScript, Valibot allows you to define a schema with various small functions. This applies to primitive values like strings as well as more complex data sets like objects.\n\n```ts\nimport * as v from 'valibot';\n\n// TypeScript\ntype LoginData = {\n  email: string;\n  password: string;\n};\n\n// Valibot\nconst LoginSchema = v.object({\n  email: v.string(),\n  password: v.string(),\n});\n```\n\n## Pipelines\n\nIn addition, pipelines enable you to perform more detailed validations and transformations with the <Link href=\"/api/pipe/\">`pipe`</Link> method. Thus, for example, it can be ensured that a string is an email that ends with a certain domain.\n\n```ts\nimport * as v from 'valibot';\n\nconst EmailSchema = v.pipe(v.string(), v.email(), v.endsWith('@example.com'));\n```\n\nA pipeline must always start with a schema, followed by up to 19 validation or transformation actions. They are executed in sequence, and the result of the previous action is passed to the next. More details about pipelines can be found in <Link href=\"/guides/pipelines/\">this guide</Link>.\n\n## Error messages\n\nIf an issue is detected during validation, the library emits a specific issue object that includes various details and an error message. This error message can be overridden via the first optional argument of a schema or validation action.\n\n```ts\nimport * as v from 'valibot';\n\nconst LoginSchema = v.object({\n  email: v.pipe(\n    v.string('Your email must be a string.'),\n    v.nonEmpty('Please enter your email.'),\n    v.email('The email address is badly formatted.')\n  ),\n  password: v.pipe(\n    v.string('Your password must be a string.'),\n    v.nonEmpty('Please enter your password.'),\n    v.minLength(8, 'Your password must have 8 characters or more.')\n  ),\n});\n```\n\nCustom error messages allow you to improve the usability of your software by providing specific troubleshooting information and returning error messages in a language other than English. See the <Link href=\"/guides/internationalization/\">i18n guide</Link> for more information.\n\n## Usage\n\nFinally, you can use your schema to infer its input and output types and to parse unknown data. This way, your schema is the single source of truth. This concept simplifies your development process and makes your code more robust in the long run.\n\n```ts\nimport * as v from 'valibot';\n\nconst LoginSchema = v.object({…});\n\ntype LoginData = v.InferOutput<typeof LoginSchema>;\n\nfunction getLoginData(data: unknown): LoginData {\n  return v.parse(LoginSchema, data);\n}\n```\n"
  },
  {
    "path": "website/src/routes/guides/(get-started)/use-cases/index.mdx",
    "content": "---\ntitle: Use cases\ndescription: >-\n  Next, I would like to point out some use cases for which I am particularly\n  well suited. I welcome ideas for other use cases that I may not have thought\n  of yet.\ncontributors:\n  - fabian-hiller\n---\n\n# Use cases\n\nNext, we would like to point out some use cases for which Valibot is particularly well suited. We welcome [ideas](https://github.com/open-circle/valibot/issues/new) for other use cases that we may not have thought of yet.\n\n## Server requests\n\nSince most API endpoints can be reached via the Internet, basically anyone can send a request and transmit data. It is therefore important to apply zero trust security and to check request data thoroughly before processing it further.\n\nThis works particularly well with a schema, compared to if/else conditions, as even complex structures can be easily mapped. In addition, the library automatically type the parsed data according to the schema, which improves type safety and thus makes your code more secure.\n\n## Form validation\n\nA schema can also be used for form validation. Due to Valibot's small bundle size and the possibility to individualize the error messages, the library is particularly well suited for this. Also, fullstack frameworks like Next.js, Remix, and Nuxt allow the same schema to be used for validation in the browser as well as on the server, which reduces your code to the minimum.\n\n[Modular Forms](https://modularforms.dev/react/guides/validate-your-fields#schema-validation), for example, offers validation based on a schema at form and field level. In addition, the form can be made type-safe using the schema, which also enables autocompletion during development. In combination with the right framework, a fully type-safe and progressively enhanced form can be created with few lines of code and a great experience for developers and end-users.\n\n## Browser state\n\nThe browser state, which is stored using cookies, search parameters or the local storage, can be accidentally or intentionally manipulated by the user. To ensure the functionality of an application, it can help to validate this data before processing. Valibot can be used for this, which also improves type safety.\n\n## Config files\n\nLibrary authors can also make use of Valibot, for example, to match configuration files with a schema and, in the event of an error, provide clear indications of the cause and how to fix the problem. The same applies to environment variables to quickly detect configuration errors.\n\n## Schema builder\n\nOur schemas are plain JavaScript objects with a well-defined and fully type-safe structure. This makes Valibot a great choice for defining data structures that can be further processed by third-party code. For example, it is possible to build an ORM with custom metadata actions on top of Valibot to generate database schemas. Another example is our official `toJsonSchema` function, which uses Valibot's object API to output a JSON Schema that can be used for documentation purposes or to generate structured output with LLMs.\n\n## Data migration\n\nValibot can also be used to migrate data from one form to another in a type-safe way. The advantage of a schema library like Valibot is that transformations can be defined for individual properties instead of for the entire dataset. This can make data migrations more readable and maintainable. In addition, the schema can be used to validate the data before the migration, which increases the reliability of the migration process.\n"
  },
  {
    "path": "website/src/routes/guides/(main-concepts)/errors/index.tsx",
    "content": "import { component$ } from '@builder.io/qwik';\nimport { routeLoader$ } from '@builder.io/qwik-city';\n\nexport const useRedirect = routeLoader$(({ redirect }) => {\n  throw redirect(302, '/guides/issues/');\n});\n\nexport default component$(() => {\n  useRedirect();\n  return null;\n});\n"
  },
  {
    "path": "website/src/routes/guides/(main-concepts)/infer-types/index.mdx",
    "content": "---\ntitle: Infer types\ndescription: >-\n  Another cool feature of schemas is the ability to infer input and output\n  types. This makes your work even easier.\ncontributors:\n  - fabian-hiller\n  - BastiDood\n  - gmaxlev\n---\n\nimport { Link } from '~/components';\n\n# Infer types\n\nAnother cool feature of schemas is the ability to infer input and output types. This makes your work even easier because you don't have to write the type definition yourself.\n\n## Infer input types\n\nThe input type of a schema corresponds to the TypeScript type that the incoming data of a schema must match to be valid. To extract this type you use the utility type <Link href=\"/api/InferInput/\">`InferInput`</Link>.\n\n> You are probably interested in the input type only in special cases. In most cases, the output type should be sufficient.\n\n```ts\nimport * as v from 'valibot';\n\nconst LoginSchema = v.object({\n  email: v.string(),\n  password: v.string(),\n});\n\ntype LoginInput = v.InferInput<typeof LoginSchema>; // { email: string; password: string }\n```\n\n## Infer output types\n\nThe output type differs from the input type only if you use <Link href=\"/api/optional/\">`optional`</Link>, <Link href=\"/api/nullable/\">`nullable`</Link>, <Link href=\"/api/nullish/\">`nullish`</Link> or <Link href=\"/api/undefinedable/\">`undefinedable`</Link> with a default value or <Link href=\"/api/brand/\">`brand`</Link>, <Link href=\"/api/readonly/\">`readonly`</Link> or <Link href=\"/api/transform/\">`transform`</Link> to transform the input or data type of a schema after validation. The output type corresponds to the output of <Link href=\"/api/parse/\">`parse`</Link> and <Link href=\"/api/safeParse/\">`safeParse`</Link>. To infer it, you use the utility type <Link href=\"/api/InferOutput/\">`InferOutput`</Link>.\n\n```ts\nimport * as v from 'valibot';\nimport { hashPassword } from '~/utils';\n\nconst LoginSchema = v.pipe(\n  v.object({\n    email: v.string(),\n    password: v.pipe(v.string(), v.transform(hashPassword)),\n  }),\n  v.transform((input) => {\n    return {\n      ...input,\n      timestamp: new Date().toISOString(),\n    };\n  })\n);\n\ntype LoginOutput = v.InferOutput<typeof LoginSchema>; // { email: string; password: string; timestamp: string }\n```\n\n## Infer issue types\n\nYou can also infer the possible issues of a schema. This can be useful if you want to handle the issues in a particular way. To extract this information from a schema you use the utility type <Link href=\"/api/InferIssue/\">`InferIssue`</Link>.\n\n```ts\nimport * as v from 'valibot';\n\nconst LoginSchema = v.object({\n  email: v.pipe(v.string(), v.email()),\n  password: v.pipe(v.string(), v.minLength(8)),\n});\n\ntype Issue = v.InferIssue<typeof LoginSchema>; // v.ObjectIssue | v.StringIssue | v.EmailIssue<string> | v.MinLengthIssue<string, 8>\n```\n"
  },
  {
    "path": "website/src/routes/guides/(main-concepts)/issues/index.mdx",
    "content": "---\ntitle: Issues\ndescription: >-\n  When validating unknown data against a schema, Valibot collects detailed\n  information about each issue.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n  - BastiDood\n---\n\nimport { Link } from '~/components';\n\n# Issues\n\nWhen validating unknown data against a schema, Valibot collects information about each issue. If there is at least one issue, these are returned in an array. Each issue provides detailed information for you or your users to fix the problem.\n\n## Issue info\n\nA single issue conforms to the TypeScript type definition below.\n\n```ts\ntype BaseIssue = {\n  // Required info\n  kind: 'schema' | 'validation' | 'transformation';\n  type: string;\n  input: unknown;\n  expected: string | null;\n  received: string;\n  message: string;\n\n  // Optional info\n  requirement?: unknown;\n  path?: IssuePath;\n  issues?: Issues;\n  lang?: string;\n  abortEarly?: boolean;\n  abortPipeEarly?: boolean;\n  skipPipe?: boolean;\n};\n```\n\n### Required info\n\nEach issue contains the following required information.\n\n#### Kind\n\n`kind` describes the kind of the problem. If an input does not match the data type, for example a number was passed instead of a string, `kind` has the value `'schema'`. In all other cases, the reason is not the data type but the actual content of the data. For example, if a string is invalid because it does not match a regex, `kind` has the value `'validation'`.\n\n#### Type\n\n`type` describes which function did the validation. If the schema function <Link href=\"/api/array/\">`array`</Link> detects that the input is not an array, `type` has the value `'array'`. If the <Link href=\"/api/minLength/\">`minLength`</Link> validation function detects that an array is too short, `type` has the value `'min_length'`.\n\n#### Input\n\n`input` contains the input data where the issue was found. For complex data, for example objects, `input` contains the value of the respective key that does not match the schema.\n\n#### Expected\n\n`expected` is a language-neutral string that describes the data property that was expected. It can be used to create useful error messages. If your users aren't developers, you can replace the language-neutral symbols with language-specific words.\n\n#### Received\n\n`received` is a language-neutral string that describes the data property that was received. It can be used to create useful error messages. If your users aren't developers, you can replace the language-neutral symbols with language-specific words.\n\n#### Message\n\n`message` contains a human-understandable error message that can be fully customized as described in our <Link href=\"/guides/quick-start/#error-messages\">quick start</Link> and <Link href=\"/guides/internationalization/\">internationalization</Link> guide.\n\n### Optional info\n\nSome issues contain further optional information.\n\n#### Requirement\n\n`requirement` can contain further validation information. For example, if the <Link href=\"/api/minLength/\">`minLength`</Link> validation function detects that a string is too short, `requirement` contains the minimum length that the string should have.\n\n#### Path\n\n`path` is an array of objects that describes where an issue is located within complex data. Each path item contains the following information.\n\n> The `input` of a path item may differ from the `input` of its issue. This is because path items are subsequently added by parent schemas and are related to their input. Transformations of child schemas are not taken into account.\n\n```ts\ntype PathItem = {\n  type: string;\n  origin: 'key' | 'value';\n  input: unknown;\n  key?: unknown;\n  value: unknown;\n};\n```\n\nFor example, you can use the following code to create a dot path.\n\n```ts\nimport * as v from 'valibot';\n\nconst dotPath = v.getDotPath(issue);\n```\n\n#### Issues\n\n`issues` currently only occur when using <Link href=\"/api/union/\">`union`</Link> and contains all issues of the schemas of an union type.\n\n#### Config\n\n`lang` can be used as part of our <Link href=\"/guides/internationalization/\">i18n feature</Link> to define the required language. `abortEarly` and `abortPipeEarly` gives you an info that the validation was aborted prematurely. You can find more info about this in the <Link href=\"/guides/parse-data/#configuration\">parse data</Link> guide. These are all configurations that you can control yourself.\n\n## Formatting\n\nFor common use cases such as form validation, Valibot includes small built-in functions for formatting issues. However, once you understand how they work, you can easily format them yourself and put them in the right form for your use case.\n\n### Flatten errors\n\nIf you are only interested in the error messages of each issue to show them to your users, you can convert an array of issues to a flat object with <Link href=\"/api/flatten/\">`flatten`</Link>. Below is an example.\n\n```ts\nimport * as v from 'valibot';\n\nconst ObjectSchema = v.object({\n  foo: v.string('Value of \"foo\" is missing.'),\n  bar: v.object({\n    baz: v.string('Value of \"bar.baz\" is missing.'),\n  }),\n});\n\nconst result = v.safeParse(ObjectSchema, { bar: {} });\n\nif (result.issues) {\n  console.log(v.flatten<typeof ObjectSchema>(result.issues));\n}\n```\n\nThe `result` returned in the code sample above this text contains the following issues.\n\n```ts\n[\n  {\n    kind: 'schema',\n    type: 'string',\n    input: undefined,\n    expected: 'string',\n    received: 'undefined',\n    message: 'Value of \"foo\" is missing.',\n    path: [\n      {\n        type: 'object',\n        origin: 'value',\n        input: {\n          bar: {},\n        },\n        key: 'foo',\n        value: undefined,\n      },\n    ],\n  },\n  {\n    kind: 'schema',\n    type: 'string',\n    input: undefined,\n    expected: 'string',\n    received: 'undefined',\n    message: 'Value of \"bar.baz\" is missing.',\n    path: [\n      {\n        type: 'object',\n        origin: 'value',\n        input: {\n          bar: {},\n        },\n        key: 'bar',\n        value: {},\n      },\n      {\n        type: 'object',\n        origin: 'value',\n        input: {},\n        key: 'baz',\n        value: undefined,\n      },\n    ],\n  },\n];\n```\n\nHowever, with the help of <Link href=\"/api/flatten/\">`flatten`</Link> the issues were converted to the following object.\n\n```ts\n{\n  nested: {\n    foo: ['Value of \"foo\" is missing.'],\n    'bar.baz': ['Value of \"bar.baz\" is missing.'],\n  },\n};\n```\n"
  },
  {
    "path": "website/src/routes/guides/(main-concepts)/mental-model/index.mdx",
    "content": "---\ntitle: Mental model\ndescription: >-\n  Valibot's mental model is mainly divided between schemas, methods, and\n  actions. It is crucial to understand this concept.\ncontributors:\n  - fabian-hiller\n  - BastiDood\n---\n\nimport { Link } from '~/components';\nimport MentalModelDark from './mental-model-dark.jpg?jsx';\nimport MentalModelLight from './mental-model-light.jpg?jsx';\n\n# Mental model\n\nValibot's mental model is mainly divided between **schemas**, **methods**, and **actions**. Since each functionality is imported as its own function, it is crucial to understand this concept as it makes working with the modular API design much easier.\n\n<MentalModelDark\n  alt=\"Code example with a schema, method and actions\"\n  class=\"hidden dark:block\"\n/>\n<MentalModelLight\n  alt=\"Code example with a schema, method and actions\"\n  class=\"dark:hidden\"\n/>\n\n> The <Link href=\"/api/\">API reference</Link> gives you a great overview of all schemas, methods, and actions. For each one, the corresponding reference page also lists down other related schemas, methods, and actions for better discoverability.\n\n## Schemas\n\nSchemas are the starting point for using Valibot. They allow you to validate **a specific data type**, like a string, object, or date. Each schema is independent. They can be reused or even nested to reflect more complex data structures.\n\n```ts\nimport * as v from 'valibot';\n\nconst BookSchema = v.object({\n  title: v.string(),\n  numberOfPages: v.number(),\n  publication: v.date(),\n  tags: v.array(v.string()),\n});\n```\n\nEvery schema function returns an accesible object that contains all its properties. However, in most cases you don't need to access them directly. Instead, you use methods that help you modify or use a schema.\n\n## Methods\n\nMethods help you either **modify or use a schema**. For example, the <Link href=\"/api/parse/\">`parse`</Link> method helps you parse unknown data based on a schema. When you use a method, you always pass the schema as the first argument.\n\n```ts\nimport * as v from 'valibot';\n\nconst BookSchema = v.object({…});\n\nfunction createBook(data: unknown) {\n  return v.parse(BookSchema, data);\n}\n```\n\n> Most methods are used with schemas. However, there are a few exceptions, such as <Link href=\"/api/forward/\">`forward`</Link> and <Link href=\"/api/flatten/\">`flatten`</Link>, which are used with actions or issues.\n\n## Actions\n\nActions help you to **further validate or transform** a specific data type. They are used exclusively in conjunction with the <Link href=\"/api/pipe/\">`pipe`</Link> method, which extends the functionality of a schema by adding additional validation and transformation rules. For example, the following schema can be used to trim a string and check if it is a valid email address.\n\n```ts\nimport * as v from 'valibot';\n\nconst EmailSchema = v.pipe(v.string(), v.trim(), v.email());\n```\n\nActions are very powerful. There are basically no limits to what you can do with them. Besides basic validations and transformations as shown in the example above, they also allow you to modify the output type with actions like <Link href=\"/api/readonly/\">`readonly`</Link> and <Link href=\"/api/brand/\">`brand`</Link>.\n"
  },
  {
    "path": "website/src/routes/guides/(main-concepts)/methods/index.mdx",
    "content": "---\ntitle: Methods\ndescription: >-\n  Apart from `parse`, `safeParse`, and `is`, Valibot offers some more methods to\n  make working with your schemas easier.\ncontributors:\n  - fabian-hiller\n  - BastiDood\n  - danielrincondev\n  - estubmo\n  - FlorianDevPhynix\n  - Yovach\n---\n\nimport { ApiList, Link } from '~/components';\n\n# Methods\n\nApart from <Link href=\"/api/parse/\">`parse`</Link> and <Link href=\"/api/safeParse/\">`safeParse`</Link>, Valibot offers some more methods to make working with your schemas easier. In the following we distinguish between schema, object and pipeline methods.\n\n## Schema methods\n\nSchema methods add functionality, simplify ergonomics, and help you use schemas for validation and data extraction.\n\n<ApiList\n  label=\"Schema methods\"\n  items={[\n    'assert',\n    'config',\n    'fallback',\n    'flatten',\n    'getDefault',\n    'getDefaults',\n    'getDescription',\n    'getFallback',\n    'getFallbacks',\n    'getMetadata',\n    'getTitle',\n    'is',\n    'message',\n    'parse',\n    'safeParse',\n    'summarize',\n    'pipe',\n    'unwrap',\n  ]}\n/>\n\n> For more information on <Link href=\"/api/pipe/\">`pipe`</Link>, see the <Link href=\"/guides/pipelines/\">pipelines</Link> guide. For more information on validation methods, see the <Link href=\"/guides/parse-data/\">parse data</Link> guide. For more information on <Link href=\"/api/flatten/\">`flatten`</Link>, see the <Link href=\"/guides/issues/#formatting\">issues</Link> guide.\n\n### Fallback\n\nIf an issue occurs while validating your schema, you can catch it with <Link href=\"/api/fallback/\">`fallback`</Link> to return a predefined value instead.\n\n```ts\nimport * as v from 'valibot';\n\nconst StringSchema = v.fallback(v.string(), 'hello');\nconst stringOutput = v.parse(StringSchema, 123); // 'hello'\n```\n\n## Object methods\n\nObject methods make it easier for you to work with object schemas. They are strongly oriented towards TypeScript's utility types.\n\n<ApiList\n  label=\"Object methods\"\n  items={['keyof', 'omit', 'partial', 'pick', 'required']}\n/>\n\n### TypeScript similarities\n\nLike in TypeScript, you can make the values of an object optional with <Link href=\"/api/partial/\">`partial`</Link>, make them required with <Link href=\"/api/required/\">`required`</Link>, and even include/exclude certain values from an existing schema with <Link href=\"/api/pick/\">`pick`</Link> and <Link href=\"/api/omit/\">`omit`</Link>.\n\n```ts\nimport * as v from 'valibot';\n\n// TypeScript\ntype Object1 = Partial<{ key1: string; key2: number }>;\n\n// Valibot\nconst object1 = v.partial(v.object({ key1: v.string(), key2: v.number() }));\n\n// TypeScript\ntype Object2 = Pick<Object1, 'key1'>;\n\n// Valibot\nconst object2 = v.pick(object1, ['key1']);\n```\n\n## Pipeline methods\n\nPipeline methods modify the results of validations and transformations within a pipeline.\n\n<ApiList label=\"Pipeline methods\" items={['forward']} />\n\n> For more info about our pipeline feature, see the <Link href=\"/guides/pipelines/\">pipelines</Link> guide.\n\n### Forward\n\n‎<Link href=\"/api/forward/\">`forward`</Link> allows you to associate an issue with a nested schema. For example, if you want to check that both password entries in a registration form match, you can use it to forward the issue to the second password field in case of an error. This allows you to display the error message in the correct place.\n\n```ts\nimport * as v from 'valibot';\n\nconst RegisterSchema = v.pipe(\n  v.object({\n    email: v.pipe(\n      v.string(),\n      v.nonEmpty('Please enter your email.'),\n      v.email('The email address is badly formatted.')\n    ),\n    password1: v.pipe(\n      v.string(),\n      v.nonEmpty('Please enter your password.'),\n      v.minLength(8, 'Your password must have 8 characters or more.')\n    ),\n    password2: v.string(),\n  }),\n  v.forward(\n    v.partialCheck(\n      [['password1'], ['password2']],\n      (input) => input.password1 === input.password2,\n      'The two passwords do not match.'\n    ),\n    ['password2']\n  )\n);\n```\n"
  },
  {
    "path": "website/src/routes/guides/(main-concepts)/parse-data/index.mdx",
    "content": "---\ntitle: Parse data\ndescription: >-\n  Now that you've learned how to create a schema, let's look at how you can use\n  it to validate unknown data and make it type-safe.\ncontributors:\n  - fabian-hiller\n  - BastiDood\n  - SeaSide53\n  - cmaciasjimenez\n---\n\nimport { Link } from '~/components';\n\n# Parse data\n\nNow that you've learned how to create a schema, let's look at how you can use it to validate unknown data and make it type-safe. There are three different ways to do this.\n\n> Each schema has a `~run` method. However, this is an internal API and should only be used if you know what you are doing.\n\n## Parse and throw\n\nThe <Link href=\"/api/parse/\">`parse`</Link> method will throw a <Link href=\"/api/ValiError/\">`ValiError`</Link> if the input does not match the schema. Therefore, you should use a try/catch block to catch errors. If the input matches the schema, it is valid and the output of the schema will be returned with the correct TypeScript type.\n\n```ts\nimport * as v from 'valibot';\n\ntry {\n  const EmailSchema = v.pipe(v.string(), v.email());\n  const email = v.parse(EmailSchema, 'jane@example.com');\n\n  // Handle errors if one occurs\n} catch (error) {\n  console.log(error);\n}\n```\n\n## Parse and return\n\nIf you want issues to be returned instead of thrown, you can use <Link href=\"/api/safeParse/\">`safeParse`</Link>. The returned value then contains the `.success` property, which is `true` if the input is valid or `false` otherwise.\n\nIf the input is valid, you can use `.output` to get the output of the schema validation. Otherwise, if the input was invalid, the issues found can be accessed via `.issues`.\n\n```ts\nimport * as v from 'valibot';\n\nconst EmailSchema = v.pipe(v.string(), v.email());\nconst result = v.safeParse(EmailSchema, 'jane@example.com');\n\nif (result.success) {\n  const email = result.output;\n} else {\n  console.log(result.issues);\n}\n```\n\n## Type guards\n\nAnother way to validate data that can be useful in individual cases is to use a type guard. You can use either a type predicate with the <Link href=\"/api/is/\">`is`</Link> method or an assertion function with the <Link href=\"/api/assert/\">`assert`</Link> method.\n\nIf a type guard is used, the issues of the validation cannot be accessed. Also, transformations have no effect and unknown keys of an object are not removed. Therefore, this approach is not as safe and powerful as the two previous ways. Also, due to a TypeScript limitation, it can currently only be used with synchronous schemas.\n\n```ts\nimport * as v from 'valibot';\n\nconst EmailSchema = v.pipe(v.string(), v.email());\nconst data: unknown = 'jane@example.com';\n\nif (v.is(EmailSchema, data)) {\n  const email = data; // string\n}\n```\n\n## Configuration\n\nBy default, Valibot exhaustively collects every issue during validation to give you detailed feedback on why the input does not match the schema. If this is not required for your use case, you can control this behavior with `abortEarly` and `abortPipeEarly` to improve the performance of validation.\n\n### Abort validation\n\nIf you set `abortEarly` to `true`, data validation immediately aborts upon finding the first issue. If you just want to know if some data matches a schema, but you don't care about the details, this can improve performance.\n\n```ts\nimport * as v from 'valibot';\n\ntry {\n  const ProfileSchema = v.object({\n    name: v.string(),\n    bio: v.string(),\n  });\n  const profile = v.parse(\n    ProfileSchema,\n    { name: 'Jane', bio: '' },\n    { abortEarly: true }\n  );\n\n  // Handle errors if one occurs\n} catch (error) {\n  console.log(error);\n}\n```\n\n### Abort pipeline\n\nIf you only set `abortPipeEarly` to `true`, the validation within a pipeline will only abort after finding the first issue. For example, if you only want to show the first error of a field when validating a form, you can use this option to improve performance.\n\n```ts\nimport * as v from 'valibot';\n\ntry {\n  const EmailSchema = v.pipe(v.string(), v.email(), v.endsWith('@example.com'));\n  const email = v.parse(EmailSchema, 'jane@example.com', {\n    abortPipeEarly: true,\n  });\n\n  // Handle errors if one occurs\n} catch (error) {\n  console.log(error);\n}\n```\n"
  },
  {
    "path": "website/src/routes/guides/(main-concepts)/pipelines/index.mdx",
    "content": "---\ntitle: Pipelines\ndescription: >-\n  For detailed validations and transformations, a schema can be wrapped in a\n  pipeline. This is useful to validate further details apart from the raw data\n  type.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n  - BastiDood\n  - morinokami\n  - jasperteo\n  - daxeh\n  - ariskemper\n---\n\nimport { ApiList, Link } from '~/components';\n\n# Pipelines\n\nFor detailed validations and transformations, a schema can be wrapped in a pipeline. Especially for schema functions like <Link href=\"/api/string/\">`string`</Link>, <Link href=\"/api/number/\">`number`</Link>, <Link href=\"/api/date/\">`date`</Link>, <Link href=\"/api/object/\">`object`</Link>, and <Link href=\"/api/array/\">`array`</Link>, this feature is useful for validating properties beyond the raw data type.\n\n## How it works\n\nIn simple words, a pipeline is a list of schemas and actions that synchronously passes through the input data. It must always start with a schema, followed by up to 19 schemas or actions. Each schema and action can examine and modify the input. The pipeline is therefore perfect for detailed validations and transformations.\n\n### Example\n\nFor example, the pipeline feature can be used to trim a string and make sure that it is an email that ends with a specific domain.\n\n```ts\nimport * as v from 'valibot';\n\nconst EmailSchema = v.pipe(\n  v.string(),\n  v.trim(),\n  v.email(),\n  v.endsWith('@example.com')\n);\n```\n\n## Validations\n\nPipeline validation actions examine the input and, if the input does not meet a certain condition, return an issue. If the input is valid, it is returned as the output and, if present, picked up by the next action in the pipeline.\n\n> Whenever possible, pipelines are run completely, even if an issue has occurred, to collect all possible issues. If you want to abort the pipeline early after the first issue, you need to set the `abortPipeEarly` option to `true`. Learn more about this <Link href=\"/guides/parse-data/#configuration\">here</Link>.\n\n<ApiList\n  label=\"Validation actions\"\n  items={[\n    'base64',\n    'bic',\n    'bytes',\n    'check',\n    'checkItems',\n    'creditCard',\n    'cuid2',\n    'decimal',\n    'digits',\n    'domain',\n    'email',\n    'emoji',\n    'empty',\n    'endsWith',\n    'entries',\n    'everyItem',\n    'excludes',\n    'finite',\n    'graphemes',\n    'gtValue',\n    'hash',\n    'hexadecimal',\n    'hexColor',\n    'includes',\n    'integer',\n    'ip',\n    'ipv4',\n    'ipv6',\n    'isbn',\n    'isrc',\n    'isoDate',\n    'isoDateTime',\n    'isoTime',\n    'isoTimeSecond',\n    'isoTimestamp',\n    'isoWeek',\n    'length',\n    'ltValue',\n    'mac',\n    'mac48',\n    'mac64',\n    'maxBytes',\n    'maxEntries',\n    'maxGraphemes',\n    'maxLength',\n    'maxSize',\n    'maxValue',\n    'maxWords',\n    'mimeType',\n    'minBytes',\n    'minEntries',\n    'minGraphemes',\n    'minLength',\n    'minSize',\n    'minValue',\n    'minWords',\n    'multipleOf',\n    'nanoid',\n    'nonEmpty',\n    'notBytes',\n    'notEntries',\n    'notGraphemes',\n    'notLength',\n    'notSize',\n    'notValue',\n    'notValues',\n    'notWords',\n    'octal',\n    'parseJson',\n    'partialCheck',\n    'rawCheck',\n    'regex',\n    'rfcEmail',\n    'safeInteger',\n    'size',\n    'slug',\n    'someItem',\n    'startsWith',\n    'ulid',\n    'url',\n    'uuid',\n    'value',\n    'values',\n    'words',\n  ]}\n/>\n\nSome of these actions can be combined with different schemas. For example, <Link href=\"/api/minValue/\">`minValue`</Link> can be used to validate the minimum value of <Link href=\"/api/string/\">`string`</Link>, <Link href=\"/api/number/\">`number`</Link>, <Link href=\"/api/bigint/\">`bigint`</Link>, and <Link href=\"/api/date/\">`date`</Link>.\n\n```ts\nimport * as v from 'valibot';\n\nconst StringSchema = v.pipe(v.string(), v.minValue('foo'));\nconst NumberSchema = v.pipe(v.number(), v.minValue(1234));\nconst BigintSchema = v.pipe(v.bigint(), v.minValue(1234n));\nconst DateSchema = v.pipe(v.date(), v.minValue(new Date()));\n```\n\n### Custom validation\n\nFor custom validations, <Link href=\"/api/check/\">`check`</Link> can be used. If the function passed as the first argument returns `false`, an issue is returned. Otherwise, the input is considered valid.\n\n```ts\nimport * as v from 'valibot';\nimport { isValidUsername } from '~/utils';\n\nconst UsernameSchema = v.pipe(\n  v.string(),\n  v.check(isValidUsername, 'This username is invalid.')\n);\n```\n\n> You can forward the issues of a pipeline validation to a child. See the <Link href=\"/guides/methods/#forward\">methods</Link> guide for more information.\n\n## Transformations\n\nPipeline transformation actions allow to change the value and data type of the input data. This can be useful for example to remove spaces at the beginning or end of a string or to force a minimum or maximum value.\n\n<ApiList\n  label=\"Transformation actions\"\n  items={[\n    'brand',\n    'filterItems',\n    'findItem',\n    'flavor',\n    'guard',\n    'mapItems',\n    'rawTransform',\n    'readonly',\n    'reduceItems',\n    'sortItems',\n    'toBigint',\n    'toBoolean',\n    'toDate',\n    'toLowerCase',\n    'toMaxValue',\n    'toMinValue',\n    'toNumber',\n    'toString',\n    'toUpperCase',\n    'transform',\n    'trim',\n    'trimEnd',\n    'trimStart',\n  ]}\n/>\n\nFor example, the pipeline of the following schema enforces a minimum value of 10. If the input is less than 10, it is replaced with the specified minimum value.\n\n```ts\nimport * as v from 'valibot';\n\nconst NumberSchema = v.pipe(v.number(), v.toMinValue(10));\n```\n\n### Custom transformation\n\nFor custom transformations, <Link href=\"/api/transform/\">`transform`</Link> can be used. The function passed as the first argument is called with the input data and the return value defines the output. The following transformation changes the output of the schema to `null` for any number less than 10.\n\n```ts\nimport * as v from 'valibot';\n\nconst NumberSchema = v.pipe(\n  v.number(),\n  v.transform((input) => (input < 10 ? null : input))\n);\n```\n\n## Metadata\n\nIn addition to the validation and transformation actions, a pipeline can also be used to add metadata to a schema. This can be useful when working with AI tools or for documentation purposes.\n\n<ApiList\n  label=\"Metadata actions\"\n  items={['description', 'metadata', 'title']}\n/>\n\n```ts\nconst UsernameSchema = v.pipe(\n  v.string(),\n  v.regex(/^[a-z0-9_-]{4,16}$/iu),\n  v.title('Username'),\n  v.description(\n    'A username must be between 4 and 16 characters long and can only contain letters, numbers, underscores and hyphens.'\n  )\n);\n```\n"
  },
  {
    "path": "website/src/routes/guides/(main-concepts)/schemas/index.mdx",
    "content": "---\ntitle: Schemas\ndescription: >-\n  Schemas allow you to validate a specific data type. They are similar to type\n  definitions in TypeScript.\ncontributors:\n  - fabian-hiller\n  - BastiDood\n  - morinokami\n  - alonidiom\n  - yicrotkd\n  - gotnoklu\n---\n\nimport { ApiList, Link } from '~/components';\n\n# Schemas\n\nSchemas allow you to validate a specific data type. They are similar to type definitions in TypeScript. Besides primitive values like strings and complex values like objects, Valibot also supports special cases like literals, unions and custom types.\n\n## Primitive values\n\nValibot supports the creation of schemas for any primitive data type. These are immutable values that are stored directly in the stack, unlike objects where only a reference to the heap is stored.\n\n<ApiList\n  label=\"Primitive schemas\"\n  items={[\n    'bigint',\n    'boolean',\n    'null',\n    'number',\n    'string',\n    'symbol',\n    'undefined',\n  ]}\n/>\n\n```ts\nimport * as v from 'valibot';\n\nconst BigintSchema = v.bigint(); // bigint\nconst BooleanSchema = v.boolean(); // boolean\nconst NullSchema = v.null(); // null\nconst NumberSchema = v.number(); // number\nconst StringSchema = v.string(); // string\nconst SymbolSchema = v.symbol(); // symbol\nconst UndefinedSchema = v.undefined(); // undefined\n```\n\n## Complex values\n\nAmong complex values, Valibot supports objects, records, arrays, tuples, and several other classes.\n\n> There are various methods for objects such as <Link href=\"/api/pick/\">`pick`</Link>, <Link href=\"/api/omit/\">`omit`</Link>, <Link href=\"/api/partial/\">`partial`</Link> and <Link href=\"/api/required/\">`required`</Link>. Learn more about them <Link href=\"/guides/methods/#object-methods\">here</Link>.\n\n<ApiList\n  label=\"Complex schemas\"\n  items={[\n    'array',\n    'blob',\n    'date',\n    'file',\n    'function',\n    'looseObject',\n    'looseTuple',\n    'map',\n    'object',\n    'objectWithRest',\n    'promise',\n    'record',\n    'set',\n    'strictObject',\n    'strictTuple',\n    'tuple',\n    'tupleWithRest',\n  ]}\n/>\n\n```ts\nimport * as v from 'valibot';\n\nconst ArraySchema = v.array(v.string()); // string[]\nconst BlobSchema = v.blob(); // Blob\nconst DateSchema = v.date(); // Date\nconst FileSchema = v.file(); // File\nconst FunctionSchema = v.function(); // (...args: unknown[]) => unknown\nconst LooseObjectSchema = v.looseObject({ key: v.string() }); // { key: string }\nconst LooseTupleSchema = v.looseTuple([v.string(), v.number()]); // [string, number]\nconst MapSchema = v.map(v.string(), v.number()); // Map<string, number>\nconst ObjectSchema = v.object({ key: v.string() }); // { key: string }\nconst ObjectWithRestSchema = v.objectWithRest({ key: v.string() }, v.null()); // { key: string } & { [key: string]: null }\nconst PromiseSchema = v.promise(); // Promise<unknown>\nconst RecordSchema = v.record(v.string(), v.number()); // Record<string, number>\nconst SetSchema = v.set(v.number()); // Set<number>\nconst StrictObjectSchema = v.strictObject({ key: v.string() }); // { key: string }\nconst StrictTupleSchema = v.strictTuple([v.string(), v.number()]); // [string, number]\nconst TupleSchema = v.tuple([v.string(), v.number()]); // [string, number]\nconst TupleWithRestSchema = v.tupleWithRest([v.string(), v.number()], v.null()); // [string, number, ...null[]]\n```\n\n## Special cases\n\nBeyond primitive and complex values, there are also schema functions for more special cases.\n\n<ApiList\n  label=\"Special schemas\"\n  items={[\n    'any',\n    'custom',\n    'enum',\n    'exactOptional',\n    'instance',\n    'intersect',\n    'lazy',\n    'literal',\n    'nan',\n    'never',\n    'nonNullable',\n    'nonNullish',\n    'nonOptional',\n    'nullable',\n    'nullish',\n    'optional',\n    'picklist',\n    'undefinedable',\n    'union',\n    'unknown',\n    'variant',\n    'void',\n  ]}\n/>\n\n```ts\nimport * as v from 'valibot';\n\nconst AnySchema = v.any(); // any\nconst CustomSchema = v.custom<`${number}px`>(isPixelString); // `${number}px`\nconst EnumSchema = v.enum(Direction); // Direction\nconst ExactOptionalSchema = v.exactOptional(v.string()); // string\nconst InstanceSchema = v.instance(Error); // Error\nconst LazySchema = v.lazy(() => v.string()); // string\nconst IntersectSchema = v.intersect([v.string(), v.literal('a')]); // string & 'a'\nconst LiteralSchema = v.literal('foo'); // 'foo'\nconst NanSchema = v.nan(); // NaN\nconst NeverSchema = v.never(); // never\nconst NonNullableSchema = v.nonNullable(v.nullable(v.string())); // string\nconst NonNullishSchema = v.nonNullish(v.nullish(v.string())); // string\nconst NonOptionalSchema = v.nonOptional(v.optional(v.string())); // string\nconst NullableSchema = v.nullable(v.string()); // string | null\nconst NullishSchema = v.nullish(v.string()); // string | null | undefined\nconst OptionalSchema = v.optional(v.string()); // string | undefined\nconst PicklistSchema = v.picklist(['a', 'b']); // 'a' | 'b'\nconst UndefinedableSchema = v.undefinedable(v.string()); // string | undefined\nconst UnionSchema = v.union([v.string(), v.number()]); // string | number\nconst UnknownSchema = v.unknown(); // unknown\nconst VariantSchema = v.variant('type', [\n  v.object({ type: v.literal('a'), foo: v.string() }),\n  v.object({ type: v.literal('b'), bar: v.number() }),\n]); // { type: 'a'; foo: string } | { type: 'b'; bar: number }\nconst VoidSchema = v.void(); // void\n```\n"
  },
  {
    "path": "website/src/routes/guides/(migration)/migrate-from-v0.30.0/index.ts",
    "content": "import type { RequestEvent } from '@builder.io/qwik-city';\n\nexport const onGet = async ({ redirect }: RequestEvent) => {\n  throw redirect(301, '/guides/migrate-to-v0.31.0/');\n};\n"
  },
  {
    "path": "website/src/routes/guides/(migration)/migrate-from-zod/CodemodEditor.tsx",
    "content": "import {\n  $,\n  component$,\n  type NoSerialize,\n  useSignal,\n  useVisibleTask$,\n} from '@builder.io/qwik';\nimport transform from '@valibot/zod-to-valibot';\nimport jscodeshift from 'jscodeshift';\nimport * as monaco from 'monaco-editor';\nimport { CodeEditor, IconButton } from '~/components';\nimport { useResetSignal } from '~/hooks';\nimport { CheckIcon, CopyIcon, PlayIcon } from '~/icons';\nimport { trackEvent } from '~/utils';\nimport zodCode from './zod/code.ts?raw';\nimport zod3Types from './zod/v3/index.d.ts?raw';\nimport zod3PackageJson from './zod/v3/package.json?raw';\nimport zod4Types from './zod/v4/index.d.ts?raw';\nimport zod4PackageJson from './zod/v4/package.json?raw';\n\n/**\n * Code editor that converts Zod schemas to Valibot using our codemod.\n */\nexport const CodemodEditor = component$(() => {\n  // Use model and copied signals\n  const model = useSignal<NoSerialize<monaco.editor.ITextModel>>();\n  const copied = useResetSignal(false);\n\n  // Initialize Monaco editor with Zod types\n  // eslint-disable-next-line qwik/no-use-visible-task\n  useVisibleTask$(() => initializeMonaco());\n\n  /**\n   * Copies the current code of the editor.\n   */\n  const copyCode = $(() => {\n    // Copy code to clipboard\n    copied.value = true;\n    navigator.clipboard.writeText(model.value!.getValue());\n\n    // Track playground event\n    trackEvent('copy_zod_codemod_result');\n  });\n\n  /**\n   * Executes the codemod to converts the current code.\n   */\n  const executeCodemod = $(async () => {\n    // Get current code from editor model\n    const currentCode = model.value!.getValue();\n\n    const tsParser = jscodeshift.withParser('ts');\n\n    // Execute codemod with current code\n    const transformedCode = await transform(\n      { path: 'index.ts', source: currentCode },\n      {\n        j: tsParser,\n        jscodeshift: tsParser,\n        stats: () => {},\n        report: () => {},\n      },\n      {}\n    );\n\n    // Replace current code with result of codemod\n    model.value!.pushEditOperations(\n      null,\n      [\n        {\n          range: model.value!.getFullModelRange(),\n          text: transformedCode ?? currentCode,\n        },\n      ],\n      () => null\n    );\n\n    // Track playground event\n    trackEvent('execute_zod_codemod');\n  });\n\n  return (\n    <div class=\"relative flex aspect-square sm:aspect-video\">\n      <CodeEditor\n        class=\"border-y-2 border-slate-200 lg:rounded-3xl lg:border-[3px] dark:border-slate-800\"\n        value={{ value: zodCode }}\n        model={model}\n      />\n      <div class=\"absolute top-10 right-10 z-10 flex gap-6\">\n        <IconButton\n          type=\"button\"\n          variant=\"secondary\"\n          label=\"Copy code\"\n          hideLabel\n          onClick$={copyCode}\n        >\n          {copied.value ? (\n            <CheckIcon class=\"h-[18px]\" />\n          ) : (\n            <CopyIcon class=\"h-[18px]\" />\n          )}\n        </IconButton>\n        <IconButton\n          type=\"button\"\n          variant=\"secondary\"\n          label=\"Execute codemod\"\n          hideLabel\n          onClick$={executeCodemod}\n        >\n          <PlayIcon class=\"h-[16px]\" />\n        </IconButton>\n      </div>\n    </div>\n  );\n});\n\n/**\n * Sets up the Monaco editor environment.\n */\nasync function setupMonaco() {\n  monaco.typescript.typescriptDefaults.addExtraLib(\n    zod3PackageJson,\n    'file:///node_modules/zod/package.json'\n  );\n  monaco.typescript.typescriptDefaults.addExtraLib(\n    zod3Types,\n    'file:///node_modules/zod/dist/index.d.ts'\n  );\n  monaco.typescript.typescriptDefaults.addExtraLib(\n    zod4PackageJson,\n    'file:///node_modules/zod/v4/package.json'\n  );\n  monaco.typescript.typescriptDefaults.addExtraLib(\n    zod4Types,\n    'file:///node_modules/zod/v4/dist/index.d.ts'\n  );\n}\n\n// Create initialization promise\nlet promise: Promise<void> | undefined;\n\n/**\n * Initializes Monaco editor environment.\n */\nasync function initializeMonaco() {\n  if (!promise) {\n    promise = setupMonaco();\n  }\n  await promise;\n}\n"
  },
  {
    "path": "website/src/routes/guides/(migration)/migrate-from-zod/index.mdx",
    "content": "---\ntitle: Migrate from Zod\ndescription: >-\n  Migrating from Zod to Valibot is very easy in most cases since both APIs have\n  a lot of similarities.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n  - valerii15298\n  - morinokami\n---\n\nimport { Link } from '~/components';\nimport { CodemodEditor } from './CodemodEditor';\n\n# Migrate from Zod\n\nMigrating from [Zod](https://zod.dev/) to Valibot is very easy in most cases since both APIs have a lot of similarities. The following guide will help you migrate step by step and also point out important differences.\n\n## Official codemod\n\nTo make the migration as smoth as possible, we have created an official codemod that automatically migrates your Zod schemas to Valibot. Just copy your schemas into this editor and click play.\n\n> The codemod is still in beta and may not cover all edge cases. If you encounter any problems or unexpected behaviour, please create an [issue](https://github.com/open-circle/valibot/issues/new). Alternatively, you can try to fix any issues yourself and create a [pull request](https://github.com/open-circle/valibot/pulls). You can find the source code [here](https://github.com/open-circle/valibot/tree/main/codemod/zod-to-valibot).\n\n<CodemodEditor />\n\nYou can also run the codemod locally to migrate your entire codebase at once:\n\n```bash\n// Preview changes (no writes)\nnpx @valibot/zod-to-valibot src/**/* --dry\n\n// Apply changes\nnpx @valibot/zod-to-valibot src/**/*\n```\n\n## Replace imports\n\nThe first thing to do after <Link href=\"../installation/\">installing</Link> Valibot is to update your imports. Just change your Zod imports to Valibot's and replace all occurrences of `z.` with `v.`.\n\n```ts\n// Change this\nimport { z } from 'zod';\nconst Schema = z.object({ key: z.string() });\n\n// To this\nimport * as v from 'valibot';\nconst Schema = v.object({ key: v.string() });\n```\n\n## Restructure code\n\nOne of the biggest differences between Zod and Valibot is the way you further validate a given type. In Zod, you chain methods like `.email` and `.endsWith`. In Valibot you use <Link href=\"../pipelines/\">pipelines</Link> to do the same thing. This is a function that starts with a schema and is followed by up to 19 validation or transformation actions.\n\n```ts\n// Change this\nconst Schema = z.string().email().endsWith('@example.com');\n\n// To this\nconst Schema = v.pipe(v.string(), v.email(), v.endsWith('@example.com'));\n```\n\nDue to the modular design of Valibot, also all other methods like `.parse` or `.safeParse` have to be used a little bit differently. Instead of chaining them, you usually pass the schema as the first argument and move any existing arguments one position to the right.\n\n```ts\n// Change this\nconst value = z.string().parse('foo');\n\n// To this\nconst value = v.parse(v.string(), 'foo');\n```\n\nWe recommend that you read our <Link href=\"../mental-model/\">mental model</Link> guide to understand how the individual functions of Valibot's modular API work together.\n\n## Change names\n\nMost of the names are the same as in Zod. However, there are some exceptions. The following table shows all names that have changed.\n\n| Zod                  | Valibot                                                                                                                                     |\n| -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |\n| `and`                | <Link href=\"/api/intersect/\">`intersect`</Link>                                                                                             |\n| `catch`              | <Link href=\"/api/fallback/\">`fallback`</Link>                                                                                               |\n| `catchall`           | <Link href=\"/api/objectWithRest/\">`objectWithRest`</Link>                                                                                   |\n| `coerce`             | <Link href=\"/api/pipe/\">`pipe`</Link>, <Link href=\"/api/unknown/\">`unknown`</Link> and <Link href=\"/api/transform/\">`transform`</Link>      |\n| `datetime`           | <Link href=\"/api/isoDate/\">`isoDate`</Link>, <Link href=\"/api/isoDateTime/\">`isoDateTime`</Link>                                            |\n| `default`            | <Link href=\"/api/optional/\">`optional`</Link>                                                                                               |\n| `discriminatedUnion` | <Link href=\"/api/variant/\">`variant`</Link>                                                                                                 |\n| `element`            | `item`                                                                                                                                      |\n| `enum`               | <Link href=\"/api/picklist/\">`picklist`</Link>                                                                                               |\n| `extend`             | <Link href=\"../intersections/#merge-objects\">Object merging</Link>                                                                          |\n| `gt`                 | <Link href=\"/api/gtValue/\">`gtValue`</Link>                                                                                                 |\n| `gte`                | <Link href=\"/api/minValue/\">`minValue`</Link>                                                                                               |\n| `infer`              | <Link href=\"/api/InferOutput/\">`InferOutput`</Link>                                                                                         |\n| `int`                | <Link href=\"/api/integer/\">`integer`</Link>                                                                                                 |\n| `input`              | <Link href=\"/api/InferInput/\">`InferInput`</Link>                                                                                           |\n| `instanceof`         | <Link href=\"/api/instance/\">`instance`</Link>                                                                                               |\n| `intersection`       | <Link href=\"/api/intersect/\">`intersect`</Link>                                                                                             |\n| `lt`                 | <Link href=\"/api/ltValue/\">`ltValue`</Link>                                                                                                 |\n| `lte`                | <Link href=\"/api/maxValue/\">`maxValue`</Link>                                                                                               |\n| `max`                | <Link href=\"/api/maxLength/\">`maxLength`</Link>, <Link href=\"/api/maxSize/\">`maxSize`</Link>, <Link href=\"/api/maxValue/\">`maxValue`</Link> |\n| `min`                | <Link href=\"/api/minLength/\">`minLength`</Link>, <Link href=\"/api/minSize/\">`minSize`</Link>, <Link href=\"/api/minValue/\">`minValue`</Link> |\n| `nativeEnum`         | <Link href=\"/api/enum/\">`enum`</Link>                                                                                                       |\n| `negative`           | <Link href=\"/api/maxValue/\">`maxValue`</Link>                                                                                               |\n| `nonnegative`        | <Link href=\"/api/minValue/\">`minValue`</Link>                                                                                               |\n| `nonpositive`        | <Link href=\"/api/maxValue/\">`maxValue`</Link>                                                                                               |\n| `or`                 | <Link href=\"/api/union/\">`union`</Link>                                                                                                     |\n| `output`             | <Link href=\"/api/InferOutput/\">`InferOutput`</Link>                                                                                         |\n| `passthrough`        | <Link href=\"/api/looseObject/\">`looseObject`</Link>                                                                                         |\n| `positive`           | <Link href=\"/api/minValue/\">`minValue`</Link>                                                                                               |\n| `refine`             | <Link href=\"/api/check/\">`check`</Link>, <Link href=\"/api/forward/\">`forward`</Link>                                                        |\n| `rest`               | <Link href=\"/api/tuple/\">`tuple`</Link>                                                                                                     |\n| `safe`               | <Link href=\"/api/safeInteger/\">`safeInteger`</Link>                                                                                         |\n| `shape`              | `entries`                                                                                                                                   |\n| `strict`             | <Link href=\"/api/strictObject/\">`strictObject`</Link>                                                                                       |\n| `strip`              | <Link href=\"/api/object/\">`object`</Link>                                                                                                   |\n| `superRefine`        | <Link href=\"/api/rawCheck/\">`rawCheck`</Link>, <Link href=\"/api/rawTransform/\">`rawTransform`</Link>                                        |\n\n## Other details\n\nBelow are some more details that may be helpful when migrating from Zod to Valibot.\n\n### Object and tuple\n\nTo specify whether objects or tuples should allow or prevent unknown values, Valibot uses different schema functions. Zod uses the methods `.passthrough`, `.strict`, `.strip`, `.catchall` and `.rest` instead. See the <Link href=\"../objects/\">objects</Link> and <Link href=\"../arrays/\">arrays</Link> guide for more details.\n\n```ts\n// Change this\nconst ObjectSchema = z.object({ key: z.string() }).strict();\n\n// To this\nconst ObjectSchema = v.strictObject({ key: v.string() });\n```\n\n### Error messages\n\nFor individual error messages, you can pass a string or an object to Zod. It also allows you to differentiate between an error message for \"required\" and \"invalid_type\". With Valibot you just pass a single string instead.\n\n```ts\n// Change this\nconst StringSchema = z\n  .string({ invalid_type_error: 'Not a string' })\n  .min(5, { message: 'Too short' });\n\n// To this\nconst StringSchema = v.pipe(\n  v.string('Not a string'),\n  v.minLength(5, 'Too short')\n);\n```\n\n### Coerce type\n\nTo enforce primitive values, you can use a method of the `coerce` object in Zod. There is no such object or function in Valibot. Instead, you use a pipeline with a <Link href=\"/api/transform/\">`transform`</Link> action as the second argument. This forces you to explicitly define the input, resulting in safer code.\n\n```ts\n// Change this\nconst NumberSchema = z.coerce.number();\n\n// To this\nconst NumberSchema = v.pipe(v.unknown(), v.transform(Number));\n```\n\nInstead of <Link href=\"/api/unknown/\">`unknown`</Link> as in the previous example, we usually recommend using a specific schema such as <Link href=\"/api/string/\">`string`</Link> to improve type safety. This allows you, for example, to validate the formatting of the string with <Link href=\"/api/decimal/\">`decimal`</Link> before transforming it to a number.\n\n```ts\nconst NumberSchema = v.pipe(v.string(), v.decimal(), v.transform(Number));\n```\n\n### Async validation\n\nSimilar to Zod, Valibot supports synchronous and asynchronous validation. However, the API is a little bit different. See the <Link href=\"../async-validation/\">async guide</Link> for more details.\n"
  },
  {
    "path": "website/src/routes/guides/(migration)/migrate-from-zod/zod/code.ts",
    "content": "import * as z from 'zod';\n\nconst Schema = z.object({\n  email: z.string().email(),\n  password: z.string().min(8),\n});\n\nSchema.parse({\n  email: 'jane@example.com',\n  password: '12345678',\n});\n"
  },
  {
    "path": "website/src/routes/guides/(migration)/migrate-from-zod/zod/v3/index.d.ts",
    "content": "type Primitive=string|number|symbol|bigint|boolean|null|undefined;type Scalars=Primitive|Primitive[];declare namespace util{type AssertEqual<T,U>=(<V>()=>V extends T?1:2)extends<V>()=>V extends U?1:2?true:false;export type isAny<T>=0extends1&T?true:false;export const assertEqual:<A,B>(_:AssertEqual<A,B>)=>void;export function assertIs<T>(_arg:T):void;export function assertNever(_x:never):never;export type Omit<T,K extends keyof T>=Pick<T,Exclude<keyof T,K>>;export type OmitKeys<T,K extends string>=Pick<T,Exclude<keyof T,K>>;export type MakePartial<T,K extends keyof T>=Omit<T,K>&Partial<Pick<T,K>>;export type Exactly<T,X>=T&Record<Exclude<keyof X,keyof T>,never>;export type InexactPartial<T>={[k in keyof T]?:T[k]|undefined;};export const arrayToEnum:<T extends string,U extends[T,...T[]]>(items:U)=>{[k in U[number]]:k;};export const getValidEnumValues:(obj:any)=>any[];export const objectValues:(obj:any)=>any[];export const objectKeys:ObjectConstructor[\"keys\"];export const find:<T>(arr:T[],checker:(arg:T)=>any)=>T|undefined;export type identity<T>=objectUtil.identity<T>;export type flatten<T>=objectUtil.flatten<T>;export type noUndefined<T>=T extends undefined?never:T;export const isInteger:NumberConstructor[\"isInteger\"];export function joinValues<T extends any[]>(array:T,separator?:string):string;export const jsonStringifyReplacer:(_:string,value:any)=>any;export{};}declare namespace objectUtil{export type MergeShapes<U,V>=keyof U&keyof V extends never?U&V:{[k in Exclude<keyof U,keyof V>]:U[k];}&V;type optionalKeys<T extends object>={[k in keyof T]:undefined extends T[k]?k:never;}[keyof T];type requiredKeys<T extends object>={[k in keyof T]:undefined extends T[k]?never:k;}[keyof T];export type addQuestionMarks<T extends object,_O=any>={[K in requiredKeys<T>]:T[K];}&{[K in optionalKeys<T>]?:T[K];}&{[k in keyof T]?:unknown;};export type identity<T>=T;export type flatten<T>=identity<{[k in keyof T]:T[k];}>;export type noNeverKeys<T>={[k in keyof T]:[T[k]]extends[never]?never:k;}[keyof T];export type noNever<T>=identity<{[k in noNeverKeys<T>]:k extends keyof T?T[k]:never;}>;export const mergeShapes:<U,T>(first:U,second:T)=>T&U;export type extendShape<A extends object,B extends object>=keyof A&keyof B extends never?A&B:{[K in keyof A as K extends keyof B?never:K]:A[K];}&{[K in keyof B]:B[K];};export{};}declare const ZodParsedType:{string:\"string\";nan:\"nan\";number:\"number\";integer:\"integer\";float:\"float\";boolean:\"boolean\";date:\"date\";bigint:\"bigint\";symbol:\"symbol\";function:\"function\";undefined:\"undefined\";null:\"null\";array:\"array\";object:\"object\";unknown:\"unknown\";promise:\"promise\";void:\"void\";never:\"never\";map:\"map\";set:\"set\";};type ZodParsedType=keyof typeof ZodParsedType;declare const getParsedType:(data:any)=>ZodParsedType;type allKeys<T>=T extends any?keyof T:never;type inferFlattenedErrors<T extends ZodType<any,any,any>,U=string>=typeToFlattenedError<TypeOf<T>,U>;type typeToFlattenedError<T,U=string>={formErrors:U[];fieldErrors:{[P in allKeys<T>]?:U[];};};declare const ZodIssueCode:{invalid_type:\"invalid_type\";invalid_literal:\"invalid_literal\";custom:\"custom\";invalid_union:\"invalid_union\";invalid_union_discriminator:\"invalid_union_discriminator\";invalid_enum_value:\"invalid_enum_value\";unrecognized_keys:\"unrecognized_keys\";invalid_arguments:\"invalid_arguments\";invalid_return_type:\"invalid_return_type\";invalid_date:\"invalid_date\";invalid_string:\"invalid_string\";too_small:\"too_small\";too_big:\"too_big\";invalid_intersection_types:\"invalid_intersection_types\";not_multiple_of:\"not_multiple_of\";not_finite:\"not_finite\";};type ZodIssueCode=keyof typeof ZodIssueCode;type ZodIssueBase={path:(string|number)[];message?:string|undefined;};interface ZodInvalidTypeIssue extends ZodIssueBase{code:typeof ZodIssueCode.invalid_type;expected:ZodParsedType;received:ZodParsedType;}interface ZodInvalidLiteralIssue extends ZodIssueBase{code:typeof ZodIssueCode.invalid_literal;expected:unknown;received:unknown;}interface ZodUnrecognizedKeysIssue extends ZodIssueBase{code:typeof ZodIssueCode.unrecognized_keys;keys:string[];}interface ZodInvalidUnionIssue extends ZodIssueBase{code:typeof ZodIssueCode.invalid_union;unionErrors:ZodError[];}interface ZodInvalidUnionDiscriminatorIssue extends ZodIssueBase{code:typeof ZodIssueCode.invalid_union_discriminator;options:Primitive[];}interface ZodInvalidEnumValueIssue extends ZodIssueBase{received:string|number;code:typeof ZodIssueCode.invalid_enum_value;options:(string|number)[];}interface ZodInvalidArgumentsIssue extends ZodIssueBase{code:typeof ZodIssueCode.invalid_arguments;argumentsError:ZodError;}interface ZodInvalidReturnTypeIssue extends ZodIssueBase{code:typeof ZodIssueCode.invalid_return_type;returnTypeError:ZodError;}interface ZodInvalidDateIssue extends ZodIssueBase{code:typeof ZodIssueCode.invalid_date;}type StringValidation=\"email\"|\"url\"|\"emoji\"|\"uuid\"|\"nanoid\"|\"regex\"|\"cuid\"|\"cuid2\"|\"ulid\"|\"datetime\"|\"date\"|\"time\"|\"duration\"|\"ip\"|\"cidr\"|\"base64\"|\"jwt\"|\"base64url\"|{includes:string;position?:number|undefined;}|{startsWith:string;}|{endsWith:string;};interface ZodInvalidStringIssue extends ZodIssueBase{code:typeof ZodIssueCode.invalid_string;validation:StringValidation;}interface ZodTooSmallIssue extends ZodIssueBase{code:typeof ZodIssueCode.too_small;minimum:number|bigint;inclusive:boolean;exact?:boolean;type:\"array\"|\"string\"|\"number\"|\"set\"|\"date\"|\"bigint\";}interface ZodTooBigIssue extends ZodIssueBase{code:typeof ZodIssueCode.too_big;maximum:number|bigint;inclusive:boolean;exact?:boolean;type:\"array\"|\"string\"|\"number\"|\"set\"|\"date\"|\"bigint\";}interface ZodInvalidIntersectionTypesIssue extends ZodIssueBase{code:typeof ZodIssueCode.invalid_intersection_types;}interface ZodNotMultipleOfIssue extends ZodIssueBase{code:typeof ZodIssueCode.not_multiple_of;multipleOf:number|bigint;}interface ZodNotFiniteIssue extends ZodIssueBase{code:typeof ZodIssueCode.not_finite;}interface ZodCustomIssue extends ZodIssueBase{code:typeof ZodIssueCode.custom;params?:{[k:string]:any;};}type DenormalizedError={[k:string]:DenormalizedError|string[];};type ZodIssueOptionalMessage=ZodInvalidTypeIssue|ZodInvalidLiteralIssue|ZodUnrecognizedKeysIssue|ZodInvalidUnionIssue|ZodInvalidUnionDiscriminatorIssue|ZodInvalidEnumValueIssue|ZodInvalidArgumentsIssue|ZodInvalidReturnTypeIssue|ZodInvalidDateIssue|ZodInvalidStringIssue|ZodTooSmallIssue|ZodTooBigIssue|ZodInvalidIntersectionTypesIssue|ZodNotMultipleOfIssue|ZodNotFiniteIssue|ZodCustomIssue;type ZodIssue=ZodIssueOptionalMessage&{fatal?:boolean|undefined;message:string;};declare const quotelessJson:(obj:any)=>string;type recursiveZodFormattedError<T>=T extends[any,...any[]]?{[K in keyof T]?:ZodFormattedError<T[K]>;}:T extends any[]?{[k:number]:ZodFormattedError<T[number]>;}:T extends object?{[K in keyof T]?:ZodFormattedError<T[K]>;}:unknown;type ZodFormattedError<T,U=string>={_errors:U[];}&recursiveZodFormattedError<NonNullable<T>>;type inferFormattedError<T extends ZodType<any,any,any>,U=string>=ZodFormattedError<TypeOf<T>,U>;declare class ZodError<T=any>extends Error{issues:ZodIssue[];get errors():ZodIssue[];constructor(issues:ZodIssue[]);format():ZodFormattedError<T>;format<U>(mapper:(issue:ZodIssue)=>U):ZodFormattedError<T,U>;static create:(issues:ZodIssue[])=>ZodError<any>;static assert(value:unknown):asserts value is ZodError;toString():string;get message():string;get isEmpty():boolean;addIssue:(sub:ZodIssue)=>void;addIssues:(subs?:ZodIssue[])=>void;flatten():typeToFlattenedError<T>;flatten<U>(mapper?:(issue:ZodIssue)=>U):typeToFlattenedError<T,U>;get formErrors():typeToFlattenedError<T,string>;}type stripPath<T extends object>=T extends any?util.OmitKeys<T,\"path\">:never;type IssueData=stripPath<ZodIssueOptionalMessage>&{path?:(string|number)[];fatal?:boolean|undefined;};type ErrorMapCtx={defaultError:string;data:any;};type ZodErrorMap=(issue:ZodIssueOptionalMessage,_ctx:ErrorMapCtx)=>{message:string;};declare const errorMap:ZodErrorMap;declare function setErrorMap(map:ZodErrorMap):void;declare function getErrorMap():ZodErrorMap;declare const makeIssue:(params:{data:any;path:(string|number)[];errorMaps:ZodErrorMap[];issueData:IssueData;})=>ZodIssue;type ParseParams={path:(string|number)[];errorMap:ZodErrorMap;async:boolean;};type ParsePathComponent=string|number;type ParsePath=ParsePathComponent[];declare const EMPTY_PATH:ParsePath;interface ParseContext{readonly common:{readonly issues:ZodIssue[];readonly contextualErrorMap?:ZodErrorMap|undefined;readonly async:boolean;};readonly path:ParsePath;readonly schemaErrorMap?:ZodErrorMap|undefined;readonly parent:ParseContext|null;readonly data:any;readonly parsedType:ZodParsedType;}type ParseInput={data:any;path:(string|number)[];parent:ParseContext;};declare function addIssueToContext(ctx:ParseContext,issueData:IssueData):void;type ObjectPair={key:SyncParseReturnType<any>;value:SyncParseReturnType<any>;};declare class ParseStatus{value:\"aborted\"|\"dirty\"|\"valid\";dirty():void;abort():void;static mergeArray(status:ParseStatus,results:SyncParseReturnType<any>[]):SyncParseReturnType;static mergeObjectAsync(status:ParseStatus,pairs:{key:ParseReturnType<any>;value:ParseReturnType<any>;}[]):Promise<SyncParseReturnType<any>>;static mergeObjectSync(status:ParseStatus,pairs:{key:SyncParseReturnType<any>;value:SyncParseReturnType<any>;alwaysSet?:boolean;}[]):SyncParseReturnType;}interface ParseResult{status:\"aborted\"|\"dirty\"|\"valid\";data:any;}type INVALID={status:\"aborted\";};declare const INVALID:INVALID;type DIRTY<T>={status:\"dirty\";value:T;};declare const DIRTY:<T>(value:T)=>DIRTY<T>;type OK<T>={status:\"valid\";value:T;};declare const OK:<T>(value:T)=>OK<T>;type SyncParseReturnType<T=any>=OK<T>|DIRTY<T>|INVALID;type AsyncParseReturnType<T>=Promise<SyncParseReturnType<T>>;type ParseReturnType<T>=SyncParseReturnType<T>|AsyncParseReturnType<T>;declare const isAborted:(x:ParseReturnType<any>)=>x is INVALID;declare const isDirty:<T>(x:ParseReturnType<T>)=>x is OK<T>|DIRTY<T>;declare const isValid:<T>(x:ParseReturnType<T>)=>x is OK<T>;declare const isAsync:<T>(x:ParseReturnType<T>)=>x is AsyncParseReturnType<T>;declare namespace enumUtil{type UnionToIntersectionFn<T>=(T extends unknown?(k:()=>T)=>void:never)extends(k:infer Intersection)=>void?Intersection:never;type GetUnionLast<T>=UnionToIntersectionFn<T>extends()=>infer Last?Last:never;type UnionToTuple<T,Tuple extends unknown[]=[]>=[T]extends[never]?Tuple:UnionToTuple<Exclude<T,GetUnionLast<T>>,[GetUnionLast<T>,...Tuple]>;type CastToStringTuple<T>=T extends[string,...string[]]?T:never;export type UnionToTupleString<T>=CastToStringTuple<UnionToTuple<T>>;export{};}declare namespace errorUtil{type ErrMessage=string|{message?:string|undefined;};const errToObj:(message?:ErrMessage)=>{message?:string|undefined;};const toString:(message?:ErrMessage)=>string|undefined;}declare namespace partialUtil{type DeepPartial<T extends ZodTypeAny>=T extends ZodObject<ZodRawShape>?ZodObject<{[k in keyof T[\"shape\"]]:ZodOptional<DeepPartial<T[\"shape\"][k]>>;},T[\"_def\"][\"unknownKeys\"],T[\"_def\"][\"catchall\"]>:T extends ZodArray<infer Type,infer Card>?ZodArray<DeepPartial<Type>,Card>:T extends ZodOptional<infer Type>?ZodOptional<DeepPartial<Type>>:T extends ZodNullable<infer Type>?ZodNullable<DeepPartial<Type>>:T extends ZodTuple<infer Items>?{[k in keyof Items]:Items[k]extends ZodTypeAny?DeepPartial<Items[k]>:never;}extends infer PI?PI extends ZodTupleItems?ZodTuple<PI>:never:never:T;}type StandardSchemaV1<Input=unknown,Output=Input>={readonly\"~standard\":StandardSchemaV1.Props<Input,Output>;};declare namespace StandardSchemaV1{export interface Props<Input=unknown,Output=Input>{readonly version:1;readonly vendor:string;readonly validate:(value:unknown)=>Result<Output>|Promise<Result<Output>>;readonly types?:Types<Input,Output>|undefined;}export type Result<Output>=SuccessResult<Output>|FailureResult;export interface SuccessResult<Output>{readonly value:Output;readonly issues?:undefined;}export interface FailureResult{readonly issues:ReadonlyArray<Issue>;}export interface Issue{readonly message:string;readonly path?:ReadonlyArray<PropertyKey|PathSegment>|undefined;}export interface PathSegment{readonly key:PropertyKey;}export interface Types<Input=unknown,Output=Input>{readonly input:Input;readonly output:Output;}export type InferInput<Schema extends StandardSchemaV1>=NonNullable<Schema[\"~standard\"][\"types\"]>[\"input\"];export type InferOutput<Schema extends StandardSchemaV1>=NonNullable<Schema[\"~standard\"][\"types\"]>[\"output\"];export{};}interface RefinementCtx{addIssue:(arg:IssueData)=>void;path:(string|number)[];}type ZodRawShape={[k:string]:ZodTypeAny;};type ZodTypeAny=ZodType<any,any,any>;type TypeOf<T extends ZodType<any,any,any>>=T[\"_output\"];type input<T extends ZodType<any,any,any>>=T[\"_input\"];type output<T extends ZodType<any,any,any>>=T[\"_output\"];type CustomErrorParams=Partial<util.Omit<ZodCustomIssue,\"code\">>;interface ZodTypeDef{errorMap?:ZodErrorMap|undefined;description?:string|undefined;}type RawCreateParams={errorMap?:ZodErrorMap|undefined;invalid_type_error?:string|undefined;required_error?:string|undefined;message?:string|undefined;description?:string|undefined;}|undefined;type ProcessedCreateParams={errorMap?:ZodErrorMap|undefined;description?:string|undefined;};type SafeParseSuccess<Output>={success:true;data:Output;error?:never;};type SafeParseError<Input>={success:false;error:ZodError<Input>;data?:never;};type SafeParseReturnType<Input,Output>=SafeParseSuccess<Output>|SafeParseError<Input>;declare abstract class ZodType<Output=any,Def extends ZodTypeDef=ZodTypeDef,Input=Output>{readonly _type:Output;readonly _output:Output;readonly _input:Input;readonly _def:Def;get description():string|undefined;\"~standard\":StandardSchemaV1.Props<Input,Output>;abstract _parse(input:ParseInput):ParseReturnType<Output>;_getType(input:ParseInput):string;_getOrReturnCtx(input:ParseInput,ctx?:ParseContext|undefined):ParseContext;_processInputParams(input:ParseInput):{status:ParseStatus;ctx:ParseContext;};_parseSync(input:ParseInput):SyncParseReturnType<Output>;_parseAsync(input:ParseInput):AsyncParseReturnType<Output>;parse(data:unknown,params?:util.InexactPartial<ParseParams>):Output;safeParse(data:unknown,params?:util.InexactPartial<ParseParams>):SafeParseReturnType<Input,Output>;\"~validate\"(data:unknown):StandardSchemaV1.Result<Output>|Promise<StandardSchemaV1.Result<Output>>;parseAsync(data:unknown,params?:util.InexactPartial<ParseParams>):Promise<Output>;safeParseAsync(data:unknown,params?:util.InexactPartial<ParseParams>):Promise<SafeParseReturnType<Input,Output>>;spa:(data:unknown,params?:util.InexactPartial<ParseParams>)=>Promise<SafeParseReturnType<Input,Output>>;refine<RefinedOutput extends Output>(check:(arg:Output)=>arg is RefinedOutput,message?:string|CustomErrorParams|((arg:Output)=>CustomErrorParams)):ZodEffects<this,RefinedOutput,Input>;refine(check:(arg:Output)=>unknown|Promise<unknown>,message?:string|CustomErrorParams|((arg:Output)=>CustomErrorParams)):ZodEffects<this,Output,Input>;refinement<RefinedOutput extends Output>(check:(arg:Output)=>arg is RefinedOutput,refinementData:IssueData|((arg:Output,ctx:RefinementCtx)=>IssueData)):ZodEffects<this,RefinedOutput,Input>;refinement(check:(arg:Output)=>boolean,refinementData:IssueData|((arg:Output,ctx:RefinementCtx)=>IssueData)):ZodEffects<this,Output,Input>;_refinement(refinement:RefinementEffect<Output>[\"refinement\"]):ZodEffects<this,Output,Input>;superRefine<RefinedOutput extends Output>(refinement:(arg:Output,ctx:RefinementCtx)=>arg is RefinedOutput):ZodEffects<this,RefinedOutput,Input>;superRefine(refinement:(arg:Output,ctx:RefinementCtx)=>void):ZodEffects<this,Output,Input>;superRefine(refinement:(arg:Output,ctx:RefinementCtx)=>Promise<void>):ZodEffects<this,Output,Input>;constructor(def:Def);optional():ZodOptional<this>;nullable():ZodNullable<this>;nullish():ZodOptional<ZodNullable<this>>;array():ZodArray<this>;promise():ZodPromise<this>;or<T extends ZodTypeAny>(option:T):ZodUnion<[this,T]>;and<T extends ZodTypeAny>(incoming:T):ZodIntersection<this,T>;transform<NewOut>(transform:(arg:Output,ctx:RefinementCtx)=>NewOut|Promise<NewOut>):ZodEffects<this,NewOut>;default(def:util.noUndefined<Input>):ZodDefault<this>;default(def:()=>util.noUndefined<Input>):ZodDefault<this>;brand<B extends string|number|symbol>(brand?:B):ZodBranded<this,B>;catch(def:Output):ZodCatch<this>;catch(def:(ctx:{error:ZodError;input:Input;})=>Output):ZodCatch<this>;describe(description:string):this;pipe<T extends ZodTypeAny>(target:T):ZodPipeline<this,T>;readonly():ZodReadonly<this>;isOptional():boolean;isNullable():boolean;}type IpVersion=\"v4\"|\"v6\";type ZodStringCheck={kind:\"min\";value:number;message?:string|undefined;}|{kind:\"max\";value:number;message?:string|undefined;}|{kind:\"length\";value:number;message?:string|undefined;}|{kind:\"email\";message?:string|undefined;}|{kind:\"url\";message?:string|undefined;}|{kind:\"emoji\";message?:string|undefined;}|{kind:\"uuid\";message?:string|undefined;}|{kind:\"nanoid\";message?:string|undefined;}|{kind:\"cuid\";message?:string|undefined;}|{kind:\"includes\";value:string;position?:number|undefined;message?:string|undefined;}|{kind:\"cuid2\";message?:string|undefined;}|{kind:\"ulid\";message?:string|undefined;}|{kind:\"startsWith\";value:string;message?:string|undefined;}|{kind:\"endsWith\";value:string;message?:string|undefined;}|{kind:\"regex\";regex:RegExp;message?:string|undefined;}|{kind:\"trim\";message?:string|undefined;}|{kind:\"toLowerCase\";message?:string|undefined;}|{kind:\"toUpperCase\";message?:string|undefined;}|{kind:\"jwt\";alg?:string;message?:string|undefined;}|{kind:\"datetime\";offset:boolean;local:boolean;precision:number|null;message?:string|undefined;}|{kind:\"date\";message?:string|undefined;}|{kind:\"time\";precision:number|null;message?:string|undefined;}|{kind:\"duration\";message?:string|undefined;}|{kind:\"ip\";version?:IpVersion|undefined;message?:string|undefined;}|{kind:\"cidr\";version?:IpVersion|undefined;message?:string|undefined;}|{kind:\"base64\";message?:string|undefined;}|{kind:\"base64url\";message?:string|undefined;};interface ZodStringDef extends ZodTypeDef{checks:ZodStringCheck[];typeName:ZodFirstPartyTypeKind.ZodString;coerce:boolean;}declare function datetimeRegex(args:{precision?:number|null;offset?:boolean;local?:boolean;}):RegExp;declare class ZodString extends ZodType<string,ZodStringDef,string>{_parse(input:ParseInput):ParseReturnType<string>;protected _regex(regex:RegExp,validation:StringValidation,message?:errorUtil.ErrMessage):ZodEffects<this,string,string>;_addCheck(check:ZodStringCheck):ZodString;email(message?:errorUtil.ErrMessage):ZodString;url(message?:errorUtil.ErrMessage):ZodString;emoji(message?:errorUtil.ErrMessage):ZodString;uuid(message?:errorUtil.ErrMessage):ZodString;nanoid(message?:errorUtil.ErrMessage):ZodString;cuid(message?:errorUtil.ErrMessage):ZodString;cuid2(message?:errorUtil.ErrMessage):ZodString;ulid(message?:errorUtil.ErrMessage):ZodString;base64(message?:errorUtil.ErrMessage):ZodString;base64url(message?:errorUtil.ErrMessage):ZodString;jwt(options?:{alg?:string;message?:string|undefined;}):ZodString;ip(options?:string|{version?:IpVersion;message?:string|undefined;}):ZodString;cidr(options?:string|{version?:IpVersion;message?:string|undefined;}):ZodString;datetime(options?:string|{message?:string|undefined;precision?:number|null;offset?:boolean;local?:boolean;}):ZodString;date(message?:string):ZodString;time(options?:string|{message?:string|undefined;precision?:number|null;}):ZodString;duration(message?:errorUtil.ErrMessage):ZodString;regex(regex:RegExp,message?:errorUtil.ErrMessage):ZodString;includes(value:string,options?:{message?:string;position?:number;}):ZodString;startsWith(value:string,message?:errorUtil.ErrMessage):ZodString;endsWith(value:string,message?:errorUtil.ErrMessage):ZodString;min(minLength:number,message?:errorUtil.ErrMessage):ZodString;max(maxLength:number,message?:errorUtil.ErrMessage):ZodString;length(len:number,message?:errorUtil.ErrMessage):ZodString;nonempty(message?:errorUtil.ErrMessage):ZodString;trim():ZodString;toLowerCase():ZodString;toUpperCase():ZodString;get isDatetime():boolean;get isDate():boolean;get isTime():boolean;get isDuration():boolean;get isEmail():boolean;get isURL():boolean;get isEmoji():boolean;get isUUID():boolean;get isNANOID():boolean;get isCUID():boolean;get isCUID2():boolean;get isULID():boolean;get isIP():boolean;get isCIDR():boolean;get isBase64():boolean;get isBase64url():boolean;get minLength():number|null;get maxLength():number|null;static create:(params?:RawCreateParams&{coerce?:true;})=>ZodString;}type ZodNumberCheck={kind:\"min\";value:number;inclusive:boolean;message?:string|undefined;}|{kind:\"max\";value:number;inclusive:boolean;message?:string|undefined;}|{kind:\"int\";message?:string|undefined;}|{kind:\"multipleOf\";value:number;message?:string|undefined;}|{kind:\"finite\";message?:string|undefined;};interface ZodNumberDef extends ZodTypeDef{checks:ZodNumberCheck[];typeName:ZodFirstPartyTypeKind.ZodNumber;coerce:boolean;}declare class ZodNumber extends ZodType<number,ZodNumberDef,number>{_parse(input:ParseInput):ParseReturnType<number>;static create:(params?:RawCreateParams&{coerce?:boolean;})=>ZodNumber;gte(value:number,message?:errorUtil.ErrMessage):ZodNumber;min:(value:number,message?:errorUtil.ErrMessage)=>ZodNumber;gt(value:number,message?:errorUtil.ErrMessage):ZodNumber;lte(value:number,message?:errorUtil.ErrMessage):ZodNumber;max:(value:number,message?:errorUtil.ErrMessage)=>ZodNumber;lt(value:number,message?:errorUtil.ErrMessage):ZodNumber;protected setLimit(kind:\"min\"|\"max\",value:number,inclusive:boolean,message?:string):ZodNumber;_addCheck(check:ZodNumberCheck):ZodNumber;int(message?:errorUtil.ErrMessage):ZodNumber;positive(message?:errorUtil.ErrMessage):ZodNumber;negative(message?:errorUtil.ErrMessage):ZodNumber;nonpositive(message?:errorUtil.ErrMessage):ZodNumber;nonnegative(message?:errorUtil.ErrMessage):ZodNumber;multipleOf(value:number,message?:errorUtil.ErrMessage):ZodNumber;step:(value:number,message?:errorUtil.ErrMessage)=>ZodNumber;finite(message?:errorUtil.ErrMessage):ZodNumber;safe(message?:errorUtil.ErrMessage):ZodNumber;get minValue():number|null;get maxValue():number|null;get isInt():boolean;get isFinite():boolean;}type ZodBigIntCheck={kind:\"min\";value:bigint;inclusive:boolean;message?:string|undefined;}|{kind:\"max\";value:bigint;inclusive:boolean;message?:string|undefined;}|{kind:\"multipleOf\";value:bigint;message?:string|undefined;};interface ZodBigIntDef extends ZodTypeDef{checks:ZodBigIntCheck[];typeName:ZodFirstPartyTypeKind.ZodBigInt;coerce:boolean;}declare class ZodBigInt extends ZodType<bigint,ZodBigIntDef,bigint>{_parse(input:ParseInput):ParseReturnType<bigint>;_getInvalidInput(input:ParseInput):INVALID;static create:(params?:RawCreateParams&{coerce?:boolean;})=>ZodBigInt;gte(value:bigint,message?:errorUtil.ErrMessage):ZodBigInt;min:(value:bigint,message?:errorUtil.ErrMessage)=>ZodBigInt;gt(value:bigint,message?:errorUtil.ErrMessage):ZodBigInt;lte(value:bigint,message?:errorUtil.ErrMessage):ZodBigInt;max:(value:bigint,message?:errorUtil.ErrMessage)=>ZodBigInt;lt(value:bigint,message?:errorUtil.ErrMessage):ZodBigInt;protected setLimit(kind:\"min\"|\"max\",value:bigint,inclusive:boolean,message?:string):ZodBigInt;_addCheck(check:ZodBigIntCheck):ZodBigInt;positive(message?:errorUtil.ErrMessage):ZodBigInt;negative(message?:errorUtil.ErrMessage):ZodBigInt;nonpositive(message?:errorUtil.ErrMessage):ZodBigInt;nonnegative(message?:errorUtil.ErrMessage):ZodBigInt;multipleOf(value:bigint,message?:errorUtil.ErrMessage):ZodBigInt;get minValue():bigint|null;get maxValue():bigint|null;}interface ZodBooleanDef extends ZodTypeDef{typeName:ZodFirstPartyTypeKind.ZodBoolean;coerce:boolean;}declare class ZodBoolean extends ZodType<boolean,ZodBooleanDef,boolean>{_parse(input:ParseInput):ParseReturnType<boolean>;static create:(params?:RawCreateParams&{coerce?:boolean;})=>ZodBoolean;}type ZodDateCheck={kind:\"min\";value:number;message?:string|undefined;}|{kind:\"max\";value:number;message?:string|undefined;};interface ZodDateDef extends ZodTypeDef{checks:ZodDateCheck[];coerce:boolean;typeName:ZodFirstPartyTypeKind.ZodDate;}declare class ZodDate extends ZodType<Date,ZodDateDef,Date>{_parse(input:ParseInput):ParseReturnType<this[\"_output\"]>;_addCheck(check:ZodDateCheck):ZodDate;min(minDate:Date,message?:errorUtil.ErrMessage):ZodDate;max(maxDate:Date,message?:errorUtil.ErrMessage):ZodDate;get minDate():Date|null;get maxDate():Date|null;static create:(params?:RawCreateParams&{coerce?:boolean;})=>ZodDate;}interface ZodSymbolDef extends ZodTypeDef{typeName:ZodFirstPartyTypeKind.ZodSymbol;}declare class ZodSymbol extends ZodType<symbol,ZodSymbolDef,symbol>{_parse(input:ParseInput):ParseReturnType<this[\"_output\"]>;static create:(params?:RawCreateParams)=>ZodSymbol;}interface ZodUndefinedDef extends ZodTypeDef{typeName:ZodFirstPartyTypeKind.ZodUndefined;}declare class ZodUndefined extends ZodType<undefined,ZodUndefinedDef,undefined>{_parse(input:ParseInput):ParseReturnType<this[\"_output\"]>;params?:RawCreateParams;static create:(params?:RawCreateParams)=>ZodUndefined;}interface ZodNullDef extends ZodTypeDef{typeName:ZodFirstPartyTypeKind.ZodNull;}declare class ZodNull extends ZodType<null,ZodNullDef,null>{_parse(input:ParseInput):ParseReturnType<this[\"_output\"]>;static create:(params?:RawCreateParams)=>ZodNull;}interface ZodAnyDef extends ZodTypeDef{typeName:ZodFirstPartyTypeKind.ZodAny;}declare class ZodAny extends ZodType<any,ZodAnyDef,any>{_any:true;_parse(input:ParseInput):ParseReturnType<this[\"_output\"]>;static create:(params?:RawCreateParams)=>ZodAny;}interface ZodUnknownDef extends ZodTypeDef{typeName:ZodFirstPartyTypeKind.ZodUnknown;}declare class ZodUnknown extends ZodType<unknown,ZodUnknownDef,unknown>{_unknown:true;_parse(input:ParseInput):ParseReturnType<this[\"_output\"]>;static create:(params?:RawCreateParams)=>ZodUnknown;}interface ZodNeverDef extends ZodTypeDef{typeName:ZodFirstPartyTypeKind.ZodNever;}declare class ZodNever extends ZodType<never,ZodNeverDef,never>{_parse(input:ParseInput):ParseReturnType<this[\"_output\"]>;static create:(params?:RawCreateParams)=>ZodNever;}interface ZodVoidDef extends ZodTypeDef{typeName:ZodFirstPartyTypeKind.ZodVoid;}declare class ZodVoid extends ZodType<void,ZodVoidDef,void>{_parse(input:ParseInput):ParseReturnType<this[\"_output\"]>;static create:(params?:RawCreateParams)=>ZodVoid;}interface ZodArrayDef<T extends ZodTypeAny=ZodTypeAny>extends ZodTypeDef{type:T;typeName:ZodFirstPartyTypeKind.ZodArray;exactLength:{value:number;message?:string|undefined;}|null;minLength:{value:number;message?:string|undefined;}|null;maxLength:{value:number;message?:string|undefined;}|null;}type ArrayCardinality=\"many\"|\"atleastone\";type arrayOutputType<T extends ZodTypeAny,Cardinality extends ArrayCardinality=\"many\">=Cardinality extends\"atleastone\"?[T[\"_output\"],...T[\"_output\"][]]:T[\"_output\"][];declare class ZodArray<T extends ZodTypeAny,Cardinality extends ArrayCardinality=\"many\">extends ZodType<arrayOutputType<T,Cardinality>,ZodArrayDef<T>,Cardinality extends\"atleastone\"?[T[\"_input\"],...T[\"_input\"][]]:T[\"_input\"][]>{_parse(input:ParseInput):ParseReturnType<this[\"_output\"]>;get element():T;min(minLength:number,message?:errorUtil.ErrMessage):this;max(maxLength:number,message?:errorUtil.ErrMessage):this;length(len:number,message?:errorUtil.ErrMessage):this;nonempty(message?:errorUtil.ErrMessage):ZodArray<T,\"atleastone\">;static create:<El extends ZodTypeAny>(schema:El,params?:RawCreateParams)=>ZodArray<El>;}type ZodNonEmptyArray<T extends ZodTypeAny>=ZodArray<T,\"atleastone\">;type UnknownKeysParam=\"passthrough\"|\"strict\"|\"strip\";interface ZodObjectDef<T extends ZodRawShape=ZodRawShape,UnknownKeys extends UnknownKeysParam=UnknownKeysParam,Catchall extends ZodTypeAny=ZodTypeAny>extends ZodTypeDef{typeName:ZodFirstPartyTypeKind.ZodObject;shape:()=>T;catchall:Catchall;unknownKeys:UnknownKeys;}type mergeTypes<A,B>={[k in keyof A|keyof B]:k extends keyof B?B[k]:k extends keyof A?A[k]:never;};type objectOutputType<Shape extends ZodRawShape,Catchall extends ZodTypeAny,UnknownKeys extends UnknownKeysParam=UnknownKeysParam>=objectUtil.flatten<objectUtil.addQuestionMarks<baseObjectOutputType<Shape>>>&CatchallOutput<Catchall>&PassthroughType<UnknownKeys>;type baseObjectOutputType<Shape extends ZodRawShape>={[k in keyof Shape]:Shape[k][\"_output\"];};type objectInputType<Shape extends ZodRawShape,Catchall extends ZodTypeAny,UnknownKeys extends UnknownKeysParam=UnknownKeysParam>=objectUtil.flatten<baseObjectInputType<Shape>>&CatchallInput<Catchall>&PassthroughType<UnknownKeys>;type baseObjectInputType<Shape extends ZodRawShape>=objectUtil.addQuestionMarks<{[k in keyof Shape]:Shape[k][\"_input\"];}>;type CatchallOutput<T extends ZodType>=ZodType extends T?unknown:{[k:string]:T[\"_output\"];};type CatchallInput<T extends ZodType>=ZodType extends T?unknown:{[k:string]:T[\"_input\"];};type PassthroughType<T extends UnknownKeysParam>=T extends\"passthrough\"?{[k:string]:unknown;}:unknown;type deoptional<T extends ZodTypeAny>=T extends ZodOptional<infer U>?deoptional<U>:T extends ZodNullable<infer U>?ZodNullable<deoptional<U>>:T;type SomeZodObject=ZodObject<ZodRawShape,UnknownKeysParam,ZodTypeAny>;type noUnrecognized<Obj extends object,Shape extends object>={[k in keyof Obj]:k extends keyof Shape?Obj[k]:never;};declare class ZodObject<T extends ZodRawShape,UnknownKeys extends UnknownKeysParam=UnknownKeysParam,Catchall extends ZodTypeAny=ZodTypeAny,Output=objectOutputType<T,Catchall,UnknownKeys>,Input=objectInputType<T,Catchall,UnknownKeys>>extends ZodType<Output,ZodObjectDef<T,UnknownKeys,Catchall>,Input>{private _cached;_getCached():{shape:T;keys:string[];};_parse(input:ParseInput):ParseReturnType<this[\"_output\"]>;get shape():T;strict(message?:errorUtil.ErrMessage):ZodObject<T,\"strict\",Catchall>;strip():ZodObject<T,\"strip\",Catchall>;passthrough():ZodObject<T,\"passthrough\",Catchall>;nonstrict:()=>ZodObject<T,\"passthrough\",Catchall>;extend<Augmentation extends ZodRawShape>(augmentation:Augmentation):ZodObject<objectUtil.extendShape<T,Augmentation>,UnknownKeys,Catchall>;augment:<Augmentation extends ZodRawShape>(augmentation:Augmentation)=>ZodObject<objectUtil.extendShape<T,Augmentation>,UnknownKeys,Catchall>;merge<Incoming extends AnyZodObject,Augmentation extends Incoming[\"shape\"]>(merging:Incoming):ZodObject<objectUtil.extendShape<T,Augmentation>,Incoming[\"_def\"][\"unknownKeys\"],Incoming[\"_def\"][\"catchall\"]>;setKey<Key extends string,Schema extends ZodTypeAny>(key:Key,schema:Schema):ZodObject<T&{[k in Key]:Schema;},UnknownKeys,Catchall>;catchall<Index extends ZodTypeAny>(index:Index):ZodObject<T,UnknownKeys,Index>;pick<Mask extends util.Exactly<{[k in keyof T]?:true;},Mask>>(mask:Mask):ZodObject<Pick<T,Extract<keyof T,keyof Mask>>,UnknownKeys,Catchall>;omit<Mask extends util.Exactly<{[k in keyof T]?:true;},Mask>>(mask:Mask):ZodObject<Omit<T,keyof Mask>,UnknownKeys,Catchall>;deepPartial():partialUtil.DeepPartial<this>;partial():ZodObject<{[k in keyof T]:ZodOptional<T[k]>;},UnknownKeys,Catchall>;partial<Mask extends util.Exactly<{[k in keyof T]?:true;},Mask>>(mask:Mask):ZodObject<objectUtil.noNever<{[k in keyof T]:k extends keyof Mask?ZodOptional<T[k]>:T[k];}>,UnknownKeys,Catchall>;required():ZodObject<{[k in keyof T]:deoptional<T[k]>;},UnknownKeys,Catchall>;required<Mask extends util.Exactly<{[k in keyof T]?:true;},Mask>>(mask:Mask):ZodObject<objectUtil.noNever<{[k in keyof T]:k extends keyof Mask?deoptional<T[k]>:T[k];}>,UnknownKeys,Catchall>;keyof():ZodEnum<enumUtil.UnionToTupleString<keyof T>>;static create:<Shape extends ZodRawShape>(shape:Shape,params?:RawCreateParams)=>ZodObject<Shape,\"strip\",ZodTypeAny,objectOutputType<Shape,ZodTypeAny,\"strip\">,objectInputType<Shape,ZodTypeAny,\"strip\">>;static strictCreate:<Shape extends ZodRawShape>(shape:Shape,params?:RawCreateParams)=>ZodObject<Shape,\"strict\">;static lazycreate:<Shape extends ZodRawShape>(shape:()=>Shape,params?:RawCreateParams)=>ZodObject<Shape,\"strip\">;}type AnyZodObject=ZodObject<any,any,any>;type ZodUnionOptions=Readonly<[ZodTypeAny,...ZodTypeAny[]]>;interface ZodUnionDef<T extends ZodUnionOptions=Readonly<[ZodTypeAny,ZodTypeAny,...ZodTypeAny[]]>>extends ZodTypeDef{options:T;typeName:ZodFirstPartyTypeKind.ZodUnion;}declare class ZodUnion<T extends ZodUnionOptions>extends ZodType<T[number][\"_output\"],ZodUnionDef<T>,T[number][\"_input\"]>{_parse(input:ParseInput):ParseReturnType<this[\"_output\"]>;get options():T;static create:<Options extends Readonly<[ZodTypeAny,ZodTypeAny,...ZodTypeAny[]]>>(types:Options,params?:RawCreateParams)=>ZodUnion<Options>;}type ZodDiscriminatedUnionOption<Discriminator extends string>=ZodObject<{[key in Discriminator]:ZodTypeAny;}&ZodRawShape,UnknownKeysParam,ZodTypeAny>;interface ZodDiscriminatedUnionDef<Discriminator extends string,Options extends readonly ZodDiscriminatedUnionOption<string>[]=ZodDiscriminatedUnionOption<string>[]>extends ZodTypeDef{discriminator:Discriminator;options:Options;optionsMap:Map<Primitive,ZodDiscriminatedUnionOption<any>>;typeName:ZodFirstPartyTypeKind.ZodDiscriminatedUnion;}declare class ZodDiscriminatedUnion<Discriminator extends string,Options extends readonly ZodDiscriminatedUnionOption<Discriminator>[]>extends ZodType<output<Options[number]>,ZodDiscriminatedUnionDef<Discriminator,Options>,input<Options[number]>>{_parse(input:ParseInput):ParseReturnType<this[\"_output\"]>;get discriminator():Discriminator;get options():Options;get optionsMap():Map<Primitive,ZodDiscriminatedUnionOption<any>>;static create<Discriminator extends string,Types extends readonly[\nZodDiscriminatedUnionOption<Discriminator>,...ZodDiscriminatedUnionOption<Discriminator>[]]>(discriminator:Discriminator,options:Types,params?:RawCreateParams):ZodDiscriminatedUnion<Discriminator,Types>;}interface ZodIntersectionDef<T extends ZodTypeAny=ZodTypeAny,U extends ZodTypeAny=ZodTypeAny>extends ZodTypeDef{left:T;right:U;typeName:ZodFirstPartyTypeKind.ZodIntersection;}declare class ZodIntersection<T extends ZodTypeAny,U extends ZodTypeAny>extends ZodType<T[\"_output\"]&U[\"_output\"],ZodIntersectionDef<T,U>,T[\"_input\"]&U[\"_input\"]>{_parse(input:ParseInput):ParseReturnType<this[\"_output\"]>;static create:<TSchema extends ZodTypeAny,USchema extends ZodTypeAny>(left:TSchema,right:USchema,params?:RawCreateParams)=>ZodIntersection<TSchema,USchema>;}type ZodTupleItems=[ZodTypeAny,...ZodTypeAny[]];type AssertArray<T>=T extends any[]?T:never;type OutputTypeOfTuple<T extends ZodTupleItems|[]>=AssertArray<{[k in keyof T]:T[k]extends ZodType<any,any,any>?T[k][\"_output\"]:never;}>;type OutputTypeOfTupleWithRest<T extends ZodTupleItems|[],Rest extends ZodTypeAny|null=null>=Rest extends ZodTypeAny?[...OutputTypeOfTuple<T>,...Rest[\"_output\"][]]:OutputTypeOfTuple<T>;type InputTypeOfTuple<T extends ZodTupleItems|[]>=AssertArray<{[k in keyof T]:T[k]extends ZodType<any,any,any>?T[k][\"_input\"]:never;}>;type InputTypeOfTupleWithRest<T extends ZodTupleItems|[],Rest extends ZodTypeAny|null=null>=Rest extends ZodTypeAny?[...InputTypeOfTuple<T>,...Rest[\"_input\"][]]:InputTypeOfTuple<T>;interface ZodTupleDef<T extends ZodTupleItems|[]=ZodTupleItems,Rest extends ZodTypeAny|null=null>extends ZodTypeDef{items:T;rest:Rest;typeName:ZodFirstPartyTypeKind.ZodTuple;}type AnyZodTuple=ZodTuple<[ZodTypeAny,...ZodTypeAny[]]|[],ZodTypeAny|null>;declare class ZodTuple<T extends ZodTupleItems|[]=ZodTupleItems,Rest extends ZodTypeAny|null=null>extends ZodType<OutputTypeOfTupleWithRest<T,Rest>,ZodTupleDef<T,Rest>,InputTypeOfTupleWithRest<T,Rest>>{_parse(input:ParseInput):ParseReturnType<this[\"_output\"]>;get items():T;rest<RestSchema extends ZodTypeAny>(rest:RestSchema):ZodTuple<T,RestSchema>;static create:<Items extends[ZodTypeAny,...ZodTypeAny[]]|[]>(schemas:Items,params?:RawCreateParams)=>ZodTuple<Items,null>;}interface ZodRecordDef<Key extends KeySchema=ZodString,Value extends ZodTypeAny=ZodTypeAny>extends ZodTypeDef{valueType:Value;keyType:Key;typeName:ZodFirstPartyTypeKind.ZodRecord;}type KeySchema=ZodType<string|number|symbol,any,any>;type RecordType<K extends string|number|symbol,V>=[string]extends[K]?Record<K,V>:[number]extends[K]?Record<K,V>:[symbol]extends[K]?Record<K,V>:[BRAND<string|number|symbol>]extends[K]?Record<K,V>:Partial<Record<K,V>>;declare class ZodRecord<Key extends KeySchema=ZodString,Value extends ZodTypeAny=ZodTypeAny>extends ZodType<RecordType<Key[\"_output\"],Value[\"_output\"]>,ZodRecordDef<Key,Value>,RecordType<Key[\"_input\"],Value[\"_input\"]>>{get keySchema():Key;get valueSchema():Value;_parse(input:ParseInput):ParseReturnType<this[\"_output\"]>;get element():Value;static create<Value extends ZodTypeAny>(valueType:Value,params?:RawCreateParams):ZodRecord<ZodString,Value>;static create<Keys extends KeySchema,Value extends ZodTypeAny>(keySchema:Keys,valueType:Value,params?:RawCreateParams):ZodRecord<Keys,Value>;}interface ZodMapDef<Key extends ZodTypeAny=ZodTypeAny,Value extends ZodTypeAny=ZodTypeAny>extends ZodTypeDef{valueType:Value;keyType:Key;typeName:ZodFirstPartyTypeKind.ZodMap;}declare class ZodMap<Key extends ZodTypeAny=ZodTypeAny,Value extends ZodTypeAny=ZodTypeAny>extends ZodType<Map<Key[\"_output\"],Value[\"_output\"]>,ZodMapDef<Key,Value>,Map<Key[\"_input\"],Value[\"_input\"]>>{get keySchema():Key;get valueSchema():Value;_parse(input:ParseInput):ParseReturnType<this[\"_output\"]>;static create:<KeySchema extends ZodTypeAny=ZodTypeAny,ValueSchema extends ZodTypeAny=ZodTypeAny>(keyType:KeySchema,valueType:ValueSchema,params?:RawCreateParams)=>ZodMap<KeySchema,ValueSchema>;}interface ZodSetDef<Value extends ZodTypeAny=ZodTypeAny>extends ZodTypeDef{valueType:Value;typeName:ZodFirstPartyTypeKind.ZodSet;minSize:{value:number;message?:string|undefined;}|null;maxSize:{value:number;message?:string|undefined;}|null;}declare class ZodSet<Value extends ZodTypeAny=ZodTypeAny>extends ZodType<Set<Value[\"_output\"]>,ZodSetDef<Value>,Set<Value[\"_input\"]>>{_parse(input:ParseInput):ParseReturnType<this[\"_output\"]>;min(minSize:number,message?:errorUtil.ErrMessage):this;max(maxSize:number,message?:errorUtil.ErrMessage):this;size(size:number,message?:errorUtil.ErrMessage):this;nonempty(message?:errorUtil.ErrMessage):ZodSet<Value>;static create:<ValueSchema extends ZodTypeAny=ZodTypeAny>(valueType:ValueSchema,params?:RawCreateParams)=>ZodSet<ValueSchema>;}interface ZodFunctionDef<Args extends ZodTuple<any,any>=ZodTuple<any,any>,Returns extends ZodTypeAny=ZodTypeAny>extends ZodTypeDef{args:Args;returns:Returns;typeName:ZodFirstPartyTypeKind.ZodFunction;}type OuterTypeOfFunction<Args extends ZodTuple<any,any>,Returns extends ZodTypeAny>=Args[\"_input\"]extends Array<any>?(...args:Args[\"_input\"])=>Returns[\"_output\"]:never;type InnerTypeOfFunction<Args extends ZodTuple<any,any>,Returns extends ZodTypeAny>=Args[\"_output\"]extends Array<any>?(...args:Args[\"_output\"])=>Returns[\"_input\"]:never;declare class ZodFunction<Args extends ZodTuple<any,any>,Returns extends ZodTypeAny>extends ZodType<OuterTypeOfFunction<Args,Returns>,ZodFunctionDef<Args,Returns>,InnerTypeOfFunction<Args,Returns>>{_parse(input:ParseInput):ParseReturnType<any>;parameters():Args;returnType():Returns;args<Items extends Parameters<(typeof ZodTuple)[\"create\"]>[0]>(...items:Items):ZodFunction<ZodTuple<Items,ZodUnknown>,Returns>;returns<NewReturnType extends ZodType<any,any,any>>(returnType:NewReturnType):ZodFunction<Args,NewReturnType>;implement<F extends InnerTypeOfFunction<Args,Returns>>(func:F):ReturnType<F>extends Returns[\"_output\"]?(...args:Args[\"_input\"])=>ReturnType<F>:OuterTypeOfFunction<Args,Returns>;strictImplement(func:InnerTypeOfFunction<Args,Returns>):InnerTypeOfFunction<Args,Returns>;validate:<F extends InnerTypeOfFunction<Args,Returns>>(func:F)=>ReturnType<F>extends Returns[\"_output\"]?(...args:Args[\"_input\"])=>ReturnType<F>:OuterTypeOfFunction<Args,Returns>;static create():ZodFunction<ZodTuple<[],ZodUnknown>,ZodUnknown>;static create<T extends AnyZodTuple=ZodTuple<[],ZodUnknown>>(args:T):ZodFunction<T,ZodUnknown>;static create<T extends AnyZodTuple,U extends ZodTypeAny>(args:T,returns:U):ZodFunction<T,U>;static create<T extends AnyZodTuple=ZodTuple<[],ZodUnknown>,U extends ZodTypeAny=ZodUnknown>(args:T,returns:U,params?:RawCreateParams):ZodFunction<T,U>;}interface ZodLazyDef<T extends ZodTypeAny=ZodTypeAny>extends ZodTypeDef{getter:()=>T;typeName:ZodFirstPartyTypeKind.ZodLazy;}declare class ZodLazy<T extends ZodTypeAny>extends ZodType<output<T>,ZodLazyDef<T>,input<T>>{get schema():T;_parse(input:ParseInput):ParseReturnType<this[\"_output\"]>;static create:<Inner extends ZodTypeAny>(getter:()=>Inner,params?:RawCreateParams)=>ZodLazy<Inner>;}interface ZodLiteralDef<T=any>extends ZodTypeDef{value:T;typeName:ZodFirstPartyTypeKind.ZodLiteral;}declare class ZodLiteral<T>extends ZodType<T,ZodLiteralDef<T>,T>{_parse(input:ParseInput):ParseReturnType<this[\"_output\"]>;get value():T;static create:<Value extends Primitive>(value:Value,params?:RawCreateParams)=>ZodLiteral<Value>;}type ArrayKeys=keyof any[];type Indices<T>=Exclude<keyof T,ArrayKeys>;type EnumValues<T extends string=string>=readonly[T,...T[]];type Values<T extends EnumValues>={[k in T[number]]:k;};interface ZodEnumDef<T extends EnumValues=EnumValues>extends ZodTypeDef{values:T;typeName:ZodFirstPartyTypeKind.ZodEnum;}type Writeable<T>={-readonly[P in keyof T]:T[P];};type FilterEnum<Values,ToExclude>=Values extends[]?[]:Values extends[infer Head,...infer Rest]?Head extends ToExclude?FilterEnum<Rest,ToExclude>:[Head,...FilterEnum<Rest,ToExclude>]:never;type typecast<A,T>=A extends T?A:never;declare function createZodEnum<U extends string,T extends Readonly<[U,...U[]]>>(values:T,params?:RawCreateParams):ZodEnum<Writeable<T>>;declare function createZodEnum<U extends string,T extends[U,...U[]]>(values:T,params?:RawCreateParams):ZodEnum<T>;declare class ZodEnum<T extends[string,...string[]]>extends ZodType<T[number],ZodEnumDef<T>,T[number]>{_cache:Set<T[number]>|undefined;_parse(input:ParseInput):ParseReturnType<this[\"_output\"]>;get options():T;get enum():Values<T>;get Values():Values<T>;get Enum():Values<T>;extract<ToExtract extends readonly[T[number],...T[number][]]>(values:ToExtract,newDef?:RawCreateParams):ZodEnum<Writeable<ToExtract>>;exclude<ToExclude extends readonly[T[number],...T[number][]]>(values:ToExclude,newDef?:RawCreateParams):ZodEnum<typecast<Writeable<FilterEnum<T,ToExclude[number]>>,[string,...string[]]>>;static create:typeof createZodEnum;}interface ZodNativeEnumDef<T extends EnumLike=EnumLike>extends ZodTypeDef{values:T;typeName:ZodFirstPartyTypeKind.ZodNativeEnum;}type EnumLike={[k:string]:string|number;[nu:number]:string;};declare class ZodNativeEnum<T extends EnumLike>extends ZodType<T[keyof T],ZodNativeEnumDef<T>,T[keyof T]>{_cache:Set<T[keyof T]>|undefined;_parse(input:ParseInput):ParseReturnType<T[keyof T]>;get enum():T;static create:<Elements extends EnumLike>(values:Elements,params?:RawCreateParams)=>ZodNativeEnum<Elements>;}interface ZodPromiseDef<T extends ZodTypeAny=ZodTypeAny>extends ZodTypeDef{type:T;typeName:ZodFirstPartyTypeKind.ZodPromise;}declare class ZodPromise<T extends ZodTypeAny>extends ZodType<Promise<T[\"_output\"]>,ZodPromiseDef<T>,Promise<T[\"_input\"]>>{unwrap():T;_parse(input:ParseInput):ParseReturnType<this[\"_output\"]>;static create:<Inner extends ZodTypeAny>(schema:Inner,params?:RawCreateParams)=>ZodPromise<Inner>;}type Refinement<T>=(arg:T,ctx:RefinementCtx)=>any;type SuperRefinement<T>=(arg:T,ctx:RefinementCtx)=>void|Promise<void>;type RefinementEffect<T>={type:\"refinement\";refinement:(arg:T,ctx:RefinementCtx)=>any;};type TransformEffect<T>={type:\"transform\";transform:(arg:T,ctx:RefinementCtx)=>any;};type PreprocessEffect<T>={type:\"preprocess\";transform:(arg:T,ctx:RefinementCtx)=>any;};type Effect<T>=RefinementEffect<T>|TransformEffect<T>|PreprocessEffect<T>;interface ZodEffectsDef<T extends ZodTypeAny=ZodTypeAny>extends ZodTypeDef{schema:T;typeName:ZodFirstPartyTypeKind.ZodEffects;effect:Effect<any>;}declare class ZodEffects<T extends ZodTypeAny,Output=output<T>,Input=input<T>>extends ZodType<Output,ZodEffectsDef<T>,Input>{innerType():T;sourceType():T;_parse(input:ParseInput):ParseReturnType<this[\"_output\"]>;static create:<I extends ZodTypeAny>(schema:I,effect:Effect<I[\"_output\"]>,params?:RawCreateParams)=>ZodEffects<I,I[\"_output\"]>;static createWithPreprocess:<I extends ZodTypeAny>(preprocess:(arg:unknown,ctx:RefinementCtx)=>unknown,schema:I,params?:RawCreateParams)=>ZodEffects<I,I[\"_output\"],unknown>;}interface ZodOptionalDef<T extends ZodTypeAny=ZodTypeAny>extends ZodTypeDef{innerType:T;typeName:ZodFirstPartyTypeKind.ZodOptional;}type ZodOptionalType<T extends ZodTypeAny>=ZodOptional<T>;declare class ZodOptional<T extends ZodTypeAny>extends ZodType<T[\"_output\"]|undefined,ZodOptionalDef<T>,T[\"_input\"]|undefined>{_parse(input:ParseInput):ParseReturnType<this[\"_output\"]>;unwrap():T;static create:<Inner extends ZodTypeAny>(type:Inner,params?:RawCreateParams)=>ZodOptional<Inner>;}interface ZodNullableDef<T extends ZodTypeAny=ZodTypeAny>extends ZodTypeDef{innerType:T;typeName:ZodFirstPartyTypeKind.ZodNullable;}type ZodNullableType<T extends ZodTypeAny>=ZodNullable<T>;declare class ZodNullable<T extends ZodTypeAny>extends ZodType<T[\"_output\"]|null,ZodNullableDef<T>,T[\"_input\"]|null>{_parse(input:ParseInput):ParseReturnType<this[\"_output\"]>;unwrap():T;static create:<Inner extends ZodTypeAny>(type:Inner,params?:RawCreateParams)=>ZodNullable<Inner>;}interface ZodDefaultDef<T extends ZodTypeAny=ZodTypeAny>extends ZodTypeDef{innerType:T;defaultValue:()=>util.noUndefined<T[\"_input\"]>;typeName:ZodFirstPartyTypeKind.ZodDefault;}declare class ZodDefault<T extends ZodTypeAny>extends ZodType<util.noUndefined<T[\"_output\"]>,ZodDefaultDef<T>,T[\"_input\"]|undefined>{_parse(input:ParseInput):ParseReturnType<this[\"_output\"]>;removeDefault():T;static create:<Inner extends ZodTypeAny>(type:Inner,params:RawCreateParams&{default:Inner[\"_input\"]|(()=>util.noUndefined<Inner[\"_input\"]>);})=>ZodDefault<Inner>;}interface ZodCatchDef<T extends ZodTypeAny=ZodTypeAny>extends ZodTypeDef{innerType:T;catchValue:(ctx:{error:ZodError;input:unknown;})=>T[\"_input\"];typeName:ZodFirstPartyTypeKind.ZodCatch;}declare class ZodCatch<T extends ZodTypeAny>extends ZodType<T[\"_output\"],ZodCatchDef<T>,unknown>{_parse(input:ParseInput):ParseReturnType<this[\"_output\"]>;removeCatch():T;static create:<Inner extends ZodTypeAny>(type:Inner,params:RawCreateParams&{catch:Inner[\"_output\"]|(()=>Inner[\"_output\"]);})=>ZodCatch<Inner>;}interface ZodNaNDef extends ZodTypeDef{typeName:ZodFirstPartyTypeKind.ZodNaN;}declare class ZodNaN extends ZodType<number,ZodNaNDef,number>{_parse(input:ParseInput):ParseReturnType<any>;static create:(params?:RawCreateParams)=>ZodNaN;}interface ZodBrandedDef<T extends ZodTypeAny>extends ZodTypeDef{type:T;typeName:ZodFirstPartyTypeKind.ZodBranded;}declare const BRAND:unique symbol;type BRAND<T extends string|number|symbol>={[BRAND]:{[k in T]:true;};};declare class ZodBranded<T extends ZodTypeAny,B extends string|number|symbol>extends ZodType<T[\"_output\"]&BRAND<B>,ZodBrandedDef<T>,T[\"_input\"]>{_parse(input:ParseInput):ParseReturnType<any>;unwrap():T;}interface ZodPipelineDef<A extends ZodTypeAny,B extends ZodTypeAny>extends ZodTypeDef{in:A;out:B;typeName:ZodFirstPartyTypeKind.ZodPipeline;}declare class ZodPipeline<A extends ZodTypeAny,B extends ZodTypeAny>extends ZodType<B[\"_output\"],ZodPipelineDef<A,B>,A[\"_input\"]>{_parse(input:ParseInput):ParseReturnType<any>;static create<ASchema extends ZodTypeAny,BSchema extends ZodTypeAny>(a:ASchema,b:BSchema):ZodPipeline<ASchema,BSchema>;}type BuiltIn=(((...args:any[])=>any)|(new(...args:any[])=>any))|{readonly[Symbol.toStringTag]:string;}|Date|Error|Generator|Promise<unknown>|RegExp;type MakeReadonly<T>=T extends Map<infer K,infer V>?ReadonlyMap<K,V>:T extends Set<infer V>?ReadonlySet<V>:T extends[infer Head,...infer Tail]?readonly[Head,...Tail]:T extends Array<infer V>?ReadonlyArray<V>:T extends BuiltIn?T:Readonly<T>;interface ZodReadonlyDef<T extends ZodTypeAny=ZodTypeAny>extends ZodTypeDef{innerType:T;typeName:ZodFirstPartyTypeKind.ZodReadonly;}declare class ZodReadonly<T extends ZodTypeAny>extends ZodType<MakeReadonly<T[\"_output\"]>,ZodReadonlyDef<T>,MakeReadonly<T[\"_input\"]>>{_parse(input:ParseInput):ParseReturnType<this[\"_output\"]>;static create:<Inner extends ZodTypeAny>(type:Inner,params?:RawCreateParams)=>ZodReadonly<Inner>;unwrap():T;}type CustomParams=CustomErrorParams&{fatal?:boolean;};declare function custom<T>(check?:(data:any)=>any,_params?:string|CustomParams|((input:any)=>CustomParams),fatal?:boolean):ZodType<T,ZodTypeDef,T>;declare const late:{object:<Shape extends ZodRawShape>(shape:()=>Shape,params?:RawCreateParams)=>ZodObject<Shape,\"strip\">;};declare enum ZodFirstPartyTypeKind{ZodString=\"ZodString\",ZodNumber=\"ZodNumber\",ZodNaN=\"ZodNaN\",ZodBigInt=\"ZodBigInt\",ZodBoolean=\"ZodBoolean\",ZodDate=\"ZodDate\",ZodSymbol=\"ZodSymbol\",ZodUndefined=\"ZodUndefined\",ZodNull=\"ZodNull\",ZodAny=\"ZodAny\",ZodUnknown=\"ZodUnknown\",ZodNever=\"ZodNever\",ZodVoid=\"ZodVoid\",ZodArray=\"ZodArray\",ZodObject=\"ZodObject\",ZodUnion=\"ZodUnion\",ZodDiscriminatedUnion=\"ZodDiscriminatedUnion\",ZodIntersection=\"ZodIntersection\",ZodTuple=\"ZodTuple\",ZodRecord=\"ZodRecord\",ZodMap=\"ZodMap\",ZodSet=\"ZodSet\",ZodFunction=\"ZodFunction\",ZodLazy=\"ZodLazy\",ZodLiteral=\"ZodLiteral\",ZodEnum=\"ZodEnum\",ZodEffects=\"ZodEffects\",ZodNativeEnum=\"ZodNativeEnum\",ZodOptional=\"ZodOptional\",ZodNullable=\"ZodNullable\",ZodDefault=\"ZodDefault\",ZodCatch=\"ZodCatch\",ZodPromise=\"ZodPromise\",ZodBranded=\"ZodBranded\",ZodPipeline=\"ZodPipeline\",ZodReadonly=\"ZodReadonly\"}type ZodFirstPartySchemaTypes=ZodString|ZodNumber|ZodNaN|ZodBigInt|ZodBoolean|ZodDate|ZodUndefined|ZodNull|ZodAny|ZodUnknown|ZodNever|ZodVoid|ZodArray<any,any>|ZodObject<any,any,any>|ZodUnion<any>|ZodDiscriminatedUnion<any,any>|ZodIntersection<any,any>|ZodTuple<any,any>|ZodRecord<any,any>|ZodMap<any>|ZodSet<any>|ZodFunction<any,any>|ZodLazy<any>|ZodLiteral<any>|ZodEnum<any>|ZodEffects<any,any,any>|ZodNativeEnum<any>|ZodOptional<any>|ZodNullable<any>|ZodDefault<any>|ZodCatch<any>|ZodPromise<any>|ZodBranded<any,any>|ZodPipeline<any,any>|ZodReadonly<any>|ZodSymbol;declare abstract class Class{constructor(..._:any[]);}declare const instanceOfType:<T extends typeof Class>(cls:T,params?:CustomParams)=>ZodType<InstanceType<T>,ZodTypeDef,InstanceType<T>>;declare const stringType:(params?:RawCreateParams&{coerce?:true;})=>ZodString;declare const numberType:(params?:RawCreateParams&{coerce?:boolean;})=>ZodNumber;declare const nanType:(params?:RawCreateParams)=>ZodNaN;declare const bigIntType:(params?:RawCreateParams&{coerce?:boolean;})=>ZodBigInt;declare const booleanType:(params?:RawCreateParams&{coerce?:boolean;})=>ZodBoolean;declare const dateType:(params?:RawCreateParams&{coerce?:boolean;})=>ZodDate;declare const symbolType:(params?:RawCreateParams)=>ZodSymbol;declare const undefinedType:(params?:RawCreateParams)=>ZodUndefined;declare const nullType:(params?:RawCreateParams)=>ZodNull;declare const anyType:(params?:RawCreateParams)=>ZodAny;declare const unknownType:(params?:RawCreateParams)=>ZodUnknown;declare const neverType:(params?:RawCreateParams)=>ZodNever;declare const voidType:(params?:RawCreateParams)=>ZodVoid;declare const arrayType:<El extends ZodTypeAny>(schema:El,params?:RawCreateParams)=>ZodArray<El>;declare const objectType:<Shape extends ZodRawShape>(shape:Shape,params?:RawCreateParams)=>ZodObject<Shape,\"strip\",ZodTypeAny,objectOutputType<Shape,ZodTypeAny,\"strip\">,objectInputType<Shape,ZodTypeAny,\"strip\">>;declare const strictObjectType:<Shape extends ZodRawShape>(shape:Shape,params?:RawCreateParams)=>ZodObject<Shape,\"strict\">;declare const unionType:<Options extends Readonly<[ZodTypeAny,ZodTypeAny,...ZodTypeAny[]]>>(types:Options,params?:RawCreateParams)=>ZodUnion<Options>;declare const discriminatedUnionType:typeof ZodDiscriminatedUnion.create;declare const intersectionType:<TSchema extends ZodTypeAny,USchema extends ZodTypeAny>(left:TSchema,right:USchema,params?:RawCreateParams)=>ZodIntersection<TSchema,USchema>;declare const tupleType:<Items extends[ZodTypeAny,...ZodTypeAny[]]|[]>(schemas:Items,params?:RawCreateParams)=>ZodTuple<Items,null>;declare const recordType:typeof ZodRecord.create;declare const mapType:<KeySchema extends ZodTypeAny=ZodTypeAny,ValueSchema extends ZodTypeAny=ZodTypeAny>(keyType:KeySchema,valueType:ValueSchema,params?:RawCreateParams)=>ZodMap<KeySchema,ValueSchema>;declare const setType:<ValueSchema extends ZodTypeAny=ZodTypeAny>(valueType:ValueSchema,params?:RawCreateParams)=>ZodSet<ValueSchema>;declare const functionType:typeof ZodFunction.create;declare const lazyType:<Inner extends ZodTypeAny>(getter:()=>Inner,params?:RawCreateParams)=>ZodLazy<Inner>;declare const literalType:<Value extends Primitive>(value:Value,params?:RawCreateParams)=>ZodLiteral<Value>;declare const enumType:typeof createZodEnum;declare const nativeEnumType:<Elements extends EnumLike>(values:Elements,params?:RawCreateParams)=>ZodNativeEnum<Elements>;declare const promiseType:<Inner extends ZodTypeAny>(schema:Inner,params?:RawCreateParams)=>ZodPromise<Inner>;declare const effectsType:<I extends ZodTypeAny>(schema:I,effect:Effect<I[\"_output\"]>,params?:RawCreateParams)=>ZodEffects<I,I[\"_output\"]>;declare const optionalType:<Inner extends ZodTypeAny>(type:Inner,params?:RawCreateParams)=>ZodOptional<Inner>;declare const nullableType:<Inner extends ZodTypeAny>(type:Inner,params?:RawCreateParams)=>ZodNullable<Inner>;declare const preprocessType:<I extends ZodTypeAny>(preprocess:(arg:unknown,ctx:RefinementCtx)=>unknown,schema:I,params?:RawCreateParams)=>ZodEffects<I,I[\"_output\"],unknown>;declare const pipelineType:typeof ZodPipeline.create;declare const ostring:()=>ZodOptional<ZodString>;declare const onumber:()=>ZodOptional<ZodNumber>;declare const oboolean:()=>ZodOptional<ZodBoolean>;declare const coerce:{string:(typeof ZodString)[\"create\"];number:(typeof ZodNumber)[\"create\"];boolean:(typeof ZodBoolean)[\"create\"];bigint:(typeof ZodBigInt)[\"create\"];date:(typeof ZodDate)[\"create\"];};declare const NEVER:never;type z_AnyZodObject=AnyZodObject;type z_AnyZodTuple=AnyZodTuple;type z_ArrayCardinality=ArrayCardinality;type z_ArrayKeys=ArrayKeys;type z_AssertArray<T>=AssertArray<T>;type z_AsyncParseReturnType<T>=AsyncParseReturnType<T>;type z_BRAND<T extends string|number|symbol>=BRAND<T>;type z_CatchallInput<T extends ZodType>=CatchallInput<T>;type z_CatchallOutput<T extends ZodType>=CatchallOutput<T>;type z_CustomErrorParams=CustomErrorParams;declare const z_DIRTY:typeof DIRTY;type z_DenormalizedError=DenormalizedError;declare const z_EMPTY_PATH:typeof EMPTY_PATH;type z_Effect<T>=Effect<T>;type z_EnumLike=EnumLike;type z_EnumValues<T extends string=string>=EnumValues<T>;type z_ErrorMapCtx=ErrorMapCtx;type z_FilterEnum<Values,ToExclude>=FilterEnum<Values,ToExclude>;declare const z_INVALID:typeof INVALID;type z_Indices<T>=Indices<T>;type z_InnerTypeOfFunction<Args extends ZodTuple<any,any>,Returns extends ZodTypeAny>=InnerTypeOfFunction<Args,Returns>;type z_InputTypeOfTuple<T extends ZodTupleItems|[]>=InputTypeOfTuple<T>;type z_InputTypeOfTupleWithRest<T extends ZodTupleItems|[],Rest extends ZodTypeAny|null=null>=InputTypeOfTupleWithRest<T,Rest>;type z_IpVersion=IpVersion;type z_IssueData=IssueData;type z_KeySchema=KeySchema;declare const z_NEVER:typeof NEVER;declare const z_OK:typeof OK;type z_ObjectPair=ObjectPair;type z_OuterTypeOfFunction<Args extends ZodTuple<any,any>,Returns extends ZodTypeAny>=OuterTypeOfFunction<Args,Returns>;type z_OutputTypeOfTuple<T extends ZodTupleItems|[]>=OutputTypeOfTuple<T>;type z_OutputTypeOfTupleWithRest<T extends ZodTupleItems|[],Rest extends ZodTypeAny|null=null>=OutputTypeOfTupleWithRest<T,Rest>;type z_ParseContext=ParseContext;type z_ParseInput=ParseInput;type z_ParseParams=ParseParams;type z_ParsePath=ParsePath;type z_ParsePathComponent=ParsePathComponent;type z_ParseResult=ParseResult;type z_ParseReturnType<T>=ParseReturnType<T>;type z_ParseStatus=ParseStatus;declare const z_ParseStatus:typeof ParseStatus;type z_PassthroughType<T extends UnknownKeysParam>=PassthroughType<T>;type z_PreprocessEffect<T>=PreprocessEffect<T>;type z_Primitive=Primitive;type z_ProcessedCreateParams=ProcessedCreateParams;type z_RawCreateParams=RawCreateParams;type z_RecordType<K extends string|number|symbol,V>=RecordType<K,V>;type z_Refinement<T>=Refinement<T>;type z_RefinementCtx=RefinementCtx;type z_RefinementEffect<T>=RefinementEffect<T>;type z_SafeParseError<Input>=SafeParseError<Input>;type z_SafeParseReturnType<Input,Output>=SafeParseReturnType<Input,Output>;type z_SafeParseSuccess<Output>=SafeParseSuccess<Output>;type z_Scalars=Scalars;type z_SomeZodObject=SomeZodObject;type z_StringValidation=StringValidation;type z_SuperRefinement<T>=SuperRefinement<T>;type z_SyncParseReturnType<T=any>=SyncParseReturnType<T>;type z_TransformEffect<T>=TransformEffect<T>;type z_TypeOf<T extends ZodType<any,any,any>>=TypeOf<T>;type z_UnknownKeysParam=UnknownKeysParam;type z_Values<T extends EnumValues>=Values<T>;type z_Writeable<T>=Writeable<T>;type z_ZodAny=ZodAny;declare const z_ZodAny:typeof ZodAny;type z_ZodAnyDef=ZodAnyDef;type z_ZodArray<T extends ZodTypeAny,Cardinality extends ArrayCardinality=\"many\">=ZodArray<T,Cardinality>;declare const z_ZodArray:typeof ZodArray;type z_ZodArrayDef<T extends ZodTypeAny=ZodTypeAny>=ZodArrayDef<T>;type z_ZodBigInt=ZodBigInt;declare const z_ZodBigInt:typeof ZodBigInt;type z_ZodBigIntCheck=ZodBigIntCheck;type z_ZodBigIntDef=ZodBigIntDef;type z_ZodBoolean=ZodBoolean;declare const z_ZodBoolean:typeof ZodBoolean;type z_ZodBooleanDef=ZodBooleanDef;type z_ZodBranded<T extends ZodTypeAny,B extends string|number|symbol>=ZodBranded<T,B>;declare const z_ZodBranded:typeof ZodBranded;type z_ZodBrandedDef<T extends ZodTypeAny>=ZodBrandedDef<T>;type z_ZodCatch<T extends ZodTypeAny>=ZodCatch<T>;declare const z_ZodCatch:typeof ZodCatch;type z_ZodCatchDef<T extends ZodTypeAny=ZodTypeAny>=ZodCatchDef<T>;type z_ZodCustomIssue=ZodCustomIssue;type z_ZodDate=ZodDate;declare const z_ZodDate:typeof ZodDate;type z_ZodDateCheck=ZodDateCheck;type z_ZodDateDef=ZodDateDef;type z_ZodDefault<T extends ZodTypeAny>=ZodDefault<T>;declare const z_ZodDefault:typeof ZodDefault;type z_ZodDefaultDef<T extends ZodTypeAny=ZodTypeAny>=ZodDefaultDef<T>;type z_ZodDiscriminatedUnion<Discriminator extends string,Options extends readonly ZodDiscriminatedUnionOption<Discriminator>[]>=ZodDiscriminatedUnion<Discriminator,Options>;declare const z_ZodDiscriminatedUnion:typeof ZodDiscriminatedUnion;type z_ZodDiscriminatedUnionDef<Discriminator extends string,Options extends readonly ZodDiscriminatedUnionOption<string>[]=ZodDiscriminatedUnionOption<string>[]>=ZodDiscriminatedUnionDef<Discriminator,Options>;type z_ZodDiscriminatedUnionOption<Discriminator extends string>=ZodDiscriminatedUnionOption<Discriminator>;type z_ZodEffects<T extends ZodTypeAny,Output=output<T>,Input=input<T>>=ZodEffects<T,Output,Input>;declare const z_ZodEffects:typeof ZodEffects;type z_ZodEffectsDef<T extends ZodTypeAny=ZodTypeAny>=ZodEffectsDef<T>;type z_ZodEnum<T extends[string,...string[]]>=ZodEnum<T>;declare const z_ZodEnum:typeof ZodEnum;type z_ZodEnumDef<T extends EnumValues=EnumValues>=ZodEnumDef<T>;type z_ZodError<T=any>=ZodError<T>;declare const z_ZodError:typeof ZodError;type z_ZodErrorMap=ZodErrorMap;type z_ZodFirstPartySchemaTypes=ZodFirstPartySchemaTypes;type z_ZodFirstPartyTypeKind=ZodFirstPartyTypeKind;declare const z_ZodFirstPartyTypeKind:typeof ZodFirstPartyTypeKind;type z_ZodFormattedError<T,U=string>=ZodFormattedError<T,U>;type z_ZodFunction<Args extends ZodTuple<any,any>,Returns extends ZodTypeAny>=ZodFunction<Args,Returns>;declare const z_ZodFunction:typeof ZodFunction;type z_ZodFunctionDef<Args extends ZodTuple<any,any>=ZodTuple<any,any>,Returns extends ZodTypeAny=ZodTypeAny>=ZodFunctionDef<Args,Returns>;type z_ZodIntersection<T extends ZodTypeAny,U extends ZodTypeAny>=ZodIntersection<T,U>;declare const z_ZodIntersection:typeof ZodIntersection;type z_ZodIntersectionDef<T extends ZodTypeAny=ZodTypeAny,U extends ZodTypeAny=ZodTypeAny>=ZodIntersectionDef<T,U>;type z_ZodInvalidArgumentsIssue=ZodInvalidArgumentsIssue;type z_ZodInvalidDateIssue=ZodInvalidDateIssue;type z_ZodInvalidEnumValueIssue=ZodInvalidEnumValueIssue;type z_ZodInvalidIntersectionTypesIssue=ZodInvalidIntersectionTypesIssue;type z_ZodInvalidLiteralIssue=ZodInvalidLiteralIssue;type z_ZodInvalidReturnTypeIssue=ZodInvalidReturnTypeIssue;type z_ZodInvalidStringIssue=ZodInvalidStringIssue;type z_ZodInvalidTypeIssue=ZodInvalidTypeIssue;type z_ZodInvalidUnionDiscriminatorIssue=ZodInvalidUnionDiscriminatorIssue;type z_ZodInvalidUnionIssue=ZodInvalidUnionIssue;type z_ZodIssue=ZodIssue;type z_ZodIssueBase=ZodIssueBase;type z_ZodIssueCode=ZodIssueCode;type z_ZodIssueOptionalMessage=ZodIssueOptionalMessage;type z_ZodLazy<T extends ZodTypeAny>=ZodLazy<T>;declare const z_ZodLazy:typeof ZodLazy;type z_ZodLazyDef<T extends ZodTypeAny=ZodTypeAny>=ZodLazyDef<T>;type z_ZodLiteral<T>=ZodLiteral<T>;declare const z_ZodLiteral:typeof ZodLiteral;type z_ZodLiteralDef<T=any>=ZodLiteralDef<T>;type z_ZodMap<Key extends ZodTypeAny=ZodTypeAny,Value extends ZodTypeAny=ZodTypeAny>=ZodMap<Key,Value>;declare const z_ZodMap:typeof ZodMap;type z_ZodMapDef<Key extends ZodTypeAny=ZodTypeAny,Value extends ZodTypeAny=ZodTypeAny>=ZodMapDef<Key,Value>;type z_ZodNaN=ZodNaN;declare const z_ZodNaN:typeof ZodNaN;type z_ZodNaNDef=ZodNaNDef;type z_ZodNativeEnum<T extends EnumLike>=ZodNativeEnum<T>;declare const z_ZodNativeEnum:typeof ZodNativeEnum;type z_ZodNativeEnumDef<T extends EnumLike=EnumLike>=ZodNativeEnumDef<T>;type z_ZodNever=ZodNever;declare const z_ZodNever:typeof ZodNever;type z_ZodNeverDef=ZodNeverDef;type z_ZodNonEmptyArray<T extends ZodTypeAny>=ZodNonEmptyArray<T>;type z_ZodNotFiniteIssue=ZodNotFiniteIssue;type z_ZodNotMultipleOfIssue=ZodNotMultipleOfIssue;type z_ZodNull=ZodNull;declare const z_ZodNull:typeof ZodNull;type z_ZodNullDef=ZodNullDef;type z_ZodNullable<T extends ZodTypeAny>=ZodNullable<T>;declare const z_ZodNullable:typeof ZodNullable;type z_ZodNullableDef<T extends ZodTypeAny=ZodTypeAny>=ZodNullableDef<T>;type z_ZodNullableType<T extends ZodTypeAny>=ZodNullableType<T>;type z_ZodNumber=ZodNumber;declare const z_ZodNumber:typeof ZodNumber;type z_ZodNumberCheck=ZodNumberCheck;type z_ZodNumberDef=ZodNumberDef;type z_ZodObject<T extends ZodRawShape,UnknownKeys extends UnknownKeysParam=UnknownKeysParam,Catchall extends ZodTypeAny=ZodTypeAny,Output=objectOutputType<T,Catchall,UnknownKeys>,Input=objectInputType<T,Catchall,UnknownKeys>>=ZodObject<T,UnknownKeys,Catchall,Output,Input>;declare const z_ZodObject:typeof ZodObject;type z_ZodObjectDef<T extends ZodRawShape=ZodRawShape,UnknownKeys extends UnknownKeysParam=UnknownKeysParam,Catchall extends ZodTypeAny=ZodTypeAny>=ZodObjectDef<T,UnknownKeys,Catchall>;type z_ZodOptional<T extends ZodTypeAny>=ZodOptional<T>;declare const z_ZodOptional:typeof ZodOptional;type z_ZodOptionalDef<T extends ZodTypeAny=ZodTypeAny>=ZodOptionalDef<T>;type z_ZodOptionalType<T extends ZodTypeAny>=ZodOptionalType<T>;type z_ZodParsedType=ZodParsedType;type z_ZodPipeline<A extends ZodTypeAny,B extends ZodTypeAny>=ZodPipeline<A,B>;declare const z_ZodPipeline:typeof ZodPipeline;type z_ZodPipelineDef<A extends ZodTypeAny,B extends ZodTypeAny>=ZodPipelineDef<A,B>;type z_ZodPromise<T extends ZodTypeAny>=ZodPromise<T>;declare const z_ZodPromise:typeof ZodPromise;type z_ZodPromiseDef<T extends ZodTypeAny=ZodTypeAny>=ZodPromiseDef<T>;type z_ZodRawShape=ZodRawShape;type z_ZodReadonly<T extends ZodTypeAny>=ZodReadonly<T>;declare const z_ZodReadonly:typeof ZodReadonly;type z_ZodReadonlyDef<T extends ZodTypeAny=ZodTypeAny>=ZodReadonlyDef<T>;type z_ZodRecord<Key extends KeySchema=ZodString,Value extends ZodTypeAny=ZodTypeAny>=ZodRecord<Key,Value>;declare const z_ZodRecord:typeof ZodRecord;type z_ZodRecordDef<Key extends KeySchema=ZodString,Value extends ZodTypeAny=ZodTypeAny>=ZodRecordDef<Key,Value>;type z_ZodSet<Value extends ZodTypeAny=ZodTypeAny>=ZodSet<Value>;declare const z_ZodSet:typeof ZodSet;type z_ZodSetDef<Value extends ZodTypeAny=ZodTypeAny>=ZodSetDef<Value>;type z_ZodString=ZodString;declare const z_ZodString:typeof ZodString;type z_ZodStringCheck=ZodStringCheck;type z_ZodStringDef=ZodStringDef;type z_ZodSymbol=ZodSymbol;declare const z_ZodSymbol:typeof ZodSymbol;type z_ZodSymbolDef=ZodSymbolDef;type z_ZodTooBigIssue=ZodTooBigIssue;type z_ZodTooSmallIssue=ZodTooSmallIssue;type z_ZodTuple<T extends ZodTupleItems|[]=ZodTupleItems,Rest extends ZodTypeAny|null=null>=ZodTuple<T,Rest>;declare const z_ZodTuple:typeof ZodTuple;type z_ZodTupleDef<T extends ZodTupleItems|[]=ZodTupleItems,Rest extends ZodTypeAny|null=null>=ZodTupleDef<T,Rest>;type z_ZodTupleItems=ZodTupleItems;type z_ZodType<Output=any,Def extends ZodTypeDef=ZodTypeDef,Input=Output>=ZodType<Output,Def,Input>;declare const z_ZodType:typeof ZodType;type z_ZodTypeAny=ZodTypeAny;type z_ZodTypeDef=ZodTypeDef;type z_ZodUndefined=ZodUndefined;declare const z_ZodUndefined:typeof ZodUndefined;type z_ZodUndefinedDef=ZodUndefinedDef;type z_ZodUnion<T extends ZodUnionOptions>=ZodUnion<T>;declare const z_ZodUnion:typeof ZodUnion;type z_ZodUnionDef<T extends ZodUnionOptions=Readonly<[ZodTypeAny,ZodTypeAny,...ZodTypeAny[]]>>=ZodUnionDef<T>;type z_ZodUnionOptions=ZodUnionOptions;type z_ZodUnknown=ZodUnknown;declare const z_ZodUnknown:typeof ZodUnknown;type z_ZodUnknownDef=ZodUnknownDef;type z_ZodUnrecognizedKeysIssue=ZodUnrecognizedKeysIssue;type z_ZodVoid=ZodVoid;declare const z_ZodVoid:typeof ZodVoid;type z_ZodVoidDef=ZodVoidDef;declare const z_addIssueToContext:typeof addIssueToContext;type z_arrayOutputType<T extends ZodTypeAny,Cardinality extends ArrayCardinality=\"many\">=arrayOutputType<T,Cardinality>;type z_baseObjectInputType<Shape extends ZodRawShape>=baseObjectInputType<Shape>;type z_baseObjectOutputType<Shape extends ZodRawShape>=baseObjectOutputType<Shape>;declare const z_coerce:typeof coerce;declare const z_custom:typeof custom;declare const z_datetimeRegex:typeof datetimeRegex;type z_deoptional<T extends ZodTypeAny>=deoptional<T>;declare const z_getErrorMap:typeof getErrorMap;declare const z_getParsedType:typeof getParsedType;type z_inferFlattenedErrors<T extends ZodType<any,any,any>,U=string>=inferFlattenedErrors<T,U>;type z_inferFormattedError<T extends ZodType<any,any,any>,U=string>=inferFormattedError<T,U>;type z_input<T extends ZodType<any,any,any>>=input<T>;declare const z_isAborted:typeof isAborted;declare const z_isAsync:typeof isAsync;declare const z_isDirty:typeof isDirty;declare const z_isValid:typeof isValid;declare const z_late:typeof late;declare const z_makeIssue:typeof makeIssue;type z_mergeTypes<A,B>=mergeTypes<A,B>;type z_noUnrecognized<Obj extends object,Shape extends object>=noUnrecognized<Obj,Shape>;type z_objectInputType<Shape extends ZodRawShape,Catchall extends ZodTypeAny,UnknownKeys extends UnknownKeysParam=UnknownKeysParam>=objectInputType<Shape,Catchall,UnknownKeys>;type z_objectOutputType<Shape extends ZodRawShape,Catchall extends ZodTypeAny,UnknownKeys extends UnknownKeysParam=UnknownKeysParam>=objectOutputType<Shape,Catchall,UnknownKeys>;declare const z_objectUtil:typeof objectUtil;declare const z_oboolean:typeof oboolean;declare const z_onumber:typeof onumber;declare const z_ostring:typeof ostring;type z_output<T extends ZodType<any,any,any>>=output<T>;declare const z_quotelessJson:typeof quotelessJson;declare const z_setErrorMap:typeof setErrorMap;type z_typeToFlattenedError<T,U=string>=typeToFlattenedError<T,U>;type z_typecast<A,T>=typecast<A,T>;declare const z_util:typeof util;declare namespace z{export{type z_AnyZodObject as AnyZodObject,type z_AnyZodTuple as AnyZodTuple,type z_ArrayCardinality as ArrayCardinality,type z_ArrayKeys as ArrayKeys,type z_AssertArray as AssertArray,type z_AsyncParseReturnType as AsyncParseReturnType,type z_BRAND as BRAND,type z_CatchallInput as CatchallInput,type z_CatchallOutput as CatchallOutput,type z_CustomErrorParams as CustomErrorParams,z_DIRTY as DIRTY,type z_DenormalizedError as DenormalizedError,z_EMPTY_PATH as EMPTY_PATH,type z_Effect as Effect,type z_EnumLike as EnumLike,type z_EnumValues as EnumValues,type z_ErrorMapCtx as ErrorMapCtx,type z_FilterEnum as FilterEnum,z_INVALID as INVALID,type z_Indices as Indices,type z_InnerTypeOfFunction as InnerTypeOfFunction,type z_InputTypeOfTuple as InputTypeOfTuple,type z_InputTypeOfTupleWithRest as InputTypeOfTupleWithRest,type z_IpVersion as IpVersion,type z_IssueData as IssueData,type z_KeySchema as KeySchema,z_NEVER as NEVER,z_OK as OK,type z_ObjectPair as ObjectPair,type z_OuterTypeOfFunction as OuterTypeOfFunction,type z_OutputTypeOfTuple as OutputTypeOfTuple,type z_OutputTypeOfTupleWithRest as OutputTypeOfTupleWithRest,type z_ParseContext as ParseContext,type z_ParseInput as ParseInput,type z_ParseParams as ParseParams,type z_ParsePath as ParsePath,type z_ParsePathComponent as ParsePathComponent,type z_ParseResult as ParseResult,type z_ParseReturnType as ParseReturnType,z_ParseStatus as ParseStatus,type z_PassthroughType as PassthroughType,type z_PreprocessEffect as PreprocessEffect,type z_Primitive as Primitive,type z_ProcessedCreateParams as ProcessedCreateParams,type z_RawCreateParams as RawCreateParams,type z_RecordType as RecordType,type z_Refinement as Refinement,type z_RefinementCtx as RefinementCtx,type z_RefinementEffect as RefinementEffect,type z_SafeParseError as SafeParseError,type z_SafeParseReturnType as SafeParseReturnType,type z_SafeParseSuccess as SafeParseSuccess,type z_Scalars as Scalars,ZodType as Schema,type z_SomeZodObject as SomeZodObject,type z_StringValidation as StringValidation,type z_SuperRefinement as SuperRefinement,type z_SyncParseReturnType as SyncParseReturnType,type z_TransformEffect as TransformEffect,type z_TypeOf as TypeOf,type z_UnknownKeysParam as UnknownKeysParam,type z_Values as Values,type z_Writeable as Writeable,z_ZodAny as ZodAny,type z_ZodAnyDef as ZodAnyDef,z_ZodArray as ZodArray,type z_ZodArrayDef as ZodArrayDef,z_ZodBigInt as ZodBigInt,type z_ZodBigIntCheck as ZodBigIntCheck,type z_ZodBigIntDef as ZodBigIntDef,z_ZodBoolean as ZodBoolean,type z_ZodBooleanDef as ZodBooleanDef,z_ZodBranded as ZodBranded,type z_ZodBrandedDef as ZodBrandedDef,z_ZodCatch as ZodCatch,type z_ZodCatchDef as ZodCatchDef,type z_ZodCustomIssue as ZodCustomIssue,z_ZodDate as ZodDate,type z_ZodDateCheck as ZodDateCheck,type z_ZodDateDef as ZodDateDef,z_ZodDefault as ZodDefault,type z_ZodDefaultDef as ZodDefaultDef,z_ZodDiscriminatedUnion as ZodDiscriminatedUnion,type z_ZodDiscriminatedUnionDef as ZodDiscriminatedUnionDef,type z_ZodDiscriminatedUnionOption as ZodDiscriminatedUnionOption,z_ZodEffects as ZodEffects,type z_ZodEffectsDef as ZodEffectsDef,z_ZodEnum as ZodEnum,type z_ZodEnumDef as ZodEnumDef,z_ZodError as ZodError,type z_ZodErrorMap as ZodErrorMap,type z_ZodFirstPartySchemaTypes as ZodFirstPartySchemaTypes,z_ZodFirstPartyTypeKind as ZodFirstPartyTypeKind,type z_ZodFormattedError as ZodFormattedError,z_ZodFunction as ZodFunction,type z_ZodFunctionDef as ZodFunctionDef,z_ZodIntersection as ZodIntersection,type z_ZodIntersectionDef as ZodIntersectionDef,type z_ZodInvalidArgumentsIssue as ZodInvalidArgumentsIssue,type z_ZodInvalidDateIssue as ZodInvalidDateIssue,type z_ZodInvalidEnumValueIssue as ZodInvalidEnumValueIssue,type z_ZodInvalidIntersectionTypesIssue as ZodInvalidIntersectionTypesIssue,type z_ZodInvalidLiteralIssue as ZodInvalidLiteralIssue,type z_ZodInvalidReturnTypeIssue as ZodInvalidReturnTypeIssue,type z_ZodInvalidStringIssue as ZodInvalidStringIssue,type z_ZodInvalidTypeIssue as ZodInvalidTypeIssue,type z_ZodInvalidUnionDiscriminatorIssue as ZodInvalidUnionDiscriminatorIssue,type z_ZodInvalidUnionIssue as ZodInvalidUnionIssue,type z_ZodIssue as ZodIssue,type z_ZodIssueBase as ZodIssueBase,type z_ZodIssueCode as ZodIssueCode,type z_ZodIssueOptionalMessage as ZodIssueOptionalMessage,z_ZodLazy as ZodLazy,type z_ZodLazyDef as ZodLazyDef,z_ZodLiteral as ZodLiteral,type z_ZodLiteralDef as ZodLiteralDef,z_ZodMap as ZodMap,type z_ZodMapDef as ZodMapDef,z_ZodNaN as ZodNaN,type z_ZodNaNDef as ZodNaNDef,z_ZodNativeEnum as ZodNativeEnum,type z_ZodNativeEnumDef as ZodNativeEnumDef,z_ZodNever as ZodNever,type z_ZodNeverDef as ZodNeverDef,type z_ZodNonEmptyArray as ZodNonEmptyArray,type z_ZodNotFiniteIssue as ZodNotFiniteIssue,type z_ZodNotMultipleOfIssue as ZodNotMultipleOfIssue,z_ZodNull as ZodNull,type z_ZodNullDef as ZodNullDef,z_ZodNullable as ZodNullable,type z_ZodNullableDef as ZodNullableDef,type z_ZodNullableType as ZodNullableType,z_ZodNumber as ZodNumber,type z_ZodNumberCheck as ZodNumberCheck,type z_ZodNumberDef as ZodNumberDef,z_ZodObject as ZodObject,type z_ZodObjectDef as ZodObjectDef,z_ZodOptional as ZodOptional,type z_ZodOptionalDef as ZodOptionalDef,type z_ZodOptionalType as ZodOptionalType,type z_ZodParsedType as ZodParsedType,z_ZodPipeline as ZodPipeline,type z_ZodPipelineDef as ZodPipelineDef,z_ZodPromise as ZodPromise,type z_ZodPromiseDef as ZodPromiseDef,type z_ZodRawShape as ZodRawShape,z_ZodReadonly as ZodReadonly,type z_ZodReadonlyDef as ZodReadonlyDef,z_ZodRecord as ZodRecord,type z_ZodRecordDef as ZodRecordDef,ZodType as ZodSchema,z_ZodSet as ZodSet,type z_ZodSetDef as ZodSetDef,z_ZodString as ZodString,type z_ZodStringCheck as ZodStringCheck,type z_ZodStringDef as ZodStringDef,z_ZodSymbol as ZodSymbol,type z_ZodSymbolDef as ZodSymbolDef,type z_ZodTooBigIssue as ZodTooBigIssue,type z_ZodTooSmallIssue as ZodTooSmallIssue,ZodEffects as ZodTransformer,z_ZodTuple as ZodTuple,type z_ZodTupleDef as ZodTupleDef,type z_ZodTupleItems as ZodTupleItems,z_ZodType as ZodType,type z_ZodTypeAny as ZodTypeAny,type z_ZodTypeDef as ZodTypeDef,z_ZodUndefined as ZodUndefined,type z_ZodUndefinedDef as ZodUndefinedDef,z_ZodUnion as ZodUnion,type z_ZodUnionDef as ZodUnionDef,type z_ZodUnionOptions as ZodUnionOptions,z_ZodUnknown as ZodUnknown,type z_ZodUnknownDef as ZodUnknownDef,type z_ZodUnrecognizedKeysIssue as ZodUnrecognizedKeysIssue,z_ZodVoid as ZodVoid,type z_ZodVoidDef as ZodVoidDef,z_addIssueToContext as addIssueToContext,anyType as any,arrayType as array,type z_arrayOutputType as arrayOutputType,type z_baseObjectInputType as baseObjectInputType,type z_baseObjectOutputType as baseObjectOutputType,bigIntType as bigint,booleanType as boolean,z_coerce as coerce,z_custom as custom,dateType as date,z_datetimeRegex as datetimeRegex,errorMap as defaultErrorMap,type z_deoptional as deoptional,discriminatedUnionType as discriminatedUnion,effectsType as effect,enumType as enum,functionType as function,z_getErrorMap as getErrorMap,z_getParsedType as getParsedType,type TypeOf as infer,type z_inferFlattenedErrors as inferFlattenedErrors,type z_inferFormattedError as inferFormattedError,type z_input as input,instanceOfType as instanceof,intersectionType as intersection,z_isAborted as isAborted,z_isAsync as isAsync,z_isDirty as isDirty,z_isValid as isValid,z_late as late,lazyType as lazy,literalType as literal,z_makeIssue as makeIssue,mapType as map,type z_mergeTypes as mergeTypes,nanType as nan,nativeEnumType as nativeEnum,neverType as never,type z_noUnrecognized as noUnrecognized,nullType as null,nullableType as nullable,numberType as number,objectType as object,type z_objectInputType as objectInputType,type z_objectOutputType as objectOutputType,z_objectUtil as objectUtil,z_oboolean as oboolean,z_onumber as onumber,optionalType as optional,z_ostring as ostring,type z_output as output,pipelineType as pipeline,preprocessType as preprocess,promiseType as promise,z_quotelessJson as quotelessJson,recordType as record,setType as set,z_setErrorMap as setErrorMap,strictObjectType as strictObject,stringType as string,symbolType as symbol,effectsType as transformer,tupleType as tuple,type z_typeToFlattenedError as typeToFlattenedError,type z_typecast as typecast,undefinedType as undefined,unionType as union,unknownType as unknown,z_util as util,voidType as void};}export{type AnyZodObject,type AnyZodTuple,type ArrayCardinality,type ArrayKeys,type AssertArray,type AsyncParseReturnType,BRAND,type CatchallInput,type CatchallOutput,type CustomErrorParams,DIRTY,type DenormalizedError,EMPTY_PATH,type Effect,type EnumLike,type EnumValues,type ErrorMapCtx,type FilterEnum,INVALID,type Indices,type InnerTypeOfFunction,type InputTypeOfTuple,type InputTypeOfTupleWithRest,type IpVersion,type IssueData,type KeySchema,NEVER,OK,type ObjectPair,type OuterTypeOfFunction,type OutputTypeOfTuple,type OutputTypeOfTupleWithRest,type ParseContext,type ParseInput,type ParseParams,type ParsePath,type ParsePathComponent,type ParseResult,type ParseReturnType,ParseStatus,type PassthroughType,type PreprocessEffect,type Primitive,type ProcessedCreateParams,type RawCreateParams,type RecordType,type Refinement,type RefinementCtx,type RefinementEffect,type SafeParseError,type SafeParseReturnType,type SafeParseSuccess,type Scalars,ZodType as Schema,type SomeZodObject,type StringValidation,type SuperRefinement,type SyncParseReturnType,type TransformEffect,type TypeOf,type UnknownKeysParam,type Values,type Writeable,ZodAny,type ZodAnyDef,ZodArray,type ZodArrayDef,ZodBigInt,type ZodBigIntCheck,type ZodBigIntDef,ZodBoolean,type ZodBooleanDef,ZodBranded,type ZodBrandedDef,ZodCatch,type ZodCatchDef,type ZodCustomIssue,ZodDate,type ZodDateCheck,type ZodDateDef,ZodDefault,type ZodDefaultDef,ZodDiscriminatedUnion,type ZodDiscriminatedUnionDef,type ZodDiscriminatedUnionOption,ZodEffects,type ZodEffectsDef,ZodEnum,type ZodEnumDef,ZodError,type ZodErrorMap,type ZodFirstPartySchemaTypes,ZodFirstPartyTypeKind,type ZodFormattedError,ZodFunction,type ZodFunctionDef,ZodIntersection,type ZodIntersectionDef,type ZodInvalidArgumentsIssue,type ZodInvalidDateIssue,type ZodInvalidEnumValueIssue,type ZodInvalidIntersectionTypesIssue,type ZodInvalidLiteralIssue,type ZodInvalidReturnTypeIssue,type ZodInvalidStringIssue,type ZodInvalidTypeIssue,type ZodInvalidUnionDiscriminatorIssue,type ZodInvalidUnionIssue,type ZodIssue,type ZodIssueBase,ZodIssueCode,type ZodIssueOptionalMessage,ZodLazy,type ZodLazyDef,ZodLiteral,type ZodLiteralDef,ZodMap,type ZodMapDef,ZodNaN,type ZodNaNDef,ZodNativeEnum,type ZodNativeEnumDef,ZodNever,type ZodNeverDef,type ZodNonEmptyArray,type ZodNotFiniteIssue,type ZodNotMultipleOfIssue,ZodNull,type ZodNullDef,ZodNullable,type ZodNullableDef,type ZodNullableType,ZodNumber,type ZodNumberCheck,type ZodNumberDef,ZodObject,type ZodObjectDef,ZodOptional,type ZodOptionalDef,type ZodOptionalType,ZodParsedType,ZodPipeline,type ZodPipelineDef,ZodPromise,type ZodPromiseDef,type ZodRawShape,ZodReadonly,type ZodReadonlyDef,ZodRecord,type ZodRecordDef,ZodType as ZodSchema,ZodSet,type ZodSetDef,ZodString,type ZodStringCheck,type ZodStringDef,ZodSymbol,type ZodSymbolDef,type ZodTooBigIssue,type ZodTooSmallIssue,ZodEffects as ZodTransformer,ZodTuple,type ZodTupleDef,type ZodTupleItems,ZodType,type ZodTypeAny,type ZodTypeDef,ZodUndefined,type ZodUndefinedDef,ZodUnion,type ZodUnionDef,type ZodUnionOptions,ZodUnknown,type ZodUnknownDef,type ZodUnrecognizedKeysIssue,ZodVoid,type ZodVoidDef,addIssueToContext,anyType as any,arrayType as array,type arrayOutputType,type baseObjectInputType,type baseObjectOutputType,bigIntType as bigint,booleanType as boolean,coerce,custom,dateType as date,datetimeRegex,errorMap as defaultErrorMap,type deoptional,discriminatedUnionType as discriminatedUnion,effectsType as effect,enumType as enum,functionType as function,getErrorMap,getParsedType,type TypeOf as infer,type inferFlattenedErrors,type inferFormattedError,type input,instanceOfType as instanceof,intersectionType as intersection,isAborted,isAsync,isDirty,isValid,late,lazyType as lazy,literalType as literal,makeIssue,mapType as map,type mergeTypes,nanType as nan,nativeEnumType as nativeEnum,neverType as never,type noUnrecognized,nullType as null,nullableType as nullable,numberType as number,objectType as object,type objectInputType,type objectOutputType,objectUtil,oboolean,onumber,optionalType as optional,ostring,type output,pipelineType as pipeline,preprocessType as preprocess,promiseType as promise,quotelessJson,recordType as record,setType as set,setErrorMap,strictObjectType as strictObject,stringType as string,symbolType as symbol,effectsType as transformer,tupleType as tuple,type typeToFlattenedError,type typecast,undefinedType as undefined,unionType as union,unknownType as unknown,util,voidType as void,z};"
  },
  {
    "path": "website/src/routes/guides/(migration)/migrate-from-zod/zod/v3/package.json",
    "content": "{\n  \"name\": \"zod\",\n  \"version\": \"3.25.56\",\n  \"type\": \"module\",\n  \"main\": \"./dist/index.js\",\n  \"types\": \"./dist/index.d.ts\"\n}\n"
  },
  {
    "path": "website/src/routes/guides/(migration)/migrate-from-zod/zod/v4/index.d.ts",
    "content": "import*as core from'zod/v4/core';import{$ZodError,util,$brand,$input,$output,GlobalMeta,output as output$1,$ZodErrorMap as $ZodErrorMap$1,$ZodTypes,$ZodFlattenedError,$ZodFormattedError,clone,config,_endsWith,flattenError,formatError,function as _function,globalRegistry,_gt,_gte,_includes,infer,input as input$1,_length,_lowercase,_lt,_lte,_maxLength,_maxSize,_mime,_minLength,_minSize,_multipleOf,_negative,_nonnegative,_nonpositive,_normalize,_overwrite,_positive,prettifyError,_property,_regex,regexes,registry,_size,_startsWith,toJSONSchema,_toLowerCase,_toUpperCase,treeifyError,_trim,_uppercase}from'zod/v4/core';export{core};export{$brand,$input,$output,GlobalMeta,output as Infer,output as TypeOf,$ZodErrorMap as ZodErrorMap,$ZodTypes as ZodFirstPartySchemaTypes,$ZodFlattenedError as ZodFlattenedError,$ZodFormattedError as ZodFormattedError,clone,config,_endsWith as endsWith,flattenError,formatError,function,globalRegistry,_gt as gt,_gte as gte,_includes as includes,infer,input,_length as length,_lowercase as lowercase,_lt as lt,_lte as lte,_maxLength as maxLength,_maxSize as maxSize,_mime as mime,_minLength as minLength,_minSize as minSize,_multipleOf as multipleOf,_negative as negative,_nonnegative as nonnegative,_nonpositive as nonpositive,_normalize as normalize,output,_overwrite as overwrite,_positive as positive,prettifyError,_property as property,_regex as regex,regexes,registry,_size as size,_startsWith as startsWith,toJSONSchema,_toLowerCase as toLowerCase,_toUpperCase as toUpperCase,treeifyError,_trim as trim,_uppercase as uppercase}from'zod/v4/core';type ZodIssue=core.$ZodIssue;interface ZodError<T=unknown>extends $ZodError<T>{format():core.$ZodFormattedError<T>;format<U>(mapper:(issue:core.$ZodIssue)=>U):core.$ZodFormattedError<T,U>;flatten():core.$ZodFlattenedError<T>;flatten<U>(mapper:(issue:core.$ZodIssue)=>U):core.$ZodFlattenedError<T,U>;addIssue(issue:core.$ZodIssue):void;addIssues(issues:core.$ZodIssue[]):void;isEmpty:boolean;}declare const ZodError:core.$constructor<ZodError>;declare const ZodRealError:core.$constructor<ZodError>;type IssueData=core.$ZodRawIssue;type ZodSafeParseResult<T>=ZodSafeParseSuccess<T>|ZodSafeParseError<T>;type ZodSafeParseSuccess<T>={success:true;data:T;error?:never;};type ZodSafeParseError<T>={success:false;data?:never;error:ZodError<T>;};declare const parse:<T extends core.$ZodType>(schema:T,value:unknown,_ctx?:core.ParseContext<core.$ZodIssue>,_params?:{callee?:core.util.AnyFunc;Err?:core.$ZodErrorClass;})=>core.output<T>;declare const parseAsync:<T extends core.$ZodType>(schema:T,value:unknown,_ctx?:core.ParseContext<core.$ZodIssue>,_params?:{callee?:core.util.AnyFunc;Err?:core.$ZodErrorClass;})=>Promise<core.output<T>>;declare const safeParse:<T extends core.$ZodType>(schema:T,value:unknown,_ctx?:core.ParseContext<core.$ZodIssue>)=>ZodSafeParseResult<core.output<T>>;declare const safeParseAsync:<T extends core.$ZodType>(schema:T,value:unknown,_ctx?:core.ParseContext<core.$ZodIssue>)=>Promise<ZodSafeParseResult<core.output<T>>>;interface RefinementCtx<T=unknown>extends core.ParsePayload<T>{addIssue(arg:string|core.$ZodRawIssue|Partial<core.$ZodIssueCustom>):void;}interface _ZodType<out Internals extends core.$ZodTypeInternals=core.$ZodTypeInternals>extends ZodType<any,any,Internals>{}interface ZodType<out Output=unknown,out Input=unknown,out Internals extends core.$ZodTypeInternals<Output,Input>=core.$ZodTypeInternals<Output,Input>>extends core.$ZodType<Output,Input,Internals>{def:Internals[\"def\"];type:Internals[\"def\"][\"type\"];_def:Internals[\"def\"];_output:Internals[\"output\"];_input:Internals[\"input\"];check(...checks:(core.CheckFn<core.output<this>>|core.$ZodCheck<core.output<this>>)[]):this;clone(def?:Internals[\"def\"],params?:{parent:boolean;}):this;register<R extends core.$ZodRegistry>(registry:R,...meta:this extends R[\"_schema\"]?undefined extends R[\"_meta\"]?[core.$replace<R[\"_meta\"],this>?]:[core.$replace<R[\"_meta\"],this>]:[\"Incompatible schema\"]):this;brand<T extends PropertyKey=PropertyKey>(value?:T):PropertyKey extends T?this:core.$ZodBranded<this,T>;parse(data:unknown,params?:core.ParseContext<core.$ZodIssue>):core.output<this>;safeParse(data:unknown,params?:core.ParseContext<core.$ZodIssue>):ZodSafeParseResult<core.output<this>>;parseAsync(data:unknown,params?:core.ParseContext<core.$ZodIssue>):Promise<core.output<this>>;safeParseAsync(data:unknown,params?:core.ParseContext<core.$ZodIssue>):Promise<ZodSafeParseResult<core.output<this>>>;spa:(data:unknown,params?:core.ParseContext<core.$ZodIssue>)=>Promise<ZodSafeParseResult<core.output<this>>>;refine(check:(arg:core.output<this>)=>unknown|Promise<unknown>,params?:string|core.$ZodCustomParams):this;superRefine(refinement:(arg:core.output<this>,ctx:RefinementCtx<core.output<this>>)=>void|Promise<void>):this;overwrite(fn:(x:core.output<this>)=>core.output<this>):this;optional():ZodOptional<this>;nonoptional(params?:string|core.$ZodNonOptionalParams):ZodNonOptional<this>;nullable():ZodNullable<this>;nullish():ZodOptional<ZodNullable<this>>;default(def:core.output<this>):ZodDefault<this>;default(def:()=>util.NoUndefined<core.output<this>>):ZodDefault<this>;prefault(def:()=>core.input<this>):ZodPrefault<this>;prefault(def:core.input<this>):ZodPrefault<this>;array():ZodArray<this>;or<T extends core.SomeType>(option:T):ZodUnion<[this,T]>;and<T extends core.SomeType>(incoming:T):ZodIntersection<this,T>;transform<NewOut>(transform:(arg:core.output<this>,ctx:RefinementCtx<core.output<this>>)=>NewOut|Promise<NewOut>):ZodPipe<this,ZodTransform<Awaited<NewOut>,core.output<this>>>;catch(def:core.output<this>):ZodCatch<this>;catch(def:(ctx:core.$ZodCatchCtx)=>core.output<this>):ZodCatch<this>;pipe<T extends core.$ZodType<any,core.output<this>>>(target:T|core.$ZodType<any,core.output<this>>):ZodPipe<this,T>;readonly():ZodReadonly<this>;describe(description:string):this;description?:string;meta():core.$replace<core.GlobalMeta,this>|undefined;meta(data:core.$replace<core.GlobalMeta,this>):this;isOptional():boolean;isNullable():boolean;}declare const ZodType:core.$constructor<ZodType>;interface _ZodString<T extends core.$ZodStringInternals<unknown>=core.$ZodStringInternals<unknown>>extends _ZodType<T>{format:string|null;minLength:number|null;maxLength:number|null;regex(regex:RegExp,params?:string|core.$ZodCheckRegexParams):this;includes(value:string,params?:core.$ZodCheckIncludesParams):this;startsWith(value:string,params?:string|core.$ZodCheckStartsWithParams):this;endsWith(value:string,params?:string|core.$ZodCheckEndsWithParams):this;min(minLength:number,params?:string|core.$ZodCheckMinLengthParams):this;max(maxLength:number,params?:string|core.$ZodCheckMaxLengthParams):this;length(len:number,params?:string|core.$ZodCheckLengthEqualsParams):this;nonempty(params?:string|core.$ZodCheckMinLengthParams):this;lowercase(params?:string|core.$ZodCheckLowerCaseParams):this;uppercase(params?:string|core.$ZodCheckUpperCaseParams):this;trim():this;normalize(form?:\"NFC\"|\"NFD\"|\"NFKC\"|\"NFKD\"|(string&{})):this;toLowerCase():this;toUpperCase():this;}declare const _ZodString:core.$constructor<_ZodString>;interface ZodString extends _ZodString<core.$ZodStringInternals<string>>{email(params?:string|core.$ZodCheckEmailParams):this;url(params?:string|core.$ZodCheckURLParams):this;jwt(params?:string|core.$ZodCheckJWTParams):this;emoji(params?:string|core.$ZodCheckEmojiParams):this;guid(params?:string|core.$ZodCheckGUIDParams):this;uuid(params?:string|core.$ZodCheckUUIDParams):this;uuidv4(params?:string|core.$ZodCheckUUIDParams):this;uuidv6(params?:string|core.$ZodCheckUUIDParams):this;uuidv7(params?:string|core.$ZodCheckUUIDParams):this;nanoid(params?:string|core.$ZodCheckNanoIDParams):this;guid(params?:string|core.$ZodCheckGUIDParams):this;cuid(params?:string|core.$ZodCheckCUIDParams):this;cuid2(params?:string|core.$ZodCheckCUID2Params):this;ulid(params?:string|core.$ZodCheckULIDParams):this;base64(params?:string|core.$ZodCheckBase64Params):this;base64url(params?:string|core.$ZodCheckBase64URLParams):this;xid(params?:string|core.$ZodCheckXIDParams):this;ksuid(params?:string|core.$ZodCheckKSUIDParams):this;ipv4(params?:string|core.$ZodCheckIPv4Params):this;ipv6(params?:string|core.$ZodCheckIPv6Params):this;cidrv4(params?:string|core.$ZodCheckCIDRv4Params):this;cidrv6(params?:string|core.$ZodCheckCIDRv6Params):this;e164(params?:string|core.$ZodCheckE164Params):this;datetime(params?:string|core.$ZodCheckISODateTimeParams):this;date(params?:string|core.$ZodCheckISODateParams):this;time(params?:string|core.$ZodCheckISOTimeParams):this;duration(params?:string|core.$ZodCheckISODurationParams):this;}declare const ZodString:core.$constructor<ZodString>;declare function string$1(params?:string|core.$ZodStringParams):ZodString;interface ZodStringFormat<Format extends core.$ZodStringFormats=core.$ZodStringFormats>extends _ZodString<core.$ZodStringFormatInternals<Format>>{}declare const ZodStringFormat:core.$constructor<ZodStringFormat>;interface ZodEmail extends ZodStringFormat<\"email\">{_zod:core.$ZodEmailInternals;}declare const ZodEmail:core.$constructor<ZodEmail>;declare function email(params?:string|core.$ZodEmailParams):ZodEmail;interface ZodGUID extends ZodStringFormat<\"guid\">{_zod:core.$ZodGUIDInternals;}declare const ZodGUID:core.$constructor<ZodGUID>;declare function guid(params?:string|core.$ZodGUIDParams):ZodGUID;interface ZodUUID extends ZodStringFormat<\"uuid\">{_zod:core.$ZodUUIDInternals;}declare const ZodUUID:core.$constructor<ZodUUID>;declare function uuid(params?:string|core.$ZodUUIDParams):ZodUUID;declare function uuidv4(params?:string|core.$ZodUUIDv4Params):ZodUUID;declare function uuidv6(params?:string|core.$ZodUUIDv6Params):ZodUUID;declare function uuidv7(params?:string|core.$ZodUUIDv7Params):ZodUUID;interface ZodURL extends ZodStringFormat<\"url\">{_zod:core.$ZodURLInternals;}declare const ZodURL:core.$constructor<ZodURL>;declare function url(params?:string|core.$ZodURLParams):ZodURL;interface ZodEmoji extends ZodStringFormat<\"emoji\">{_zod:core.$ZodEmojiInternals;}declare const ZodEmoji:core.$constructor<ZodEmoji>;declare function emoji(params?:string|core.$ZodEmojiParams):ZodEmoji;interface ZodNanoID extends ZodStringFormat<\"nanoid\">{_zod:core.$ZodNanoIDInternals;}declare const ZodNanoID:core.$constructor<ZodNanoID>;declare function nanoid(params?:string|core.$ZodNanoIDParams):ZodNanoID;interface ZodCUID extends ZodStringFormat<\"cuid\">{_zod:core.$ZodCUIDInternals;}declare const ZodCUID:core.$constructor<ZodCUID>;declare function cuid(params?:string|core.$ZodCUIDParams):ZodCUID;interface ZodCUID2 extends ZodStringFormat<\"cuid2\">{_zod:core.$ZodCUID2Internals;}declare const ZodCUID2:core.$constructor<ZodCUID2>;declare function cuid2(params?:string|core.$ZodCUID2Params):ZodCUID2;interface ZodULID extends ZodStringFormat<\"ulid\">{_zod:core.$ZodULIDInternals;}declare const ZodULID:core.$constructor<ZodULID>;declare function ulid(params?:string|core.$ZodULIDParams):ZodULID;interface ZodXID extends ZodStringFormat<\"xid\">{_zod:core.$ZodXIDInternals;}declare const ZodXID:core.$constructor<ZodXID>;declare function xid(params?:string|core.$ZodXIDParams):ZodXID;interface ZodKSUID extends ZodStringFormat<\"ksuid\">{_zod:core.$ZodKSUIDInternals;}declare const ZodKSUID:core.$constructor<ZodKSUID>;declare function ksuid(params?:string|core.$ZodKSUIDParams):ZodKSUID;interface ZodIPv4 extends ZodStringFormat<\"ipv4\">{_zod:core.$ZodIPv4Internals;}declare const ZodIPv4:core.$constructor<ZodIPv4>;declare function ipv4(params?:string|core.$ZodIPv4Params):ZodIPv4;interface ZodIPv6 extends ZodStringFormat<\"ipv6\">{_zod:core.$ZodIPv6Internals;}declare const ZodIPv6:core.$constructor<ZodIPv6>;declare function ipv6(params?:string|core.$ZodIPv6Params):ZodIPv6;interface ZodCIDRv4 extends ZodStringFormat<\"cidrv4\">{_zod:core.$ZodCIDRv4Internals;}declare const ZodCIDRv4:core.$constructor<ZodCIDRv4>;declare function cidrv4(params?:string|core.$ZodCIDRv4Params):ZodCIDRv4;interface ZodCIDRv6 extends ZodStringFormat<\"cidrv6\">{_zod:core.$ZodCIDRv6Internals;}declare const ZodCIDRv6:core.$constructor<ZodCIDRv6>;declare function cidrv6(params?:string|core.$ZodCIDRv6Params):ZodCIDRv6;interface ZodBase64 extends ZodStringFormat<\"base64\">{_zod:core.$ZodBase64Internals;}declare const ZodBase64:core.$constructor<ZodBase64>;declare function base64(params?:string|core.$ZodBase64Params):ZodBase64;interface ZodBase64URL extends ZodStringFormat<\"base64url\">{_zod:core.$ZodBase64URLInternals;}declare const ZodBase64URL:core.$constructor<ZodBase64URL>;declare function base64url(params?:string|core.$ZodBase64URLParams):ZodBase64URL;interface ZodE164 extends ZodStringFormat<\"e164\">{_zod:core.$ZodE164Internals;}declare const ZodE164:core.$constructor<ZodE164>;declare function e164(params?:string|core.$ZodE164Params):ZodE164;interface ZodJWT extends ZodStringFormat<\"jwt\">{_zod:core.$ZodJWTInternals;}declare const ZodJWT:core.$constructor<ZodJWT>;declare function jwt(params?:string|core.$ZodJWTParams):ZodJWT;interface _ZodNumber<Internals extends core.$ZodNumberInternals=core.$ZodNumberInternals>extends _ZodType<Internals>{gt(value:number,params?:string|core.$ZodCheckGreaterThanParams):this;gte(value:number,params?:string|core.$ZodCheckGreaterThanParams):this;min(value:number,params?:string|core.$ZodCheckGreaterThanParams):this;lt(value:number,params?:string|core.$ZodCheckLessThanParams):this;lte(value:number,params?:string|core.$ZodCheckLessThanParams):this;max(value:number,params?:string|core.$ZodCheckLessThanParams):this;int(params?:string|core.$ZodCheckNumberFormatParams):this;safe(params?:string|core.$ZodCheckNumberFormatParams):this;positive(params?:string|core.$ZodCheckGreaterThanParams):this;nonnegative(params?:string|core.$ZodCheckGreaterThanParams):this;negative(params?:string|core.$ZodCheckLessThanParams):this;nonpositive(params?:string|core.$ZodCheckLessThanParams):this;multipleOf(value:number,params?:string|core.$ZodCheckMultipleOfParams):this;step(value:number,params?:string|core.$ZodCheckMultipleOfParams):this;finite(params?:unknown):this;minValue:number|null;maxValue:number|null;isInt:boolean;isFinite:boolean;format:string|null;}interface ZodNumber extends _ZodNumber<core.$ZodNumberInternals<number>>{}declare const ZodNumber:core.$constructor<ZodNumber>;declare function number$1(params?:string|core.$ZodNumberParams):ZodNumber;interface ZodNumberFormat extends ZodNumber{_zod:core.$ZodNumberFormatInternals;}declare const ZodNumberFormat:core.$constructor<ZodNumberFormat>;interface ZodInt extends ZodNumberFormat{}declare function int(params?:string|core.$ZodCheckNumberFormatParams):ZodInt;interface ZodFloat32 extends ZodNumberFormat{}declare function float32(params?:string|core.$ZodCheckNumberFormatParams):ZodFloat32;interface ZodFloat64 extends ZodNumberFormat{}declare function float64(params?:string|core.$ZodCheckNumberFormatParams):ZodFloat64;interface ZodInt32 extends ZodNumberFormat{}declare function int32(params?:string|core.$ZodCheckNumberFormatParams):ZodInt32;interface ZodUInt32 extends ZodNumberFormat{}declare function uint32(params?:string|core.$ZodCheckNumberFormatParams):ZodUInt32;interface _ZodBoolean<T extends core.$ZodBooleanInternals=core.$ZodBooleanInternals>extends _ZodType<T>{}interface ZodBoolean extends _ZodBoolean<core.$ZodBooleanInternals<boolean>>{}declare const ZodBoolean:core.$constructor<ZodBoolean>;declare function boolean$1(params?:string|core.$ZodBooleanParams):ZodBoolean;interface _ZodBigInt<T extends core.$ZodBigIntInternals=core.$ZodBigIntInternals>extends _ZodType<T>{gte(value:bigint,params?:string|core.$ZodCheckGreaterThanParams):this;min(value:bigint,params?:string|core.$ZodCheckGreaterThanParams):this;gt(value:bigint,params?:string|core.$ZodCheckGreaterThanParams):this;lte(value:bigint,params?:string|core.$ZodCheckLessThanParams):this;max(value:bigint,params?:string|core.$ZodCheckLessThanParams):this;lt(value:bigint,params?:string|core.$ZodCheckLessThanParams):this;positive(params?:string|core.$ZodCheckGreaterThanParams):this;negative(params?:string|core.$ZodCheckLessThanParams):this;nonpositive(params?:string|core.$ZodCheckLessThanParams):this;nonnegative(params?:string|core.$ZodCheckGreaterThanParams):this;multipleOf(value:bigint,params?:string|core.$ZodCheckMultipleOfParams):this;minValue:bigint|null;maxValue:bigint|null;format:string|null;}interface ZodBigInt extends _ZodBigInt<core.$ZodBigIntInternals<bigint>>{}declare const ZodBigInt:core.$constructor<ZodBigInt>;declare function bigint$1(params?:string|core.$ZodBigIntParams):ZodBigInt;interface ZodBigIntFormat extends ZodBigInt{_zod:core.$ZodBigIntFormatInternals;}declare const ZodBigIntFormat:core.$constructor<ZodBigIntFormat>;declare function int64(params?:string|core.$ZodBigIntFormatParams):ZodBigIntFormat;declare function uint64(params?:string|core.$ZodBigIntFormatParams):ZodBigIntFormat;interface ZodSymbol extends _ZodType<core.$ZodSymbolInternals>{}declare const ZodSymbol:core.$constructor<ZodSymbol>;declare function symbol(params?:string|core.$ZodSymbolParams):ZodSymbol;interface ZodUndefined extends _ZodType<core.$ZodUndefinedInternals>{}declare const ZodUndefined:core.$constructor<ZodUndefined>;declare function _undefined(params?:string|core.$ZodUndefinedParams):ZodUndefined;interface ZodNull extends _ZodType<core.$ZodNullInternals>{}declare const ZodNull:core.$constructor<ZodNull>;declare function _null(params?:string|core.$ZodNullParams):ZodNull;interface ZodAny extends _ZodType<core.$ZodAnyInternals>{}declare const ZodAny:core.$constructor<ZodAny>;declare function any():ZodAny;interface ZodUnknown extends _ZodType<core.$ZodUnknownInternals>{}declare const ZodUnknown:core.$constructor<ZodUnknown>;declare function unknown():ZodUnknown;interface ZodNever extends _ZodType<core.$ZodNeverInternals>{}declare const ZodNever:core.$constructor<ZodNever>;declare function never(params?:string|core.$ZodNeverParams):ZodNever;interface ZodVoid extends _ZodType<core.$ZodVoidInternals>{}declare const ZodVoid:core.$constructor<ZodVoid>;declare function _void(params?:string|core.$ZodVoidParams):ZodVoid;interface _ZodDate<T extends core.$ZodDateInternals=core.$ZodDateInternals>extends _ZodType<T>{min(value:number|Date,params?:string|core.$ZodCheckGreaterThanParams):this;max(value:number|Date,params?:string|core.$ZodCheckLessThanParams):this;minDate:Date|null;maxDate:Date|null;}interface ZodDate extends _ZodDate<core.$ZodDateInternals<Date>>{}declare const ZodDate:core.$constructor<ZodDate>;declare function date$2(params?:string|core.$ZodDateParams):ZodDate;interface ZodArray<T extends core.SomeType=core.$ZodType>extends _ZodType<core.$ZodArrayInternals<T>>,core.$ZodArray<T>{element:T;min(minLength:number,params?:string|core.$ZodCheckMinLengthParams):this;nonempty(params?:string|core.$ZodCheckMinLengthParams):this;max(maxLength:number,params?:string|core.$ZodCheckMaxLengthParams):this;length(len:number,params?:string|core.$ZodCheckLengthEqualsParams):this;unwrap():T;}declare const ZodArray:core.$constructor<ZodArray>;declare function array<T extends core.SomeType>(element:T,params?:string|core.$ZodArrayParams):ZodArray<T>;declare function keyof<T extends ZodObject>(schema:T):ZodLiteral<keyof T[\"_zod\"][\"output\"]>;interface ZodObject<out Shape extends core.$ZodShape=core.$ZodLooseShape,out Config extends core.$ZodObjectConfig=core.$ZodObjectConfig>extends _ZodType<core.$ZodObjectInternals<Shape,Config>>,core.$ZodObject<Shape,Config>{shape:Shape;keyof():ZodEnum<util.ToEnum<keyof Shape&string>>;catchall<T extends core.SomeType>(schema:T):ZodObject<Shape,core.$catchall<T>>;passthrough():ZodObject<Shape,core.$loose>;loose():ZodObject<Shape,core.$loose>;strict():ZodObject<Shape,core.$strict>;strip():ZodObject<Shape,core.$strict>;extend<U extends core.$ZodLooseShape&Partial<Record<keyof Shape,core.SomeType>>>(shape:U):ZodObject<util.Extend<Shape,U>,Config>;merge<U extends ZodObject>(other:U):ZodObject<util.Extend<Shape,U[\"shape\"]>,U[\"_zod\"][\"config\"]>;pick<M extends util.Exactly<util.Mask<keyof Shape>,M>>(mask:M):ZodObject<util.Flatten<Pick<Shape,Extract<keyof Shape,keyof M>>>,Config>;omit<M extends util.Exactly<util.Mask<keyof Shape>,M>>(mask:M):ZodObject<util.Flatten<Omit<Shape,Extract<keyof Shape,keyof M>>>,Config>;partial():ZodObject<{[k in keyof Shape]:ZodOptional<Shape[k]>;},Config>;partial<M extends util.Exactly<util.Mask<keyof Shape>,M>>(mask:M):ZodObject<{[k in keyof Shape]:k extends keyof M?ZodOptional<Shape[k]>:Shape[k];},Config>;required():ZodObject<{[k in keyof Shape]:ZodNonOptional<Shape[k]>;},Config>;required<M extends util.Exactly<util.Mask<keyof Shape>,M>>(mask:M):ZodObject<{[k in keyof Shape]:k extends keyof M?ZodNonOptional<Shape[k]>:Shape[k];},Config>;}declare const ZodObject:core.$constructor<ZodObject>;declare function object<T extends core.$ZodLooseShape=Partial<Record<never,core.SomeType>>>(shape?:T,params?:string|core.$ZodObjectParams):ZodObject<util.Writeable<T>,core.$strip>;declare function strictObject<T extends core.$ZodLooseShape>(shape:T,params?:string|core.$ZodObjectParams):ZodObject<T,core.$strict>;declare function looseObject<T extends core.$ZodLooseShape>(shape:T,params?:string|core.$ZodObjectParams):ZodObject<T,core.$loose>;interface ZodUnion<T extends readonly core.SomeType[]=readonly core.$ZodType[]>extends _ZodType<core.$ZodUnionInternals<T>>,core.$ZodUnion<T>{options:T;}declare const ZodUnion:core.$constructor<ZodUnion>;declare function union<const T extends readonly core.SomeType[]>(options:T,params?:string|core.$ZodUnionParams):ZodUnion<T>;interface ZodDiscriminatedUnion<Options extends readonly core.SomeType[]=readonly core.$ZodType[]>extends ZodUnion<Options>,core.$ZodDiscriminatedUnion<Options>{_zod:core.$ZodDiscriminatedUnionInternals<Options>;}declare const ZodDiscriminatedUnion:core.$constructor<ZodDiscriminatedUnion>;declare function discriminatedUnion<Types extends readonly[core.$ZodTypeDiscriminable,...core.$ZodTypeDiscriminable[]]>(discriminator:string,options:Types,params?:string|core.$ZodDiscriminatedUnionParams):ZodDiscriminatedUnion<Types>;interface ZodIntersection<A extends core.SomeType=core.$ZodType,B extends core.SomeType=core.$ZodType>extends _ZodType<core.$ZodIntersectionInternals<A,B>>,core.$ZodIntersection<A,B>{}declare const ZodIntersection:core.$constructor<ZodIntersection>;declare function intersection<T extends core.SomeType,U extends core.SomeType>(left:T,right:U):ZodIntersection<T,U>;interface ZodTuple<T extends util.TupleItems=readonly core.$ZodType[],Rest extends core.SomeType|null=core.$ZodType|null>extends _ZodType<core.$ZodTupleInternals<T,Rest>>,core.$ZodTuple<T,Rest>{rest<Rest extends core.SomeType=core.$ZodType>(rest:Rest):ZodTuple<T,Rest>;}declare const ZodTuple:core.$constructor<ZodTuple>;declare function tuple<T extends readonly[core.SomeType,...core.SomeType[]]>(items:T,params?:string|core.$ZodTupleParams):ZodTuple<T,null>;declare function tuple<T extends readonly[core.SomeType,...core.SomeType[]],Rest extends core.SomeType>(items:T,rest:Rest,params?:string|core.$ZodTupleParams):ZodTuple<T,Rest>;declare function tuple(items:[],params?:string|core.$ZodTupleParams):ZodTuple<[],null>;interface ZodRecord<Key extends core.$ZodRecordKey=core.$ZodRecordKey,Value extends core.SomeType=core.$ZodType>extends _ZodType<core.$ZodRecordInternals<Key,Value>>,core.$ZodRecord<Key,Value>{keyType:Key;valueType:Value;}declare const ZodRecord:core.$constructor<ZodRecord>;declare function record<Key extends core.$ZodRecordKey,Value extends core.SomeType>(keyType:Key,valueType:Value,params?:string|core.$ZodRecordParams):ZodRecord<Key,Value>;declare function partialRecord<Key extends core.$ZodRecordKey,Value extends core.SomeType>(keyType:Key,valueType:Value,params?:string|core.$ZodRecordParams):ZodRecord<ZodUnion<[Key,ZodNever]>,Value>;interface ZodMap<Key extends core.SomeType=core.$ZodType,Value extends core.SomeType=core.$ZodType>extends _ZodType<core.$ZodMapInternals<Key,Value>>,core.$ZodMap<Key,Value>{keyType:Key;valueType:Value;}declare const ZodMap:core.$constructor<ZodMap>;declare function map<Key extends core.SomeType,Value extends core.SomeType>(keyType:Key,valueType:Value,params?:string|core.$ZodMapParams):ZodMap<Key,Value>;interface ZodSet<T extends core.SomeType=core.$ZodType>extends _ZodType<core.$ZodSetInternals<T>>,core.$ZodSet<T>{min(minSize:number,params?:string|core.$ZodCheckMinSizeParams):this;nonempty(params?:string|core.$ZodCheckMinSizeParams):this;max(maxSize:number,params?:string|core.$ZodCheckMaxSizeParams):this;size(size:number,params?:string|core.$ZodCheckSizeEqualsParams):this;}declare const ZodSet:core.$constructor<ZodSet>;declare function set<Value extends core.SomeType>(valueType:Value,params?:string|core.$ZodSetParams):ZodSet<Value>;interface ZodEnum<out T extends util.EnumLike=util.EnumLike>extends _ZodType<core.$ZodEnumInternals<T>>,core.$ZodEnum<T>{enum:T;options:Array<T[keyof T]>;extract<const U extends readonly(keyof T)[]>(values:U,params?:string|core.$ZodEnumParams):ZodEnum<util.Flatten<Pick<T,U[number]>>>;exclude<const U extends readonly(keyof T)[]>(values:U,params?:string|core.$ZodEnumParams):ZodEnum<util.Flatten<Omit<T,U[number]>>>;}declare const ZodEnum:core.$constructor<ZodEnum>;declare function _enum<const T extends readonly string[]>(values:T,params?:string|core.$ZodEnumParams):ZodEnum<util.ToEnum<T[number]>>;declare function _enum<const T extends util.EnumLike>(entries:T,params?:string|core.$ZodEnumParams):ZodEnum<T>;declare function nativeEnum<T extends util.EnumLike>(entries:T,params?:string|core.$ZodEnumParams):ZodEnum<T>;interface ZodLiteral<T extends util.Primitive=util.Primitive>extends _ZodType<core.$ZodLiteralInternals<T>>,core.$ZodLiteral<T>{values:Set<T>;value:T;}declare const ZodLiteral:core.$constructor<ZodLiteral>;declare function literal<const T extends Array<util.Literal>>(value:T,params?:string|core.$ZodLiteralParams):ZodLiteral<T[number]>;declare function literal<const T extends util.Literal>(value:T,params?:string|core.$ZodLiteralParams):ZodLiteral<T>;interface ZodFile extends _ZodType<core.$ZodFileInternals>,core.$ZodFile{min(size:number,params?:string|core.$ZodCheckMinSizeParams):this;max(size:number,params?:string|core.$ZodCheckMaxSizeParams):this;mime(types:util.MimeTypes|Array<util.MimeTypes>,params?:string|core.$ZodCheckMimeTypeParams):this;}declare const ZodFile:core.$constructor<ZodFile>;declare function file(params?:string|core.$ZodFileParams):ZodFile;interface ZodTransform<O=unknown,I=unknown>extends _ZodType<core.$ZodTransformInternals<O,I>>,core.$ZodTransform<O,I>{}declare const ZodTransform:core.$constructor<ZodTransform>;declare function transform<I=unknown,O=I>(fn:(input:I,ctx:core.ParsePayload)=>O):ZodTransform<Awaited<O>,I>;interface ZodOptional<T extends core.SomeType=core.$ZodType>extends _ZodType<core.$ZodOptionalInternals<T>>,core.$ZodOptional<T>{unwrap():T;}declare const ZodOptional:core.$constructor<ZodOptional>;declare function optional<T extends core.SomeType>(innerType:T):ZodOptional<T>;interface ZodNullable<T extends core.SomeType=core.$ZodType>extends _ZodType<core.$ZodNullableInternals<T>>,core.$ZodNullable<T>{unwrap():T;}declare const ZodNullable:core.$constructor<ZodNullable>;declare function nullable<T extends core.SomeType>(innerType:T):ZodNullable<T>;declare function nullish<T extends core.SomeType>(innerType:T):ZodOptional<ZodNullable<T>>;interface ZodDefault<T extends core.SomeType=core.$ZodType>extends _ZodType<core.$ZodDefaultInternals<T>>,core.$ZodDefault<T>{unwrap():T;removeDefault():T;}declare const ZodDefault:core.$constructor<ZodDefault>;declare function _default<T extends core.SomeType>(innerType:T,defaultValue:util.NoUndefined<core.output<T>>|(()=>util.NoUndefined<core.output<T>>)):ZodDefault<T>;interface ZodPrefault<T extends core.SomeType=core.$ZodType>extends _ZodType<core.$ZodPrefaultInternals<T>>,core.$ZodPrefault<T>{unwrap():T;}declare const ZodPrefault:core.$constructor<ZodPrefault>;declare function prefault<T extends core.SomeType>(innerType:T,defaultValue:core.input<T>|(()=>core.input<T>)):ZodPrefault<T>;interface ZodNonOptional<T extends core.SomeType=core.$ZodType>extends _ZodType<core.$ZodNonOptionalInternals<T>>,core.$ZodNonOptional<T>{unwrap():T;}declare const ZodNonOptional:core.$constructor<ZodNonOptional>;declare function nonoptional<T extends core.SomeType>(innerType:T,params?:string|core.$ZodNonOptionalParams):ZodNonOptional<T>;interface ZodSuccess<T extends core.SomeType=core.$ZodType>extends _ZodType<core.$ZodSuccessInternals<T>>,core.$ZodSuccess<T>{unwrap():T;}declare const ZodSuccess:core.$constructor<ZodSuccess>;declare function success<T extends core.SomeType>(innerType:T):ZodSuccess<T>;interface ZodCatch<T extends core.SomeType=core.$ZodType>extends _ZodType<core.$ZodCatchInternals<T>>,core.$ZodCatch<T>{unwrap():T;removeCatch():T;}declare const ZodCatch:core.$constructor<ZodCatch>;declare function _catch<T extends core.SomeType>(innerType:T,catchValue:core.output<T>|((ctx:core.$ZodCatchCtx)=>core.output<T>)):ZodCatch<T>;interface ZodNaN extends _ZodType<core.$ZodNaNInternals>,core.$ZodNaN{}declare const ZodNaN:core.$constructor<ZodNaN>;declare function nan(params?:string|core.$ZodNaNParams):ZodNaN;interface ZodPipe<A extends core.SomeType=core.$ZodType,B extends core.SomeType=core.$ZodType>extends _ZodType<core.$ZodPipeInternals<A,B>>,core.$ZodPipe<A,B>{in:A;out:B;}declare const ZodPipe:core.$constructor<ZodPipe>;declare function pipe<const A extends core.SomeType,B extends core.$ZodType<unknown,core.output<A>>=core.$ZodType<unknown,core.output<A>>>(in_:A,out:B|core.$ZodType<unknown,core.output<A>>):ZodPipe<A,B>;interface ZodReadonly<T extends core.SomeType=core.$ZodType>extends _ZodType<core.$ZodReadonlyInternals<T>>,core.$ZodReadonly<T>{}declare const ZodReadonly:core.$constructor<ZodReadonly>;declare function readonly<T extends core.SomeType>(innerType:T):ZodReadonly<T>;interface ZodTemplateLiteral<Template extends string=string>extends _ZodType<core.$ZodTemplateLiteralInternals<Template>>,core.$ZodTemplateLiteral<Template>{}declare const ZodTemplateLiteral:core.$constructor<ZodTemplateLiteral>;declare function templateLiteral<const Parts extends core.$ZodTemplateLiteralPart[]>(parts:Parts,params?:string|core.$ZodTemplateLiteralParams):ZodTemplateLiteral<core.$PartsToTemplateLiteral<Parts>>;interface ZodLazy<T extends core.SomeType=core.$ZodType>extends _ZodType<core.$ZodLazyInternals<T>>,core.$ZodLazy<T>{unwrap():T;}declare const ZodLazy:core.$constructor<ZodLazy>;declare function lazy<T extends core.SomeType>(getter:()=>T):ZodLazy<T>;interface ZodPromise<T extends core.SomeType=core.$ZodType>extends _ZodType<core.$ZodPromiseInternals<T>>,core.$ZodPromise<T>{unwrap():T;}declare const ZodPromise:core.$constructor<ZodPromise>;declare function promise<T extends core.SomeType>(innerType:T):ZodPromise<T>;interface ZodCustom<O=unknown,I=unknown>extends _ZodType<core.$ZodCustomInternals<O,I>>,core.$ZodCustom<O,I>{}declare const ZodCustom:core.$constructor<ZodCustom>;declare function check<O=unknown>(fn:core.CheckFn<O>,params?:string|core.$ZodCustomParams):core.$ZodCheck<O>;declare function custom<O>(fn?:(data:unknown)=>unknown,_params?:string|core.$ZodCustomParams|undefined):ZodCustom<O,O>;declare function refine<T>(fn:(arg:NoInfer<T>)=>util.MaybeAsync<unknown>,_params?:string|core.$ZodCustomParams):core.$ZodCheck<T>;declare function superRefine<T>(fn:(arg:T,payload:RefinementCtx<T>)=>void|Promise<void>,params?:string|core.$ZodCustomParams):core.$ZodCheck<T>;type ZodInstanceOfParams=core.Params<ZodCustom,core.$ZodIssueCustom,\"type\"|\"check\"|\"checks\"|\"fn\"|\"abort\"|\"error\"|\"params\"|\"path\">;declare function _instanceof<T extends typeof util.Class>(cls:T,params?:ZodInstanceOfParams):ZodCustom<InstanceType<T>,InstanceType<T>>;declare const stringbool:(_params?:string|core.$ZodStringBoolParams)=>ZodPipe<ZodUnknown,ZodBoolean>;type _ZodJSONSchema=ZodUnion<[\nZodString,ZodNumber,ZodBoolean,ZodNull,ZodArray<ZodJSONSchema>,ZodRecord<ZodString,ZodJSONSchema>]>;type _ZodJSONSchemaInternals=_ZodJSONSchema[\"_zod\"];interface ZodJSONSchemaInternals extends _ZodJSONSchemaInternals{output:util.JSONType;input:util.JSONType;}interface ZodJSONSchema extends _ZodJSONSchema{_zod:ZodJSONSchemaInternals;}declare function json(params?:string|core.$ZodCustomParams):ZodJSONSchema;declare function preprocess<A,U extends core.SomeType,B=unknown>(fn:(arg:B,ctx:RefinementCtx)=>A,schema:U):ZodPipe<ZodTransform<A,B>,U>;declare const ZodIssueCode:{readonly invalid_type:\"invalid_type\";readonly too_big:\"too_big\";readonly too_small:\"too_small\";readonly invalid_format:\"invalid_format\";readonly not_multiple_of:\"not_multiple_of\";readonly unrecognized_keys:\"unrecognized_keys\";readonly invalid_union:\"invalid_union\";readonly invalid_key:\"invalid_key\";readonly invalid_element:\"invalid_element\";readonly invalid_value:\"invalid_value\";readonly custom:\"custom\";};declare const NEVER:never;type inferFlattenedErrors<T extends core.$ZodType,U=string>=core.$ZodFlattenedError<core.output<T>,U>;type inferFormattedError<T extends core.$ZodType<any,any>,U=string>=core.$ZodFormattedError<core.output<T>,U>;type BRAND<T extends string|number|symbol=string|number|symbol>={[core.$brand]:{[k in T]:true;};};declare function setErrorMap(map:core.$ZodErrorMap):void;declare function getErrorMap():core.$ZodErrorMap<core.$ZodIssue>|undefined;type ZodRawShape=core.$ZodShape;interface StandardSchemaV1<Input=unknown,Output=Input>{readonly\"~standard\":StandardSchemaV1.Props<Input,Output>;}declare namespace StandardSchemaV1{interface Props<Input=unknown,Output=Input>{readonly version:1;readonly vendor:string;readonly validate:(value:unknown)=>Result<Output>|Promise<Result<Output>>;readonly types?:Types<Input,Output>|undefined;}type Result<Output>=SuccessResult<Output>|FailureResult;interface SuccessResult<Output>{readonly value:Output;readonly issues?:undefined;}interface FailureResult{readonly issues:ReadonlyArray<Issue>;}interface Issue{readonly message:string;readonly path?:ReadonlyArray<PropertyKey|PathSegment>|undefined;}interface PathSegment{readonly key:PropertyKey;}interface Types<Input=unknown,Output=Input>{readonly input:Input;readonly output:Output;}type InferInput<Schema extends StandardSchemaV1>=NonNullable<Schema[\"~standard\"][\"types\"]>[\"input\"];type InferOutput<Schema extends StandardSchemaV1>=NonNullable<Schema[\"~standard\"][\"types\"]>[\"output\"];}type Omit$1<T,K extends keyof T>=Pick<T,Exclude<keyof T,K>>;type MakePartial<T,K extends keyof T>=Omit$1<T,K>&InexactPartial<Pick<T,K>>;type InexactPartial<T>={[P in keyof T]?:T[P]|undefined;};type Identity<T>=T;type Flatten<T>=Identity<{[k in keyof T]:T[k];}>;type AnyFunc=(...args:any[])=>any;type MaybeAsync<T>=T|Promise<T>;type Primitive=string|number|symbol|bigint|boolean|null|undefined;type PropValues=Record<string,Set<Primitive>>;type PrimitiveSet=Set<Primitive>;declare abstract class Class{constructor(..._args:any[]);}declare const version:{readonly major:4;readonly minor:0;readonly patch:number;};interface ParseContext<T extends $ZodIssueBase=never>{readonly error?:$ZodErrorMap<T>;readonly reportInput?:boolean;readonly jitless?:boolean;}interface ParseContextInternal<T extends $ZodIssueBase=never>extends ParseContext<T>{readonly async?:boolean|undefined;}interface ParsePayload<T=unknown>{value:T;issues:$ZodRawIssue[];}interface $ZodTypeDef{type:\"string\"|\"number\"|\"int\"|\"boolean\"|\"bigint\"|\"symbol\"|\"null\"|\"undefined\"|\"void\"|\"never\"|\"any\"|\"unknown\"|\"date\"|\"object\"|\"record\"|\"file\"|\"array\"|\"tuple\"|\"union\"|\"intersection\"|\"map\"|\"set\"|\"enum\"|\"literal\"|\"nullable\"|\"optional\"|\"nonoptional\"|\"success\"|\"transform\"|\"default\"|\"prefault\"|\"catch\"|\"nan\"|\"pipe\"|\"readonly\"|\"template_literal\"|\"promise\"|\"lazy\"|\"custom\";error?:$ZodErrorMap<never>|undefined;checks?:$ZodCheck<never>[];}interface _$ZodTypeInternals{version:typeof version;def:$ZodTypeDef;id:string;deferred:AnyFunc[]|undefined;run(payload:ParsePayload<any>,ctx:ParseContextInternal):MaybeAsync<ParsePayload>;parse(payload:ParsePayload<any>,ctx:ParseContextInternal):MaybeAsync<ParsePayload>;traits:Set<string>;optin?:\"optional\"|undefined;optout?:\"optional\"|undefined;values?:PrimitiveSet|undefined;propValues?:PropValues|undefined;pattern:RegExp|undefined;constr:new(def:any)=>$ZodType;bag:Record<string,unknown>;isst:$ZodIssueBase;toJSONSchema?:()=>object;parent?:$ZodType|undefined;}interface $ZodTypeInternals<out O=unknown,out I=unknown>extends _$ZodTypeInternals{output:O;input:I;}type $ZodStandardSchema<T>=StandardSchemaV1.Props<input<T>,output<T>>;interface $ZodType<O=unknown,I=unknown,Internals extends $ZodTypeInternals<O,I>=$ZodTypeInternals<O,I>>{_zod:Internals;\"~standard\":$ZodStandardSchema<this>;}declare const $ZodType:$constructor<$ZodType>;declare global{interface File{}}type ZodTrait={_zod:{def:any;[k:string]:any;};};interface $constructor<T extends ZodTrait,D=T[\"_zod\"][\"def\"]>{new(def:D):T;init(inst:T,def:D):asserts inst is T;}declare function $constructor<T extends ZodTrait,D=T[\"_zod\"][\"def\"]>(name:string,initializer:(inst:T,def:D)=>void,params?:{Parent?:typeof Class;}):$constructor<T,D>;type input<T>=T extends{_zod:{input:any;};}?Required<T[\"_zod\"]>[\"input\"]:unknown;type output<T>=T extends{_zod:{output:any;};}?Required<T[\"_zod\"]>[\"output\"]:unknown;interface $ZodCheckDef{check:string;error?:$ZodErrorMap<never>|undefined;abort?:boolean|undefined;}interface $ZodCheckInternals<T>{def:$ZodCheckDef;issc?:$ZodIssueBase;check(payload:ParsePayload<T>):MaybeAsync<void>;onattach:((schema:$ZodType)=>void)[];when?:((payload:ParsePayload)=>boolean)|undefined;}interface $ZodCheck<in T=never>{_zod:$ZodCheckInternals<T>;}declare const $ZodCheck:$constructor<$ZodCheck<any>>;type $ZodStringFormats=\"email\"|\"url\"|\"emoji\"|\"uuid\"|\"guid\"|\"nanoid\"|\"cuid\"|\"cuid2\"|\"ulid\"|\"xid\"|\"ksuid\"|\"datetime\"|\"date\"|\"time\"|\"duration\"|\"ipv4\"|\"ipv6\"|\"cidrv4\"|\"cidrv6\"|\"base64\"|\"base64url\"|\"json_string\"|\"e164\"|\"lowercase\"|\"uppercase\"|\"regex\"|\"jwt\"|\"starts_with\"|\"ends_with\"|\"includes\";interface $ZodIssueBase{readonly code?:string;readonly input?:unknown;readonly path:PropertyKey[];readonly message:string;}interface $ZodIssueInvalidType<Input=unknown>extends $ZodIssueBase{readonly code:\"invalid_type\";readonly expected:$ZodType[\"_zod\"][\"def\"][\"type\"];readonly input:Input;}interface $ZodIssueTooBig<Input=unknown>extends $ZodIssueBase{readonly code:\"too_big\";readonly origin:\"number\"|\"int\"|\"bigint\"|\"date\"|\"string\"|\"array\"|\"set\"|\"file\"|(string&{});readonly maximum:number|bigint;readonly inclusive?:boolean;readonly input:Input;}interface $ZodIssueTooSmall<Input=unknown>extends $ZodIssueBase{readonly code:\"too_small\";readonly origin:\"number\"|\"int\"|\"bigint\"|\"date\"|\"string\"|\"array\"|\"set\"|\"file\"|(string&{});readonly minimum:number|bigint;readonly inclusive?:boolean;readonly input:Input;}interface $ZodIssueInvalidStringFormat extends $ZodIssueBase{readonly code:\"invalid_format\";readonly format:$ZodStringFormats|(string&{});readonly pattern?:string;readonly input:string;}interface $ZodIssueNotMultipleOf<Input extends number|bigint=number|bigint>extends $ZodIssueBase{readonly code:\"not_multiple_of\";readonly divisor:number;readonly input:Input;}interface $ZodIssueUnrecognizedKeys extends $ZodIssueBase{readonly code:\"unrecognized_keys\";readonly keys:string[];readonly input:Record<string,unknown>;}interface $ZodIssueInvalidUnion extends $ZodIssueBase{readonly code:\"invalid_union\";readonly errors:$ZodIssue[][];readonly input:unknown;}interface $ZodIssueInvalidKey<Input=unknown>extends $ZodIssueBase{readonly code:\"invalid_key\";readonly origin:\"map\"|\"record\";readonly issues:$ZodIssue[];readonly input:Input;}interface $ZodIssueInvalidElement<Input=unknown>extends $ZodIssueBase{readonly code:\"invalid_element\";readonly origin:\"map\"|\"set\";readonly key:unknown;readonly issues:$ZodIssue[];readonly input:Input;}interface $ZodIssueInvalidValue<Input=unknown>extends $ZodIssueBase{readonly code:\"invalid_value\";readonly values:Primitive[];readonly input:Input;}interface $ZodIssueCustom extends $ZodIssueBase{readonly code:\"custom\";readonly params?:Record<string,any>|undefined;readonly input:unknown;}type $ZodIssue=$ZodIssueInvalidType|$ZodIssueTooBig|$ZodIssueTooSmall|$ZodIssueInvalidStringFormat|$ZodIssueNotMultipleOf|$ZodIssueUnrecognizedKeys|$ZodIssueInvalidUnion|$ZodIssueInvalidKey|$ZodIssueInvalidElement|$ZodIssueInvalidValue|$ZodIssueCustom;type $ZodRawIssue<T extends $ZodIssueBase=$ZodIssue>=T extends any?RawIssue<T>:never;type RawIssue<T extends $ZodIssueBase>=Flatten<MakePartial<T,\"message\"|\"path\">&{readonly input?:unknown;readonly inst?:$ZodType|$ZodCheck;readonly continue?:boolean|undefined;}&Record<string,any>>;interface $ZodErrorMap<T extends $ZodIssueBase=$ZodIssue>{(issue:$ZodRawIssue<T>):{message:string;}|string|undefined|null;}declare function export_default$A():{localeError:$ZodErrorMap;};declare function export_default$z():{localeError:$ZodErrorMap;};declare function export_default$y():{localeError:$ZodErrorMap;};declare function export_default$x():{localeError:$ZodErrorMap;};declare function export_default$w():{localeError:$ZodErrorMap;};declare function export_default$v():{localeError:$ZodErrorMap;};declare function export_default$u():{localeError:$ZodErrorMap;};declare function export_default$t():{localeError:$ZodErrorMap;};declare function export_default$s():{localeError:$ZodErrorMap;};declare function export_default$r():{localeError:$ZodErrorMap;};declare function export_default$q():{localeError:$ZodErrorMap;};declare function export_default$p():{localeError:$ZodErrorMap;};declare function export_default$o():{localeError:$ZodErrorMap;};declare function export_default$n():{localeError:$ZodErrorMap;};declare function export_default$m():{localeError:$ZodErrorMap;};declare function export_default$l():{localeError:$ZodErrorMap;};declare function export_default$k():{localeError:$ZodErrorMap;};declare function export_default$j():{localeError:$ZodErrorMap;};declare function export_default$i():{localeError:$ZodErrorMap;};declare function export_default$h():{localeError:$ZodErrorMap;};declare function export_default$g():{localeError:$ZodErrorMap;};declare function export_default$f():{localeError:$ZodErrorMap;};declare function export_default$e():{localeError:$ZodErrorMap;};declare function export_default$d():{localeError:$ZodErrorMap;};declare function export_default$c():{localeError:$ZodErrorMap;};declare function export_default$b():{localeError:$ZodErrorMap;};declare function export_default$a():{localeError:$ZodErrorMap;};declare function export_default$9():{localeError:$ZodErrorMap;};declare function export_default$8():{localeError:$ZodErrorMap;};declare function export_default$7():{localeError:$ZodErrorMap;};declare function export_default$6():{localeError:$ZodErrorMap;};declare function export_default$5():{localeError:$ZodErrorMap;};declare function export_default$4():{localeError:$ZodErrorMap;};declare function export_default$3():{localeError:$ZodErrorMap;};declare function export_default$2():{localeError:$ZodErrorMap;};declare function export_default$1():{localeError:$ZodErrorMap;};declare function export_default():{localeError:$ZodErrorMap;};declare namespace index_d{export{export_default$A as ar,export_default$z as az,export_default$y as be,export_default$x as ca,export_default$w as cs,export_default$v as de,export_default$u as en,export_default$t as es,export_default$s as fa,export_default$r as fi,export_default$q as fr,export_default$p as frCA,export_default$o as he,export_default$n as hu,export_default$m as id,export_default$l as it,export_default$k as ja,export_default$j as kh,export_default$i as ko,export_default$h as mk,export_default$g as ms,export_default$f as nl,export_default$e as no,export_default$d as ota,export_default$c as pl,export_default$b as pt,export_default$a as ru,export_default$9 as sl,export_default$8 as sv,export_default$7 as ta,export_default$6 as th,export_default$5 as tr,export_default$4 as ua,export_default$3 as ur,export_default$2 as vi,export_default$1 as zhCN,export_default as zhTW};}interface ZodISODateTime extends ZodStringFormat{_zod:core.$ZodISODateTimeInternals;}declare const ZodISODateTime:core.$constructor<ZodISODateTime>;declare function datetime(params?:string|core.$ZodISODateTimeParams):ZodISODateTime;interface ZodISODate extends ZodStringFormat{_zod:core.$ZodISODateInternals;}declare const ZodISODate:core.$constructor<ZodISODate>;declare function date$1(params?:string|core.$ZodISODateParams):ZodISODate;interface ZodISOTime extends ZodStringFormat{_zod:core.$ZodISOTimeInternals;}declare const ZodISOTime:core.$constructor<ZodISOTime>;declare function time(params?:string|core.$ZodISOTimeParams):ZodISOTime;interface ZodISODuration extends ZodStringFormat{_zod:core.$ZodISODurationInternals;}declare const ZodISODuration:core.$constructor<ZodISODuration>;declare function duration(params?:string|core.$ZodISODurationParams):ZodISODuration;declare const iso_d_ZodISODate:typeof ZodISODate;declare const iso_d_ZodISODateTime:typeof ZodISODateTime;declare const iso_d_ZodISODuration:typeof ZodISODuration;declare const iso_d_ZodISOTime:typeof ZodISOTime;declare const iso_d_datetime:typeof datetime;declare const iso_d_duration:typeof duration;declare const iso_d_time:typeof time;declare namespace iso_d{export{iso_d_ZodISODate as ZodISODate,iso_d_ZodISODateTime as ZodISODateTime,iso_d_ZodISODuration as ZodISODuration,iso_d_ZodISOTime as ZodISOTime,date$1 as date,iso_d_datetime as datetime,iso_d_duration as duration,iso_d_time as time};}interface ZodCoercedString<T=unknown>extends _ZodString<core.$ZodStringInternals<T>>{}declare function string<T=unknown>(params?:string|core.$ZodStringParams):ZodCoercedString<T>;interface ZodCoercedNumber<T=unknown>extends _ZodNumber<core.$ZodNumberInternals<T>>{}declare function number<T=unknown>(params?:string|core.$ZodNumberParams):ZodCoercedNumber<T>;interface ZodCoercedBoolean<T=unknown>extends _ZodBoolean<core.$ZodBooleanInternals<T>>{}declare function boolean<T=unknown>(params?:string|core.$ZodBooleanParams):ZodCoercedBoolean<T>;interface ZodCoercedBigInt<T=unknown>extends _ZodBigInt<core.$ZodBigIntInternals<T>>{}declare function bigint<T=unknown>(params?:string|core.$ZodBigIntParams):ZodCoercedBigInt<T>;interface ZodCoercedDate<T=unknown>extends _ZodDate<core.$ZodDateInternals<T>>{}declare function date<T=unknown>(params?:string|core.$ZodDateParams):ZodCoercedDate<T>;type coerce_d_ZodCoercedBigInt<T=unknown>=ZodCoercedBigInt<T>;type coerce_d_ZodCoercedBoolean<T=unknown>=ZodCoercedBoolean<T>;type coerce_d_ZodCoercedDate<T=unknown>=ZodCoercedDate<T>;type coerce_d_ZodCoercedNumber<T=unknown>=ZodCoercedNumber<T>;type coerce_d_ZodCoercedString<T=unknown>=ZodCoercedString<T>;declare const coerce_d_bigint:typeof bigint;declare const coerce_d_boolean:typeof boolean;declare const coerce_d_date:typeof date;declare const coerce_d_number:typeof number;declare const coerce_d_string:typeof string;declare namespace coerce_d{export{type coerce_d_ZodCoercedBigInt as ZodCoercedBigInt,type coerce_d_ZodCoercedBoolean as ZodCoercedBoolean,type coerce_d_ZodCoercedDate as ZodCoercedDate,type coerce_d_ZodCoercedNumber as ZodCoercedNumber,type coerce_d_ZodCoercedString as ZodCoercedString,coerce_d_bigint as bigint,coerce_d_boolean as boolean,coerce_d_date as date,coerce_d_number as number,coerce_d_string as string};}declare const z_$brand:typeof $brand;declare const z_$input:typeof $input;declare const z_$output:typeof $output;type z_BRAND<T extends string|number|symbol=string|number|symbol>=BRAND<T>;declare const z_GlobalMeta:typeof GlobalMeta;type z_IssueData=IssueData;declare const z_NEVER:typeof NEVER;type z_RefinementCtx<T=unknown>=RefinementCtx<T>;declare const z_ZodAny:typeof ZodAny;declare const z_ZodArray:typeof ZodArray;declare const z_ZodBase64:typeof ZodBase64;declare const z_ZodBase64URL:typeof ZodBase64URL;declare const z_ZodBigInt:typeof ZodBigInt;declare const z_ZodBigIntFormat:typeof ZodBigIntFormat;declare const z_ZodBoolean:typeof ZodBoolean;declare const z_ZodCIDRv4:typeof ZodCIDRv4;declare const z_ZodCIDRv6:typeof ZodCIDRv6;declare const z_ZodCUID:typeof ZodCUID;declare const z_ZodCUID2:typeof ZodCUID2;declare const z_ZodCatch:typeof ZodCatch;type z_ZodCoercedBigInt<T=unknown>=ZodCoercedBigInt<T>;type z_ZodCoercedBoolean<T=unknown>=ZodCoercedBoolean<T>;type z_ZodCoercedDate<T=unknown>=ZodCoercedDate<T>;type z_ZodCoercedNumber<T=unknown>=ZodCoercedNumber<T>;type z_ZodCoercedString<T=unknown>=ZodCoercedString<T>;declare const z_ZodCustom:typeof ZodCustom;declare const z_ZodDate:typeof ZodDate;declare const z_ZodDefault:typeof ZodDefault;declare const z_ZodDiscriminatedUnion:typeof ZodDiscriminatedUnion;declare const z_ZodE164:typeof ZodE164;declare const z_ZodEmail:typeof ZodEmail;declare const z_ZodEmoji:typeof ZodEmoji;declare const z_ZodEnum:typeof ZodEnum;declare const z_ZodError:typeof ZodError;declare const z_ZodFile:typeof ZodFile;type z_ZodFloat32=ZodFloat32;type z_ZodFloat64=ZodFloat64;declare const z_ZodGUID:typeof ZodGUID;declare const z_ZodIPv4:typeof ZodIPv4;declare const z_ZodIPv6:typeof ZodIPv6;declare const z_ZodISODate:typeof ZodISODate;declare const z_ZodISODateTime:typeof ZodISODateTime;declare const z_ZodISODuration:typeof ZodISODuration;declare const z_ZodISOTime:typeof ZodISOTime;type z_ZodInt=ZodInt;type z_ZodInt32=ZodInt32;declare const z_ZodIntersection:typeof ZodIntersection;type z_ZodIssue=ZodIssue;declare const z_ZodIssueCode:typeof ZodIssueCode;type z_ZodJSONSchema=ZodJSONSchema;type z_ZodJSONSchemaInternals=ZodJSONSchemaInternals;declare const z_ZodJWT:typeof ZodJWT;declare const z_ZodKSUID:typeof ZodKSUID;declare const z_ZodLazy:typeof ZodLazy;declare const z_ZodLiteral:typeof ZodLiteral;declare const z_ZodMap:typeof ZodMap;declare const z_ZodNaN:typeof ZodNaN;declare const z_ZodNanoID:typeof ZodNanoID;declare const z_ZodNever:typeof ZodNever;declare const z_ZodNonOptional:typeof ZodNonOptional;declare const z_ZodNull:typeof ZodNull;declare const z_ZodNullable:typeof ZodNullable;declare const z_ZodNumber:typeof ZodNumber;declare const z_ZodNumberFormat:typeof ZodNumberFormat;declare const z_ZodObject:typeof ZodObject;declare const z_ZodOptional:typeof ZodOptional;declare const z_ZodPipe:typeof ZodPipe;declare const z_ZodPrefault:typeof ZodPrefault;declare const z_ZodPromise:typeof ZodPromise;type z_ZodRawShape=ZodRawShape;declare const z_ZodReadonly:typeof ZodReadonly;declare const z_ZodRealError:typeof ZodRealError;declare const z_ZodRecord:typeof ZodRecord;type z_ZodSafeParseError<T>=ZodSafeParseError<T>;type z_ZodSafeParseResult<T>=ZodSafeParseResult<T>;type z_ZodSafeParseSuccess<T>=ZodSafeParseSuccess<T>;declare const z_ZodSet:typeof ZodSet;declare const z_ZodString:typeof ZodString;declare const z_ZodStringFormat:typeof ZodStringFormat;declare const z_ZodSuccess:typeof ZodSuccess;declare const z_ZodSymbol:typeof ZodSymbol;declare const z_ZodTemplateLiteral:typeof ZodTemplateLiteral;declare const z_ZodTransform:typeof ZodTransform;declare const z_ZodTuple:typeof ZodTuple;declare const z_ZodType:typeof ZodType;type z_ZodUInt32=ZodUInt32;declare const z_ZodULID:typeof ZodULID;declare const z_ZodURL:typeof ZodURL;declare const z_ZodUUID:typeof ZodUUID;declare const z_ZodUndefined:typeof ZodUndefined;declare const z_ZodUnion:typeof ZodUnion;declare const z_ZodUnknown:typeof ZodUnknown;declare const z_ZodVoid:typeof ZodVoid;declare const z_ZodXID:typeof ZodXID;type z__ZodBigInt<T extends core.$ZodBigIntInternals=core.$ZodBigIntInternals>=_ZodBigInt<T>;type z__ZodBoolean<T extends core.$ZodBooleanInternals=core.$ZodBooleanInternals>=_ZodBoolean<T>;type z__ZodDate<T extends core.$ZodDateInternals=core.$ZodDateInternals>=_ZodDate<T>;type z__ZodNumber<Internals extends core.$ZodNumberInternals=core.$ZodNumberInternals>=_ZodNumber<Internals>;declare const z__ZodString:typeof _ZodString;type z__ZodType<out Internals extends core.$ZodTypeInternals=core.$ZodTypeInternals>=_ZodType<Internals>;declare const z__default:typeof _default;declare const z_any:typeof any;declare const z_array:typeof array;declare const z_base64:typeof base64;declare const z_base64url:typeof base64url;declare const z_check:typeof check;declare const z_cidrv4:typeof cidrv4;declare const z_cidrv6:typeof cidrv6;declare const z_clone:typeof clone;declare const z_config:typeof config;declare const z_core:typeof core;declare const z_cuid:typeof cuid;declare const z_cuid2:typeof cuid2;declare const z_custom:typeof custom;declare const z_discriminatedUnion:typeof discriminatedUnion;declare const z_e164:typeof e164;declare const z_email:typeof email;declare const z_emoji:typeof emoji;declare const z_file:typeof file;declare const z_flattenError:typeof flattenError;declare const z_float32:typeof float32;declare const z_float64:typeof float64;declare const z_formatError:typeof formatError;declare const z_getErrorMap:typeof getErrorMap;declare const z_globalRegistry:typeof globalRegistry;declare const z_guid:typeof guid;declare const z_infer:typeof infer;type z_inferFlattenedErrors<T extends core.$ZodType,U=string>=inferFlattenedErrors<T,U>;type z_inferFormattedError<T extends core.$ZodType<any,any>,U=string>=inferFormattedError<T,U>;declare const z_int:typeof int;declare const z_int32:typeof int32;declare const z_int64:typeof int64;declare const z_intersection:typeof intersection;declare const z_ipv4:typeof ipv4;declare const z_ipv6:typeof ipv6;declare const z_json:typeof json;declare const z_jwt:typeof jwt;declare const z_keyof:typeof keyof;declare const z_ksuid:typeof ksuid;declare const z_lazy:typeof lazy;declare const z_literal:typeof literal;declare const z_looseObject:typeof looseObject;declare const z_map:typeof map;declare const z_nan:typeof nan;declare const z_nanoid:typeof nanoid;declare const z_nativeEnum:typeof nativeEnum;declare const z_never:typeof never;declare const z_nonoptional:typeof nonoptional;declare const z_nullable:typeof nullable;declare const z_nullish:typeof nullish;declare const z_object:typeof object;declare const z_optional:typeof optional;declare const z_parse:typeof parse;declare const z_parseAsync:typeof parseAsync;declare const z_partialRecord:typeof partialRecord;declare const z_pipe:typeof pipe;declare const z_prefault:typeof prefault;declare const z_preprocess:typeof preprocess;declare const z_prettifyError:typeof prettifyError;declare const z_promise:typeof promise;declare const z_readonly:typeof readonly;declare const z_record:typeof record;declare const z_refine:typeof refine;declare const z_regexes:typeof regexes;declare const z_registry:typeof registry;declare const z_safeParse:typeof safeParse;declare const z_safeParseAsync:typeof safeParseAsync;declare const z_set:typeof set;declare const z_setErrorMap:typeof setErrorMap;declare const z_strictObject:typeof strictObject;declare const z_stringbool:typeof stringbool;declare const z_success:typeof success;declare const z_superRefine:typeof superRefine;declare const z_symbol:typeof symbol;declare const z_templateLiteral:typeof templateLiteral;declare const z_toJSONSchema:typeof toJSONSchema;declare const z_transform:typeof transform;declare const z_treeifyError:typeof treeifyError;declare const z_tuple:typeof tuple;declare const z_uint32:typeof uint32;declare const z_uint64:typeof uint64;declare const z_ulid:typeof ulid;declare const z_union:typeof union;declare const z_unknown:typeof unknown;declare const z_url:typeof url;declare const z_uuid:typeof uuid;declare const z_uuidv4:typeof uuidv4;declare const z_uuidv6:typeof uuidv6;declare const z_uuidv7:typeof uuidv7;declare const z_xid:typeof xid;declare namespace z{export{z_$brand as $brand,z_$input as $input,z_$output as $output,type z_BRAND as BRAND,z_GlobalMeta as GlobalMeta,output$1 as Infer,type z_IssueData as IssueData,z_NEVER as NEVER,type z_RefinementCtx as RefinementCtx,ZodType as Schema,output$1 as TypeOf,z_ZodAny as ZodAny,z_ZodArray as ZodArray,z_ZodBase64 as ZodBase64,z_ZodBase64URL as ZodBase64URL,z_ZodBigInt as ZodBigInt,z_ZodBigIntFormat as ZodBigIntFormat,z_ZodBoolean as ZodBoolean,z_ZodCIDRv4 as ZodCIDRv4,z_ZodCIDRv6 as ZodCIDRv6,z_ZodCUID as ZodCUID,z_ZodCUID2 as ZodCUID2,z_ZodCatch as ZodCatch,type z_ZodCoercedBigInt as ZodCoercedBigInt,type z_ZodCoercedBoolean as ZodCoercedBoolean,type z_ZodCoercedDate as ZodCoercedDate,type z_ZodCoercedNumber as ZodCoercedNumber,type z_ZodCoercedString as ZodCoercedString,z_ZodCustom as ZodCustom,z_ZodDate as ZodDate,z_ZodDefault as ZodDefault,z_ZodDiscriminatedUnion as ZodDiscriminatedUnion,z_ZodE164 as ZodE164,z_ZodEmail as ZodEmail,z_ZodEmoji as ZodEmoji,z_ZodEnum as ZodEnum,z_ZodError as ZodError,$ZodErrorMap$1 as ZodErrorMap,z_ZodFile as ZodFile,$ZodTypes as ZodFirstPartySchemaTypes,$ZodFlattenedError as ZodFlattenedError,type z_ZodFloat32 as ZodFloat32,type z_ZodFloat64 as ZodFloat64,$ZodFormattedError as ZodFormattedError,z_ZodGUID as ZodGUID,z_ZodIPv4 as ZodIPv4,z_ZodIPv6 as ZodIPv6,z_ZodISODate as ZodISODate,z_ZodISODateTime as ZodISODateTime,z_ZodISODuration as ZodISODuration,z_ZodISOTime as ZodISOTime,type z_ZodInt as ZodInt,type z_ZodInt32 as ZodInt32,z_ZodIntersection as ZodIntersection,type z_ZodIssue as ZodIssue,z_ZodIssueCode as ZodIssueCode,type z_ZodJSONSchema as ZodJSONSchema,type z_ZodJSONSchemaInternals as ZodJSONSchemaInternals,z_ZodJWT as ZodJWT,z_ZodKSUID as ZodKSUID,z_ZodLazy as ZodLazy,z_ZodLiteral as ZodLiteral,z_ZodMap as ZodMap,z_ZodNaN as ZodNaN,z_ZodNanoID as ZodNanoID,z_ZodNever as ZodNever,z_ZodNonOptional as ZodNonOptional,z_ZodNull as ZodNull,z_ZodNullable as ZodNullable,z_ZodNumber as ZodNumber,z_ZodNumberFormat as ZodNumberFormat,z_ZodObject as ZodObject,z_ZodOptional as ZodOptional,z_ZodPipe as ZodPipe,z_ZodPrefault as ZodPrefault,z_ZodPromise as ZodPromise,type z_ZodRawShape as ZodRawShape,z_ZodReadonly as ZodReadonly,z_ZodRealError as ZodRealError,z_ZodRecord as ZodRecord,type z_ZodSafeParseError as ZodSafeParseError,type z_ZodSafeParseResult as ZodSafeParseResult,type z_ZodSafeParseSuccess as ZodSafeParseSuccess,ZodType as ZodSchema,z_ZodSet as ZodSet,z_ZodString as ZodString,z_ZodStringFormat as ZodStringFormat,z_ZodSuccess as ZodSuccess,z_ZodSymbol as ZodSymbol,z_ZodTemplateLiteral as ZodTemplateLiteral,z_ZodTransform as ZodTransform,z_ZodTuple as ZodTuple,z_ZodType as ZodType,ZodType as ZodTypeAny,type z_ZodUInt32 as ZodUInt32,z_ZodULID as ZodULID,z_ZodURL as ZodURL,z_ZodUUID as ZodUUID,z_ZodUndefined as ZodUndefined,z_ZodUnion as ZodUnion,z_ZodUnknown as ZodUnknown,z_ZodVoid as ZodVoid,z_ZodXID as ZodXID,type z__ZodBigInt as _ZodBigInt,type z__ZodBoolean as _ZodBoolean,type z__ZodDate as _ZodDate,type z__ZodNumber as _ZodNumber,z__ZodString as _ZodString,type z__ZodType as _ZodType,z__default as _default,z_any as any,z_array as array,z_base64 as base64,z_base64url as base64url,bigint$1 as bigint,boolean$1 as boolean,_catch as catch,z_check as check,z_cidrv4 as cidrv4,z_cidrv6 as cidrv6,z_clone as clone,coerce_d as coerce,z_config as config,z_core as core,z_cuid as cuid,z_cuid2 as cuid2,z_custom as custom,date$2 as date,z_discriminatedUnion as discriminatedUnion,z_e164 as e164,z_email as email,z_emoji as emoji,_endsWith as endsWith,_enum as enum,z_file as file,z_flattenError as flattenError,z_float32 as float32,z_float64 as float64,z_formatError as formatError,_function as function,z_getErrorMap as getErrorMap,z_globalRegistry as globalRegistry,_gt as gt,_gte as gte,z_guid as guid,_includes as includes,z_infer as infer,type z_inferFlattenedErrors as inferFlattenedErrors,type z_inferFormattedError as inferFormattedError,input$1 as input,_instanceof as instanceof,z_int as int,z_int32 as int32,z_int64 as int64,z_intersection as intersection,z_ipv4 as ipv4,z_ipv6 as ipv6,iso_d as iso,z_json as json,z_jwt as jwt,z_keyof as keyof,z_ksuid as ksuid,z_lazy as lazy,_length as length,z_literal as literal,index_d as locales,z_looseObject as looseObject,_lowercase as lowercase,_lt as lt,_lte as lte,z_map as map,_maxLength as maxLength,_maxSize as maxSize,_mime as mime,_minLength as minLength,_minSize as minSize,_multipleOf as multipleOf,z_nan as nan,z_nanoid as nanoid,z_nativeEnum as nativeEnum,_negative as negative,z_never as never,_nonnegative as nonnegative,z_nonoptional as nonoptional,_nonpositive as nonpositive,_normalize as normalize,_null as null,z_nullable as nullable,z_nullish as nullish,number$1 as number,z_object as object,z_optional as optional,output$1 as output,_overwrite as overwrite,z_parse as parse,z_parseAsync as parseAsync,z_partialRecord as partialRecord,z_pipe as pipe,_positive as positive,z_prefault as prefault,z_preprocess as preprocess,z_prettifyError as prettifyError,z_promise as promise,_property as property,z_readonly as readonly,z_record as record,z_refine as refine,_regex as regex,z_regexes as regexes,z_registry as registry,z_safeParse as safeParse,z_safeParseAsync as safeParseAsync,z_set as set,z_setErrorMap as setErrorMap,_size as size,_startsWith as startsWith,z_strictObject as strictObject,string$1 as string,z_stringbool as stringbool,z_success as success,z_superRefine as superRefine,z_symbol as symbol,z_templateLiteral as templateLiteral,z_toJSONSchema as toJSONSchema,_toLowerCase as toLowerCase,_toUpperCase as toUpperCase,z_transform as transform,z_treeifyError as treeifyError,_trim as trim,z_tuple as tuple,z_uint32 as uint32,z_uint64 as uint64,z_ulid as ulid,_undefined as undefined,z_union as union,z_unknown as unknown,_uppercase as uppercase,z_url as url,z_uuid as uuid,z_uuidv4 as uuidv4,z_uuidv6 as uuidv6,z_uuidv7 as uuidv7,_void as void,z_xid as xid};}export{type BRAND,type IssueData,NEVER,type RefinementCtx,ZodType as Schema,ZodAny,ZodArray,ZodBase64,ZodBase64URL,ZodBigInt,ZodBigIntFormat,ZodBoolean,ZodCIDRv4,ZodCIDRv6,ZodCUID,ZodCUID2,ZodCatch,type ZodCoercedBigInt,type ZodCoercedBoolean,type ZodCoercedDate,type ZodCoercedNumber,type ZodCoercedString,ZodCustom,ZodDate,ZodDefault,ZodDiscriminatedUnion,ZodE164,ZodEmail,ZodEmoji,ZodEnum,ZodError,ZodFile,type ZodFloat32,type ZodFloat64,ZodGUID,ZodIPv4,ZodIPv6,ZodISODate,ZodISODateTime,ZodISODuration,ZodISOTime,type ZodInt,type ZodInt32,ZodIntersection,type ZodIssue,ZodIssueCode,type ZodJSONSchema,type ZodJSONSchemaInternals,ZodJWT,ZodKSUID,ZodLazy,ZodLiteral,ZodMap,ZodNaN,ZodNanoID,ZodNever,ZodNonOptional,ZodNull,ZodNullable,ZodNumber,ZodNumberFormat,ZodObject,ZodOptional,ZodPipe,ZodPrefault,ZodPromise,type ZodRawShape,ZodReadonly,ZodRealError,ZodRecord,type ZodSafeParseError,type ZodSafeParseResult,type ZodSafeParseSuccess,ZodType as ZodSchema,ZodSet,ZodString,ZodStringFormat,ZodSuccess,ZodSymbol,ZodTemplateLiteral,ZodTransform,ZodTuple,ZodType,ZodType as ZodTypeAny,type ZodUInt32,ZodULID,ZodURL,ZodUUID,ZodUndefined,ZodUnion,ZodUnknown,ZodVoid,ZodXID,type _ZodBigInt,type _ZodBoolean,type _ZodDate,type _ZodNumber,_ZodString,type _ZodType,_default,any,array,base64,base64url,bigint$1 as bigint,boolean$1 as boolean,_catch as catch,check,cidrv4,cidrv6,coerce_d as coerce,cuid,cuid2,custom,date$2 as date,discriminatedUnion,e164,email,emoji,_enum as enum,file,float32,float64,getErrorMap,guid,type inferFlattenedErrors,type inferFormattedError,_instanceof as instanceof,int,int32,int64,intersection,ipv4,ipv6,iso_d as iso,json,jwt,keyof,ksuid,lazy,literal,index_d as locales,looseObject,map,nan,nanoid,nativeEnum,never,nonoptional,_null as null,nullable,nullish,number$1 as number,object,optional,parse,parseAsync,partialRecord,pipe,prefault,preprocess,promise,readonly,record,refine,safeParse,safeParseAsync,set,setErrorMap,strictObject,string$1 as string,stringbool,success,superRefine,symbol,templateLiteral,transform,tuple,uint32,uint64,ulid,_undefined as undefined,union,unknown,url,uuid,uuidv4,uuidv6,uuidv7,_void as void,xid,z};"
  },
  {
    "path": "website/src/routes/guides/(migration)/migrate-from-zod/zod/v4/package.json",
    "content": "{\n  \"name\": \"zod/v4\",\n  \"version\": \"3.25.56\",\n  \"type\": \"module\",\n  \"main\": \"./dist/index.js\",\n  \"types\": \"./dist/index.d.ts\"\n}\n"
  },
  {
    "path": "website/src/routes/guides/(migration)/migrate-to-v0.31.0/index.mdx",
    "content": "---\ntitle: Migrate to v0.31.0\ndescription: >-\n  Migrating Valibot from an older version to v0.31.0 isn't complicated. Except\n  for the new `pipe` method, most things remain the same.\ncontributors:\n  - fabian-hiller\n  - jozefini\n  - lesleh\n---\n\nimport { Link } from '~/components';\n\n# Migrate to v0.31.0\n\nMigrating Valibot from an older version to v0.31.0 isn't complicated. Except for the new <Link href=\"/api/pipe/\">`pipe`</Link> method, most things remain the same. The following guide will help you to migrate automatically or manually step by step and also point out important differences.\n\n## Automatic upgrade\n\nWe worked together with [Codemod](https://codemod.com/registry/valibot-migrate-to-v0-31-0) and [Grit](https://docs.grit.io/registry/github.com/open-circle/valibot/migrate_to_v0_31_0) to automatically upgrade your schemas to the new version with a single CLI command. Both codemods are similar. You can use one or the other. Simply run the command in the directory of your project.\n\n> We recommend using a version control system like [Git](https://git-scm.com/) so that you can revert changes if the codemod screws something up.\n\n```bash\n# Codemod\nnpx codemod valibot/migrate-to-v0.31.0\n\n# Grit\nnpx @getgrit/cli apply github.com/open-circle/valibot#migrate_to_v0_31_0\n```\n\nPlease create an [issue](https://github.com/open-circle/valibot/issues/new) if you encounter any problems or unexpected behavior with the provided codemods.\n\n## Restructure code\n\nAs mentioned above, one of the biggest differences is the new <Link href=\"/api/pipe/\">`pipe`</Link> method. Previously, you passed the pipeline as an array to a schema function. Now you pass the schema with various actions to the new <Link href=\"/api/pipe/\">`pipe`</Link> method to extend a schema.\n\n```ts\n// Change this\nconst Schema = v.string([v.email()]);\n\n// To this\nconst Schema = v.pipe(v.string(), v.email());\n```\n\nWe will be publishing a [blog post](/blog/valibot-v0.31.0-is-finally-available/) soon explaining all the benefits of this change. In the meantime, you can read the description of discussion [#463](https://github.com/open-circle/valibot/discussions/463) and PR [#502](https://github.com/open-circle/valibot/pull/502), which introduced this change.\n\n## Change names\n\nMost of the names are the same as before. However, there are some exceptions. The following table shows all names that have changed.\n\n| v0.30.0          | v0.31.0                                                                                                                                |\n| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------- |\n| `anyAsync`       | <Link href=\"/api/any/\">`any`</Link>                                                                                                    |\n| `BaseSchema`     | <Link href=\"/api/GenericSchema/\">`GenericSchema`</Link>                                                                                |\n| `bigintAsync`    | <Link href=\"/api/bigint/\">`bigint`</Link>                                                                                              |\n| `blobAsync`      | <Link href=\"/api/blob/\">`blob`</Link>                                                                                                  |\n| `booleanAsync`   | <Link href=\"/api/boolean/\">`boolean`</Link>                                                                                            |\n| `custom`         | <Link href=\"/api/check/\">`check`</Link>                                                                                                |\n| `customAsync`    | <Link href=\"/api/checkAsync/\">`checkAsync`</Link>                                                                                      |\n| `coerce`         | <Link href=\"/api/pipe/\">`pipe`</Link>, <Link href=\"/api/unknown/\">`unknown`</Link> and <Link href=\"/api/transform/\">`transform`</Link> |\n| `dateAsync`      | <Link href=\"/api/date/\">`date`</Link>                                                                                                  |\n| `enumAsync`      | <Link href=\"/api/enum/\">`enum_`</Link>                                                                                                 |\n| `Input`          | <Link href=\"/api/InferInput/\">`InferInput`</Link>                                                                                      |\n| `instanceAsync`  | <Link href=\"/api/instance/\">`instance`</Link>                                                                                          |\n| `literalAsync`   | <Link href=\"/api/literal/\">`literal`</Link>                                                                                            |\n| `nanAsync`       | <Link href=\"/api/nan/\">`nan`</Link>                                                                                                    |\n| `neverAsync`     | <Link href=\"/api/never/\">`never`</Link>                                                                                                |\n| `nullAsync`      | <Link href=\"/api/null/\">`null_`</Link>                                                                                                 |\n| `numberAsync`    | <Link href=\"/api/number/\">`number`</Link>                                                                                              |\n| `Output`         | <Link href=\"/api/InferOutput/\">`InferOutput`</Link>                                                                                    |\n| `picklistAsync`  | <Link href=\"/api/picklist/\">`picklist`</Link>                                                                                          |\n| `SchemaConfig`   | <Link href=\"/api/Config/\">`Config`</Link>                                                                                              |\n| `special`        | <Link href=\"/api/custom/\">`custom`</Link>                                                                                              |\n| `specialAsync`   | <Link href=\"/api/customAsync/\">`customAsync`</Link>                                                                                    |\n| `SchemaConfig`   | <Link href=\"/api/string/\">`Config`</Link>                                                                                              |\n| `stringAsync`    | <Link href=\"/api/string/\">`string`</Link>                                                                                              |\n| `symbolAsync`    | <Link href=\"/api/symbol/\">`symbol`</Link>                                                                                              |\n| `undefinedAsync` | <Link href=\"/api/undefined/\">`undefined_`</Link>                                                                                       |\n| `unknownAsync`   | <Link href=\"/api/unknown/\">`unknown`</Link>                                                                                            |\n| `toCustom`       | <Link href=\"/api/transform/\">`transform`</Link>                                                                                        |\n| `toTrimmed`      | <Link href=\"/api/trim/\">`trim`</Link>                                                                                                  |\n| `toTrimmedEnd`   | <Link href=\"/api/trimEnd/\">`trimEnd`</Link>                                                                                            |\n| `toTrimmedStart` | <Link href=\"/api/trimStart/\">`trimStart`</Link>                                                                                        |\n| `voidAsync`      | <Link href=\"/api/void/\">`void_`</Link>                                                                                                 |\n\n## Special cases\n\nMore complex schemas may require a bit more restructuring. This section provides more details on how to migrate specific functions.\n\n### Objects and tuples\n\nPreviously, you could pass a `rest` argument to the <Link href=\"/api/object/\">`object`</Link> and <Link href=\"/api/tuple/\">`tuple`</Link> schemas to define the behavior for unknown entries and items. We have removed the `rest` argument to simplify the implementation and reduce the bundle size if this functionality is not needed. If you do need this functionality, there is now a new <Link href=\"/api/objectWithRest/\">`objectWithRest`</Link> and <Link href=\"/api/tupleWithRest/\">`tupleWithRest`</Link> schema.\n\n```ts\n// Change this\nconst ObjectSchema = v.object({ key: v.string() }, v.null_());\nconst TupleSchema = v.tuple([v.string()], v.null_());\n\n// To this\nconst ObjectSchema = v.objectWithRest({ key: v.string() }, v.null_());\nconst TupleSchema = v.tupleWithRest([v.string()], v.null_());\n```\n\nTo further improve the developer experience, we have also added a <Link href=\"/api/looseObject/\">`looseObject`</Link>, <Link href=\"/api/looseTuple/\">`looseTuple`</Link>, <Link href=\"/api/strictObject/\">`strictObject`</Link> and <Link href=\"/api/strictTuple/\">`strictTuple`</Link> schema. These schemas allow or disallow unknown entries or items.\n\n```ts\n// Change this\nconst LooseObjectSchema = v.object({ key: v.string() }, v.unknown());\nconst LooseTupleSchema = v.tuple([v.string()], v.unknown());\nconst StrictObjectSchema = v.object({ key: v.string() }, v.never());\nconst StrictTupleSchema = v.tuple([v.string()], v.never());\n\n// To this\nconst LooseObjectSchema = v.looseObject({ key: v.string() });\nconst LooseTupleSchema = v.looseTuple([v.string()]);\nconst StrictObjectSchema = v.strictObject({ key: v.string() });\nconst StrictTupleSchema = v.strictTuple([v.string()]);\n```\n\n### Object merging\n\nSince there are now 4 different object schemas, we could no longer provide a simple `merge` function that works in all cases, as we never know which schema you want to merge the other objects into. But there is a simple workaround with a similar developer experience.\n\n```ts\nconst ObjectSchema1 = v.object({ foo: v.string() });\nconst ObjectSchema2 = v.object({ bar: v.number() });\n\n// Change this\nconst MergedObject = v.merge([ObjectSchema1, ObjectSchema2]);\n\n// To this\nconst MergedObject = v.object({\n  ...ObjectSchema1.entries,\n  ...ObjectSchema2.entries,\n});\n```\n\n### Brand and transform\n\nPreviously, <Link href=\"/api/brand/\">`brand`</Link> and <Link href=\"/api/transform/\">`transform`</Link> were methods that could be wrapped around a schema to modify it. With our new <Link href=\"/api/pipe/\">`pipe`</Link> method, this is no longer necessary. Instead, <Link href=\"/api/brand/\">`brand`</Link> and <Link href=\"/api/transform/\">`transform`</Link> are now transformation actions that can be placed directly in a pipeline, resulting in better readability, especially for complex schemas.\n\n```ts\n// Change this\nconst BrandedSchema = v.brand(v.string(), 'foo');\nconst TransformedSchema = v.transform(v.string(), (input) => input.length);\n\n// To this\nconst BrandedSchema = v.pipe(v.string(), v.brand('foo'));\nconst TransformedSchema = v.pipe(\n  v.string(),\n  v.transform((input) => input.length)\n);\n```\n\n### Coerce method\n\nThe `coerce` method has been removed because we felt it was an insecure API. In most cases, you don't want to coerce an unknown input into a specific data type. Instead, you want to transform a specific data type into another specific data type. For example, a string or a number into a date. To explicitly define the input type, we recommend using the new <Link href=\"/api/pipe/\">`pipe`</Link> method together with the <Link href=\"/api/transform/\">`transform`</Link> action to achieve the same functionality.\n\n```ts\n// Change this\nconst DateSchema = v.coerce(v.date(), (input) => new Date(input));\n\n// To this\nconst DateSchema = v.pipe(\n  v.union([v.string(), v.number()]),\n  v.transform((input) => new Date(input))\n);\n```\n\n### Flatten issues\n\nPreviously, the <Link href=\"/api/flatten/\">`flatten`</Link> function accepted a <Link href=\"/api/ValiError/\">`ValiError`</Link> or an array of issues. We have simplified the implementation by only allowing an array of issues to be passed.\n\n```ts\n// Change this\nconst flatErrors = v.flatten(error);\n\n// To this\nconst flatErrors = v.flatten(error.issues);\n```\n"
  },
  {
    "path": "website/src/routes/guides/(schemas)/arrays/index.mdx",
    "content": "---\ntitle: Arrays\ndescription: >-\n  To validate arrays with a schema you can use `array` or `tuple`. You use\n  `tuple` if your array has a specific shape and `array` in the other case.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Link } from '~/components';\n\n# Arrays\n\nTo validate arrays with a schema you can use <Link href=\"/api/array/\">`array`</Link> or <Link href=\"/api/tuple/\">`tuple`</Link>. You use <Link href=\"/api/tuple/\">`tuple`</Link> if your array has a specific shape and <Link href=\"/api/array/\">`array`</Link> if it has any number of uniform items.\n\n## Array schema\n\nThe first argument you pass to <Link href=\"/api/array/\">`array`</Link> is a schema, which is used to validate the items of the array.\n\n```ts\nimport * as v from 'valibot';\n\nconst ArraySchema = v.array(v.number()); // number[]\n```\n\n### Pipeline validation\n\nTo validate the length or contents of the array, you can use a pipeline.\n\n```ts\nimport * as v from 'valibot';\n\nconst ArraySchema = v.pipe(\n  v.array(v.string()),\n  v.minLength(1),\n  v.maxLength(5),\n  v.includes('foo'),\n  v.excludes('bar')\n);\n```\n\n## Tuple schema\n\nA <Link href=\"/api/tuple/\">`tuple`</Link> is an array with a specific shape. The first argument that you pass to the function is a tuple of schemas that defines its shape.\n\n```ts\nimport * as v from 'valibot';\n\nconst TupleSchema = v.tuple([v.string(), v.number()]); // [string, number]\n```\n\n### Loose and strict tuples\n\nThe <Link href=\"/api/tuple/\">`tuple`</Link> schema removes unknown items. This means that items that you have not defined in the first argument are not validated and added to the output. You can change this behavior by using the <Link href=\"/api/looseTuple/\">`looseTuple`</Link> or <Link href=\"/api/strictTuple/\">`strictTuple`</Link> schema instead.\n\nThe <Link href=\"/api/looseTuple/\">`looseTuple`</Link> schema allows unknown items and adds them to the output. The <Link href=\"/api/strictTuple/\">`strictTuple`</Link> schema forbids unknown items and returns an issue for the first unknown item found.\n\n### Tuple with specific rest\n\nAlternatively, you can also use the <Link href=\"/api/tupleWithRest/\">`tupleWithRest`</Link> schema to define a specific schema for unknown items. Any items not defined in the first argument are then validated against the schema of the second argument.\n\n```ts\nimport * as v from 'valibot';\n\nconst TupleSchema = v.tupleWithRest([v.string(), v.number()], v.null());\n```\n\n### Pipeline validation\n\nSimilar to arrays, you can use a pipeline to validate the length and contents of a tuple.\n\n```ts\nimport * as v from 'valibot';\n\nconst TupleSchema = v.pipe(\n  v.tupleWithRest([v.string()], v.string()),\n  v.maxLength(5),\n  v.includes('foo'),\n  v.excludes('bar')\n);\n```\n"
  },
  {
    "path": "website/src/routes/guides/(schemas)/enums/index.mdx",
    "content": "---\ntitle: Enums\ndescription: >-\n  An enumerated type is a data type that consists of a set of values. They can\n  be represented by either an object, a TypeScript enum or an array.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Link } from '~/components';\n\n# Enums\n\nAn enumerated type is a data type that consists of a set of values. They can be represented by either an object, a TypeScript enum or, to keep things simple, an array. You use <Link href=\"/api/enum/\">`enum`</Link> for objects and TypeScript enums and <Link href=\"/api/picklist/\">`picklist`</Link> for arrays.\n\n## Enum schema\n\nSince TypeScript enums are transpiled to JavaScript objects by the TypeScript compiler, you can use the <Link href=\"/api/enum/\">`enum`</Link> schema function for both. Just pass your enumerated data type as the first argument to the schema function. On validation, the schema checks whether the input matches one of the values in the enum.\n\n```ts\nimport * as v from 'valibot';\n\n// As JavaScript object\nconst Direction = {\n  Left: 'LEFT',\n  Right: 'RIGHT',\n} as const;\n\n// As TypeScript enum\nenum Direction {\n  Left = 'LEFT',\n  Right = 'RIGHT',\n}\n\nconst DirectionSchema = v.enum(Direction);\n```\n\n## Picklist schema\n\nFor a set of values represented by an array, you can use the <Link href=\"/api/picklist/\">`picklist`</Link> schema function. Just pass your array as the first argument to the schema function. On validation, the schema checks whether the input matches one of the items in the array.\n\n```ts\nimport * as v from 'valibot';\n\nconst Direction = ['LEFT', 'RIGHT'] as const;\n\nconst DirectionSchema = v.picklist(Direction);\n```\n\n### Format array\n\nIn some cases, the array may not be in the correct format. In this case, simply use the [`.map()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map) method to bring it into the required format.\n\n```ts\nimport * as v from 'valibot';\n\nconst countries = [\n  { name: 'Germany', code: 'DE' },\n  { name: 'France', code: 'FR' },\n  { name: 'United States', code: 'US' },\n] as const;\n\nconst CountrySchema = v.picklist(countries.map((country) => country.code));\n```\n"
  },
  {
    "path": "website/src/routes/guides/(schemas)/intersections/index.mdx",
    "content": "---\ntitle: Intersections\ndescription: >-\n  An intersection represents a logical AND relationship. You can apply this\n  concept to your schemas with `intersect` and by merging object schemas.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Link } from '~/components';\n\n# Intersections\n\nAn intersection represents a logical AND relationship. You can apply this concept to your schemas with <Link href=\"/api/intersect/\">`intersect`</Link> and partially by merging multiple object schemas into a new one. We recommend this approach for simple object schemas, and <Link href=\"/api/intersect/\">`intersect`</Link> for all other cases.\n\n## Intersect schema\n\nThe schema function <Link href=\"/api/intersect/\">`intersect`</Link> creates an AND relationship between any number of schemas that you pass as the first argument in the form of an array. To pass the validation, the validation of each schema passed must be successful. If this is the case, the schema merges the output of the individual schemas and returns the result. If the validation fails, the schema returns any issues that occurred.\n\n```ts\nimport * as v from 'valibot';\n\n// TypeScript\ntype Intersect = { foo: string } & { bar: number };\n\n// Valibot\nconst IntersectSchema = v.intersect([\n  v.object({ foo: v.string() }),\n  v.object({ bar: v.number() }),\n]);\n```\n\n## Merge objects\n\nTechnically, there is a big difference between <Link href=\"/api/intersect/\">`intersect`</Link> and object merging. <Link href=\"/api/intersect/\">`intersect`</Link> is a schema function that executes the passed schemas during validation. In contrast, object merging is done during initialization to create a new object schema.\n\nAs a result, object merging usually has much better performance than <Link href=\"/api/intersect/\">`intersect`</Link> when validating unknown data. Also, subsequent object properties overwrite the previous ones. This is not the case with <Link href=\"/api/intersect/\">`intersect`</Link>, since the validation would fail if two properties with the same name are fundamentally different.\n\n```ts\nimport * as v from 'valibot';\n\nconst ObjectSchema1 = v.object({ foo: v.string(), baz: v.number() });\nconst ObjectSchema2 = v.object({ bar: v.string(), baz: v.boolean() });\n\nconst MergedSchema = v.object({\n  ...ObjectSchema1.entries,\n  ...ObjectSchema2.entries,\n}); // { foo: string; bar: string; baz: boolean }\n```\n\nIn the previous code example, the `baz` property of the first object schema is overwritten by the `baz` property of the second object schema.\n"
  },
  {
    "path": "website/src/routes/guides/(schemas)/objects/index.mdx",
    "content": "---\ntitle: Objects\ndescription: >-\n  To validate objects with a schema, you can use `object` or `record`. You use\n  `object` for an object with a specific shape and `record` in the other case.\ncontributors:\n  - fabian-hiller\n  - Mini-ghost\n---\n\nimport { Link } from '~/components';\n\n# Objects\n\nTo validate objects with a schema, you can use <Link href=\"/api/object/\">`object`</Link> or <Link href=\"/api/record/\">`record`</Link>. You use <Link href=\"/api/object/\">`object`</Link> for an object with a specific shape and <Link href=\"/api/record/\">`record`</Link> for objects with any number of uniform entries.\n\n## Object schema\n\nThe first argument is used to define the specific structure of the object. Each entry consists of a key and a schema as the value. The entries of the input are then validated against these schemas.\n\n```ts\nimport * as v from 'valibot';\n\nconst ObjectSchema = v.object({\n  key1: v.string(),\n  key2: v.number(),\n});\n```\n\n### Loose and strict objects\n\nThe <Link href=\"/api/object/\">`object`</Link> schema removes unknown entries. This means that entries that you have not defined in the first argument are neither validated nor added to the output. You can change this behavior by using the <Link href=\"/api/looseObject/\">`looseObject`</Link> or <Link href=\"/api/strictObject/\">`strictObject`</Link> schema instead.\n\nThe <Link href=\"/api/looseObject/\">`looseObject`</Link> schema allows unknown entries and adds them to the output. The <Link href=\"/api/strictObject/\">`strictObject`</Link> schema forbids unknown entries and returns an issue for the first unknown entry found.\n\n### Object with specific rest\n\nAlternatively, you can also use the <Link href=\"/api/objectWithRest/\">`objectWithRest`</Link> schema to define a specific schema for unknown entries. Any entries not defined in the first argument are then validated against the schema of the second argument.\n\n```ts\nimport * as v from 'valibot';\n\nconst ObjectSchema = v.objectWithRest(\n  {\n    key1: v.string(),\n    key2: v.number(),\n  },\n  v.null()\n);\n```\n\n### Pipeline validation\n\nTo validate the value of an entry based on another entry, you can wrap you schema with the <Link href=\"/api/check/\">`check`</Link> validation action in a pipeline. You can also use <Link href=\"/api/forward/\">`forward`</Link> to assign the issue to a specific object key in the event of an error.\n\n> If you only want to validate specific entries, we recommend using <Link href=\"/api/partialCheck/\">`partialCheck`</Link> instead as <Link href=\"/api/check/\">`check`</Link> can only be executed if the input is fully typed.\n\n```ts\nimport * as v from 'valibot';\n\nconst CalculationSchema = v.pipe(\n  v.object({\n    a: v.number(),\n    b: v.number(),\n    sum: v.number(),\n  }),\n  v.forward(\n    v.check(({ a, b, sum }) => a + b === sum, 'The calculation is incorrect.'),\n    ['sum']\n  )\n);\n```\n\n## Record schema\n\nFor an object with any number of uniform entries, <Link href=\"/api/record/\">`record`</Link> is the right choice. The schema passed as the first argument validates the keys of your record, and the schema passed as the second argument validates the values.\n\n```ts\nimport * as v from 'valibot';\n\nconst RecordSchema = v.record(v.string(), v.number()); // Record<string, number>\n```\n\n### Specific record keys\n\nInstead of <Link href=\"/api/string/\">`string`</Link>, you can also use <Link href=\"/api/custom/\">`custom`</Link>, <Link href=\"/api/enum/\">`enum`</Link>, <Link href=\"/api/literal/\">`literal`</Link>, <Link href=\"/api/picklist/\">`picklist`</Link> or <Link href=\"/api/union/\">`union`</Link> to validate the keys.\n\n```ts\nimport * as v from 'valibot';\n\nconst RecordSchema = v.record(v.picklist(['key1', 'key2']), v.number()); // { key1?: number; key2?: number }\n```\n\nNote that <Link href=\"/api/record/\">`record`</Link> marks all literal keys as optional in this case. If you want to make them required, you can use the <Link href=\"/api/object/\">`object`</Link> schema with the <Link href=\"/api/entriesFromList/\">`entriesFromList`</Link> util instead.\n\n```ts\nimport * as v from 'valibot';\n\nconst RecordSchema = v.object(v.entriesFromList(['key1', 'key2'], v.number())); // { key1: number; key2: number }\n```\n\n### Pipeline validation\n\nTo validate the value of an entry based on another entry, you can wrap you schema with the <Link href=\"/api/check/\">`check`</Link> validation action in a pipeline. You can also use <Link href=\"/api/forward/\">`forward`</Link> to assign the issue to a specific record key in the event of an error.\n\n```ts\nimport * as v from 'valibot';\n\nconst CalculationSchema = v.pipe(\n  v.record(v.picklist(['a', 'b', 'sum']), v.number()),\n  v.forward(\n    v.check(\n      ({ a, b, sum }) => (a || 0) + (b || 0) === (sum || 0),\n      'The calculation is incorrect.'\n    ),\n    ['sum']\n  )\n);\n```\n"
  },
  {
    "path": "website/src/routes/guides/(schemas)/optionals/index.mdx",
    "content": "---\ntitle: Optionals\ndescription: >-\n  It often happens that `undefined` or `null` should also be accepted. To make\n  the API more readable for this and to reduce boilerplate, Valibot offers a\n  shortcut.\ncontributors:\n  - fabian-hiller\n  - EltonLobo07\n  - fartinmartin\n---\n\nimport { Link } from '~/components';\n\n# Optionals\n\nIt often happens that `undefined` or `null` should also be accepted instead of the value. To make the API more readable for this and to reduce boilerplate, Valibot offers a shortcut for this functionality with <Link href=\"/api/optional/\">`optional`</Link>, <Link href=\"/api/exactOptional/\">`exactOptional`</Link>, <Link href=\"/api/undefinedable/\">`undefinedable`</Link>, <Link href=\"/api/nullable/\">`nullable`</Link> and <Link href=\"/api/nullish/\">`nullish`</Link>.\n\n## How it works\n\nTo accept `undefined` and/or `null` besides your actual value, you just have to wrap the schema in <Link href=\"/api/optional/\">`optional`</Link>, <Link href=\"/api/exactOptional/\">`exactOptional`</Link>, <Link href=\"/api/undefinedable/\">`undefinedable`</Link>, <Link href=\"/api/nullable/\">`nullable`</Link> or <Link href=\"/api/nullish/\">`nullish`</Link>.\n\n> Note: <Link href=\"/api/exactOptional/\">`exactOptional`</Link> allows missing entries in objects, but does not allow `undefined` as a specified value.\n\n```ts\nimport * as v from 'valibot';\n\nconst OptionalStringSchema = v.optional(v.string()); // string | undefined\nconst ExactOptionalStringSchema = v.exactOptional(v.string()); // string\nconst UndefinedableStringSchema = v.undefinedable(v.string()); // string | undefined\nconst NullableStringSchema = v.nullable(v.string()); // string | null\nconst NullishStringSchema = v.nullish(v.string()); // string | null | undefined\n```\n\n### Use in objects\n\nWhen used inside of objects, <Link href=\"/api/optional/\">`optional`</Link>, <Link href=\"/api/exactOptional/\">`exactOptional`</Link> and <Link href=\"/api/nullish/\">`nullish`</Link> is a special case, as it also marks the value as optional in TypeScript with a question mark.\n\n```ts\nimport * as v from 'valibot';\n\nconst OptionalKeySchema = v.object({ key: v.optional(v.string()) }); // { key?: string | undefined }\n```\n\n## Default values\n\nWhat makes <Link href=\"/api/optional/\">`optional`</Link>, <Link href=\"/api/exactOptional/\">`exactOptional`</Link>, <Link href=\"/api/undefinedable/\">`undefinedable`</Link>, <Link href=\"/api/nullable/\">`nullable`</Link> and <Link href=\"/api/nullish/\">`nullish`</Link> unique is that the schema functions accept a default value as the second argument. Depending on the schema function, this default value is always used if the input is missing, `undefined` or `null`.\n\n```ts\nimport * as v from 'valibot';\n\nconst OptionalStringSchema = v.optional(v.string(), \"I'm the default!\");\n\ntype OptionalStringInput = v.InferInput<typeof OptionalStringSchema>; // string | undefined\ntype OptionalStringOutput = v.InferOutput<typeof OptionalStringSchema>; // string\n```\n\nBy providing a default value, the input type of the schema now differs from the output type. The schema in the example now accepts `string` and `undefined` as input, but returns a string as output in both cases.\n\n### Dynamic default values\n\nIn some cases it is necessary to generate the default value dynamically. For this purpose, a function that generates and returns the default value can also be passed as the second argument.\n\n```ts\nimport * as v from 'valibot';\n\nconst NullableDateSchema = v.nullable(v.date(), () => new Date());\n```\n\nThe previous example thus creates a new instance of the [`Date`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) class for each validation with `null` as input, which is then used as the default value.\n\n### Dependent default values\n\nIn rare cases, a default value for an optional entry may depend on the values of another entries in the same object. This can be achieved by using <Link href=\"/api/transform/\">`transform`</Link> in the <Link href=\"/api/pipe/\">`pipe`</Link> of the object.\n\n```ts\nimport * as v from 'valibot';\n\nconst CalculationSchema = v.pipe(\n  v.object({\n    a: v.number(),\n    b: v.number(),\n    sum: v.optional(v.number()),\n  }),\n  v.transform((input) => ({\n    ...input,\n    sum: input.sum === undefined ? input.a + input.b : input.sum,\n  }))\n);\n```\n"
  },
  {
    "path": "website/src/routes/guides/(schemas)/other/index.mdx",
    "content": "---\ntitle: Other\ndescription: >-\n  This guide explains other special schema functions such as `literal`,\n  `instance`, `custom` and `lazy` that are not covered in the other guides.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Link } from '~/components';\n\n# Other\n\nThis guide explains other special schema functions such as <Link href=\"/api/literal/\">`literal`</Link>, <Link href=\"/api/instance/\">`instance`</Link>, <Link href=\"/api/custom/\">`custom`</Link> and <Link href=\"/api/lazy/\">`lazy`</Link> that are not covered in the other guides.\n\n## Literal schema\n\nYou can use <Link href=\"/api/literal/\">`literal`</Link> to define a schema that matches a specific string, number or boolean value. Therefore, this schema is perfect for representing [literal types](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#literal-types). Usage is simple, just pass the value you want to match as the first argument.\n\n```ts\nimport * as v from 'valibot';\n\nconst StringLiteralSchema = v.literal('foo'); // 'foo'\nconst NumberLiteralSchema = v.literal(12345); // 12345\nconst BooleanLiteralSchema = v.literal(true); // true\n```\n\n## Instance schema\n\nWith schema functions like <Link href=\"/api/blob/\">`blob`</Link>, <Link href=\"/api/date/\">`date`</Link>, <Link href=\"/api/map/\">`map`</Link> and <Link href=\"/api/set/\">`set`</Link> Valibot already covers the most common JavaScript classes. However, there are many more classes that you may want to validate. For this purpose, you can use the <Link href=\"/api/instance/\">`instance`</Link> schema function. It takes a class as its first argument and returns a schema that matches only instances of that class.\n\n```ts\nimport * as v from 'valibot';\n\nconst ErrorSchema = v.instance(Error); // Error\nconst UrlSchema = v.instance(URL); // URL\n```\n\n## Custom schema\n\nThe <Link href=\"/api/custom/\">`custom`</Link> schema function is a bit more advanced. It allows you to define a schema that matches a value based on a custom function. Use it whenever you need to define a schema that cannot be expressed using any of the other schema functions.\n\nThe function receives the value to validate as its first argument and must return a boolean value. If the function returns `true`, the value is considered valid. Otherwise, it is considered invalid.\n\n```ts\nimport * as v from 'valibot';\n\nconst PixelStringSchema = v.custom<`${number}px`>((input) =>\n  typeof input === 'string' ? /^\\d+px$/.test(input) : false\n);\n```\n\n## Lazy schema\n\nThe <Link href=\"/api/lazy/\">`lazy`</Link> schema function allows you to define recursive schemas. A recursive schema is a schema that references itself. For example, you can use it to define a schema for a tree-like data structure.\n\n> Due to a TypeScript limitation, the input and output types cannot be inferred automatically in this case. Therefore, you must explicitly specify these types using the <Link href=\"/api/GenericSchema/\">`GenericSchema`</Link> type.\n\n```ts\nimport * as v from 'valibot';\n\ntype BinaryTree = {\n  element: string;\n  left: BinaryTree | null;\n  right: BinaryTree | null;\n};\n\nconst BinaryTreeSchema: v.GenericSchema<BinaryTree> = v.object({\n  element: v.string(),\n  left: v.nullable(v.lazy(() => BinaryTreeSchema)),\n  right: v.nullable(v.lazy(() => BinaryTreeSchema)),\n});\n```\n\n### JSON schema\n\nAnother practical use case for `lazy` is a schema for all possible `JSON` values. These are all values that can be serialized and deserialized using `JSON.stringify()` and `JSON.parse()`.\n\n```ts\nimport * as v from 'valibot';\n\ntype JsonData =\n  | string\n  | number\n  | boolean\n  | null\n  | { [key: string]: JsonData }\n  | JsonData[];\n\nconst JsonSchema: v.GenericSchema<JsonData> = v.lazy(() =>\n  v.union([\n    v.string(),\n    v.number(),\n    v.boolean(),\n    v.null(),\n    v.record(v.string(), JsonSchema),\n    v.array(JsonSchema),\n  ])\n);\n```\n"
  },
  {
    "path": "website/src/routes/guides/(schemas)/unions/index.mdx",
    "content": "---\ntitle: Unions\ndescription: >-\n  An union represents a logical OR relationship. You can apply this concept to\n  your schemas with union and variant.\ncontributors:\n  - fabian-hiller\n---\n\nimport { Link } from '~/components';\n\n# Unions\n\nAn union represents a logical OR relationship. You can apply this concept to your schemas with <Link href=\"/api/union/\">`union`</Link> and <Link href=\"/api/variant/\">`variant`</Link>. For [discriminated unions](https://www.typescriptlang.org/docs/handbook/typescript-in-5-minutes-func.html#discriminated-unions) you use <Link href=\"/api/variant/\">`variant`</Link> and in all other cases you use <Link href=\"/api/union/\">`union`</Link>.\n\n## Union schema\n\nThe schema function <Link href=\"/api/union/\">`union`</Link> creates an OR relationship between any number of schemas that you pass as the first argument in the form of an array. On validation, the schema returns the result of the first schema that was successfully validated.\n\n```ts\nimport * as v from 'valibot';\n\n// TypeScript\ntype Union = string | number;\n\n// Valibot\nconst UnionSchema = v.union([v.string(), v.number()]);\n```\n\nIf a bad input can be uniquely assigned to one of the schemas based on the data type, the result of that schema is returned. Otherwise, a general issue is returned that contains the issues of each schema as subissues. This is a special case within the library, as the issues of <Link href=\"/api/union/\">`union`</Link> can contradict each other.\n\nThe following issues are returned if the input is `null` instead of a string or number. Since the input cannot be associated with a schema in this case, the issues of both schemas are returned as subissues.\n\n```ts\n[\n  {\n    kind: 'schema',\n    type: 'union',\n    input: null,\n    expected: 'string | number',\n    received: 'null',\n    message: 'Invalid type: Expected string | number but received null',\n    issues: [\n      {\n        kind: 'schema',\n        type: 'string',\n        input: null,\n        expected: 'string',\n        received: 'null',\n        message: 'Invalid type: Expected string but received null',\n      },\n      {\n        kind: 'schema',\n        type: 'number',\n        input: null,\n        expected: 'number',\n        received: 'null',\n        message: 'Invalid type: Expected number but received null',\n      },\n    ],\n  },\n];\n```\n\n## Variant schema\n\nFor better performance, more type safety, and a more targeted output of issues, you can use <Link href=\"/api/variant/\">`variant`</Link> for discriminated unions. Therefore, we recommend using <Link href=\"/api/variant/\">`variant`</Link> over <Link href=\"/api/union/\">`union`</Link> whenever possible. A discriminated union is an OR relationship between objects that can be distinguished by a specific key.\n\nWhen you call the schema function, you first specify the discriminator key. This is used to determine the schema to use for validation based on the input. The object schemas, in the form of an array, follow as the second argument.\n\n```ts\nimport * as v from 'valibot';\n\nconst VariantScheme = v.variant('type', [\n  v.object({\n    type: v.literal('foo'),\n    foo: v.string(),\n  }),\n  v.object({\n    type: v.literal('bar'),\n    bar: v.number(),\n  }),\n]);\n```\n\nFor very complex datasets, multiple <Link href=\"/api/variant/\">`variant`</Link> schemas can also be deeply nested within one another.\n"
  },
  {
    "path": "website/src/routes/guides/index.tsx",
    "content": "import { component$ } from '@builder.io/qwik';\nimport { routeLoader$ } from '@builder.io/qwik-city';\n\nexport const useRedirect = routeLoader$(({ redirect }) => {\n  throw redirect(302, '/guides/introduction/');\n});\n\nexport default component$(() => {\n  useRedirect();\n  return null;\n});\n"
  },
  {
    "path": "website/src/routes/guides/layout.tsx",
    "content": "import { component$, Slot } from '@builder.io/qwik';\nimport { DocsLayout } from '~/components';\n\nexport default component$(() => (\n  <DocsLayout>\n    <Slot />\n  </DocsLayout>\n));\n"
  },
  {
    "path": "website/src/routes/guides/menu.md",
    "content": "# Guides\n\n## Get started\n\n- [Introduction](/guides/introduction/)\n- [Installation](/guides/installation/)\n- [Quick start](/guides/quick-start/)\n- [Use cases](/guides/use-cases/)\n- [Comparison](/guides/comparison/)\n- [Ecosystem](/guides/ecosystem/)\n- [LLMs.txt](/guides/llms-txt/)\n\n## Main concepts\n\n- [Mental model](/guides/mental-model/)\n- [Schemas](/guides/schemas/)\n- [Pipelines](/guides/pipelines/)\n- [Parse data](/guides/parse-data/)\n- [Infer types](/guides/infer-types/)\n- [Methods](/guides/methods/)\n- [Issues](/guides/issues/)\n\n## Schemas\n\n- [Objects](/guides/objects/)\n- [Arrays](/guides/arrays/)\n- [Optionals](/guides/optionals/)\n- [Enums](/guides/enums/)\n- [Unions](/guides/unions/)\n- [Intersects](/guides/intersections/)\n- [Other](/guides/other/)\n\n## Advanced\n\n- [Naming](/guides/naming-convention/)\n- [Async](/guides/async-validation/)\n- [i18n](/guides/internationalization/)\n- [JSON Schema](/guides/json-schema/)\n- [Internals](/guides/internal-architecture/)\n- [Integration](/guides/integrate-valibot/)\n- [Extension](/guides/extend-valibot/)\n\n## Migration\n\n- [To v0.31.0](/guides/migrate-to-v0.31.0/)\n- [From Zod](/guides/migrate-from-zod/)\n"
  },
  {
    "path": "website/src/routes/index.tsx",
    "content": "import { component$, useComputed$ } from '@builder.io/qwik';\nimport {\n  type DocumentHead,\n  Form,\n  routeAction$,\n  z,\n  zod$,\n} from '@builder.io/qwik-city';\nimport clsx from 'clsx';\nimport { ActionButton, ButtonGroup, Expandable, TextLink } from '~/components';\nimport { PlayIcon, PlusIcon } from '~/icons';\nimport { valibotTalkDarkUrl, valibotTalkLigthUrl } from '~/images';\n\nexport const head: DocumentHead = {\n  title: 'Valibot: The modular and type safe schema library',\n  meta: [\n    {\n      name: 'description',\n      content:\n        'Validate unknown data with Valibot, the open source schema library with bundle size, type safety and developer experience in mind.',\n    },\n  ],\n};\n\n/**\n * Toggles the index of the FAQ.\n */\nexport const useFaqToggle = routeAction$(\n  (values) => values,\n  zod$({ index: z.coerce.number() })\n);\n\nexport default component$(() => {\n  // Use FAQ toggle and compute its index\n  const faqToggle = useFaqToggle();\n  const faqIndex = useComputed$(\n    () =>\n      +(\n        (faqToggle.isRunning\n          ? // Optimistic UI\n            faqToggle.formData?.get('index')\n          : faqToggle.value?.index) || 0\n      )\n  );\n\n  return (\n    <main class=\"flex flex-1 flex-col items-center gap-24 py-24 md:gap-36 md:py-36 xl:gap-52 xl:py-52\">\n      {/* Pitch */}\n      <section class=\"px-4 text-center\">\n        <h1 class=\"font-lexend-exa text-[min(6.2vw,30px)] leading-normal font-medium text-slate-900 md:text-[34px] lg:text-[40px] xl:text-5xl dark:text-slate-200\">\n          <span class=\"block\">\n            Validate{' '}\n            <span class=\"cursor-default blur-[1px] duration-[2s] hover:blur-none xl:blur-[2px]\">\n              unknown\n            </span>\n          </span>{' '}\n          <span class=\"cursor-default blur-[2px] duration-[2s] hover:blur-none xl:blur-[3px]\">\n            data\n          </span>{' '}\n          with confidence\n        </h1>\n        <p class=\"mt-6 leading-loose md:mt-10 md:text-[17px] lg:mt-14 lg:text-lg xl:text-[22px] xl:leading-loose\">\n          <span class=\"sm:block\">\n            Valibot is the open source schema library for TypeScript with bundle\n          </span>{' '}\n          size, type safety and developer experience in mind.\n        </p>\n        <ButtonGroup class=\"mt-8 justify-center md:mt-12 lg:mt-16\">\n          <ActionButton\n            variant=\"primary\"\n            label=\"Get started\"\n            type=\"link\"\n            href=\"/guides/introduction/\"\n          />\n          <ActionButton\n            variant=\"secondary\"\n            label=\"Playground\"\n            type=\"link\"\n            href=\"/playground/\"\n          />\n        </ButtonGroup>\n        <div class=\"absolute top-0 left-0 -z-10 flex w-full justify-center overflow-x-clip\">\n          <div class=\"relative w-full xl:w-0\">\n            <div class=\"absolute -top-[250px] -right-[300px] h-[600px] w-[600px] bg-[radial-gradient(theme(--color-yellow-500/.08),transparent_70%)] md:-top-[500px] md:-right-[500px] md:h-[1000px] md:w-[1000px] xl:-top-[500px] xl:-right-[1100px] dark:bg-[radial-gradient(theme(--color-yellow-300/.08),transparent_70%)]\" />\n            <div class=\"absolute top-[200px] -left-[370px] h-[600px] w-[600px] bg-[radial-gradient(theme(--color-sky-600/.08),transparent_70%)] md:top-[100px] md:-left-[550px] md:h-[1000px] md:w-[1000px] lg:top-[200px] xl:top-[300px] xl:-left-[1100px] dark:bg-[radial-gradient(theme(--color-sky-400/.08),transparent_70%)]\" />\n          </div>\n        </div>\n      </section>\n\n      {/* Video */}\n      <section class=\"w-full px-3 md:max-w-5xl xl:max-w-[1360px] xl:px-10\">\n        <div class=\"relative z-0 flex aspect-video w-full items-center justify-center overflow-hidden rounded-3xl border-[3px] border-slate-200 bg-white md:border-4 lg:rounded-[32px] dark:border-slate-800 dark:bg-gray-900\">\n          {[\n            { theme: 'dark', url: valibotTalkDarkUrl },\n            { theme: 'light', url: valibotTalkLigthUrl },\n          ].map(({ theme, url }) => (\n            // eslint-disable-next-line qwik/jsx-img\n            <img\n              key={url}\n              class={clsx(\n                'absolute -z-10 h-full w-full object-cover object-center',\n                theme === 'dark' ? 'hidden dark:block' : 'dark:hidden'\n              )}\n              src={url}\n              alt=\"Talk: Going fully modular with Valibot\"\n            />\n          ))}\n          <a\n            class=\"focus-ring absolute flex h-10 w-16 animate-bounce items-center justify-center rounded-xl bg-sky-500/10 backdrop-blur hover:bg-sky-500/20 md:h-12 md:w-20 lg:h-16 lg:w-28 lg:backdrop-blur-lg dark:bg-sky-400/10 dark:hover:bg-sky-400/20\"\n            href=\"https://youtu.be/AnXbYrGdxv0\"\n            target=\"_blank\"\n            rel=\"noreferrer\"\n          >\n            <PlayIcon class=\"h-4 text-sky-500 md:h-5 lg:h-6 dark:text-sky-400\" />\n          </a>\n        </div>\n      </section>\n\n      {/* Highlights */}\n      <section class=\"lg:max-w-6xl\">\n        <h2 class=\"px-4 text-center text-xl font-medium text-slate-900 md:text-2xl lg:text-3xl xl:text-4xl dark:text-slate-200\">\n          Highlights you should not miss\n        </h2>\n        <ul class=\"mt-16 flex flex-wrap justify-center gap-16 px-8 md:mt-20 lg:mt-32 xl:mt-36 xl:gap-24\">\n          {[\n            {\n              emoji: '🔒',\n              heading: 'Fully type safe',\n              text: 'Enjoy the benefits of type safety and static type inference in TypeScript',\n            },\n            {\n              emoji: '📦',\n              heading: 'Small bundle size',\n              text: 'Due to the modular design of our API the bundle size starts at less than 700 bytes',\n            },\n            {\n              emoji: '🚧',\n              heading: 'Validate everything',\n              text: 'Supports almost any TypeScript type from primitive values to complex objects',\n            },\n            {\n              emoji: '🛟',\n              heading: '100% test coverage',\n              text: \"Valibot's source code is open source and fully tested with 100% coverage\",\n            },\n            {\n              emoji: '🔋',\n              heading: 'Helpers included',\n              text: 'Important validation and transformation helpers are already included',\n            },\n            {\n              emoji: '🧑‍💻',\n              heading: 'API with great DX',\n              text: 'Minimal, readable and well thought out API for a great developer experience',\n            },\n          ].map(({ emoji, heading, text }) => (\n            <li\n              key={emoji}\n              class=\"flex flex-col items-center gap-6 text-center md:gap-7 lg:max-w-[45%] lg:flex-row lg:items-start lg:gap-8 lg:text-left\"\n            >\n              <div class=\"flex h-[72px] w-[72px] shrink-0 items-center justify-center rounded-2xl bg-sky-600/10 text-2xl dark:bg-sky-400/5\">\n                {emoji}\n              </div>\n              <div class=\"flex max-w-[370px] flex-col gap-4 md:gap-5\">\n                <h3 class=\"text-lg font-medium text-slate-900 md:text-xl dark:text-slate-200\">\n                  {heading}\n                </h3>\n                <p class=\"leading-loose md:text-lg md:leading-loose\">{text}</p>\n              </div>\n            </li>\n          ))}\n        </ul>\n      </section>\n\n      {/* FAQ */}\n      <section class=\"flex flex-col gap-14 md:max-w-4xl md:gap-20 lg:gap-32\">\n        <h2 class=\"px-4 text-center text-xl font-medium text-slate-900 md:text-2xl lg:text-3xl xl:text-4xl dark:text-slate-200\">\n          Frequently asked questions\n        </h2>\n        <ul class=\"flex flex-col gap-12 md:gap-14 lg:gap-16\">\n          {[\n            {\n              heading: 'Where can I enter my credit card?',\n              Text: () => (\n                <>\n                  You don't have to! Valibot is available free of charge and\n                  licensed under the{' '}\n                  <TextLink\n                    href=\"https://github.com/open-circle/valibot/blob/main/LICENSE.md\"\n                    target=\"_blank\"\n                    underlined\n                    colored\n                  >\n                    MIT License\n                  </TextLink>\n                  . However, we rely on partners and sponsors to fund the\n                  project. If your company would like to support us, you can\n                  take a look at our sponsor page on{' '}\n                  <TextLink\n                    href=\"https://github.com/sponsors/fabian-hiller\"\n                    target=\"_blank\"\n                    underlined\n                    colored\n                  >\n                    GitHub\n                  </TextLink>\n                  .\n                </>\n              ),\n            },\n            {\n              heading: 'What exactly does Valibot do?',\n              Text: () => (\n                <>\n                  The core function of Valibot is to create a schema that\n                  describes a structured data set. A schema can be compared to a\n                  type definition in TypeScript. The big difference is that\n                  TypeScript types are \"not executed\" and are more or less a DX\n                  feature. A schema on the other hand, apart from the inferred\n                  type definition, can also be executed at runtime to guarantee\n                  type safety of unknown data.\n                </>\n              ),\n            },\n            {\n              heading: 'How does a modular design reduce bundle size?',\n              Text: () => (\n                <>\n                  Due to the modular design of our API, a bundler can use the\n                  import statements to remove the code you don't need. This way,\n                  only the code that is actually used ends up in your production\n                  build. This also allows us to add new functionality to Valibot\n                  without increasing the size for all users.\n                </>\n              ),\n            },\n            {\n              heading: 'How is it different from Zod?',\n              Text: () => (\n                <>\n                  The functionality of Valibot is very similar to Zod. The\n                  biggest difference is the modular design of our API and the\n                  ability to reduce the bundle size to a minimum through tree\n                  shaking and code splitting. Depending on the schema, Valibot\n                  can reduce the bundle size up to 95% compared to Zod.\n                  Especially for client-side validation of forms and serverless\n                  environments this can be a big advantage.\n                </>\n              ),\n            },\n          ].map(({ heading, Text }, index) => {\n            const isOpen = index === faqIndex.value;\n            return (\n              <li key={heading} class=\"flex flex-col px-8\">\n                <Form action={faqToggle}>\n                  <input type=\"hidden\" name=\"index\" value={index} />\n                  <button\n                    class={clsx(\n                      'focus-ring flex w-full justify-between gap-4 rounded-md transition-colors focus-visible:ring-offset-8 focus-visible:outline-offset-[6px]',\n                      isOpen\n                        ? 'text-sky-600 dark:text-sky-400'\n                        : 'text-slate-800 hover:text-slate-700 dark:text-slate-300 hover:dark:text-slate-400'\n                    )}\n                    type=\"submit\"\n                    disabled={isOpen}\n                    aria-expanded={isOpen}\n                    aria-controls={`faq-${index}`}\n                  >\n                    <span class=\"text-left leading-relaxed font-medium md:text-xl lg:text-2xl\">\n                      {heading}\n                    </span>\n                    <PlusIcon\n                      class={clsx(\n                        'mt-1.5 h-4 shrink-0 transition-transform lg:h-5',\n                        isOpen && 'rotate-45'\n                      )}\n                      stroke-width={6}\n                    />\n                  </button>\n                </Form>\n                <Expandable\n                  id={`faq-${index}`}\n                  class=\"overflow-hidden\"\n                  expanded={isOpen}\n                >\n                  <p class=\"pt-6 leading-loose md:pt-7 md:text-lg lg:pt-8 lg:text-xl lg:leading-loose\">\n                    <Text />\n                  </p>\n                </Expandable>\n              </li>\n            );\n          })}\n        </ul>\n      </section>\n\n      {/* CTA */}\n      <ButtonGroup class=\"justify-center\">\n        <ActionButton\n          variant=\"primary\"\n          label=\"Get started\"\n          type=\"link\"\n          href=\"/guides/introduction/\"\n        />\n        <ActionButton\n          variant=\"secondary\"\n          label=\"Playground\"\n          type=\"link\"\n          href=\"/playground/\"\n        />\n      </ButtonGroup>\n    </main>\n  );\n});\n"
  },
  {
    "path": "website/src/routes/layout.tsx",
    "content": "import { component$, Slot, useSignal } from '@builder.io/qwik';\nimport { DocSearch, Footer, Header, RoutingIndicator } from '~/components';\n\nexport default component$(() => {\n  // Use search open signal\n  const searchOpen = useSignal(false);\n\n  return (\n    <>\n      <RoutingIndicator />\n      <Header searchOpen={searchOpen} />\n      <Slot />\n      <Footer />\n      <DocSearch open={searchOpen} />\n    </>\n  );\n});\n"
  },
  {
    "path": "website/src/routes/og-image/index.ts",
    "content": "import type { RequestHandler } from '@builder.io/qwik-city';\nimport { ImageResponse } from '@vercel/og';\nimport { html } from 'satori-html';\n\nasync function fetchFont(url: string) {\n  const response = await fetch(url);\n  return response.arrayBuffer();\n}\n\nexport const onGet: RequestHandler = async ({ cacheControl, send, url }) => {\n  // Disable caching\n  cacheControl('no-cache');\n\n  // Get data from search params\n  const title = url.searchParams.get('title');\n  const description = url.searchParams.get('description');\n  const path = url.searchParams.get('path');\n\n  // Create icon and font directory URL\n  const iconUrl = import.meta.env.PUBLIC_WEBSITE_URL + '/icon-192px.png';\n  const fontDirUrl = import.meta.env.PUBLIC_WEBSITE_URL + '/fonts';\n\n  // Fetch font data\n  const [lexend400Data, lexend500Data, lexendExa500Data] = await Promise.all([\n    fetchFont(fontDirUrl + '/lexend-400.ttf'),\n    fetchFont(fontDirUrl + '/lexend-500.ttf'),\n    fetchFont(fontDirUrl + '/lexend-exa-500.ttf'),\n  ]);\n\n  // Create Lexend 400 font object\n  const lexend400 = {\n    name: 'Lexend',\n    data: lexend400Data,\n    style: 'normal',\n    weight: 400,\n  } as const;\n\n  // Create Lexend 500 font object\n  const lexend500 = {\n    name: 'Lexend',\n    data: lexend500Data,\n    style: 'normal',\n    weight: 500,\n  } as const;\n\n  // Create Lexend Exa 500 font object\n  const lexendExa500 = {\n    name: 'Lexend Exa',\n    data: lexendExa500Data,\n    style: 'normal',\n    weight: 500,\n  } as const;\n\n  // If title is available, return image with text\n  if (title) {\n    send(\n      new ImageResponse(\n        html`\n          <div\n            tw=\"flex h-full w-full flex-col justify-between bg-gray-900 p-16\"\n            style=\"font-family: 'Lexend'\"\n          >\n            <div tw=\"flex items-center justify-between\">\n              <div tw=\"flex items-center\">\n                <img tw=\"w-16 h-16\" src=\"${iconUrl}\" />\n                <div\n                  tw=\"text-4xl font-medium text-slate-300 ml-4\"\n                  style=\"font-family: 'Lexend Exa'\"\n                >\n                  Valibot\n                </div>\n              </div>\n              <div\n                tw=\"max-w-[50%] text-4xl text-slate-500\"\n                style=\"overflow: hidden; text-overflow: ellipsis; white-space: nowrap\"\n              >\n                valibot.dev${path ? `/` + path : ''}\n              </div>\n            </div>\n            <div tw=\"flex flex-col\">\n              <h1\n                tw=\"max-w-[80%] text-6xl font-medium leading-normal text-slate-200\"\n                style=\"overflow: hidden; text-overflow: ellipsis; white-space: nowrap\"\n              >\n                ${title}\n              </h1>\n              <p\n                tw=\"text-4xl text-slate-400 leading-loose\"\n                style=\"${description ? '' : 'display: none'}\"\n              >\n                ${description\n                  ? description.length > 110\n                    ? description.slice(0, 110).trimEnd() + '...'\n                    : description\n                  : ''}\n              </p>\n            </div>\n          </div>\n        `,\n        {\n          width: 1200,\n          height: 630,\n          fonts: [lexend400, lexend500, lexendExa500],\n        }\n      )\n    );\n\n    // Otherwise, return image just with logo\n  } else {\n    send(\n      new ImageResponse(\n        html`\n          <div\n            tw=\"flex h-full w-full items-center justify-center bg-gray-900\"\n            style=\"font-family: 'Lexend Exa'\"\n          >\n            <div tw=\"flex items-center\">\n              <img tw=\"w-36 h-36\" src=\"${iconUrl}\" />\n              <div tw=\"text-8xl font-medium text-slate-300 ml-10\">Valibot</div>\n            </div>\n          </div>\n        `,\n        {\n          width: 1200,\n          height: 630,\n          fonts: [lexendExa500],\n        }\n      )\n    );\n  }\n};\n"
  },
  {
    "path": "website/src/routes/playground/editorCode.ts",
    "content": "import * as v from 'valibot';\n\nconst Schema = v.object({\n  email: v.pipe(v.string(), v.email()),\n  password: v.pipe(v.string(), v.minLength(8)),\n});\n\nconst result = v.safeParse(Schema, {\n  email: 'jane@example.com',\n  password: '12345678',\n});\n\nconsole.log(result);\n"
  },
  {
    "path": "website/src/routes/playground/iframeCode.js",
    "content": "// Create list of JSON tokens\nconst jsonTokens = [\n  ['whitespace', /^\\s+/],\n  ['brace', /^[{}]/],\n  ['bracket', /^[[\\]]/],\n  ['colon', /^:/],\n  ['comma', /^,/],\n  ['key', /^\"(?:\\\\.|[^\"\\\\])*\"(?=:)/],\n  ['undefined', /^\"\\[undefined\\]\"/],\n  ['infinity', /^\"\\[-?Infinity\\]\"/],\n  ['nan', /^\"\\[NaN\\]\"/],\n  ['instance', /^\"\\[[A-Z]\\w*\\]\"/],\n  ['string', /^\"(?:\\\\.|[^\"\\\\])*\"/],\n  ['number', /^-?\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?/i],\n  ['boolean', /^true|^false/],\n  ['null', /^null/],\n  ['unknown', /^.+/],\n];\n\n/**\n * Stringify, prettify and colorize log arguments.\n *\n * @param args The log arguments.\n *\n * @returns The stringified output.\n */\nfunction stringify(args) {\n  return args\n    .map((arg) => {\n      // If argument is an error, stringify it\n      if (arg instanceof Error) {\n        return arg.stack ?? `${arg.name}: ${arg.message}`;\n      }\n\n      // Otherwise, convert argument to JSON string\n      let jsonString = JSON.stringify(\n        arg,\n        (_, value) => {\n          // Get type of value\n          const type = typeof value;\n\n          // If it is a bigint, convert it to a number\n          if (type === 'bigint') {\n            return Number(value);\n          }\n\n          // If it is a non supported object, convert it to its constructor name\n          if (value && (type === 'object' || type === 'function')) {\n            const name = Object.getPrototypeOf(value)?.constructor?.name;\n            if (name && name !== 'Object' && name !== 'Array') {\n              return `[${name}]`;\n            }\n          }\n\n          // If it is a non supported value, convert it to a string\n          if (\n            value === undefined ||\n            value === Infinity ||\n            value === -Infinity ||\n            Number.isNaN(value)\n          ) {\n            return `[${value}]`;\n          }\n\n          // Otherwise, return value as is\n          return value;\n        },\n        2\n      );\n\n      // Transform and colorize specific JSON tokens\n      const output = [];\n      while (jsonString) {\n        for (const [token, regex] of jsonTokens) {\n          const match = regex.exec(jsonString);\n          if (match) {\n            const substring = match[0];\n            jsonString = jsonString.substring(substring.length);\n            if (token === 'key') {\n              output.push(\n                `<span class=\"text-slate-700 dark:text-slate-300\">${substring.slice(1, -1)}</span>`\n              );\n            } else if (token === 'instance') {\n              output.push(\n                `<span class=\"text-sky-600 dark:text-sky-400\">${substring.slice(2, -2)}</span>`\n              );\n            } else if (token === 'string') {\n              output.push(\n                `<span class=\"text-yellow-600 dark:text-amber-200\">${substring}</span>`\n              );\n            } else if (token === 'number') {\n              output.push(\n                `<span class=\"text-purple-600 dark:text-purple-400\">${substring}</span>`\n              );\n            } else if (token === 'boolean' || token === 'null') {\n              output.push(\n                `<span class=\"text-teal-600 dark:text-teal-400\">${substring}</span>`\n              );\n            } else if (\n              token === 'undefined' ||\n              token === 'infinity' ||\n              token === 'nan'\n            ) {\n              output.push(\n                `<span class=\"text-teal-600 dark:text-teal-400\">${substring.slice(2, -2)}</span>`\n              );\n            } else {\n              output.push(substring);\n            }\n            break;\n          }\n        }\n      }\n\n      // Return transformed and colorized output\n      return output.join('');\n    })\n    .join(', ');\n}\n\n// Forward errors to parent window\nwindow.onerror = (...args) => {\n  parent.postMessage(\n    { type: 'log', log: ['error', stringify([args[4]])] },\n    '*'\n  );\n};\n\n// Forward logs to parent window\n['log', 'info', 'debug', 'warn', 'error'].forEach((level) => {\n  const original = console[level];\n  console[level] = (...args) => {\n    parent.postMessage({ type: 'log', log: [level, stringify(args)] }, '*');\n    original(...args);\n  };\n});\n\n// Listen for code messages\nwindow.addEventListener('message', (event) => {\n  if (event.data.type === 'code') {\n    const element = document.createElement('script');\n    element.type = 'module';\n    element.textContent = event.data.code;\n    document.head.appendChild(element);\n  }\n});\n"
  },
  {
    "path": "website/src/routes/playground/index.tsx",
    "content": "import {\n  $,\n  component$,\n  type NoSerialize,\n  type QRL,\n  type Signal,\n  sync$,\n  useComputed$,\n  useSignal,\n  useVisibleTask$,\n} from '@builder.io/qwik';\nimport {\n  type DocumentHead,\n  useLocation,\n  useNavigate,\n} from '@builder.io/qwik-city';\nimport clsx from 'clsx';\nimport lz from 'lz-string';\nimport type * as monaco from 'monaco-editor';\nimport { transform } from 'sucrase';\nimport {\n  CodeEditor,\n  IconButton,\n  SideBar,\n  useSideBarToggle,\n} from '~/components';\nimport { useResetSignal } from '~/hooks';\nimport { BinIcon, CheckIcon, CopyIcon, PlayIcon, ShareIcon } from '~/icons';\nimport { trackEvent } from '~/utils';\nimport valibotCode from '../../../../library/dist/index.min.mjs?url';\nimport valibotToJsonSchemaCode from '../../../../packages/to-json-schema/dist/index.min.mjs?url';\nimport editorCode from './editorCode.ts?raw';\nimport iframeCode from './iframeCode.js?raw';\n\ntype LogLevel = 'log' | 'info' | 'debug' | 'warn' | 'error';\n\ntype MessageEventData = {\n  type: 'log';\n  log: [LogLevel, string];\n};\n\nexport const head: DocumentHead = {\n  title: 'Playground',\n  meta: [\n    {\n      name: 'description',\n      content:\n        \"Write, test, and share your Valibot schemas instantly. Unleash your creativity with Valibot's online code editor.\",\n    },\n  ],\n};\n\nexport default component$(() => {\n  // Use navigate, location and side bar toggle\n  const navigate = useNavigate();\n  const location = useLocation();\n  const toggle = useSideBarToggle();\n\n  // Use editor and side bar elements signals\n  const editorElement = useSignal<HTMLElement>();\n  const sideBarElement = useSignal<HTMLElement>();\n\n  // Use model and logs signals\n  const model = useSignal<NoSerialize<monaco.editor.ITextModel>>();\n  const logs = useSignal<[LogLevel, string][]>([]);\n\n  // Use iframe, logs and last log element signals\n  const iframeElement = useSignal<HTMLIFrameElement>();\n  const logsElement = useSignal<HTMLOListElement>();\n  const lastLogElement = useSignal<Element | null>();\n\n  // Computed initial code of editor\n  const initialCode = useComputed$(() => {\n    const code = location.url.searchParams.get('code');\n    return code ? lz.decompressFromEncodedURIComponent(code) : editorCode;\n  });\n\n  /**\n   * Changes the width of the side bar via pointer move.\n   */\n  const changeSideBarWidth = $(() => {\n    // Disable text selection and overflow while resizing\n    document.body.style.userSelect = 'none';\n    editorElement.value!.style.overflow = 'hidden';\n\n    // Create function to change side bar width\n    let currentWidth = sideBarElement.value!.clientWidth;\n    const maxWidth = Math.min(1700, window.innerWidth) * 0.6;\n    const onPointerMove = (event: PointerEvent) => {\n      currentWidth -= event.movementX;\n      if (currentWidth > 250 && currentWidth < maxWidth) {\n        sideBarElement.value!.style.width = `${currentWidth}px`;\n      }\n    };\n\n    // Create function to reset styles and remove event listener\n    const onPointerUp = () => {\n      document.body.style.userSelect = '';\n      editorElement.value!.style.overflow = '';\n      window.removeEventListener('pointermove', onPointerMove);\n    };\n\n    // Add pointer move and up event listeners\n    window.addEventListener('pointermove', onPointerMove);\n    window.addEventListener('pointerup', onPointerUp, { once: true });\n\n    // Track resize playground event\n    trackEvent('resize_playground');\n  });\n\n  /**\n   * Resets the width of the side bar on smaller devices.\n   */\n  const resetSideBarWidth = $(() => {\n    if (window.innerWidth <= 1024) {\n      sideBarElement.value!.style.width = '';\n    }\n  });\n\n  /**\n   * Saves the current code of the editor.\n   */\n  const saveCode = $(async () => {\n    // Add compressed code to search params\n    await navigate(\n      `?code=${lz.compressToEncodedURIComponent(model.value!.getValue())}`,\n      { replaceState: true }\n    );\n\n    // Track playground event\n    trackEvent('save_playground_code');\n  });\n\n  /**\n   * Executes the current code of the editor.\n   */\n  const executeCode = $(() => {\n    // Open side bar on smaller devices if it's closed\n    if (\n      window.innerWidth < 1024 &&\n      (!toggle.value || toggle.value.state === 'closed')\n    ) {\n      toggle.submit({ state: 'opened' });\n    }\n\n    // Update code of iframe\n    try {\n      iframeElement.value!.contentWindow!.postMessage(\n        {\n          type: 'code',\n          code: transform(model.value!.getValue(), {\n            transforms: ['typescript'],\n          }).code,\n        },\n        '*'\n      );\n\n      // Handle transform errors\n    } catch {\n      logs.value = [\n        ...logs.value,\n        ['error', 'TypeScript syntax error detected'],\n      ];\n    }\n\n    // Track playground event\n    trackEvent('execute_playground_code');\n  });\n\n  /**\n   * Captures logs from the iframe.\n   */\n  const captureLogs = $((event: MessageEvent<MessageEventData>) => {\n    if (event.data.type === 'log') {\n      logs.value = [...logs.value, event.data.log];\n    }\n  });\n\n  /**\n   * Clears the logs of the playground.\n   */\n  const clearLogs = $(() => {\n    // Reset logs signal\n    logs.value = [];\n\n    // Track playground event\n    trackEvent('clear_playground_logs');\n  });\n\n  /**\n   * Handles keyboard keydown events.\n   */\n  const handleKeyDown = $((event: KeyboardEvent) => {\n    if (event.ctrlKey || event.metaKey) {\n      if (event.key === 'Enter') {\n        executeCode();\n      } else if (event.key === 'Backspace') {\n        clearLogs();\n      }\n    }\n  });\n\n  /**\n   * Prevents default behavior of keydown events.\n   */\n  const preventDefault = sync$((event: KeyboardEvent) => {\n    if (\n      (event.ctrlKey || event.metaKey) &&\n      (event.key === 'Enter' || event.key === 'Backspace')\n    ) {\n      event.preventDefault();\n      event.stopPropagation();\n    }\n  });\n\n  // Scroll newest logs into view\n  // eslint-disable-next-line qwik/no-use-visible-task\n  useVisibleTask$(({ track }) => {\n    track(logs);\n    lastLogElement.value?.nextElementSibling?.scrollIntoView();\n    lastLogElement.value = logsElement.value?.lastElementChild;\n  });\n\n  return (\n    <main\n      class=\"flex w-full flex-1 flex-col lg:flex-row lg:gap-5 lg:px-10 lg:py-20 2xl:max-w-[1700px] 2xl:gap-7 2xl:self-center\"\n      window:onMessage$={captureLogs}\n      window:onKeyDown$={[preventDefault, handleKeyDown]}\n      window:onResize$={resetSideBarWidth}\n    >\n      <div ref={editorElement} class=\"flex flex-1 overflow-visible lg:relative\">\n        <CodeEditor\n          class=\"lg:rounded-3xl lg:border-[3px] lg:border-slate-200 lg:dark:border-slate-800\"\n          value={initialCode}\n          model={model}\n          onSave$={saveCode}\n        />\n        <EditorButtons\n          class=\"hidden! lg:absolute! lg:top-10 lg:right-10 lg:z-10 lg:flex!\"\n          model={model}\n          executeCode$={executeCode}\n        />\n      </div>\n\n      <div\n        class=\"group hidden lg:flex lg:w-3 lg:cursor-col-resize lg:justify-center\"\n        onPointerDown$={changeSideBarWidth}\n      >\n        <div class=\"lg:invisible lg:h-full lg:w-[3px] lg:rounded lg:bg-slate-200/50 lg:group-hover:visible lg:dark:bg-slate-800/50\" />\n      </div>\n\n      <SideBar\n        ref={sideBarElement}\n        class=\"lg:w-80 xl:w-96 2xl:w-[500px]\"\n        toggle={toggle}\n      >\n        <EditorButtons\n          q:slot=\"buttons\"\n          class=\"mr-4 lg:hidden\"\n          model={model}\n          executeCode$={executeCode}\n        />\n        <IconButton\n          class=\"absolute! top-8 right-8 z-10 lg:top-10 lg:right-10\"\n          type=\"button\"\n          variant=\"secondary\"\n          label=\"Clear logs\"\n          hideLabel\n          onClick$={clearLogs}\n        >\n          <BinIcon class=\"h-[18px]\" />\n        </IconButton>\n        <ol\n          ref={logsElement}\n          class=\"flex h-full flex-col items-start overflow-auto overscroll-contain scroll-smooth px-8 py-9 lg:absolute lg:w-full lg:rounded-3xl lg:border-[3px] lg:border-slate-200 lg:p-10 lg:dark:border-slate-800\"\n        >\n          {logs.value.map(([level, message], index) => (\n            <li key={index} class=\"scroll-mx-8 scroll-my-9 lg:scroll-m-10\">\n              <pre class=\"lg:text-lg\">\n                [\n                <span\n                  class={clsx(\n                    'font-medium uppercase',\n                    level === 'error'\n                      ? 'text-red-600 dark:text-red-400'\n                      : level === 'warn'\n                        ? 'text-yellow-600 dark:text-yellow-400'\n                        : 'text-sky-600 dark:text-sky-400'\n                  )}\n                >\n                  {level}\n                </span>\n                ]: <span dangerouslySetInnerHTML={message} />\n              </pre>\n            </li>\n          ))}\n        </ol>\n      </SideBar>\n\n      <iframe\n        ref={iframeElement}\n        hidden\n        sandbox=\"allow-scripts\"\n        srcdoc={`\n          <!DOCTYPE html>\n          <html>\n            <head>\n              <script type=\"importmap\">\n                {\n                  \"imports\": {\n                    \"valibot\": \"${valibotCode}\",\n                    \"@valibot/to-json-schema\": \"${valibotToJsonSchemaCode}\"\n                  }\n                }\n              </script>\n              <script>\n                ${iframeCode}\n              </script>\n            </head>\n            <body></body>\n          </html>\n        `}\n      />\n    </main>\n  );\n});\n\ntype EditorButtonsProps = {\n  class: string;\n  model: Signal<NoSerialize<monaco.editor.ITextModel>>;\n  executeCode$: QRL<() => void>;\n};\n\nconst EditorButtons = component$<EditorButtonsProps>(\n  ({ model, executeCode$, ...props }) => {\n    // Use navigate and location\n    const navigate = useNavigate();\n    const location = useLocation();\n\n    // Use copied and shared reset signal\n    const copied = useResetSignal(false);\n    const shared = useResetSignal(false);\n\n    /**\n     * Copies the current code of the editor.\n     */\n    const copyCode = $(() => {\n      // Copy code to clipboard\n      copied.value = true;\n      navigator.clipboard.writeText(model.value!.getValue());\n\n      // Track playground event\n      trackEvent('copy_playground_code');\n    });\n\n    /**\n     * Shares the current code of the editor.\n     */\n    const shareCode = $(async () => {\n      // Add compressed code to search params\n      await navigate(\n        `?code=${lz.compressToEncodedURIComponent(model.value!.getValue())}`,\n        { replaceState: true }\n      );\n\n      // Get current URL with search params\n      const url = location.url.href;\n\n      // Share URL or copy it to clipboard\n      if (navigator.share) {\n        navigator.share({ title: 'Playground', url });\n      } else {\n        shared.value = true;\n        navigator.clipboard.writeText(url);\n      }\n\n      // Track playground event\n      trackEvent('share_playground_code');\n    });\n\n    return (\n      <div class={clsx('flex gap-6', props.class)}>\n        <IconButton\n          type=\"button\"\n          variant=\"secondary\"\n          label=\"Copy code\"\n          hideLabel\n          onClick$={copyCode}\n        >\n          {copied.value ? (\n            <CheckIcon class=\"h-[18px]\" />\n          ) : (\n            <CopyIcon class=\"h-[18px]\" />\n          )}\n        </IconButton>\n        <IconButton\n          type=\"button\"\n          variant=\"secondary\"\n          label=\"Share code\"\n          hideLabel\n          onClick$={shareCode}\n        >\n          {shared.value ? (\n            <CheckIcon class=\"h-[18px]\" />\n          ) : (\n            <ShareIcon class=\"h-[18px]\" />\n          )}\n        </IconButton>\n        <IconButton\n          type=\"button\"\n          variant=\"secondary\"\n          label=\"Execute code\"\n          hideLabel\n          onClick$={executeCode$}\n        >\n          <PlayIcon class=\"h-[16px]\" />\n        </IconButton>\n      </div>\n    );\n  }\n);\n"
  },
  {
    "path": "website/src/routes/plugin@chapters.ts",
    "content": "import {\n  type RequestEventAction,\n  routeAction$,\n  routeLoader$,\n} from '@builder.io/qwik-city';\n\nconst COOKIE_NAME = 'chapters';\n\n/**\n * Returns the value of the chapters cookie.\n */\nfunction getCookie(request: RequestEventAction) {\n  return request.cookie.get(COOKIE_NAME)?.value ?? 'true';\n}\n\n/**\n * Returns whether chapters are enabled.\n */\nexport const useChapters = routeLoader$(\n  (request) => getCookie(request) === 'true'\n);\n\n/**\n * Toggles the chapters by changing the chapters cookie.\n */\nexport const useChaptersToggle = routeAction$((_, request) => {\n  request.cookie.set(COOKIE_NAME, `${getCookie(request) !== 'true'}`, {\n    httpOnly: true,\n    maxAge: 31557600, // 1 year\n    path: '/',\n    sameSite: 'lax',\n    secure: import.meta.env.PROD,\n  });\n});\n"
  },
  {
    "path": "website/src/routes/plugin@theme.ts",
    "content": "import {\n  type RequestEventAction,\n  routeAction$,\n  routeLoader$,\n} from '@builder.io/qwik-city';\n\nconst COOKIE_NAME = 'theme';\n\n/**\n * Returns the value of the theme cookie.\n */\nfunction getCookie(request: RequestEventAction) {\n  return request.cookie.get(COOKIE_NAME)?.value ?? 'dark';\n}\n\n/**\n * Returns the current theme.\n */\nexport const useTheme = routeLoader$((request) => getCookie(request));\n\n/**\n * Toggles the theme by changing the theme cookie.\n */\nexport const useThemeToggle = routeAction$((_, request) => {\n  request.cookie.set(\n    COOKIE_NAME,\n    getCookie(request) === 'dark' ? 'light' : 'dark',\n    {\n      httpOnly: true,\n      maxAge: 31557600, // 1 year\n      path: '/',\n      sameSite: 'lax',\n      secure: import.meta.env.PROD,\n    }\n  );\n});\n"
  },
  {
    "path": "website/src/styles/pace.css",
    "content": "@reference './root.css';\n\n/* Important */\ncode.language-bash * {\n  @apply text-slate-700! dark:text-slate-300!;\n}\n\n/* Gray */\ncode .script,\ncode .spread,\ncode .imports span {\n  @apply text-slate-700 dark:text-slate-300;\n}\ncode .operator,\ncode .tag .punctuation,\ncode .attr-value .punctuation.attr-equals {\n  @apply text-slate-600 dark:text-slate-400;\n}\ncode .comment {\n  @apply text-slate-500;\n}\n\n/* Amber */\ncode .string,\ncode .attr-value,\ncode .attr-value .punctuation {\n  @apply text-yellow-600 dark:text-amber-200;\n}\n\n/* Emerald */\ncode .function,\ncode .tag .attr-name,\ncode .tag .script .function {\n  @apply text-emerald-600 dark:text-emerald-400;\n}\n\n/* Teal */\ncode .keyword,\ncode .builtin,\ncode .boolean,\ncode .imports .operator {\n  @apply text-teal-600 dark:text-teal-400;\n}\n\n/* Sky */\ncode .tag .class-name,\ncode .maybe-class-name {\n  @apply text-sky-600 dark:text-sky-400;\n}\n\n/* Purple */\ncode .number {\n  @apply text-purple-600 dark:text-purple-400;\n}\n\n/* Red */\ncode .tag,\ncode .keyword.module,\ncode .keyword.control-flow,\ncode .spread.operator {\n  @apply text-red-600 dark:text-red-400;\n}\n"
  },
  {
    "path": "website/src/styles/root.css",
    "content": "/* Tailwind CSS */\n@import 'tailwindcss';\n\n@custom-variant dark (&:where(.dark, .dark *));\n\n@theme {\n  --font-lexend: 'Lexend', ui-sans-serif, system-ui, sans-serif;\n  --font-lexend-exa: 'Lexend Exa', ui-sans-serif, system-ui, sans-serif;\n}\n\n/* Custom utils */\n@utility focus-ring {\n  @apply focus-visible:ring-4 focus-visible:ring-sky-600/10 focus-visible:ring-offset-[3px] focus-visible:ring-offset-white focus-visible:outline-2 focus-visible:outline-sky-600/50 dark:focus-visible:ring-sky-400/10 dark:focus-visible:ring-offset-gray-900 dark:focus-visible:outline-sky-400/50;\n}\n@utility scrollbar-none {\n  -ms-overflow-style: none;\n  scrollbar-width: none;\n  &::-webkit-scrollbar {\n    display: none;\n  }\n}\n\n/* Base layer */\n@layer base {\n  /* Disable tap highlight color */\n  html {\n    -webkit-tap-highlight-color: transparent;\n  }\n\n  /* Reset appearance */\n  [type='search']::-webkit-search-cancel-button {\n    @apply hidden;\n  }\n\n  /* Disable transitions */\n  .disable-transitions,\n  .disable-transitions * {\n    transition: none !important;\n  }\n\n  /* Scrollbar */\n  * {\n    scrollbar-width: thin;\n    scrollbar-color: var(--color-slate-300) transparent;\n  }\n  .dark,\n  .dark * {\n    scrollbar-color: var(--color-slate-700) transparent;\n  }\n\n  /* Monaco editor */\n  .monaco-editor,\n  .monaco-editor > div {\n    @apply border-0 outline-none lg:rounded-3xl;\n  }\n\n  /* Lexend 400 */\n  @font-face {\n    font-family: 'Lexend';\n    font-style: normal;\n    font-weight: 400;\n    font-display: swap;\n    src: url(/fonts/lexend-400.woff2) format('woff2');\n  }\n\n  /* Lexend 500 */\n  @font-face {\n    font-family: 'Lexend';\n    font-style: normal;\n    font-weight: 500;\n    font-display: swap;\n    src: url(/fonts/lexend-500.woff2) format('woff2');\n  }\n\n  /* Lexend Exa 500 */\n  @font-face {\n    font-family: 'Lexend Exa';\n    font-style: normal;\n    font-weight: 500;\n    font-display: swap;\n    src: url(/fonts/lexend-exa-500.woff2) format('woff2');\n  }\n\n  /* Typography */\n  .mdx :is(h1, h2, h3, h4) {\n    @apply scroll-mt-24 leading-normal font-medium text-slate-900 md:scroll-mt-32 lg:scroll-mt-48 dark:text-slate-200;\n  }\n  .mdx h1 {\n    @apply text-2xl md:text-3xl lg:text-4xl;\n  }\n  .mdx h2 {\n    @apply border-b-2 border-b-slate-200 pb-4 text-xl md:pb-6 md:text-2xl lg:pb-8 lg:text-3xl dark:border-b-slate-800;\n  }\n  .mdx h3 {\n    @apply text-lg md:text-xl lg:text-2xl;\n  }\n  .mdx h4 {\n    @apply md:text-lg lg:text-xl;\n  }\n  .mdx :is(p, blockquote, ul, ol) {\n    @apply leading-loose md:text-lg lg:text-xl;\n  }\n  .mdx p strong {\n    @apply text-slate-800 dark:text-slate-300;\n  }\n\n  /* Blockquote */\n  .mdx blockquote p {\n    @apply border-l-4 border-l-yellow-600 pl-6 lg:pl-8 dark:border-l-yellow-400;\n  }\n\n  /* Links */\n  .mdx a {\n    @apply focus-ring rounded-md text-sky-600 underline decoration-slate-400 decoration-dashed underline-offset-[3px] focus-visible:ring-offset-[6px] focus-visible:outline-offset-4 dark:text-sky-400 dark:decoration-slate-600;\n  }\n\n  /* Images */\n  .mdx > img {\n    @apply w-auto rounded-2xl border-2 border-slate-200 lg:rounded-3xl lg:border-[3px] dark:border-slate-800;\n  }\n\n  /* Lists */\n  .mdx :is(ul, ol) {\n    @apply flex flex-col gap-2;\n  }\n  .mdx :is(ul, ol) :is(ul, ol) {\n    @apply pt-2 pl-4 lg:pl-5;\n  }\n  .mdx ul {\n    @apply list-disc;\n  }\n  .mdx ol {\n    @apply list-decimal;\n  }\n  .mdx :is(ul, ol) li {\n    @apply pl-2.5;\n  }\n\n  /* Table */\n  .mdx .table-wrapper {\n    @apply overflow-x-auto rounded-2xl border-2 border-slate-200 px-5 py-2.5 lg:rounded-3xl lg:border-[3px] lg:px-10 lg:py-7 dark:border-slate-800;\n  }\n  .mdx table {\n    @apply w-full md:text-lg lg:text-xl;\n  }\n  .mdx tbody tr {\n    @apply border-t border-t-slate-200 lg:border-t-2 dark:border-t-slate-800;\n  }\n  .mdx th {\n    @apply text-left font-medium text-slate-700 dark:text-slate-300;\n  }\n  .mdx :is(th, td) {\n    @apply py-2.5 whitespace-nowrap lg:py-3;\n  }\n  .mdx :is(th, td) + :is(th, td) {\n    @apply pl-3;\n  }\n  .mdx table strong {\n    @apply font-normal text-emerald-600 dark:text-emerald-400;\n  }\n\n  /* Code */\n  .mdx :not(pre) > code {\n    @apply rounded-lg bg-slate-100 px-2 py-1 text-slate-700 dark:bg-gray-800 dark:text-slate-300;\n  }\n  .mdx p > code {\n    @apply whitespace-nowrap;\n  }\n\n  /* Horizontal spacing */\n  .mdx > :is(h1, h2, h3, h4, p, blockquote) {\n    @apply mx-8 lg:mx-10;\n  }\n  .mdx > :is(ul, ol) {\n    @apply mr-8 ml-12 lg:mr-10 lg:ml-14;\n  }\n  .mdx > :is(img, .code-wrapper, .table-wrapper) {\n    @apply mx-3 lg:mx-10 2xl:mx-0;\n  }\n\n  /* Vertical spacing */\n  .mdx > :is(h1, h2, h3, h4, p) + p {\n    @apply mt-7 md:mt-9 lg:mt-11;\n  }\n  .mdx > * + * {\n    @apply mt-10 md:mt-12 lg:mt-14;\n  }\n  .mdx > * + h2 {\n    @apply mt-12 md:mt-14 lg:mt-16;\n  }\n}\n"
  },
  {
    "path": "website/src/utils/disableTransitions.ts",
    "content": "let timeout: NodeJS.Timeout | undefined;\n\n/**\n * Disables CSS transitions for a short moment.\n */\nexport function disableTransitions() {\n  if (timeout) clearTimeout(timeout);\n  const { classList } = document.documentElement;\n  classList.add('disable-transitions');\n  timeout = setTimeout(() => classList.remove('disable-transitions'), 500);\n}\n"
  },
  {
    "path": "website/src/utils/index.ts",
    "content": "export * from './disableTransitions';\nexport * from './trackEvent';\n"
  },
  {
    "path": "website/src/utils/trackEvent.ts",
    "content": "type EventName =\n  | 'change_theme'\n  | 'change_chapters'\n  | 'open_search'\n  | 'select_search_item'\n  | 'copy_code_snippet'\n  | 'open_code_snippet_in_playground'\n  | 'copy_playground_code'\n  | 'share_playground_code'\n  | 'save_playground_code'\n  | 'execute_playground_code'\n  | 'clear_playground_logs'\n  | 'resize_playground'\n  | 'copy_zod_codemod_result'\n  | 'execute_zod_codemod';\n\ntype EventData = { [key: string]: string | number | boolean | undefined };\n\ndeclare global {\n  interface Window {\n    umami?: { track: (name: EventName, data?: EventData) => void };\n  }\n}\n\n/**\n * Tracks custom Umami events.\n *\n * @param name The event name.\n * @param data The event data.\n */\nexport function trackEvent(name: EventName, data?: EventData) {\n  window.umami?.track(name, data);\n}\n"
  },
  {
    "path": "website/tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"allowJs\": true,\n    \"target\": \"ES2017\",\n    \"module\": \"ES2022\",\n    \"lib\": [\"es2022\", \"DOM\", \"WebWorker\", \"DOM.Iterable\"],\n    \"jsx\": \"react-jsx\",\n    \"jsxImportSource\": \"@builder.io/qwik\",\n    \"strict\": true,\n    \"forceConsistentCasingInFileNames\": true,\n    \"resolveJsonModule\": true,\n    \"moduleResolution\": \"bundler\",\n    \"esModuleInterop\": true,\n    \"skipLibCheck\": true,\n    \"incremental\": true,\n    \"isolatedModules\": true,\n    \"outDir\": \"tmp\",\n    \"noEmit\": true,\n    \"types\": [\"node\", \"vite/client\"],\n    \"paths\": {\n      \"~/*\": [\"./src/*\"]\n    }\n  },\n  \"include\": [\"scripts\", \"src\", \"./*.d.ts\", \"./*.config.ts\"],\n  \"exclude\": [\"src/routes/guides/(migration)/migrate-from-zod/zod\"]\n}\n"
  },
  {
    "path": "website/vercel.json",
    "content": "{\n  \"buildCommand\": \"cd ../library && npm run build && cd ../packages/to-json-schema && npm run build && cd ../../codemod/zod-to-valibot && pnpm build && cd ../../website && npm run sitemap && npm run llms && npm run build\",\n  \"headers\": [\n    {\n      \"source\": \"/(.*)?service-worker.js\",\n      \"headers\": [\n        {\n          \"key\": \"Cache-Control\",\n          \"value\": \"public, max-age=0, must-revalidate\"\n        }\n      ]\n    },\n    {\n      \"source\": \"/build/(.*)\",\n      \"headers\": [\n        {\n          \"key\": \"Cache-Control\",\n          \"value\": \"public, max-age=31536000, s-maxage=31536000, immutable\"\n        }\n      ]\n    },\n    {\n      \"source\": \"/assets/(.*)\",\n      \"headers\": [\n        {\n          \"key\": \"Cache-Control\",\n          \"value\": \"public, max-age=31536000, s-maxage=31536000, immutable\"\n        }\n      ]\n    },\n    {\n      \"source\": \"/assets/(.*)-index.min.mjs\",\n      \"headers\": [\n        {\n          \"key\": \"Access-Control-Allow-Origin\",\n          \"value\": \"*\"\n        }\n      ]\n    }\n  ]\n}\n"
  },
  {
    "path": "website/vite.config.ts",
    "content": "import { qwikCity } from '@builder.io/qwik-city/vite';\nimport { qwikVite } from '@builder.io/qwik/optimizer';\nimport rehypePrism from '@mapbox/rehype-prism';\nimport tailwindcss from '@tailwindcss/vite';\nimport rehypeExternalLinks from 'rehype-external-links';\nimport { defineConfig } from 'vite';\nimport { nodePolyfills } from 'vite-plugin-node-polyfills';\nimport tsconfigPaths from 'vite-tsconfig-paths';\n\nexport default defineConfig(({ isSsrBuild }) => {\n  return {\n    plugins: [\n      qwikCity({\n        mdxPlugins: {\n          remarkGfm: true,\n          rehypeSyntaxHighlight: false,\n          rehypeAutolinkHeadings: true,\n        },\n        mdx: {\n          providerImportSource: '~/hooks/useMDXComponents.tsx',\n          rehypePlugins: [\n            // @ts-expect-error\n            rehypePrism,\n            [rehypeExternalLinks, { rel: 'noreferrer', target: '_blank' }],\n          ],\n        },\n      }),\n      qwikVite(),\n      tsconfigPaths(),\n      !isSsrBuild && nodePolyfills(),\n      tailwindcss(),\n    ],\n    preview: {\n      headers: {\n        'Cache-Control': 'public, max-age=600',\n      },\n    },\n  };\n});\n"
  }
]